Community
Participate
Working Groups
class Y<T> { class M<V> {} public <V> M<V> foo() { return null; } } public class X<T> extends Y{ @Override public <V> M foo() { return null; } } Should be an error - X.foo does not override Y.foo And once @Override is removed, we should find a name clash.
Same problem occurs with class Y<T> { class M<V> {} <V> void foo(M<V> m) {} } class X<T> extends Y { @Override <V> void foo(M m) { } } We need to notice that X.foo defines its own type varaible & then cannot match the overridden method using raw types instead of matching parameterized types.
Created attachment 104541 [details] Proposed patch
Released for 3.5M1 Released for 3.4.1 Added MethodVerifyTest 168
Verified for 3.5M1 using I20080805-1307
Reopen to include the bug in the 3.4.1 verification process
.
Verified for 3.4.1 using M20080827-2000.