8231826: Implement javac changes for pattern matching for instanceof
Reviewed-by: mcimadamore
Contributed-by: brian.goetz@oracle.com, gavin.bierman@oracle.com, maurizio.cimadamore@oracle.com, srikanth.adayapalam@oracle.com, vicente.romero@oracle.com, jan.lahoda@oracle.com
/*
* @test /nodynamiccopyright/
* @bug 8231827
* @summary Clashing bindings are reported correctly
* @compile/fail/ref=BindingsExistTest.out -XDrawDiagnostics --enable-preview -source ${jdk.version} BindingsExistTest.java
*/
public class BindingsExistTest {
public void t(Object o1, Object o2) {
if (o1 instanceof String k && o2 instanceof Integer k) {}
if (o1 instanceof String k || o2 instanceof Integer k) {}
if (!(o1 instanceof String k)) {
return ;
}
if (o1 instanceof Integer k) {}
String s2 = "";
if (o1 instanceof String s2) {}
if (o1 instanceof String s3) {
String s3 = "";
}
if (!(o1 instanceof String s4)) {
return ;
}
String s4 = "";
}
}