test/langtools/tools/javac/lvti/BadLocalVarInferenceTest.java
changeset 47268 48ec75306997
child 47934 6373d9a0ad82
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/lvti/BadLocalVarInferenceTest.java	Tue Sep 26 12:52:53 2017 +0100
@@ -0,0 +1,33 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8177466
+ * @summary Add compiler support for local variable type-inference
+ * @compile/fail/ref=BadLocalVarInferenceTest.out -XDrawDiagnostics BadLocalVarInferenceTest.java
+ */
+
+class BadLocalVarInferenceTest {
+
+    interface Foo<X> {
+        void m(X x);
+    }
+
+    interface Supplier<X> {
+        void m(X x);
+    }
+
+    void test() {
+        var x;
+        var f = () -> { };
+        var m = this::l;
+        var g = null;
+        var d = d = 1;
+        var k = { 1 , 2 };
+        var l = new Foo<>() { //LHS was Foo<String>
+            @Override
+            void m(String s) { }
+        };
+        var s = f(x -> { x.charAt(0); }); //LHS was String
+    }
+
+    <Z> Z f(Supplier<Z> sz) { return null; }
+}