From a0b09ae590adcfe8adaa30c435e2a80103297d3c Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 1 Nov 2013 18:43:26 +0400 Subject: [PATCH] Optimization: don't check when there's nothing to check or report --- .../resolve/java/resolver/PsiBasedMethodSignatureChecker.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java index ac69e3545a9..c5abde20735 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PsiBasedMethodSignatureChecker.java @@ -171,6 +171,9 @@ public class PsiBasedMethodSignatureChecker implements MethodSignatureChecker { @NotNull List signatureErrors, @NotNull List superFunctions ) { + // This optimization speed things up because hasRawTypesInHierarchicalSignature() is very expensive + if (superFunctions.isEmpty() && (signatureErrors.isEmpty() || !reportSignatureErrors)) return; + JavaMethodImpl methodWithPsi = (JavaMethodImpl) method; if (!RawTypesCheck.hasRawTypesInHierarchicalSignature(methodWithPsi) && isMethodReturnTypeCompatible(methodWithPsi) &&