Files
codeql/java/ql/test/library-tests/printAst/A.java
2023-11-30 11:23:59 +00:00

132 lines
3.5 KiB
Java

/** Another javadoc */
/**
* A class
*
* @author someone
*/
class A {
public @interface Ann1 {
String value() default "b";
Ann2[] nest() default {};
}
public @interface Ann2 {
int value() default 3;
}
/** Does something */
@Deprecated
static int doSomething(@SuppressWarnings("all") String text) {
int i=0, j=1;
for(i=0, j=1; i<3; i++) {}
for(int m=0, n=1; m<3; m++) {}
return 0;
}
int counter = 1;
{
counter = doSomething("hi");
}
@Ann1(
value="a",
nest={
@Ann2,
@Ann2(7)
})
String doSomethingElse() { return "c"; }
void varDecls(Object[] things) {
try {
for(Object thing : things) {
if (thing instanceof Integer) {
return;
}
if (thing instanceof String s) {
throw new RuntimeException(s);
}
switch (thing) {
case String s -> System.out.println(s);
case Integer i -> System.out.println("An integer: " + i);
default -> { }
}
switch (thing) {
case String s:
System.out.println(s);
break;
case Integer i:
System.out.println("An integer:" + i);
break;
default:
break;
}
var thingAsString = switch(thing) {
case String s -> s;
case Integer i -> "An integer: " + i;
default -> "Something else";
};
var thingAsString2 = switch(thing) {
case String s:
yield s;
case Integer i:
yield "An integer: " + i;
default:
yield "Something else";
};
var nullTest = switch(thing) {
case null -> "Null";
default -> "Not null";
};
var whenTest = switch((String)thing) {
case "constant" -> "It's constant";
case String s when s.length() == 3 -> "It's 3 letters long";
case String s when s.length() == 5 -> "it's 5 letters long";
default -> "It's something else";
};
var nullDefaultTest = switch(thing) {
case String s -> "It's a string";
case null, default -> "It's something else";
};
var qualifiedEnumTest = switch(thing) {
case E.A -> "It's E.A";
default -> "It's something else";
};
var unnecessaryQualifiedEnumTest = switch((E)thing) {
case A -> "It's E.A";
case E.B -> "It's E.B";
default -> "It's something else";
};
var recordPatterntest = switch(thing) {
case Middle(Inner(String field)) -> field;
default -> "Doesn't match pattern Middle(Inner(...))";
};
}
}
catch (RuntimeException rte) {
return;
}
}
enum E {
/**
* Javadoc for enum constant
*/
A,
B,
C;
}
/**
* Javadoc for fields
*/
int i, j, k;
}
record Inner(String field) { }
record Middle(Inner inner) { }