Move caching of kotlin binaries classes to application level

Fix code in DecompiledUtils
This commit is contained in:
Pavel V. Talanov
2014-02-19 17:52:06 +04:00
parent b052cb8aa9
commit d647d2abbc
12 changed files with 68 additions and 68 deletions
@@ -19,6 +19,7 @@ package org.jetbrains.jet.cli.jvm.compiler;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.resolve.kotlin.KotlinBinaryClassCache;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileKotlinClassFinder;
import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -44,10 +45,10 @@ public class CliVirtualFileFinder extends VirtualFileKotlinClassFinder implement
return null;
}
private VirtualFile findKotlinFile(@NotNull FqName className, @NotNull VirtualFile root) {
private static VirtualFile findKotlinFile(@NotNull FqName className, @NotNull VirtualFile root) {
VirtualFile vFile = findFileInRoot(className.asString(), root, '.');
//NOTE: currently we use VirtualFileFinder to find Kotlin binaries only
if (vFile != null && createKotlinClass(vFile).getClassHeader() != null) {
if (vFile != null && KotlinBinaryClassCache.getKotlinBinaryClass(vFile).getClassHeader() != null) {
return vFile;
}
return null;
@@ -55,6 +55,7 @@ import org.jetbrains.jet.lang.parsing.JetParserDefinition;
import org.jetbrains.jet.lang.parsing.JetScriptDefinitionProvider;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.java.JetFilesProvider;
import org.jetbrains.jet.lang.resolve.kotlin.KotlinBinaryClassCache;
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
import org.jetbrains.jet.plugin.JetFileType;
import org.jetbrains.jet.utils.PathUtil;
@@ -144,6 +145,7 @@ public class JetCoreEnvironment {
applicationEnvironment.registerParserDefinition(new JetParserDefinition());
applicationEnvironment.getApplication().registerService(OperationModeProvider.class, new CompilerModeProvider());
applicationEnvironment.getApplication().registerService(KotlinBinaryClassCache.class, new KotlinBinaryClassCache());
return applicationEnvironment;
}