From ca02ca6e77ffe6339dfc7372a610293bf2dd67d8 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 15 Jul 2013 17:07:29 +0400 Subject: [PATCH] Saved service implementations to constant for performance. --- .../org/jetbrains/jet/lang/resolve/OverridingUtil.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java index a226e8fd888..c91957fa3b5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/OverridingUtil.java @@ -21,6 +21,7 @@ import com.google.common.collect.HashBiMap; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.intellij.util.Function; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; @@ -31,6 +32,12 @@ import java.util.*; public class OverridingUtil { + private static final List EXTERNAL_CONDITIONS = + ContainerUtil.collect(ServiceLoader.load( + ExternalOverridabilityCondition.class, + ExternalOverridabilityCondition.class.getClassLoader()).iterator() + ); + private OverridingUtil() { } @@ -183,8 +190,7 @@ public class OverridingUtil { } } - for (ExternalOverridabilityCondition externalCondition : ServiceLoader - .load(ExternalOverridabilityCondition.class, ExternalOverridabilityCondition.class.getClassLoader())) { + for (ExternalOverridabilityCondition externalCondition : EXTERNAL_CONDITIONS) { if (!externalCondition.isOverridable(superDescriptor, subDescriptor)) { return OverrideCompatibilityInfo.externalConditionFailed(externalCondition.getClass()); }