Files
codeql/java/ql/test/library-tests/pattern-switch/dfg/Test.java
2023-11-30 11:23:58 +00:00

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";
};
}
}