I am referencing section 5.1.6.1 of the JLS (https://docs.oracle.com/javase/specs/jls/se13/jls13.pdf).
At point 2, it says that "If there exists a parameterized type X that is a supertype of T, and a parameterized type Y that is a supertype of S, such that the erasures of X and Y are the same, then X and Y are not provably distinct".
Now, let's assume that T := List<Object>, S := List<String>, and we write T = S; which gives a compilation error. But that is not in line with the afore-mentioned quote. If we choose X := List<?> which is a parameterized type and a supertype of List<Object>, and we choose Y := List<?>, then the erasures of X and Y are the same (List).
Where am I misinterpreting the rule?