Failed
org.eclipse.jdt.core.tests.compiler.regression.MethodVerifyTest.test145 - 12 (from org.eclipse.jdt.core.tests.compiler.regression.TestAll)
Error Message
test145 - Javac found error(s) but Eclipse did not find any. ----------- Expected ------------ ------------ but was ------------ BaseImpl.java:3: error: name clash: class BaseImpl has two methods with the same erasure, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(String) in BaseInterface\n second method: setValue(Object) in Base\n 1 error\n --------- Difference is ---------- expected:<[]> but was:<[BaseImpl.java:3: error: name clash: class BaseImpl has two methods with the same erasure, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(String) in BaseInterface\n second method: setValue(Object) in Base\n 1 error\n ]>
Stacktrace
junit.framework.ComparisonFailure: test145 - Javac found error(s) but Eclipse did not find any. ----------- Expected ------------ ------------ but was ------------ BaseImpl.java:3: error: name clash: class BaseImpl has two methods with the same erasure, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(String) in BaseInterface\n second method: setValue(Object) in Base\n 1 error\n --------- Difference is ---------- expected:<[]> but was:<[BaseImpl.java:3: error: name clash: class BaseImpl has two methods with the same erasure, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(String) in BaseInterface\n second method: setValue(Object) in Base\n 1 error\n ]> at org.eclipse.jdt.core.tests.compiler.regression.MethodVerifyTest.test145(MethodVerifyTest.java:9263)
Standard Output
org.eclipse.jdt.core.tests.compiler.regression.MethodVerifyTest#test145 - 12 BaseImpl.java [ abstract class Base<Tvalue> implements BaseInterface<Tvalue>{ public void setValue(Object object) {} } interface BaseInterface<Tvalue> { void setValue(Tvalue object); } class BaseImpl extends Base<String> { public void setValue(String object) {} } ] Full results sent to /tmp/genie.jdt/comptest/run.1565715170219/12_20190813_125251.txt
Standard Error
--- javac err: --- BaseImpl.java:3: error: name clash: class BaseImpl has two methods with the same erasure, yet neither overrides the other class BaseImpl extends Base<String> { public void setValue(String object) {} } ^ first method: setValue(String) in BaseInterface second method: setValue(Object) in Base 1 error ----------------------------------------