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 {
|
||||
// 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<HierarchicalMethodSignature> superSignatures = methodSignature.getSuperSignatures();
|
||||
|
||||
|
||||
+4
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user