Finding the functional method didn't always succees when there was more than 1 abstract method in the class hierarchy.
diff --git a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java
index d3d1139..6115332 100644
--- a/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java
+++ b/javaparser-symbol-solver-core/src/main/java/com/github/javaparser/symbolsolver/logic/AbstractTypeDeclaration.java
@@ -54,15 +54,16 @@
for (ResolvedReferenceType ancestor : getAllAncestors()) {
List<Pair<ResolvedTypeParameterDeclaration, ResolvedType>> typeParametersMap = ancestor.getTypeParametersMap();
- for (MethodUsage ancestorMethodUsage : ancestor.getDeclaredMethods()) {
- MethodUsage methodUsage = ancestorMethodUsage;
+ for (MethodUsage mu : ancestor.getDeclaredMethods()) {
+ // replace type parameters to be able to filter away overridden generified methods
+ MethodUsage methodUsage = mu;
for (Pair<ResolvedTypeParameterDeclaration, ResolvedType> p : typeParametersMap) {
methodUsage = methodUsage.replaceTypeParameter(p.a, p.b);
}
String signature = getSignature(methodUsage);
if (!methodsSignatures.contains(signature)) {
methodsSignatures.add(signature);
- methods.add(ancestorMethodUsage);
+ methods.add(mu);
}
}
}