LazyDeclarationResolver extracted from ResolveSession
This commit is contained in:
+16
-9
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.kotlin.load.java.lazy.ModuleClassResolver;
|
||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
|
||||
@@ -63,10 +64,10 @@ import org.jetbrains.kotlin.resolve.calls.CallCompleter;
|
||||
import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
|
||||
import org.jetbrains.kotlin.psi.JetImportsFactory;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
|
||||
import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
|
||||
import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
|
||||
import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
|
||||
import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider;
|
||||
import org.jetbrains.kotlin.load.java.lazy.GlobalJavaResolverContext;
|
||||
import org.jetbrains.kotlin.load.kotlin.DeserializedDescriptorResolver;
|
||||
@@ -89,6 +90,7 @@ public class InjectorForLazyResolveWithJava {
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final DeclarationProviderFactory declarationProviderFactory;
|
||||
private final ResolveSession resolveSession;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final GlobalSearchScope moduleContentScope;
|
||||
private final ModuleClassResolver moduleClassResolver;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
@@ -127,10 +129,10 @@ public class InjectorForLazyResolveWithJava {
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final TaskPrioritizer taskPrioritizer;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final AdditionalFileScopeProvider additionalFileScopeProvider;
|
||||
private final LazyDeclarationResolver lazyDeclarationResolver;
|
||||
private final DeclarationScopeProviderImpl declarationScopeProvider;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final AdditionalFileScopeProvider additionalFileScopeProvider;
|
||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||
@@ -156,6 +158,7 @@ public class InjectorForLazyResolveWithJava {
|
||||
this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap();
|
||||
this.declarationProviderFactory = declarationProviderFactory;
|
||||
this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace);
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
this.moduleContentScope = moduleContentScope;
|
||||
this.moduleClassResolver = moduleClassResolver;
|
||||
this.javaClassFinder = new JavaClassFinderImpl();
|
||||
@@ -197,10 +200,10 @@ public class InjectorForLazyResolveWithJava {
|
||||
this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
|
||||
this.taskPrioritizer = new TaskPrioritizer(storageManager);
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
|
||||
this.declarationScopeProvider = new DeclarationScopeProviderImpl(getResolveSession());
|
||||
this.lazyDeclarationResolver = new LazyDeclarationResolver(globalContext, bindingTrace);
|
||||
this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
|
||||
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
|
||||
this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
|
||||
@@ -208,11 +211,15 @@ public class InjectorForLazyResolveWithJava {
|
||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||
this.resolveSession.setJetImportFactory(jetImportsFactory);
|
||||
this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
|
||||
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
this.resolveSession.setScopeProvider(scopeProvider);
|
||||
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
||||
this.resolveSession.setTypeResolver(typeResolver);
|
||||
|
||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
|
||||
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
||||
javaClassFinder.setProject(project);
|
||||
javaClassFinder.setScope(moduleContentScope);
|
||||
@@ -291,8 +298,8 @@ public class InjectorForLazyResolveWithJava {
|
||||
|
||||
jetImportsFactory.setProject(project);
|
||||
|
||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
|
||||
|
||||
declarationScopeProvider.setFileScopeProvider(scopeProvider);
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
|
||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
|
||||
@@ -66,7 +67,7 @@ import org.jetbrains.kotlin.resolve.calls.CallCompleter;
|
||||
import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
|
||||
import org.jetbrains.kotlin.psi.JetImportsFactory;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
|
||||
import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
|
||||
import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
|
||||
import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.kotlin.resolve.BodyResolver;
|
||||
@@ -100,6 +101,7 @@ public class InjectorForReplWithJava {
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final DeclarationProviderFactory declarationProviderFactory;
|
||||
private final ResolveSession resolveSession;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final GlobalSearchScope moduleContentScope;
|
||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
@@ -141,7 +143,7 @@ public class InjectorForReplWithJava {
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final TaskPrioritizer taskPrioritizer;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final LazyDeclarationResolver lazyDeclarationResolver;
|
||||
private final DeclarationScopeProviderImpl declarationScopeProvider;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final BodyResolver bodyResolver;
|
||||
@@ -178,6 +180,7 @@ public class InjectorForReplWithJava {
|
||||
this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap();
|
||||
this.declarationProviderFactory = declarationProviderFactory;
|
||||
this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace);
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
this.moduleContentScope = moduleContentScope;
|
||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
||||
this.javaClassFinder = new JavaClassFinderImpl();
|
||||
@@ -224,8 +227,8 @@ public class InjectorForReplWithJava {
|
||||
this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
|
||||
this.taskPrioritizer = new TaskPrioritizer(storageManager);
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
this.declarationScopeProvider = new DeclarationScopeProviderImpl(getResolveSession());
|
||||
this.lazyDeclarationResolver = new LazyDeclarationResolver(globalContext, bindingTrace);
|
||||
this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
@@ -241,11 +244,15 @@ public class InjectorForReplWithJava {
|
||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||
this.resolveSession.setJetImportFactory(jetImportsFactory);
|
||||
this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
|
||||
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
this.resolveSession.setScopeProvider(scopeProvider);
|
||||
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
||||
this.resolveSession.setTypeResolver(typeResolver);
|
||||
|
||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
|
||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||
this.lazyTopDownAnalyzer.setKotlinCodeAnalyzer(resolveSession);
|
||||
@@ -335,8 +342,8 @@ public class InjectorForReplWithJava {
|
||||
|
||||
jetImportsFactory.setProject(project);
|
||||
|
||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
|
||||
|
||||
declarationScopeProvider.setFileScopeProvider(scopeProvider);
|
||||
|
||||
|
||||
+16
-9
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
|
||||
import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer;
|
||||
import org.jetbrains.kotlin.resolve.jvm.JavaDescriptorResolver;
|
||||
@@ -65,10 +66,10 @@ import org.jetbrains.kotlin.resolve.calls.CallCompleter;
|
||||
import org.jetbrains.kotlin.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer;
|
||||
import org.jetbrains.kotlin.psi.JetImportsFactory;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
|
||||
import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver;
|
||||
import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl;
|
||||
import org.jetbrains.kotlin.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider;
|
||||
import org.jetbrains.kotlin.resolve.BodyResolver;
|
||||
import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer;
|
||||
import org.jetbrains.kotlin.resolve.DeclarationsChecker;
|
||||
@@ -100,6 +101,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final DeclarationProviderFactory declarationProviderFactory;
|
||||
private final ResolveSession resolveSession;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final GlobalSearchScope moduleContentScope;
|
||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
@@ -140,10 +142,10 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final TaskPrioritizer taskPrioritizer;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final AdditionalFileScopeProvider additionalFileScopeProvider;
|
||||
private final LazyDeclarationResolver lazyDeclarationResolver;
|
||||
private final DeclarationScopeProviderImpl declarationScopeProvider;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final AdditionalFileScopeProvider additionalFileScopeProvider;
|
||||
private final BodyResolver bodyResolver;
|
||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private final DeclarationsChecker declarationsChecker;
|
||||
@@ -177,6 +179,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap();
|
||||
this.declarationProviderFactory = declarationProviderFactory;
|
||||
this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace);
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
this.moduleContentScope = moduleContentScope;
|
||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
||||
this.javaClassFinder = new JavaClassFinderImpl();
|
||||
@@ -222,10 +225,10 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver);
|
||||
this.taskPrioritizer = new TaskPrioritizer(storageManager);
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
|
||||
this.declarationScopeProvider = new DeclarationScopeProviderImpl(getResolveSession());
|
||||
this.lazyDeclarationResolver = new LazyDeclarationResolver(globalContext, bindingTrace);
|
||||
this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver);
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.additionalFileScopeProvider = new AdditionalFileScopeProvider();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
this.declarationsChecker = new DeclarationsChecker();
|
||||
@@ -240,11 +243,15 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||
this.resolveSession.setJetImportFactory(jetImportsFactory);
|
||||
this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver);
|
||||
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
this.resolveSession.setScopeProvider(scopeProvider);
|
||||
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
||||
this.resolveSession.setTypeResolver(typeResolver);
|
||||
|
||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
|
||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||
this.lazyTopDownAnalyzer.setKotlinCodeAnalyzer(resolveSession);
|
||||
@@ -334,8 +341,8 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
|
||||
jetImportsFactory.setProject(project);
|
||||
|
||||
scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider);
|
||||
scopeProvider.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider);
|
||||
lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession);
|
||||
|
||||
declarationScopeProvider.setFileScopeProvider(scopeProvider);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user