diff -r 88502b1cf76f -r 7799a51dbe30 test/langtools/tools/javac/patterns/BindingsExistTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/langtools/tools/javac/patterns/BindingsExistTest.java Wed Nov 27 09:00:01 2019 +0100 @@ -0,0 +1,30 @@ +/* + * @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 = ""; + } +}