Logging error instead of throwing exception.

This commit is contained in:
Evgeny Gerashchenko
2013-02-19 15:47:32 +04:00
parent 543a2821e4
commit 626d9f988c
@@ -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);
}
}
}
}