From fa1f8acc7e49f6d2a1c4db049a76a76c0cc3d479 Mon Sep 17 00:00:00 2001 From: peter Date: Mon, 20 Jun 2016 11:10:02 +0200 Subject: [PATCH] a less dare version of "don't iterate over all groovy class supers each time when querying its members" --- .../groovy/lang/resolve/CollectClassMembersUtil.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/CollectClassMembersUtil.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/CollectClassMembersUtil.java index b5dfcfc729cc..bfcfddfa3f2c 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/CollectClassMembersUtil.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/resolve/CollectClassMembersUtil.java @@ -86,12 +86,10 @@ public class CollectClassMembersUtil { return cached.getValue(); } - return buildCache(aClass, includeSynthetic && !isAffectedByTransformation(aClass)); + return buildCache(aClass, includeSynthetic && checkClass(aClass)); } - private static boolean isAffectedByTransformation(PsiClass aClass) { - if (!TransformationUtilKt.isUnderAnyTransformation()) return false; - + private static boolean checkClass(PsiClass aClass) { Set visited = ContainerUtil.newHashSet(); Queue queue = ContainerUtil.newLinkedList(aClass); @@ -99,17 +97,17 @@ public class CollectClassMembersUtil { PsiClass current = queue.poll(); if (current instanceof ClsClassImpl) continue; if (visited.add(current)) { - if (TransformationUtilKt.isUnderTransformation(current)) return true; + if (TransformationUtilKt.isUnderTransformation(current)) return false; for (PsiClass superClass : getSupers(current, true)) { queue.offer(superClass); } } else if (!current.isInterface() && !CommonClassNames.JAVA_LANG_OBJECT.equals(current.getQualifiedName())) { - return true; + return false; } } - return false; + return true; } public static Map getAllInnerClasses(@NotNull final PsiClass aClass, boolean includeSynthetic) {