LazyTopDownAnalyzer is always called in LAZY mode

This commit is contained in:
Andrey Breslav
2015-01-20 21:15:14 +03:00
parent 48ae469d13
commit dae5ec24e2
6 changed files with 2 additions and 168 deletions
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.load.java.components.PsiBasedExternalAnnotationResol
import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEvaluatorImpl; import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEvaluatorImpl;
import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl; import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl;
import org.jetbrains.kotlin.load.java.components.JavaSourceElementFactoryImpl; import org.jetbrains.kotlin.load.java.components.JavaSourceElementFactoryImpl;
import org.jetbrains.kotlin.resolve.MutablePackageFragmentProvider;
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver; import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver;
import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct; import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct;
import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider; import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider;
@@ -78,9 +77,6 @@ import org.jetbrains.kotlin.resolve.DeclarationResolver;
import org.jetbrains.kotlin.resolve.ImportsResolver; import org.jetbrains.kotlin.resolve.ImportsResolver;
import org.jetbrains.kotlin.resolve.OverloadResolver; import org.jetbrains.kotlin.resolve.OverloadResolver;
import org.jetbrains.kotlin.resolve.OverrideResolver; import org.jetbrains.kotlin.resolve.OverrideResolver;
import org.jetbrains.kotlin.resolve.TopDownAnalyzer;
import org.jetbrains.kotlin.resolve.TypeHierarchyResolver;
import org.jetbrains.kotlin.resolve.ScriptHeaderResolver;
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider; import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider;
import org.jetbrains.kotlin.load.java.lazy.GlobalJavaResolverContext; import org.jetbrains.kotlin.load.java.lazy.GlobalJavaResolverContext;
@@ -117,7 +113,6 @@ public class InjectorForReplWithJava {
private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator; private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator;
private final SamConversionResolverImpl samConversionResolver; private final SamConversionResolverImpl samConversionResolver;
private final JavaSourceElementFactoryImpl javaSourceElementFactory; private final JavaSourceElementFactoryImpl javaSourceElementFactory;
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
private final SingleModuleClassResolver singleModuleClassResolver; private final SingleModuleClassResolver singleModuleClassResolver;
private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct; private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct;
private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider; private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
@@ -156,9 +151,6 @@ public class InjectorForReplWithJava {
private final ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private final OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private final OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private final TopDownAnalyzer topDownAnalyzer;
private final TypeHierarchyResolver typeHierarchyResolver;
private final ScriptHeaderResolver scriptHeaderResolver;
private final VarianceChecker varianceChecker; private final VarianceChecker varianceChecker;
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider; private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
private final GlobalJavaResolverContext globalJavaResolverContext; private final GlobalJavaResolverContext globalJavaResolverContext;
@@ -204,7 +196,6 @@ public class InjectorForReplWithJava {
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver); this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter); this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter);
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider); this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(module);
this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct(); this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct();
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider(); this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$; this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$;
@@ -242,9 +233,6 @@ public class InjectorForReplWithJava {
this.importsResolver = new ImportsResolver(); this.importsResolver = new ImportsResolver();
this.overloadResolver = new OverloadResolver(); this.overloadResolver = new OverloadResolver();
this.overrideResolver = new OverrideResolver(); this.overrideResolver = new OverrideResolver();
this.topDownAnalyzer = new TopDownAnalyzer();
this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver();
this.varianceChecker = new VarianceChecker(bindingTrace); this.varianceChecker = new VarianceChecker(bindingTrace);
this.resolveSession.setAnnotationResolve(annotationResolver); this.resolveSession.setAnnotationResolve(annotationResolver);
@@ -261,7 +249,6 @@ public class InjectorForReplWithJava {
this.lazyTopDownAnalyzer.setModuleDescriptor(module); this.lazyTopDownAnalyzer.setModuleDescriptor(module);
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
this.lazyTopDownAnalyzer.setTrace(bindingTrace); this.lazyTopDownAnalyzer.setTrace(bindingTrace);
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
@@ -381,24 +368,6 @@ public class InjectorForReplWithJava {
overrideResolver.setTrace(bindingTrace); overrideResolver.setTrace(bindingTrace);
topDownAnalyzer.setBodyResolver(bodyResolver);
topDownAnalyzer.setDeclarationResolver(declarationResolver);
topDownAnalyzer.setModuleDescriptor(module);
topDownAnalyzer.setOverloadResolver(overloadResolver);
topDownAnalyzer.setOverrideResolver(overrideResolver);
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
topDownAnalyzer.setVarianceChecker(varianceChecker);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
typeHierarchyResolver.setTrace(bindingTrace);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTrace(bindingTrace);
deserializedDescriptorResolver.setComponents(deserializationComponentsForJava); deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
javaClassFinder.initialize(); javaClassFinder.initialize();
@@ -39,7 +39,6 @@ import org.jetbrains.kotlin.load.java.components.PsiBasedExternalAnnotationResol
import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEvaluatorImpl; import org.jetbrains.kotlin.load.java.structure.impl.JavaPropertyInitializerEvaluatorImpl;
import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl; import org.jetbrains.kotlin.load.java.sam.SamConversionResolverImpl;
import org.jetbrains.kotlin.load.java.components.JavaSourceElementFactoryImpl; import org.jetbrains.kotlin.load.java.components.JavaSourceElementFactoryImpl;
import org.jetbrains.kotlin.resolve.MutablePackageFragmentProvider;
import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver; import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver;
import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct; import org.jetbrains.kotlin.resolve.jvm.JavaLazyAnalyzerPostConstruct;
import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider; import org.jetbrains.kotlin.load.java.JavaFlexibleTypeCapabilitiesProvider;
@@ -78,9 +77,6 @@ import org.jetbrains.kotlin.resolve.DeclarationResolver;
import org.jetbrains.kotlin.resolve.ImportsResolver; import org.jetbrains.kotlin.resolve.ImportsResolver;
import org.jetbrains.kotlin.resolve.OverloadResolver; import org.jetbrains.kotlin.resolve.OverloadResolver;
import org.jetbrains.kotlin.resolve.OverrideResolver; import org.jetbrains.kotlin.resolve.OverrideResolver;
import org.jetbrains.kotlin.resolve.TopDownAnalyzer;
import org.jetbrains.kotlin.resolve.TypeHierarchyResolver;
import org.jetbrains.kotlin.resolve.ScriptHeaderResolver;
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider; import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider;
import org.jetbrains.kotlin.load.java.lazy.GlobalJavaResolverContext; import org.jetbrains.kotlin.load.java.lazy.GlobalJavaResolverContext;
@@ -117,7 +113,6 @@ public class InjectorForTopDownAnalyzerForJvm {
private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator; private final JavaPropertyInitializerEvaluatorImpl javaPropertyInitializerEvaluator;
private final SamConversionResolverImpl samConversionResolver; private final SamConversionResolverImpl samConversionResolver;
private final JavaSourceElementFactoryImpl javaSourceElementFactory; private final JavaSourceElementFactoryImpl javaSourceElementFactory;
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
private final SingleModuleClassResolver singleModuleClassResolver; private final SingleModuleClassResolver singleModuleClassResolver;
private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct; private final JavaLazyAnalyzerPostConstruct javaLazyAnalyzerPostConstruct;
private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider; private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
@@ -156,9 +151,6 @@ public class InjectorForTopDownAnalyzerForJvm {
private final ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private final OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private final OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private final TopDownAnalyzer topDownAnalyzer;
private final TypeHierarchyResolver typeHierarchyResolver;
private final ScriptHeaderResolver scriptHeaderResolver;
private final VarianceChecker varianceChecker; private final VarianceChecker varianceChecker;
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider; private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
private final GlobalJavaResolverContext globalJavaResolverContext; private final GlobalJavaResolverContext globalJavaResolverContext;
@@ -203,7 +195,6 @@ public class InjectorForTopDownAnalyzerForJvm {
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver); this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter); this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter);
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider); this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(module);
this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct(); this.javaLazyAnalyzerPostConstruct = new JavaLazyAnalyzerPostConstruct();
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider(); this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$; this.kotlinJvmCheckerProvider = KotlinJvmCheckerProvider.INSTANCE$;
@@ -241,9 +232,6 @@ public class InjectorForTopDownAnalyzerForJvm {
this.importsResolver = new ImportsResolver(); this.importsResolver = new ImportsResolver();
this.overloadResolver = new OverloadResolver(); this.overloadResolver = new OverloadResolver();
this.overrideResolver = new OverrideResolver(); this.overrideResolver = new OverrideResolver();
this.topDownAnalyzer = new TopDownAnalyzer();
this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver();
this.varianceChecker = new VarianceChecker(bindingTrace); this.varianceChecker = new VarianceChecker(bindingTrace);
this.resolveSession.setAnnotationResolve(annotationResolver); this.resolveSession.setAnnotationResolve(annotationResolver);
@@ -260,7 +248,6 @@ public class InjectorForTopDownAnalyzerForJvm {
this.lazyTopDownAnalyzer.setModuleDescriptor(module); this.lazyTopDownAnalyzer.setModuleDescriptor(module);
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
this.lazyTopDownAnalyzer.setTrace(bindingTrace); this.lazyTopDownAnalyzer.setTrace(bindingTrace);
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
@@ -380,24 +367,6 @@ public class InjectorForTopDownAnalyzerForJvm {
overrideResolver.setTrace(bindingTrace); overrideResolver.setTrace(bindingTrace);
topDownAnalyzer.setBodyResolver(bodyResolver);
topDownAnalyzer.setDeclarationResolver(declarationResolver);
topDownAnalyzer.setModuleDescriptor(module);
topDownAnalyzer.setOverloadResolver(overloadResolver);
topDownAnalyzer.setOverrideResolver(overrideResolver);
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
topDownAnalyzer.setVarianceChecker(varianceChecker);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
typeHierarchyResolver.setTrace(bindingTrace);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTrace(bindingTrace);
deserializedDescriptorResolver.setComponents(deserializationComponentsForJava); deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
javaClassFinder.initialize(); javaClassFinder.initialize();
@@ -59,10 +59,6 @@ import org.jetbrains.kotlin.resolve.ImportsResolver;
import org.jetbrains.kotlin.psi.JetImportsFactory; import org.jetbrains.kotlin.psi.JetImportsFactory;
import org.jetbrains.kotlin.resolve.OverloadResolver; import org.jetbrains.kotlin.resolve.OverloadResolver;
import org.jetbrains.kotlin.resolve.OverrideResolver; import org.jetbrains.kotlin.resolve.OverrideResolver;
import org.jetbrains.kotlin.resolve.TopDownAnalyzer;
import org.jetbrains.kotlin.resolve.MutablePackageFragmentProvider;
import org.jetbrains.kotlin.resolve.TypeHierarchyResolver;
import org.jetbrains.kotlin.resolve.ScriptHeaderResolver;
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
@@ -114,10 +110,6 @@ public class InjectorForLazyBodyResolve {
private final JetImportsFactory jetImportsFactory; private final JetImportsFactory jetImportsFactory;
private final OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private final OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private final TopDownAnalyzer topDownAnalyzer;
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
private final TypeHierarchyResolver typeHierarchyResolver;
private final ScriptHeaderResolver scriptHeaderResolver;
private final VarianceChecker varianceChecker; private final VarianceChecker varianceChecker;
public InjectorForLazyBodyResolve( public InjectorForLazyBodyResolve(
@@ -171,10 +163,6 @@ public class InjectorForLazyBodyResolve {
this.jetImportsFactory = new JetImportsFactory(); this.jetImportsFactory = new JetImportsFactory();
this.overloadResolver = new OverloadResolver(); this.overloadResolver = new OverloadResolver();
this.overrideResolver = new OverrideResolver(); this.overrideResolver = new OverrideResolver();
this.topDownAnalyzer = new TopDownAnalyzer();
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(moduleDescriptor);
this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver();
this.varianceChecker = new VarianceChecker(bindingTrace); this.varianceChecker = new VarianceChecker(bindingTrace);
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver); this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
@@ -183,7 +171,6 @@ public class InjectorForLazyBodyResolve {
this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor); this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
this.lazyTopDownAnalyzer.setTrace(bindingTrace); this.lazyTopDownAnalyzer.setTrace(bindingTrace);
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
@@ -280,24 +267,6 @@ public class InjectorForLazyBodyResolve {
overrideResolver.setTrace(bindingTrace); overrideResolver.setTrace(bindingTrace);
topDownAnalyzer.setBodyResolver(bodyResolver);
topDownAnalyzer.setDeclarationResolver(declarationResolver);
topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
topDownAnalyzer.setOverloadResolver(overloadResolver);
topDownAnalyzer.setOverrideResolver(overrideResolver);
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
topDownAnalyzer.setVarianceChecker(varianceChecker);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
typeHierarchyResolver.setTrace(bindingTrace);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTrace(bindingTrace);
} }
@PreDestroy @PreDestroy
@@ -62,10 +62,6 @@ import org.jetbrains.kotlin.resolve.DeclarationResolver;
import org.jetbrains.kotlin.resolve.ImportsResolver; import org.jetbrains.kotlin.resolve.ImportsResolver;
import org.jetbrains.kotlin.resolve.OverloadResolver; import org.jetbrains.kotlin.resolve.OverloadResolver;
import org.jetbrains.kotlin.resolve.OverrideResolver; import org.jetbrains.kotlin.resolve.OverrideResolver;
import org.jetbrains.kotlin.resolve.TopDownAnalyzer;
import org.jetbrains.kotlin.resolve.MutablePackageFragmentProvider;
import org.jetbrains.kotlin.resolve.TypeHierarchyResolver;
import org.jetbrains.kotlin.resolve.ScriptHeaderResolver;
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
@@ -120,10 +116,6 @@ public class InjectorForLazyTopDownAnalyzerBasic {
private final ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private final OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private final OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private final TopDownAnalyzer topDownAnalyzer;
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
private final TypeHierarchyResolver typeHierarchyResolver;
private final ScriptHeaderResolver scriptHeaderResolver;
private final VarianceChecker varianceChecker; private final VarianceChecker varianceChecker;
public InjectorForLazyTopDownAnalyzerBasic( public InjectorForLazyTopDownAnalyzerBasic(
@@ -179,10 +171,6 @@ public class InjectorForLazyTopDownAnalyzerBasic {
this.importsResolver = new ImportsResolver(); this.importsResolver = new ImportsResolver();
this.overloadResolver = new OverloadResolver(); this.overloadResolver = new OverloadResolver();
this.overrideResolver = new OverrideResolver(); this.overrideResolver = new OverrideResolver();
this.topDownAnalyzer = new TopDownAnalyzer();
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(module);
this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver();
this.varianceChecker = new VarianceChecker(bindingTrace); this.varianceChecker = new VarianceChecker(bindingTrace);
this.resolveSession.setAnnotationResolve(annotationResolver); this.resolveSession.setAnnotationResolve(annotationResolver);
@@ -199,7 +187,6 @@ public class InjectorForLazyTopDownAnalyzerBasic {
this.lazyTopDownAnalyzer.setModuleDescriptor(module); this.lazyTopDownAnalyzer.setModuleDescriptor(module);
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
this.lazyTopDownAnalyzer.setTrace(bindingTrace); this.lazyTopDownAnalyzer.setTrace(bindingTrace);
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
@@ -298,24 +285,6 @@ public class InjectorForLazyTopDownAnalyzerBasic {
overrideResolver.setTrace(bindingTrace); overrideResolver.setTrace(bindingTrace);
topDownAnalyzer.setBodyResolver(bodyResolver);
topDownAnalyzer.setDeclarationResolver(declarationResolver);
topDownAnalyzer.setModuleDescriptor(module);
topDownAnalyzer.setOverloadResolver(overloadResolver);
topDownAnalyzer.setOverrideResolver(overrideResolver);
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
topDownAnalyzer.setVarianceChecker(varianceChecker);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
typeHierarchyResolver.setTrace(bindingTrace);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTrace(bindingTrace);
} }
@PreDestroy @PreDestroy
@@ -60,8 +60,6 @@ public class LazyTopDownAnalyzer {
private BodyResolver bodyResolver; private BodyResolver bodyResolver;
private TopDownAnalyzer topDownAnalyzer;
@Inject @Inject
public void setKotlinCodeAnalyzer(@NotNull KotlinCodeAnalyzer kotlinCodeAnalyzer) { public void setKotlinCodeAnalyzer(@NotNull KotlinCodeAnalyzer kotlinCodeAnalyzer) {
this.resolveSession = kotlinCodeAnalyzer; this.resolveSession = kotlinCodeAnalyzer;
@@ -102,22 +100,13 @@ public class LazyTopDownAnalyzer {
this.bodyResolver = bodyResolver; this.bodyResolver = bodyResolver;
} }
@Inject
public void setTopDownAnalyzer(@NotNull TopDownAnalyzer topDownAnalyzer) {
this.topDownAnalyzer = topDownAnalyzer;
}
@NotNull @NotNull
public TopDownAnalysisContext analyzeFiles( public TopDownAnalysisContext analyzeFiles(
@NotNull TopDownAnalysisParameters topDownAnalysisParameters, @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
@NotNull Collection<JetFile> files, @NotNull Collection<JetFile> files,
@NotNull List<? extends PackageFragmentProvider> additionalProviders @NotNull List<? extends PackageFragmentProvider> additionalProviders
) { ) {
if (!topDownAnalysisParameters.isLazy()) { assert topDownAnalysisParameters.isLazy() : "Lazy analyzer is run in non-lazy mode";
return topDownAnalyzer.analyzeFiles(
topDownAnalysisParameters, files,
additionalProviders.toArray(new PackageFragmentProvider[additionalProviders.size()]));
}
PackageFragmentProvider provider; PackageFragmentProvider provider;
if (additionalProviders.isEmpty()) { if (additionalProviders.isEmpty()) {
@@ -26,7 +26,6 @@ import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory; import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
import org.jetbrains.kotlin.resolve.lazy.ResolveSession; import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer; import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
import org.jetbrains.kotlin.resolve.MutablePackageFragmentProvider;
import org.jetbrains.kotlin.js.resolve.KotlinJsCheckerProvider; import org.jetbrains.kotlin.js.resolve.KotlinJsCheckerProvider;
import org.jetbrains.kotlin.types.DynamicTypesAllowed; import org.jetbrains.kotlin.types.DynamicTypesAllowed;
import org.jetbrains.kotlin.resolve.AnnotationResolver; import org.jetbrains.kotlin.resolve.AnnotationResolver;
@@ -63,9 +62,6 @@ import org.jetbrains.kotlin.resolve.DeclarationResolver;
import org.jetbrains.kotlin.resolve.ImportsResolver; import org.jetbrains.kotlin.resolve.ImportsResolver;
import org.jetbrains.kotlin.resolve.OverloadResolver; import org.jetbrains.kotlin.resolve.OverloadResolver;
import org.jetbrains.kotlin.resolve.OverrideResolver; import org.jetbrains.kotlin.resolve.OverrideResolver;
import org.jetbrains.kotlin.resolve.TopDownAnalyzer;
import org.jetbrains.kotlin.resolve.TypeHierarchyResolver;
import org.jetbrains.kotlin.resolve.ScriptHeaderResolver;
import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy; import javax.annotation.PreDestroy;
@@ -84,7 +80,6 @@ public class InjectorForTopDownAnalyzerForJs {
private final DeclarationProviderFactory declarationProviderFactory; private final DeclarationProviderFactory declarationProviderFactory;
private final ResolveSession resolveSession; private final ResolveSession resolveSession;
private final LazyTopDownAnalyzer lazyTopDownAnalyzer; private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
private final KotlinJsCheckerProvider kotlinJsCheckerProvider; private final KotlinJsCheckerProvider kotlinJsCheckerProvider;
private final DynamicTypesAllowed dynamicTypesAllowed; private final DynamicTypesAllowed dynamicTypesAllowed;
private final AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
@@ -121,9 +116,6 @@ public class InjectorForTopDownAnalyzerForJs {
private final ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private final OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private final OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private final TopDownAnalyzer topDownAnalyzer;
private final TypeHierarchyResolver typeHierarchyResolver;
private final ScriptHeaderResolver scriptHeaderResolver;
private final VarianceChecker varianceChecker; private final VarianceChecker varianceChecker;
public InjectorForTopDownAnalyzerForJs( public InjectorForTopDownAnalyzerForJs(
@@ -143,7 +135,6 @@ public class InjectorForTopDownAnalyzerForJs {
this.declarationProviderFactory = declarationProviderFactory; this.declarationProviderFactory = declarationProviderFactory;
this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace); this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace);
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer(); this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(module);
this.kotlinJsCheckerProvider = KotlinJsCheckerProvider.INSTANCE$; this.kotlinJsCheckerProvider = KotlinJsCheckerProvider.INSTANCE$;
this.dynamicTypesAllowed = new DynamicTypesAllowed(); this.dynamicTypesAllowed = new DynamicTypesAllowed();
this.annotationResolver = new AnnotationResolver(); this.annotationResolver = new AnnotationResolver();
@@ -180,9 +171,6 @@ public class InjectorForTopDownAnalyzerForJs {
this.importsResolver = new ImportsResolver(); this.importsResolver = new ImportsResolver();
this.overloadResolver = new OverloadResolver(); this.overloadResolver = new OverloadResolver();
this.overrideResolver = new OverrideResolver(); this.overrideResolver = new OverrideResolver();
this.topDownAnalyzer = new TopDownAnalyzer();
this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptHeaderResolver = new ScriptHeaderResolver();
this.varianceChecker = new VarianceChecker(bindingTrace); this.varianceChecker = new VarianceChecker(bindingTrace);
this.resolveSession.setAnnotationResolve(annotationResolver); this.resolveSession.setAnnotationResolve(annotationResolver);
@@ -199,7 +187,6 @@ public class InjectorForTopDownAnalyzerForJs {
this.lazyTopDownAnalyzer.setModuleDescriptor(module); this.lazyTopDownAnalyzer.setModuleDescriptor(module);
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
this.lazyTopDownAnalyzer.setTrace(bindingTrace); this.lazyTopDownAnalyzer.setTrace(bindingTrace);
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
@@ -298,24 +285,6 @@ public class InjectorForTopDownAnalyzerForJs {
overrideResolver.setTrace(bindingTrace); overrideResolver.setTrace(bindingTrace);
topDownAnalyzer.setBodyResolver(bodyResolver);
topDownAnalyzer.setDeclarationResolver(declarationResolver);
topDownAnalyzer.setModuleDescriptor(module);
topDownAnalyzer.setOverloadResolver(overloadResolver);
topDownAnalyzer.setOverrideResolver(overrideResolver);
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
topDownAnalyzer.setVarianceChecker(varianceChecker);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
typeHierarchyResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
typeHierarchyResolver.setTrace(bindingTrace);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTrace(bindingTrace);
} }
@PreDestroy @PreDestroy