diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java index 0c940aa6d66..3ff435835e5 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java @@ -18,7 +18,11 @@ package org.jetbrains.jet.lang.resolve.java.resolver; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import com.intellij.psi.*; +import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.diagnostic.Logger; +import com.intellij.psi.PsiClass; +import com.intellij.psi.PsiMethod; +import com.intellij.psi.PsiType; import com.intellij.psi.util.PsiFormatUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -52,6 +56,7 @@ import static org.jetbrains.jet.lang.resolve.java.provider.DeclarationOrigin.JAV import static org.jetbrains.jet.lang.resolve.java.provider.DeclarationOrigin.KOTLIN; public final class JavaFunctionResolver { + private static final Logger LOG = Logger.getInstance(JavaFunctionResolver.class); private JavaTypeTransformer typeTransformer; private BindingTrace trace; @@ -223,11 +228,18 @@ public final class JavaFunctionResolver { boolean returnTypeOk = isReturnTypeOkForOverride(JetTypeChecker.INSTANCE, superFunctionSubstituted, functionDescriptor); if (!paramsOk || !returnTypeOk) { - throw new IllegalStateException("Loaded Java method overrides another, but resolved as Kotlin function, doesn't.\n" - + "super function = " + superFunction + "\n" + String errorMessage = "Loaded Java method overrides another, but resolved as Kotlin function, doesn't.\n" + + "super function = " + superFunction + "\n" + "this function = " + functionDescriptor + "\n" + "this method = " + PsiFormatUtil.getExternalName(method.getPsiMethod()) + "\n" - + "@KotlinSignature = " + method.getSignatureAnnotation().signature()); + + "@KotlinSignature = " + method.getSignatureAnnotation().signature(); + + if (ApplicationManager.getApplication().isUnitTestMode()) { + throw new IllegalStateException(errorMessage); + } + else { + LOG.error(errorMessage); + } } } }