Bug 107105 [1.5][compiler] method override check does not detect differences in additional type bounds
I20050811-1530 + jdt.core v_606 Ecipse compiles these classes without error, although the methods in B and C don't override the one from A: import java.io.Serializable; class A { <S extends Number & Serializable & Runnable > void foo2(S s) { } } class B extends A { @Override // should error <S extends Number & Runnable> void foo2(S s) { } } class C extends A { @Override // should error <S extends Number & Runnable & Cloneable> void foo2(S s) { } } class D extends A { @Override // correct <S extends Number & Runnable & Serializable> void foo2(S s) { } }
org.eclipse.jdt.ui.tests/ui/org/eclipse/jdt/ui/tests/core/OverrideTest.java
TypeDeclaration a= (TypeDeclaration) astRoot.types().get(0);
		IMethodBinding am= a.getMethods()[0].resolveBinding();
		
		TypeDeclaration b= (TypeDeclaration) astRoot.types().get(1);
		IMethodBinding bm= b.getMethods()[0].resolveBinding();
		
		TypeDeclaration c= (TypeDeclaration) astRoot.types().get(2);
		IMethodBinding cm= c.getMethods()[0].resolveBinding();
		
		TypeDeclaration d= (TypeDeclaration) astRoot.types().get(3);
		IMethodBinding dmNumber= d.getMethods()[0].resolveBinding();
		IMethodBinding dmInteger= d.getMethods()[1].resolveBinding();
		
		TypeDeclaration e= (TypeDeclaration) astRoot.types().get(4);
		IMethodBinding emNumber= e.getMethods()[0].resolveBinding();
		IMethodBinding emInteger= e.getMethods()[1].resolveBinding();
		
		assertEquals(am, Bindings.findMethodDefininition(bm, true).getMethodDeclaration());
		assertEquals(am, Bindings.findMethodDefininition(bm, true).getMethodDeclaration());
		assertEquals(am, Bindings.findMethodDefininition(cm, true).getMethodDeclaration());
		assertEquals(am, Bindings.findMethodDefininition(dmNumber, true).getMethodDeclaration());
		assertEquals(bm, Bindings.findMethodDefininition(dmInteger, true).getMethodDeclaration());
		assertNull(Bindings.findMethodDefininition(emNumber, true));
		assertEquals(bm, Bindings.findMethodDefininition(emInteger, true).getMethodDeclaration());
	}
	
	public void test15MethodTypeVars1() throws Exception {
		StringBuffer buf= new StringBuffer();
		buf.append("package override.test;\n");