Wed, 15 May 2013 14:00:31 +0100
8012003: Method diagnostics resolution need to be simplified in some cases
Summary: Unfold method resolution diagnostics when they mention errors in poly expressions
Reviewed-by: jjg, vromero
aoqi@0 | 1 | /** |
aoqi@0 | 2 | * @test /nodynamiccopyright/ |
aoqi@0 | 3 | * @bug 8012003 |
aoqi@0 | 4 | * @summary Method diagnostics resolution need to be simplified in some cases |
aoqi@0 | 5 | * test lambda-related overload resolution simplifications |
aoqi@0 | 6 | * @compile/fail/ref=T8012003b.out -XDrawDiagnostics -Xdiags:compact T8012003b.java |
aoqi@0 | 7 | */ |
aoqi@0 | 8 | |
aoqi@0 | 9 | class T8012003b { |
aoqi@0 | 10 | |
aoqi@0 | 11 | interface Consumer_V<X> { |
aoqi@0 | 12 | void m(X x); |
aoqi@0 | 13 | } |
aoqi@0 | 14 | |
aoqi@0 | 15 | interface Consumer_NV<X> { |
aoqi@0 | 16 | Integer m(X x); |
aoqi@0 | 17 | } |
aoqi@0 | 18 | |
aoqi@0 | 19 | void m1(Runnable r) { } |
aoqi@0 | 20 | void m1(Runnable r, String s) { } |
aoqi@0 | 21 | |
aoqi@0 | 22 | void m2(Consumer_V<Integer> ci) { } |
aoqi@0 | 23 | |
aoqi@0 | 24 | void m3(Consumer_NV<String> ci) { } |
aoqi@0 | 25 | |
aoqi@0 | 26 | void g(String arg) { } |
aoqi@0 | 27 | String g2(String arg) { return arg; } |
aoqi@0 | 28 | |
aoqi@0 | 29 | void test() { |
aoqi@0 | 30 | m1(this::g); |
aoqi@0 | 31 | m1(()->1); |
aoqi@0 | 32 | m1(()->false ? "" : ""); |
aoqi@0 | 33 | m2(this::g); |
aoqi@0 | 34 | m3(this::g2); |
aoqi@0 | 35 | m3(this::k); |
aoqi@0 | 36 | } |
aoqi@0 | 37 | } |