Community
Participate
Working Groups
Using build I200409212000. With following test case: X.java public class X<T> { class Member {} } Y.java public class Y { X<String>.Member m; } The binding for ParameterizedQualifiedTypeReference "X<String>.Member" is a ParameterizedTypeBinding "X<String>" instead of an expected MemberTypeBinding...
Problem comes from ParameterizedQualifiedTypeReference.internalResolve(Scope). Fix is easy and passes all tests. Perhaps may be put in M2?
Indeed, binding is incomplete. Following code demonstrate it: public class X<T> { class Member { void foo(){ System.out.println("SUCCESS"); } } } class Y { public static void main(String[] args) { X<String>.Member m = new X<String>.Member(); m.foo(); } } it shouldn't complain about #foo() method being undefined on X<String>
Fixed ParameterizedQualifiedTypeReference. Real binding should be still a parameterized one, but constructed from the member type. Added regression test: GenericTypeTest#test303.
Verified for 3.1 M2 with build I200409231635.