From 673c15a23d8b256e30c53a636294e114681852ae Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Fri, 21 Nov 2014 03:50:25 +0300 Subject: [PATCH] Simplify component injection in annotation/constant loaders --- .../di/InjectorForJavaDescriptorResolver.java | 22 +++-------- .../di/InjectorForLazyResolveWithJava.java | 22 +++-------- .../di/InjectorForTopDownAnalyzerForJvm.java | 22 +++-------- .../kotlin/AnnotationDescriptorLoader.java | 32 +++++----------- .../resolve/kotlin/BaseDescriptorLoader.java | 21 ++++++----- .../kotlin/ConstantDescriptorLoader.java | 26 ++++--------- .../kotlin/DescriptorLoadersStorage.java | 37 +++++-------------- .../DeserializedDescriptorResolver.java | 12 +++--- .../textBuilder/DeserializerForDecompiler.kt | 23 +++--------- 9 files changed, 64 insertions(+), 153 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java index b7f7bceed27..ffe9543fa9c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -87,10 +87,10 @@ public class InjectorForJavaDescriptorResolver { this.module = org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM.createJavaModule(""); this.javaClassFinder = new JavaClassFinderImpl(); this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project); - this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(); + this.traceBasedErrorReporter = new TraceBasedErrorReporter(); + this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter); this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver(); this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver(); - this.traceBasedErrorReporter = new TraceBasedErrorReporter(); this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker(); this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache(); this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl(); @@ -102,10 +102,10 @@ public class InjectorForJavaDescriptorResolver { this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule()); this.globalSearchScope = com.intellij.psi.search.GlobalSearchScope.allScope(project); this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver); - this.annotationDescriptorLoader = new AnnotationDescriptorLoader(getModule(), lockBasedStorageManager); - this.constantDescriptorLoader = new ConstantDescriptorLoader(); + this.descriptorLoadersStorage = new DescriptorLoadersStorage(lockBasedStorageManager, getModule()); + this.annotationDescriptorLoader = new AnnotationDescriptorLoader(lockBasedStorageManager, getModule(), descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter); + this.constantDescriptorLoader = new ConstantDescriptorLoader(descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter); this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, getModule(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider); - this.descriptorLoadersStorage = new DescriptorLoadersStorage(lockBasedStorageManager); this.javaClassFinder.setProject(project); this.javaClassFinder.setScope(globalSearchScope); @@ -124,18 +124,6 @@ public class InjectorForJavaDescriptorResolver { singleModuleClassResolver.setResolver(javaDescriptorResolver); deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava); - deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); - - annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter); - annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder); - annotationDescriptorLoader.setStorage(descriptorLoadersStorage); - - descriptorLoadersStorage.setErrorReporter(traceBasedErrorReporter); - descriptorLoadersStorage.setModule(module); - - constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter); - constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder); - constantDescriptorLoader.setStorage(descriptorLoadersStorage); javaClassFinder.initialize(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java index 2ec347696da..4e798ec1d83 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForLazyResolveWithJava.java @@ -153,10 +153,10 @@ public class InjectorForLazyResolveWithJava { this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace); this.javaClassFinder = new JavaClassFinderImpl(); this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope); - this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(); + this.traceBasedErrorReporter = new TraceBasedErrorReporter(); + this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter); this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver(); this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver(); - this.traceBasedErrorReporter = new TraceBasedErrorReporter(); this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker(); this.lazyResolveBasedCache = new LazyResolveBasedCache(); this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl(); @@ -191,10 +191,10 @@ public class InjectorForLazyResolveWithJava { this.scopeProvider = new ScopeProvider(getResolveSession()); this.scriptBodyResolver = new ScriptBodyResolver(); this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver); - this.annotationDescriptorLoader = new AnnotationDescriptorLoader(module, storageManager); - this.constantDescriptorLoader = new ConstantDescriptorLoader(); + this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager, module); + this.annotationDescriptorLoader = new AnnotationDescriptorLoader(storageManager, module, descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter); + this.constantDescriptorLoader = new ConstantDescriptorLoader(descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter); this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, module, javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider); - this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager); this.resolveSession.setAnnotationResolve(annotationResolver); this.resolveSession.setDescriptorResolver(descriptorResolver); @@ -273,18 +273,6 @@ public class InjectorForLazyResolveWithJava { scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava); - deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); - - annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter); - annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder); - annotationDescriptorLoader.setStorage(descriptorLoadersStorage); - - descriptorLoadersStorage.setErrorReporter(traceBasedErrorReporter); - descriptorLoadersStorage.setModule(module); - - constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter); - constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder); - constantDescriptorLoader.setStorage(descriptorLoadersStorage); javaClassFinder.initialize(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index 8b309cd4987..72893d362a6 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -171,10 +171,10 @@ public class InjectorForTopDownAnalyzerForJvm { this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor()); this.javaClassFinder = new JavaClassFinderImpl(); this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project); - this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(); + this.traceBasedErrorReporter = new TraceBasedErrorReporter(); + this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter); this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver(); this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver(); - this.traceBasedErrorReporter = new TraceBasedErrorReporter(); this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker(); this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache(); this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl(); @@ -185,8 +185,9 @@ public class InjectorForTopDownAnalyzerForJvm { this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModuleDescriptor()); this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModuleDescriptor()); this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver); - this.annotationDescriptorLoader = new AnnotationDescriptorLoader(getModuleDescriptor(), storageManager); - this.constantDescriptorLoader = new ConstantDescriptorLoader(); + this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager, getModuleDescriptor()); + this.annotationDescriptorLoader = new AnnotationDescriptorLoader(storageManager, getModuleDescriptor(), descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter); + this.constantDescriptorLoader = new ConstantDescriptorLoader(descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter); this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, getModuleDescriptor(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider); this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider.INSTANCE$; this.globalSearchScope = com.intellij.psi.search.GlobalSearchScope.allScope(project); @@ -224,7 +225,6 @@ public class InjectorForTopDownAnalyzerForJvm { this.overrideResolver = new OverrideResolver(); this.typeHierarchyResolver = new TypeHierarchyResolver(); this.scriptHeaderResolver = new ScriptHeaderResolver(); - this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager); this.topDownAnalyzer.setAdditionalCheckerProvider(additionalCheckerProvider); this.topDownAnalyzer.setBodyResolver(bodyResolver); @@ -357,18 +357,6 @@ public class InjectorForTopDownAnalyzerForJvm { scriptHeaderResolver.setTrace(bindingTrace); deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava); - deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter); - - annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter); - annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder); - annotationDescriptorLoader.setStorage(descriptorLoadersStorage); - - descriptorLoadersStorage.setErrorReporter(traceBasedErrorReporter); - descriptorLoadersStorage.setModule(moduleDescriptor); - - constantDescriptorLoader.setErrorReporter(traceBasedErrorReporter); - constantDescriptorLoader.setKotlinClassFinder(virtualFileFinder); - constantDescriptorLoader.setStorage(descriptorLoadersStorage); javaClassFinder.initialize(); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorLoader.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorLoader.java index 816664d58c3..c8167041830 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorLoader.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/AnnotationDescriptorLoader.java @@ -39,39 +39,27 @@ import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.storage.StorageManager; -import javax.inject.Inject; import java.util.*; import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorLoadersStorage.MemberSignature; import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.javaClassIdToKotlinClassId; public class AnnotationDescriptorLoader extends BaseDescriptorLoader implements AnnotationLoader { - private final ModuleDescriptor module; private final StorageManager storageManager; + private final ModuleDescriptor module; - public AnnotationDescriptorLoader(@NotNull ModuleDescriptor module, @NotNull StorageManager storageManager) { + public AnnotationDescriptorLoader( + @NotNull StorageManager storageManager, + @NotNull ModuleDescriptor module, + @NotNull DescriptorLoadersStorage storage, + @NotNull KotlinClassFinder kotlinClassFinder, + @NotNull ErrorReporter errorReporter + ) { + super(kotlinClassFinder, errorReporter, storage); this.module = module; this.storageManager = storageManager; } - @Inject - @Override - public void setStorage(@NotNull DescriptorLoadersStorage storage) { - this.storage = storage; - } - - @Inject - @Override - public void setKotlinClassFinder(@NotNull KotlinClassFinder kotlinClassFinder) { - this.kotlinClassFinder = kotlinClassFinder; - } - - @Inject - @Override - public void setErrorReporter(@NotNull ErrorReporter errorReporter) { - this.errorReporter = errorReporter; - } - @NotNull @Override public Annotations loadClassAnnotations(@NotNull ClassDescriptor descriptor, @NotNull ProtoBuf.Class classProto) { @@ -230,7 +218,7 @@ public class AnnotationDescriptorLoader extends BaseDescriptorLoader implements return new DeserializedAnnotations(storageManager, new Function0>() { @Override public List invoke() { - List descriptors = storage.getStorage().invoke(kotlinClass).getMemberAnnotations().get(signature); + List descriptors = storage.getStorageForClass(kotlinClass).getMemberAnnotations().get(signature); return descriptors == null ? Collections.emptyList() : descriptors; } }); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/BaseDescriptorLoader.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/BaseDescriptorLoader.java index 353053ae658..397f946efb3 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/BaseDescriptorLoader.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/BaseDescriptorLoader.java @@ -39,16 +39,19 @@ import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.ge import static org.jetbrains.jet.lang.resolve.kotlin.DeserializedResolverUtils.kotlinClassIdToJavaClassId; public abstract class BaseDescriptorLoader { - protected KotlinClassFinder kotlinClassFinder; - protected ErrorReporter errorReporter; + private final KotlinClassFinder kotlinClassFinder; + protected final ErrorReporter errorReporter; + protected final DescriptorLoadersStorage storage; - protected DescriptorLoadersStorage storage; - - public abstract void setKotlinClassFinder(@NotNull KotlinClassFinder kotlinClassFinder); - - public abstract void setErrorReporter(@NotNull ErrorReporter errorReporter); - - public abstract void setStorage(@NotNull DescriptorLoadersStorage storage); + protected BaseDescriptorLoader( + @NotNull KotlinClassFinder kotlinClassFinder, + @NotNull ErrorReporter errorReporter, + @NotNull DescriptorLoadersStorage storage + ) { + this.kotlinClassFinder = kotlinClassFinder; + this.errorReporter = errorReporter; + this.storage = storage; + } @Nullable protected static MemberSignature getCallableSignature( diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/ConstantDescriptorLoader.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/ConstantDescriptorLoader.java index afd571ae6ff..bcd36ca9083 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/ConstantDescriptorLoader.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/ConstantDescriptorLoader.java @@ -26,27 +26,15 @@ import org.jetbrains.jet.lang.descriptors.ClassOrPackageFragmentDescriptor; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter; -import javax.inject.Inject; - import static org.jetbrains.jet.lang.resolve.kotlin.DescriptorLoadersStorage.MemberSignature; public class ConstantDescriptorLoader extends BaseDescriptorLoader implements ConstantLoader { - @Inject - @Override - public void setStorage(@NotNull DescriptorLoadersStorage storage) { - this.storage = storage; - } - - @Inject - @Override - public void setKotlinClassFinder(@NotNull KotlinClassFinder kotlinClassFinder) { - this.kotlinClassFinder = kotlinClassFinder; - } - - @Inject - @Override - public void setErrorReporter(@NotNull ErrorReporter errorReporter) { - this.errorReporter = errorReporter; + public ConstantDescriptorLoader( + @NotNull DescriptorLoadersStorage storage, + @NotNull KotlinClassFinder kotlinClassFinder, + @NotNull ErrorReporter errorReporter + ) { + super(kotlinClassFinder, errorReporter, storage); } @Nullable @@ -66,6 +54,6 @@ public class ConstantDescriptorLoader extends BaseDescriptorLoader implements Co return null; } - return storage.getStorage().invoke(kotlinClass).getPropertyConstants().get(signature); + return storage.getStorageForClass(kotlinClass).getPropertyConstants().get(signature); } } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DescriptorLoadersStorage.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DescriptorLoadersStorage.java index 307f6957ab4..eb8eb762c1b 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DescriptorLoadersStorage.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DescriptorLoadersStorage.java @@ -23,56 +23,37 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.constants.ConstantsPackage; -import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter; import org.jetbrains.jet.lang.resolve.name.ClassId; import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.storage.MemoizedFunctionToNotNull; import org.jetbrains.jet.storage.StorageManager; -import javax.inject.Inject; -import java.io.IOException; import java.util.*; public class DescriptorLoadersStorage { - private ErrorReporter errorReporter; - private ModuleDescriptor module; - private final MemoizedFunctionToNotNull storage; + private final ModuleDescriptor module; - public DescriptorLoadersStorage(@NotNull StorageManager storageManager) { + public DescriptorLoadersStorage(@NotNull StorageManager storageManager, @NotNull ModuleDescriptor module) { this.storage = storageManager.createMemoizedFunction( new Function1() { @NotNull @Override public Storage invoke(@NotNull KotlinJvmBinaryClass kotlinClass) { - try { - return loadAnnotationsAndInitializers(kotlinClass); - } - catch (IOException e) { - errorReporter.reportLoadingError("Error loading member information from Kotlin class: " + kotlinClass, e); - return Storage.EMPTY; - } + return loadAnnotationsAndInitializers(kotlinClass); } - }); - } - - @Inject - public void setModule(ModuleDescriptor module) { + } + ); this.module = module; } - @Inject - public void setErrorReporter(ErrorReporter errorReporter) { - this.errorReporter = errorReporter; + @NotNull + protected Storage getStorageForClass(@NotNull KotlinJvmBinaryClass kotlinClass) { + return storage.invoke(kotlinClass); } @NotNull - protected MemoizedFunctionToNotNull getStorage() { - return storage; - } - - @NotNull - private Storage loadAnnotationsAndInitializers(@NotNull KotlinJvmBinaryClass kotlinClass) throws IOException { + private Storage loadAnnotationsAndInitializers(@NotNull KotlinJvmBinaryClass kotlinClass) { final Map> memberAnnotations = new HashMap>(); final Map> propertyConstants = new HashMap>(); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DeserializedDescriptorResolver.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DeserializedDescriptorResolver.java index 6286a4d2402..11f598c4813 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DeserializedDescriptorResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/kotlin/DeserializedDescriptorResolver.java @@ -36,18 +36,16 @@ import static org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader.Kin import static org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader.Kind.PACKAGE_FACADE; public final class DeserializedDescriptorResolver { + private final ErrorReporter errorReporter; private DeserializationGlobalContextForJava context; - private ErrorReporter errorReporter; - - @Inject - public void setContext(DeserializationGlobalContextForJava context) { - this.context = context; + public DeserializedDescriptorResolver(@NotNull ErrorReporter errorReporter) { + this.errorReporter = errorReporter; } @Inject - public void setErrorReporter(ErrorReporter errorReporter) { - this.errorReporter = errorReporter; + public void setContext(@NotNull DeserializationGlobalContextForJava context) { + this.context = context; } @Nullable diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/textBuilder/DeserializerForDecompiler.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/textBuilder/DeserializerForDecompiler.kt index 7f40e8ecf85..14b386026fc 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/textBuilder/DeserializerForDecompiler.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/decompiler/textBuilder/DeserializerForDecompiler.kt @@ -87,27 +87,16 @@ public class DeserializerForDecompiler(val packageDirectory: VirtualFile, val di return null } } + private val storageManager = LockBasedStorageManager.NO_LOCKS - private val loadersStorage = DescriptorLoadersStorage(storageManager); - { - loadersStorage.setModule(moduleDescriptor) - loadersStorage.setErrorReporter(LOGGING_REPORTER) - } + private val loadersStorage = DescriptorLoadersStorage(storageManager, moduleDescriptor) - private val annotationLoader = AnnotationDescriptorLoader(moduleDescriptor, storageManager); - { - annotationLoader.setKotlinClassFinder(localClassFinder) - annotationLoader.setErrorReporter(LOGGING_REPORTER) - annotationLoader.setStorage(loadersStorage) - } + private val annotationLoader = AnnotationDescriptorLoader( + storageManager, moduleDescriptor, loadersStorage, localClassFinder, LOGGING_REPORTER + ) - private val constantLoader = ConstantDescriptorLoader(); - { - constantLoader.setKotlinClassFinder(localClassFinder) - constantLoader.setErrorReporter(LOGGING_REPORTER) - constantLoader.setStorage(loadersStorage) - } + private val constantLoader = ConstantDescriptorLoader(loadersStorage, localClassFinder, LOGGING_REPORTER) private val classDataFinder = object : ClassDataFinder { override fun findClassData(classId: ClassId): ClassData? {