Optimization: hierarchical signatures build only for non-static methods (1 sec on toString())
This commit is contained in:
+1
@@ -29,6 +29,7 @@ import java.util.List;
|
|||||||
class JavaMethodSignatureUtil {
|
class JavaMethodSignatureUtil {
|
||||||
// This and following methods are originally from com.intellij.codeInsight.daemon.impl.analysis.HighlightMethodUtil
|
// This and following methods are originally from com.intellij.codeInsight.daemon.impl.analysis.HighlightMethodUtil
|
||||||
static boolean isMethodReturnTypeCompatible(@NotNull PsiMethod method) {
|
static boolean isMethodReturnTypeCompatible(@NotNull PsiMethod method) {
|
||||||
|
if (method.hasModifierProperty(PsiModifier.STATIC)) return true;
|
||||||
HierarchicalMethodSignature methodSignature = method.getHierarchicalMethodSignature();
|
HierarchicalMethodSignature methodSignature = method.getHierarchicalMethodSignature();
|
||||||
List<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
|
List<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
|
||||||
|
|
||||||
|
|||||||
+4
@@ -90,6 +90,10 @@ public class RawTypesCheck {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static boolean hasRawTypesInHierarchicalSignature(@NotNull PsiMethod method) {
|
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)) {
|
if (hasRawTypesInSignature(method)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user