From 24c383a00938a8dd69bcc535af42d692e71217f1 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 20 Jul 2016 16:26:46 +0300 Subject: [PATCH] Remove unnecessary loop from OverrideResolver#filterOverrides It was not needed because overridability in both ways is already checked in DescriptorEquivalenceForOverrides, which is called in OverrideResolver#overrides --- .../jetbrains/kotlin/resolve/OverrideResolver.java | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java index 140373afde3..04528bc204c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/OverrideResolver.java @@ -222,14 +222,6 @@ public class OverrideResolver { throw new AssertionError("Unexpected Filtering object: " + filtering); } } - for (D otherD : candidates) { - CallableDescriptor other = transform.fun(otherD); - if (me.getOriginal() == other.getOriginal() - && OverridingUtil.DEFAULT.isOverridableBy(other, me, null).getResult() == OVERRIDABLE - && OverridingUtil.DEFAULT.isOverridableBy(me, other, null).getResult() == OVERRIDABLE) { - continue outerLoop; - } - } candidates.add(meD); } @@ -238,7 +230,9 @@ public class OverrideResolver { return candidates; } - // check whether f overrides g + /** + * @return whether f overrides g + */ public static boolean overrides(@NotNull D f, @NotNull D g) { // This first check cover the case of duplicate classes in different modules: // when B is defined in modules m1 and m2, and C (indirectly) inherits from both versions,