1/*
2 * @test /nodynamiccopyright/
3 * @bug 8003280 8034223
4 * @summary Add lambda tests
5 *  check case of ambiguous method call with lambda whose body cannot
6            complete normally
7 * @compile/fail/ref=TargetType23.out -XDrawDiagnostics TargetType23.java
8 */
9
10class TargetType23 {
11
12    interface Sam0 {
13        void m();
14    }
15
16    interface Sam1 {
17        int m();
18    }
19
20    interface Sam2 {
21        String m();
22    }
23
24    interface Sam3<A> {
25        A m();
26    }
27
28
29    void call(Sam0 s) { }
30    void call(Sam1 s) { }
31    void call(Sam2 s) { }
32    <Z> void call(Sam3<Z> s) { }
33
34    void call2(Sam0 s) { }
35    void call2(Sam2 s) { }
36    <Z> void call2(Sam3<Z> s) { }
37
38    void test() {
39        call(()-> { throw new RuntimeException(); }); // ambiguous - call(Sam1) vs. call(Sam2)
40        call2(()-> { throw new RuntimeException(); }); // ok
41    }
42}
43