@Override
 public IGenericTypeVariable[] getTypeVariables(IJavaMethodInfo javaMethodInfo) {
   IJavaClassTypeVariable[] rawTypeParams = getTypeParameters();
   IType declClass = TypeSystem.get(getEnclosingClass());
   TypeVarToTypeMap actualParamByVarName = TypeLord.mapTypeByVarName(declClass, declClass);
   FunctionType functionType = new FunctionType(javaMethodInfo, true);
   return GenericTypeVariable.convertTypeVars(functionType, rawTypeParams, actualParamByVarName);
 }
 @Override
 public int hashCode() {
   int result = _type != null ? _type.hashCode() : 0;
   result = 31 * result + (_strName != null ? _strName.hashCode() : 0);
   result = 31 * result + (_enclosingType != null ? _enclosingType.hashCode() : 0);
   result = 31 * result + (_boundingType != null ? _boundingType.hashCode() : 0);
   result = 31 * result + (_typeVar != null ? _typeVar.hashCode() : 0);
   return result;
 }