mirror of
https://github.com/github/codeql.git
synced 2026-04-24 08:15:14 +02:00
Add missing test Java files
This commit is contained in:
30
java/ql/test/library-tests/pattern-switch/dfg/GuardTest.java
Normal file
30
java/ql/test/library-tests/pattern-switch/dfg/GuardTest.java
Normal file
@@ -0,0 +1,30 @@
|
||||
public class GuardTest {
|
||||
|
||||
public static void sink(String s) { }
|
||||
public static boolean isSafe(String s) { return s.length() < 10; }
|
||||
|
||||
public static void test(Object o) {
|
||||
|
||||
switch (o) {
|
||||
|
||||
case String s:
|
||||
sink(s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
switch (o) {
|
||||
|
||||
case String s when isSafe(s):
|
||||
sink(s);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
public class RecordTest {
|
||||
|
||||
interface I { }
|
||||
record Middle(String field) { }
|
||||
record A(Middle afield) implements I { }
|
||||
record B(Middle bfield) implements I { }
|
||||
|
||||
public static String sink(String s) { return s; }
|
||||
|
||||
public static void test(boolean inp) {
|
||||
|
||||
I i = inp ? new A(new Middle("A")) : new B(new Middle("B"));
|
||||
|
||||
switch(i) {
|
||||
case A(Middle(String field)):
|
||||
sink(field);
|
||||
break;
|
||||
case B(Middle(String field)):
|
||||
sink(field);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(i) {
|
||||
case A(Middle(String field)) -> sink(field);
|
||||
case B(Middle(String field)) -> sink(field);
|
||||
default -> { }
|
||||
}
|
||||
|
||||
var x = switch(i) {
|
||||
case A(Middle(String field)):
|
||||
yield sink(field);
|
||||
case B(Middle(String field)):
|
||||
yield sink(field);
|
||||
default:
|
||||
yield "Default case";
|
||||
};
|
||||
|
||||
var y = switch(i) {
|
||||
case A(Middle(String field)) -> sink(field);
|
||||
case B(Middle(String field)) -> sink(field);
|
||||
default -> "Default case";
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user