Replaced hard exception with LOG.error.

This commit is contained in:
Evgeny Gerashchenko
2013-04-04 17:51:51 +04:00
parent 50b2f79b2e
commit b1ea79113f
4 changed files with 18 additions and 13 deletions
@@ -26,7 +26,7 @@ import java.util.List;
public interface PsiClassFinder { public interface PsiClassFinder {
enum RuntimeClassesHandleMode { enum RuntimeClassesHandleMode {
THROW, REPORT_ERROR,
IGNORE, IGNORE,
} }
@@ -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;
} }
} }
@@ -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;
} }