Saved service implementations to constant for performance.
This commit is contained in:
@@ -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<ExternalOverridabilityCondition> 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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user