Logging error instead of throwing exception.
This commit is contained in:
+16
-4
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user