  Line 39) typeParameter.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
  Line 43) this.typeParameter.getQualifiedName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getQualifiedName()
  Line 49) getClass() ==> java.lang.Object.getClass()
  Line 49) o.getClass() ==> java.lang.Object.getClass()
  Line 53) typeParameter.getName().equals(that.typeParameter.getName()) ==> java.lang.String.equals(java.lang.Object)
  Line 53) typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
  Line 53) that.typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
  Line 54) typeParameter.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
  Line 54) that.typeParameter.declaredOnType() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnType()
  Line 55) typeParameter.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
  Line 55) that.typeParameter.declaredOnMethod() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.declaredOnMethod()
  Line 62) typeParameter.hashCode() ==> java.lang.Object.hashCode()
  Line 77) tpToBeReplaced.getName().equals(this.typeParameter.getName()) ==> java.lang.String.equals(java.lang.Object)
  Line 77) tpToBeReplaced.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
  Line 77) this.typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
  Line 78) inferredTypes.put(this.asTypeParameter(), replaced) ==> java.util.Map.put(K, V)
  Line 78) this.asTypeParameter() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.asTypeParameter()
  Line 92) typeParameter.getName() ==> com.github.javaparser.symbolsolver.model.declarations.TypeParameterDeclaration.getName()
  Line 112) other.isTypeVariable() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.isTypeVariable()
  Line 113) describe().equals(other.describe()) ==> java.lang.String.equals(java.lang.Object)
  Line 113) describe() ==> com.github.javaparser.symbolsolver.model.typesystem.TypeVariable.describe()
  Line 113) other.describe() ==> com.github.javaparser.symbolsolver.model.typesystem.Type.describe()
