Failed
org.eclipse.jdt.core.tests.compiler.regression.MethodVerifyTest.test145 - 1.8 (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: setValue(String) in BaseImpl overrides a method whose erasure is the same as another method, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(Object) in Base\n second method: setValue(Tvalue) in BaseInterface\n where Tvalue is a type-variable:\n Tvalue extends Object declared in interface BaseInterface\n 1 error\n --------- Difference is ---------- expected:<[]> but was:<[BaseImpl.java:3: error: name clash: setValue(String) in BaseImpl overrides a method whose erasure is the same as another method, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(Object) in Base\n second method: setValue(Tvalue) in BaseInterface\n where Tvalue is a type-variable:\n Tvalue extends Object declared in interface BaseInterface\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: setValue(String) in BaseImpl overrides a method whose erasure is the same as another method, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(Object) in Base\n second method: setValue(Tvalue) in BaseInterface\n where Tvalue is a type-variable:\n Tvalue extends Object declared in interface BaseInterface\n 1 error\n --------- Difference is ---------- expected:<[]> but was:<[BaseImpl.java:3: error: name clash: setValue(String) in BaseImpl overrides a method whose erasure is the same as another method, yet neither overrides the other\n class BaseImpl extends Base<String> { public void setValue(String object) {} }\n ^\n first method: setValue(Object) in Base\n second method: setValue(Tvalue) in BaseInterface\n where Tvalue is a type-variable:\n Tvalue extends Object declared in interface BaseInterface\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 - 1.8 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 /home/jenkins/agent/workspace/eclipse.jdt.core-run.javac-1.8/tmp/comptest/run.1584479137560/1.8.0_202_20200317_210541.txt
Standard Error
--- javac err: --- BaseImpl.java:3: error: name clash: setValue(String) in BaseImpl overrides a method whose erasure is the same as another method, yet neither overrides the other class BaseImpl extends Base<String> { public void setValue(String object) {} } ^ first method: setValue(Object) in Base second method: setValue(Tvalue) in BaseInterface where Tvalue is a type-variable: Tvalue extends Object declared in interface BaseInterface 1 error ----------------------------------------