Failed
org.eclipse.jdt.core.tests.compiler.regression.LambdaExpressionsTest.test430035e - 1.8 (from org.eclipse.jdt.core.tests.compiler.regression.TestAll)
Error Message
test430035e - Javac found error(s) but Eclipse did not find any. ----------- Expected ------------ ------------ but was ------------ X.java:12: error: reference to foo is ambiguous\n System.out.println(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 System.out.println(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: test430035e - Javac found error(s) but Eclipse did not find any. ----------- Expected ------------ ------------ but was ------------ X.java:12: error: reference to foo is ambiguous\n System.out.println(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 System.out.println(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.test430035e(LambdaExpressionsTest.java:3954)
Standard Output
org.eclipse.jdt.core.tests.compiler.regression.LambdaExpressionsTest#test430035e - 1.8 X.java [ interface I<T> { Object foo(String t, T u); } interface J<T> { String 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) -> s + u; System.out.println(k.foo("direct", " call")); J<String> j = k; System.out.println(j.foo("bridge", " method(j)")); I<String> i = k; System.out.println(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 System.out.println(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 ----------------------------------------