import java.util.*; class Base { } public class GenericMethodITD14 { public static void main(String[] argv) { List as = new ArrayList(); new Base().crazy(as); // bad. A implements Foo but C is a // subclass of A, not a superclass } } interface Foo { public void m(T t); } class C extends A { } class A implements Foo { public void m(C a) {} } aspect X { > void Base.crazy(List lr) {} }