The assignment in the below class should not be allowed since we are basically assigning a Bug3<String> to a Bug3<Integer>. However, MultiJava accepts the assignment. Apparently, the parameterization of the declared supertype Bug3<String> is completely ignored when checking the assignment.
======================================
class A extends Bug3<String> { }
public class Bug3<T> {
public void foo() {
Bug3<Integer> integer = new A();
}
}
======================================