15588e08ed
Reviewed-by: vromero
43 lines
1.1 KiB
Java
43 lines
1.1 KiB
Java
/**
|
|
* @test /nodynamiccopyright/
|
|
* @bug 8314578
|
|
* @enablePreview
|
|
* @summary Parsing of erroneous patterns succeeds
|
|
* @compile/fail/ref=T8314578.out -XDrawDiagnostics T8314578.java
|
|
*/
|
|
public class T8314578 {
|
|
record R1() {}
|
|
record R2() {}
|
|
|
|
static void test(Object o) {
|
|
switch (o) {
|
|
case R1() when o instanceof String s:
|
|
case R2() when o instanceof Integer i:
|
|
System.out.println("hello: " + i);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void test2(Object o) {
|
|
switch (o) {
|
|
case R1() when o instanceof String s:
|
|
System.out.println("hello: " + s);
|
|
case R2() when o instanceof Integer i:
|
|
System.out.println("hello: " + i);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
static int unnamedInGuardsOK(String s) {
|
|
return switch (s) {
|
|
case String _ when s instanceof String _ -> // should be OK
|
|
1;
|
|
default ->
|
|
-1;
|
|
};
|
|
}
|
|
} |