test/langtools/tools/javac/lvti/SelfRefTest.java
changeset 47268 48ec75306997
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/langtools/tools/javac/lvti/SelfRefTest.java	Tue Sep 26 12:52:53 2017 +0100
@@ -0,0 +1,23 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8177466
+ * @summary Add compiler support for local variable type-inference
+ * @compile/fail/ref=SelfRefTest.out -XDrawDiagnostics SelfRefTest.java
+ */
+
+import java.util.function.Function;
+
+class SelfRefTest {
+
+        int q() { return 42; }
+    int m(int t) { return t; }
+
+    void test(boolean cond) {
+       var x = cond ? x : x; //error - self reference
+       var y = (Function<Integer, Integer>)(Integer y) -> y; //error - bad shadowing
+       var z = (Runnable)() -> { int z2 = m(z); }; //error - self reference
+       var w = new Object() { int w = 42; void test() { int w2 = w; } }; //ok
+       int u = u; //ok
+       int q = q(); //ok
+    }
+}