Fixed bug in TypeConversionUtil#getAllBoxedTypeSupers which created CachedValueProvider.Result with null as dependency because the ProjectRootModificationTracker service was not registered.

Register ProjectRootModificationTracker as NEVER_CHANGE in JavaToKotlinTranslator.
This commit is contained in:
Zalim Bashorov
2013-09-13 13:06:52 +04:00
parent 4027454b64
commit d0172ebdc2
@@ -20,6 +20,7 @@ import com.intellij.core.JavaCoreProjectEnvironment;
import com.intellij.lang.java.JavaLanguage; import com.intellij.lang.java.JavaLanguage;
import com.intellij.openapi.Disposable; import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project; import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.ProjectRootModificationTracker;
import com.intellij.psi.PsiElement; import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiFileFactory; import com.intellij.psi.PsiFileFactory;
@@ -43,6 +44,13 @@ public class JavaToKotlinTranslator {
} }
}; };
private static final ProjectRootModificationTracker NEVER_CHANGED = new ProjectRootModificationTracker() {
@Override
public long getModificationCount() {
return 0;
}
};
private JavaToKotlinTranslator() { private JavaToKotlinTranslator() {
} }
@@ -66,6 +74,8 @@ public class JavaToKotlinTranslator {
JavaCoreApplicationEnvironment applicationEnvironment = new JavaCoreApplicationEnvironment(DISPOSABLE); JavaCoreApplicationEnvironment applicationEnvironment = new JavaCoreApplicationEnvironment(DISPOSABLE);
JavaCoreProjectEnvironment javaCoreEnvironment = new JavaCoreProjectEnvironment(DISPOSABLE, applicationEnvironment); JavaCoreProjectEnvironment javaCoreEnvironment = new JavaCoreProjectEnvironment(DISPOSABLE, applicationEnvironment);
javaCoreEnvironment.getProject().registerService(ProjectRootModificationTracker.class, NEVER_CHANGED);
javaCoreEnvironment.addJarToClassPath(PathUtil.findRtJar()); javaCoreEnvironment.addJarToClassPath(PathUtil.findRtJar());
File annotations = findAnnotations(); File annotations = findAnnotations();
if (annotations != null && annotations.exists()) { if (annotations != null && annotations.exists()) {