Replaced hard exception with LOG.error.
This commit is contained in:
@@ -26,7 +26,7 @@ import java.util.List;
|
|||||||
|
|
||||||
public interface PsiClassFinder {
|
public interface PsiClassFinder {
|
||||||
enum RuntimeClassesHandleMode {
|
enum RuntimeClassesHandleMode {
|
||||||
THROW,
|
REPORT_ERROR,
|
||||||
IGNORE,
|
IGNORE,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+15
-10
@@ -18,6 +18,8 @@ package org.jetbrains.jet.lang.resolve.java;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.google.common.collect.Sets;
|
import com.google.common.collect.Sets;
|
||||||
|
import com.intellij.openapi.application.ApplicationManager;
|
||||||
|
import com.intellij.openapi.diagnostic.Logger;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.openapi.util.Comparing;
|
import com.intellij.openapi.util.Comparing;
|
||||||
import com.intellij.openapi.vfs.VirtualFile;
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
@@ -39,6 +41,7 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public class PsiClassFinderImpl implements PsiClassFinder {
|
public class PsiClassFinderImpl implements PsiClassFinder {
|
||||||
|
private static final Logger LOG = Logger.getInstance(PsiClassFinderImpl.class);
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private Project project;
|
private Project project;
|
||||||
@@ -106,17 +109,19 @@ public class PsiClassFinderImpl implements PsiClassFinder {
|
|||||||
original, JvmStdlibNames.ASSERT_INVISIBLE_IN_RESOLVER.getFqName().getFqName());
|
original, JvmStdlibNames.ASSERT_INVISIBLE_IN_RESOLVER.getFqName().getFqName());
|
||||||
|
|
||||||
if (assertInvisibleAnnotation != null) {
|
if (assertInvisibleAnnotation != null) {
|
||||||
if (runtimeClassesHandleMode == RuntimeClassesHandleMode.IGNORE) {
|
switch (runtimeClassesHandleMode) {
|
||||||
return null;
|
case IGNORE:
|
||||||
}
|
break;
|
||||||
else if (runtimeClassesHandleMode == RuntimeClassesHandleMode.THROW) {
|
case REPORT_ERROR:
|
||||||
throw new IllegalStateException(
|
if (ApplicationManager.getApplication().isInternal()) {
|
||||||
"classpath is configured incorrectly:" +
|
LOG.error("classpath is configured incorrectly:" +
|
||||||
" class " + qualifiedName + " from runtime must not be loaded by compiler");
|
" class " + qualifiedName + " from runtime must not be loaded by compiler");
|
||||||
}
|
}
|
||||||
else {
|
break;
|
||||||
throw new IllegalStateException("unknown parameter value: " + runtimeClassesHandleMode);
|
default:
|
||||||
|
throw new IllegalStateException("unknown parameter value: " + runtimeClassesHandleMode);
|
||||||
}
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -167,7 +167,7 @@ public final class JavaClassResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private ClassDescriptor doResolveClass(@NotNull FqName qualifiedName, @NotNull PostponedTasks tasks) {
|
private ClassDescriptor doResolveClass(@NotNull FqName qualifiedName, @NotNull PostponedTasks tasks) {
|
||||||
PsiClass psiClass = psiClassFinder.findPsiClass(qualifiedName, PsiClassFinder.RuntimeClassesHandleMode.THROW);
|
PsiClass psiClass = psiClassFinder.findPsiClass(qualifiedName, PsiClassFinder.RuntimeClassesHandleMode.REPORT_ERROR);
|
||||||
if (psiClass == null) {
|
if (psiClass == null) {
|
||||||
cacheNegativeValue(javaClassToKotlinFqName(qualifiedName));
|
cacheNegativeValue(javaClassToKotlinFqName(qualifiedName));
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public class JetExpectedResolveDataUtil {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private static PsiClass findClass(String qualifiedName, Project project) {
|
private static PsiClass findClass(String qualifiedName, Project project) {
|
||||||
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(project);
|
InjectorForJavaSemanticServices injector = new InjectorForJavaSemanticServices(project);
|
||||||
PsiClass psiClass = injector.getPsiClassFinder().findPsiClass(new FqName(qualifiedName), PsiClassFinder.RuntimeClassesHandleMode.THROW);
|
PsiClass psiClass = injector.getPsiClassFinder().findPsiClass(new FqName(qualifiedName), PsiClassFinder.RuntimeClassesHandleMode.REPORT_ERROR);
|
||||||
Assert.assertNotNull("Class wasn't found: " + qualifiedName, psiClass);
|
Assert.assertNotNull("Class wasn't found: " + qualifiedName, psiClass);
|
||||||
return psiClass;
|
return psiClass;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user