mirror of
https://github.com/github/codeql.git
synced 2025-12-18 09:43:15 +01:00
48 lines
1.0 KiB
Java
48 lines
1.0 KiB
Java
public class Test {
|
|
|
|
interface I { String get(); }
|
|
static class A implements I { public String afield; public A(String a) { this.afield = a; } public String get() { return afield; } }
|
|
static class B implements I { public String bfield; public B(String b) { this.bfield = b; } public String get() { return bfield; } }
|
|
|
|
public static String sink(String s) { return s; }
|
|
|
|
public static void test(boolean inp) {
|
|
|
|
I i = inp ? new A("A") : new B("B");
|
|
|
|
switch(i) {
|
|
case A a:
|
|
sink(a.get());
|
|
break;
|
|
case B b:
|
|
sink(b.get());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
switch(i) {
|
|
case A a -> sink(a.get());
|
|
case B b -> sink(b.get());
|
|
default -> { }
|
|
}
|
|
|
|
var x = switch(i) {
|
|
case A a:
|
|
yield sink(a.get());
|
|
case B b:
|
|
yield sink(b.get());
|
|
default:
|
|
yield "Default case";
|
|
};
|
|
|
|
var y = switch(i) {
|
|
case A a -> sink(a.get());
|
|
case B b -> sink(b.get());
|
|
default -> "Default case";
|
|
};
|
|
|
|
}
|
|
|
|
}
|