diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java index 946e3f5bb3b..d726b1d5239 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaMethodSignatureUtil.java @@ -29,6 +29,7 @@ import java.util.List; class JavaMethodSignatureUtil { // This and following methods are originally from com.intellij.codeInsight.daemon.impl.analysis.HighlightMethodUtil static boolean isMethodReturnTypeCompatible(@NotNull PsiMethod method) { + if (method.hasModifierProperty(PsiModifier.STATIC)) return true; HierarchicalMethodSignature methodSignature = method.getHierarchicalMethodSignature(); List superSignatures = methodSignature.getSuperSignatures(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/RawTypesCheck.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/RawTypesCheck.java index dcc5ec8f888..5b29e795f57 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/RawTypesCheck.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/RawTypesCheck.java @@ -90,6 +90,10 @@ public class RawTypesCheck { } static boolean hasRawTypesInHierarchicalSignature(@NotNull PsiMethod method) { + // This is a very important optimization: package-classes are big and full of static methods + // building method hierarchies for such classes takes a very long time + if (method.hasModifierProperty(PsiModifier.STATIC)) return false; + if (hasRawTypesInSignature(method)) { return true; }