diff --git a/java-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java b/java-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java index 44d0f3b020..526d1f821a 100644 --- a/java-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java +++ b/java-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/javaparsermodel/contexts/LambdaExprContext.java @@ -76,17 +76,12 @@ public Optional solveSymbolAsValue(String name, TypeSolver typeSolver) { if (lambdaType.isReferenceType()) { for (Tuple2 entry : lambdaType.asReferenceType().getTypeParametersMap()) { if (entry._2.isTypeVariable() && entry._2.asTypeParameter().declaredOnType()) { - Optional ot = t.asReferenceType().getGenericParameterByName(entry._1.getName()); - if (ot.isPresent()) { - lambdaType = lambdaType.replaceParam(entry._1.getName(), ot.get()); - } + Type ot = t.asReferenceType().typeParametersMap().getValue(entry._1); + lambdaType = lambdaType.replaceParam(entry._1.getName(), ot); } } } else if (lambdaType.isTypeVariable() && lambdaType.asTypeParameter().declaredOnType()) { - Optional ot = t.asReferenceType().getGenericParameterByName(lambdaType.asTypeParameter().getName()); - if (ot.isPresent()) { - lambdaType = ot.get(); - } + lambdaType = t.asReferenceType().typeParametersMap().getValue(lambdaType.asTypeParameter()); } Value value = new Value(lambdaType, name); diff --git a/java-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/usages/typesystem/ReferenceType.java b/java-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/usages/typesystem/ReferenceType.java index 3a33c70c80..4f5d36d5a3 100644 --- a/java-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/usages/typesystem/ReferenceType.java +++ b/java-symbol-solver-model/src/main/java/com/github/javaparser/symbolsolver/model/usages/typesystem/ReferenceType.java @@ -54,7 +54,6 @@ public abstract class ReferenceType implements Type, TypeParametrized { public ReferenceType(TypeDeclaration typeDeclaration, TypeSolver typeSolver) { this(typeDeclaration, deriveParams(typeDeclaration), typeSolver); - this.typeSolver = typeSolver; } public ReferenceType(TypeDeclaration typeDeclaration, List typeParameters, TypeSolver typeSolver) { @@ -210,15 +209,11 @@ public List getAllAncestors() { TypeDeclaration objectType = typeSolver.solveType(Object.class.getCanonicalName()); ReferenceType objectRef = create(objectType, typeSolver); - ancestors = ancestors.stream().map((a) -> replaceTypeParams(a).asReferenceType()).collect(Collectors.toList()); - // TODO replace type typeParametersValues + ancestors = ancestors.stream() + .map((a) -> replaceTypeParams(a).asReferenceType()) + .collect(Collectors.toList()); - for (int i = 0; i < ancestors.size(); i++) { - if (ancestors.get(i).getQualifiedName().equals(Object.class.getCanonicalName())) { - ancestors.remove(i); - i--; - } - } + ancestors.removeIf(a -> a.getQualifiedName().equals(Object.class.getCanonicalName())); ancestors.add(objectRef); return ancestors; } @@ -237,14 +232,11 @@ public List getAllInterfacesAncestors() { * Get the type associated with the type parameter with the given name. * It returns Optional.empty unless the type declaration declares a type parameter with the given name. */ - @Deprecated public Optional getGenericParameterByName(String name) { - int i = 0; for (TypeParameterDeclaration tp : typeDeclaration.getTypeParameters()) { if (tp.getName().equals(name)) { - return Optional.of(this.typeParameters.get(i)); + return Optional.of(this.typeParametersMap().getValue(tp)); } - i++; } return Optional.empty(); }