Community
Participate
Working Groups
20050404 In the following code, do a code resolve of 'get' and get the resolved key of this. public void goo(ArrayList<String> a) { a.get(0); } The key is "(I)Ljava.lang.Object;" but the return type should be 'String'
The method binding computed by SelectionEngine is correct but generic binary method binding modifiers are not set to AccGenericSignature. MethodBinding#computeUniqueKey(...) use MethodBinding#genericSignature(). But this method return null when AccGenericSignature is not set and MethodBinding#signature() is called instead. That's why the key is not correct. The correct key should be "Ljava/util/ArrayList<Ljava/lang/String;>;.get(I)TE;" and not Ljava/util/ArrayList<Ljava/lang/String;>;.get(I)Ljava/lang/Object;
Philippe - binary method binding could be flag as AccGenericSignature ? If not, we need to temporary flag the method during key computation.
Now binary method modifier contain AccGenericSignature. Fixed and test added ResolvedTests_1_5#test0094()
Verified in I20050510-0010 + JDT/Core v_556