* The rule is that the declared, generic type, is the single canonical type.
* Parameterized types are actually different type bindings.
* @see org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment#createParameterizedType(ReferenceBinding genericType, TypeBinding[] typeArguments, ReferenceBinding enclosingType)
*/
ITypeBinding generic_type = node.resolveTypeBinding().getTypeDeclaration();
ThisVariable result = thisVar.get(generic_type);
if(result == null) {
// explicitly qualified this
result = new ThisVariable(this, qualifier);
thisVar.put(node.resolveTypeBinding().getTypeDeclaration(), result);
}
if(result.isImplicit()) {
// fix up qualifier of previously created implicitly qualified this variable
result.explicitQualifier(node.getQualifier());
}
return result;
}