Skip to content

Commit 745d01f

Browse files
committed
GROOVY-6882 pt.2
1 parent 6187e12 commit 745d01f

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

base/org.codehaus.groovy25/src/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java

+12
Original file line numberDiff line numberDiff line change
@@ -5132,6 +5132,7 @@ public static String extractPropertyNameFromMethodName(String prefix, String met
51325132
}
51335133

51345134
protected void collectAllInterfaceMethodsByName(final ClassNode receiver, final String name, final List<MethodNode> methods) {
5135+
/* GRECLIPSE edit -- GROOVY-6882
51355136
ClassNode cNode = receiver;
51365137
while (cNode != null) {
51375138
ClassNode[] interfaces = cNode.getInterfaces();
@@ -5144,6 +5145,17 @@ protected void collectAllInterfaceMethodsByName(final ClassNode receiver, final
51445145
}
51455146
cNode = cNode.getSuperClass();
51465147
}
5148+
*/
5149+
Set<ClassNode> done = new LinkedHashSet<>();
5150+
for (ClassNode next = receiver; next != null; next = next.getSuperClass()) {
5151+
done.add(next);
5152+
for (ClassNode face : next.getAllInterfaces()) {
5153+
if (done.add(face)) {
5154+
methods.addAll(face.getDeclaredMethods(name));
5155+
}
5156+
}
5157+
}
5158+
// GRECLIPSE end
51475159
}
51485160

51495161
protected ClassNode getType(final ASTNode exp) {

base/org.codehaus.groovy30/src/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java

+12
Original file line numberDiff line numberDiff line change
@@ -4898,6 +4898,7 @@ public static String extractPropertyNameFromMethodName(final String prefix, fina
48984898
}
48994899

49004900
protected void collectAllInterfaceMethodsByName(final ClassNode receiver, final String name, final List<MethodNode> methods) {
4901+
/* GRECLIPSE edit -- GROOVY-6882
49014902
ClassNode cNode = receiver;
49024903
while (cNode != null) {
49034904
ClassNode[] interfaces = cNode.getInterfaces();
@@ -4910,6 +4911,17 @@ protected void collectAllInterfaceMethodsByName(final ClassNode receiver, final
49104911
}
49114912
cNode = cNode.getSuperClass();
49124913
}
4914+
*/
4915+
Set<ClassNode> done = new LinkedHashSet<>();
4916+
for (ClassNode next = receiver; next != null; next = next.getSuperClass()) {
4917+
done.add(next);
4918+
for (ClassNode face : next.getAllInterfaces()) {
4919+
if (done.add(face)) {
4920+
methods.addAll(face.getDeclaredMethods(name));
4921+
}
4922+
}
4923+
}
4924+
// GRECLIPSE end
49134925
}
49144926

49154927
protected ClassNode getType(final ASTNode exp) {

0 commit comments

Comments
 (0)