From 702de8c4c56c888c622c4cf277c3cfaac2a3bf9c Mon Sep 17 00:00:00 2001 From: Federico Tomassetti Date: Sat, 22 Oct 2016 17:03:31 +0200 Subject: [PATCH] type parameters inheritance --- .../model/usages/typesystem/ReferenceType.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 8be394735a..125acbef6b 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 @@ -243,7 +243,7 @@ public Type replaceTypeParams(Type type) { if (type.isTypeVariable()) { TypeParameterDeclaration typeParameter = type.asTypeParameter(); if (typeParameter.declaredOnType()) { - Optional typeParam = typeParamByName(typeParameter.getName()); + Optional typeParam = typeParamValue(typeParameter); if (typeParam.isPresent()) { type = typeParam.get(); } @@ -388,7 +388,7 @@ private static List deriveParams(TypeDeclaration typeDeclaration) { } @Deprecated - private Optional typeParamByName(String name) { + private Optional typeParamValue(TypeParameterDeclaration typeParameterDeclaration) { List typeParameters = this.typeParametersValues(); TypeDeclaration objectType = typeSolver.solveType(Object.class.getCanonicalName()); ReferenceType objectRef = create(objectType, typeSolver); @@ -404,7 +404,10 @@ private Optional typeParamByName(String name) { } int i = 0; for (TypeParameterDeclaration tp : typeDeclaration.getTypeParameters()) { - if (tp.getName().equals(name)) { + if (tp.getName().equals(typeParameterDeclaration.getName())) { + if (!tp.getQualifiedName().equals(typeParameterDeclaration.getQualifiedName())) { + throw new IllegalArgumentException(); + } return Optional.of(typeParameters.get(i)); } i++;