1.1 --- a/test/tools/javac/lambda/mostSpecific/StructuralMostSpecificTest.java Fri Aug 30 17:36:47 2013 -0700 1.2 +++ b/test/tools/javac/lambda/mostSpecific/StructuralMostSpecificTest.java Mon Sep 02 22:38:36 2013 +0100 1.3 @@ -197,7 +197,7 @@ 1.4 "class Test {\n" + 1.5 " void m(SAM1 s) { }\n" + 1.6 " void m(SAM2 s) { }\n" + 1.7 - " { m(x->{ #LR }); }\n" + 1.8 + " { m((#A1 x)->{ #LR }); }\n" + 1.9 "}\n"; 1.10 1.11 String source; 1.12 @@ -236,14 +236,17 @@ 1.13 void check() { 1.14 checkCount.incrementAndGet(); 1.15 1.16 + if (ak1 != ak2) 1.17 + return; 1.18 + 1.19 if (!lrk.compatibleWith(rt1) || !lrk.compatibleWith(rt2)) 1.20 return; 1.21 1.22 if (lrk.needsConversion(rt1) != lrk.needsConversion(rt2)) 1.23 return; 1.24 1.25 - boolean m1MoreSpecific = moreSpecific(rt1, rt2, ek1, ek2, ak1, ak2); 1.26 - boolean m2MoreSpecific = moreSpecific(rt2, rt1, ek2, ek1, ak2, ak1); 1.27 + boolean m1MoreSpecific = rt1.moreSpecificThan(rt2); 1.28 + boolean m2MoreSpecific = rt2.moreSpecificThan(rt1); 1.29 1.30 boolean ambiguous = (m1MoreSpecific == m2MoreSpecific); 1.31 1.32 @@ -268,17 +271,6 @@ 1.33 } 1.34 } 1.35 1.36 - boolean moreSpecific(RetTypeKind rk1, RetTypeKind rk2, ExceptionKind ek1, 1.37 - ExceptionKind ek2, ArgTypeKind ak1, ArgTypeKind ak2) { 1.38 - if (!rk1.moreSpecificThan(rk2)) 1.39 - return false; 1.40 - 1.41 - if (ak1 != ak2) 1.42 - return false; 1.43 - 1.44 - return true; 1.45 - } 1.46 - 1.47 static class DiagnosticChecker 1.48 implements javax.tools.DiagnosticListener<JavaFileObject> { 1.49