Failed
org.eclipse.jdt.core.tests.compiler.regression.LambdaExpressionsTest.test430035d - 1.8 (from org.eclipse.jdt.core.tests.compiler.regression.TestAll)
Error Message
test430035d - Javac found error(s) but Eclipse did not find any. ----------- Expected ------------ ------------ but was ------------ X.java:12: error: reference to foo is ambiguous\n k.foo("direct", " call");\n ^\n both method foo(T#1,String) in J and method foo(String,T#2) in I match\n where T#1,T#2 are type-variables:\n T#1 extends Object declared in interface J\n T#2 extends Object declared in interface I\n 1 error\n --------- Difference is ---------- expected:<[]> but was:<[X.java:12: error: reference to foo is ambiguous\n k.foo("direct", " call");\n ^\n both method foo(T#1,String) in J and method foo(String,T#2) in I match\n where T#1,T#2 are type-variables:\n T#1 extends Object declared in interface J\n T#2 extends Object declared in interface I\n 1 error\n ]>
Stacktrace
junit.framework.ComparisonFailure: test430035d - Javac found error(s) but Eclipse did not find any. ----------- Expected ------------ ------------ but was ------------ X.java:12: error: reference to foo is ambiguous\n k.foo("direct", " call");\n ^\n both method foo(T#1,String) in J and method foo(String,T#2) in I match\n where T#1,T#2 are type-variables:\n T#1 extends Object declared in interface J\n T#2 extends Object declared in interface I\n 1 error\n --------- Difference is ---------- expected:<[]> but was:<[X.java:12: error: reference to foo is ambiguous\n k.foo("direct", " call");\n ^\n both method foo(T#1,String) in J and method foo(String,T#2) in I match\n where T#1,T#2 are type-variables:\n T#1 extends Object declared in interface J\n T#2 extends Object declared in interface I\n 1 error\n ]> at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertStringEquals(TestCase.java:260) at org.eclipse.jdt.core.tests.junit.extension.TestCase.assertEquals(TestCase.java:236) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runJavac(AbstractRegressionTest.java:2052) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runTest(AbstractRegressionTest.java:2814) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runTest(AbstractRegressionTest.java:2539) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runConformTest(AbstractRegressionTest.java:1396) at org.eclipse.jdt.core.tests.compiler.regression.AbstractRegressionTest.runConformTest(AbstractRegressionTest.java:1393) at org.eclipse.jdt.core.tests.compiler.regression.LambdaExpressionsTest.test430035d(LambdaExpressionsTest.java:3926)
Standard Output
org.eclipse.jdt.core.tests.compiler.regression.LambdaExpressionsTest#test430035d - 1.8 X.java [ interface I<T> { void foo(String t, T u); } interface J<T> { void foo(T t, String u); } interface K extends I<String>, J<String> { } public class X { public static void main(String... x) { K k = (s, u) -> System.out.println("m("+ s + u + ')'); k.foo("direct", " call"); J<String> j = k; j.foo("bridge", " method(j)"); I<String> i = k; i.foo("bridge", " method(i)"); } } ] Full results sent to /tmp/comptest/run.1514610271420/1.8.0_131_20171230_000432.txt
Standard Error
--- javac err: --- X.java:12: error: reference to foo is ambiguous k.foo("direct", " call"); ^ both method foo(T#1,String) in J and method foo(String,T#2) in I match where T#1,T#2 are type-variables: T#1 extends Object declared in interface J T#2 extends Object declared in interface I 1 error ----------------------------------------