Make annotations on deserialized descriptors truly lazy

This commit is contained in:
Alexander Udalov
2014-11-21 03:19:15 +03:00
parent 954678ab2b
commit 149a90d7bf
6 changed files with 79 additions and 44 deletions
@@ -102,7 +102,7 @@ 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();
this.annotationDescriptorLoader = new AnnotationDescriptorLoader(getModule(), lockBasedStorageManager);
this.constantDescriptorLoader = new ConstantDescriptorLoader();
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, getModule(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
this.descriptorLoadersStorage = new DescriptorLoadersStorage(lockBasedStorageManager);
@@ -128,7 +128,6 @@ public class InjectorForJavaDescriptorResolver {
annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorLoader.setModule(module);
annotationDescriptorLoader.setStorage(descriptorLoadersStorage);
descriptorLoadersStorage.setErrorReporter(traceBasedErrorReporter);
@@ -191,7 +191,7 @@ public class InjectorForLazyResolveWithJava {
this.scopeProvider = new ScopeProvider(getResolveSession());
this.scriptBodyResolver = new ScriptBodyResolver();
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
this.annotationDescriptorLoader = new AnnotationDescriptorLoader();
this.annotationDescriptorLoader = new AnnotationDescriptorLoader(module, storageManager);
this.constantDescriptorLoader = new ConstantDescriptorLoader();
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, module, javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager);
@@ -277,7 +277,6 @@ public class InjectorForLazyResolveWithJava {
annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorLoader.setModule(module);
annotationDescriptorLoader.setStorage(descriptorLoadersStorage);
descriptorLoadersStorage.setErrorReporter(traceBasedErrorReporter);
@@ -185,7 +185,7 @@ 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();
this.annotationDescriptorLoader = new AnnotationDescriptorLoader(getModuleDescriptor(), storageManager);
this.constantDescriptorLoader = new ConstantDescriptorLoader();
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, getModuleDescriptor(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider.INSTANCE$;
@@ -361,7 +361,6 @@ public class InjectorForTopDownAnalyzerForJvm {
annotationDescriptorLoader.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorLoader.setKotlinClassFinder(virtualFileFinder);
annotationDescriptorLoader.setModule(moduleDescriptor);
annotationDescriptorLoader.setStorage(descriptorLoadersStorage);
descriptorLoadersStorage.setErrorReporter(traceBasedErrorReporter);