1/*
2 * @test /nodynamiccopyright/
3 * @bug 8024809
4 * @summary javac, some lambda programs are rejected by flow analysis
5 * @compile/fail/ref=SelfInitializerInLambdaTesta.out -XDrawDiagnostics SelfInitializerInLambdaTesta.java
6 */
7
8public class SelfInitializerInLambdaTesta {
9
10    final Runnable r1 = ()->System.out.println(r1);
11
12    final Object lock = new Object();
13
14    final Runnable r2 = ()->{
15        System.out.println(r2);
16        synchronized (lock){}
17    };
18
19    final Runnable r3 = ()->{
20        synchronized (lock){
21            System.out.println(r3);
22        }
23    };
24
25    final Runnable r4 = ()->{
26        System.out.println(r4);
27    };
28
29    interface SAM {
30        int m(String s);
31    }
32
33    final SAM s1 = (String s)->{
34        System.out.println(s + s1.toString());
35        return 0;
36    };
37
38    final SAM s2 = (s)->{
39        System.out.println(s + s2.toString());
40        return 0;
41    };
42}
43