LTDA: Injector with lazy TDA for JVM target
- REPL is broken - Tests for Kotlin - Java - Kotlin hierarchy may fail
This commit is contained in:
@@ -106,9 +106,11 @@ public class ReplInterpreter {
|
|||||||
new ExceptionTracker(), // dummy
|
new ExceptionTracker(), // dummy
|
||||||
Predicates.<PsiFile>alwaysTrue()
|
Predicates.<PsiFile>alwaysTrue()
|
||||||
);
|
);
|
||||||
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
|
||||||
|
// FIXME: Make it work for lazy resolve
|
||||||
|
InjectorForTopDownAnalyzerForJvm injector = null;
|
||||||
this.topDownAnalysisContext = new TopDownAnalysisContext(topDownAnalysisParameters);
|
this.topDownAnalysisContext = new TopDownAnalysisContext(topDownAnalysisParameters);
|
||||||
this.topDownAnalyzer = injector.getTopDownAnalyzer();
|
this.topDownAnalyzer = null;
|
||||||
|
|
||||||
module.initialize(new CompositePackageFragmentProvider(
|
module.initialize(new CompositePackageFragmentProvider(
|
||||||
Arrays.asList(
|
Arrays.asList(
|
||||||
|
|||||||
+52
-69
@@ -20,18 +20,18 @@ import com.intellij.openapi.project.Project;
|
|||||||
import org.jetbrains.jet.context.GlobalContext;
|
import org.jetbrains.jet.context.GlobalContext;
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import com.intellij.psi.search.GlobalSearchScope;
|
||||||
|
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava;
|
||||||
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||||
import com.intellij.psi.search.GlobalSearchScope;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
|
import org.jetbrains.jet.lang.resolve.java.resolver.LazyResolveBasedCache;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
|
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
||||||
@@ -40,7 +40,7 @@ import org.jetbrains.jet.lang.resolve.java.sam.SamConversionResolverImpl;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSourceElementFactoryImpl;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSourceElementFactoryImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.SingleModuleClassResolver;
|
import org.jetbrains.jet.lang.resolve.java.lazy.SingleModuleClassResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaFlexibleTypeCapabilitiesProvider;
|
import org.jetbrains.jet.lang.resolve.java.JavaFlexibleTypeCapabilitiesProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||||
@@ -72,8 +72,7 @@ import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
|||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
@@ -90,18 +89,18 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
private final GlobalContext globalContext;
|
private final GlobalContext globalContext;
|
||||||
private final StorageManager storageManager;
|
private final StorageManager storageManager;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final ModuleDescriptor moduleDescriptor;
|
private final ModuleDescriptorImpl module;
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final GlobalSearchScope moduleContentScope;
|
||||||
|
private final DeclarationProviderFactory declarationProviderFactory;
|
||||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final ResolveSession resolveSession;
|
||||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||||
private final DeserializationComponentsForJava deserializationComponentsForJava;
|
private final DeserializationComponentsForJava deserializationComponentsForJava;
|
||||||
private final AdditionalCheckerProvider additionalCheckerProvider;
|
private final VirtualFileFinder virtualFileFinder;
|
||||||
private final GlobalSearchScope globalSearchScope;
|
|
||||||
private final JavaClassFinderImpl javaClassFinder;
|
private final JavaClassFinderImpl javaClassFinder;
|
||||||
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
||||||
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
|
private final LazyResolveBasedCache lazyResolveBasedCache;
|
||||||
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
||||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||||
@@ -110,7 +109,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
private final JavaSourceElementFactoryImpl javaSourceElementFactory;
|
private final JavaSourceElementFactoryImpl javaSourceElementFactory;
|
||||||
private final SingleModuleClassResolver singleModuleClassResolver;
|
private final SingleModuleClassResolver singleModuleClassResolver;
|
||||||
private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
|
private final JavaFlexibleTypeCapabilitiesProvider javaFlexibleTypeCapabilitiesProvider;
|
||||||
private final VirtualFileFinder virtualFileFinder;
|
private final AdditionalCheckerProvider additionalCheckerProvider;
|
||||||
private final BodyResolver bodyResolver;
|
private final BodyResolver bodyResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
@@ -142,8 +141,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
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 TypeHierarchyResolver typeHierarchyResolver;
|
private final ScopeProvider scopeProvider;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
|
||||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
@@ -154,38 +152,40 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@NotNull GlobalContext globalContext,
|
@NotNull GlobalContext globalContext,
|
||||||
@NotNull BindingTrace bindingTrace,
|
@NotNull BindingTrace bindingTrace,
|
||||||
@NotNull ModuleDescriptor moduleDescriptor
|
@NotNull ModuleDescriptorImpl module,
|
||||||
|
@NotNull GlobalSearchScope moduleContentScope,
|
||||||
|
@NotNull DeclarationProviderFactory declarationProviderFactory
|
||||||
) {
|
) {
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.globalContext = globalContext;
|
this.globalContext = globalContext;
|
||||||
this.storageManager = globalContext.getStorageManager();
|
this.storageManager = globalContext.getStorageManager();
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
this.module = module;
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap();
|
||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.moduleContentScope = moduleContentScope;
|
||||||
|
this.declarationProviderFactory = declarationProviderFactory;
|
||||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.resolveSession = new ResolveSession(project, globalContext, module, declarationProviderFactory, bindingTrace);
|
||||||
this.javaClassFinder = new JavaClassFinderImpl();
|
this.javaClassFinder = new JavaClassFinderImpl();
|
||||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory.SERVICE.getInstance(project).create(moduleContentScope);
|
||||||
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter);
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver(traceBasedErrorReporter);
|
||||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||||
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
||||||
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
||||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
this.lazyResolveBasedCache = new LazyResolveBasedCache();
|
||||||
this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
|
this.javaPropertyInitializerEvaluator = new JavaPropertyInitializerEvaluatorImpl();
|
||||||
this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
|
this.samConversionResolver = SamConversionResolverImpl.INSTANCE$;
|
||||||
this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
|
this.javaSourceElementFactory = new JavaSourceElementFactoryImpl();
|
||||||
this.singleModuleClassResolver = new SingleModuleClassResolver();
|
this.singleModuleClassResolver = new SingleModuleClassResolver();
|
||||||
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, singleModuleClassResolver);
|
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, lazyResolveBasedCache, javaPropertyInitializerEvaluator, samConversionResolver, javaSourceElementFactory, singleModuleClassResolver);
|
||||||
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModuleDescriptor());
|
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, module);
|
||||||
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModuleDescriptor());
|
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, module);
|
||||||
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
|
this.javaClassDataFinder = new JavaClassDataFinder(virtualFileFinder, deserializedDescriptorResolver);
|
||||||
this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(getModuleDescriptor(), storageManager, virtualFileFinder, traceBasedErrorReporter);
|
this.binaryClassAnnotationAndConstantLoader = new BinaryClassAnnotationAndConstantLoaderImpl(module, storageManager, virtualFileFinder, traceBasedErrorReporter);
|
||||||
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, getModuleDescriptor(), javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
|
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, binaryClassAnnotationAndConstantLoader, lazyJavaPackageFragmentProvider);
|
||||||
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider.INSTANCE$;
|
|
||||||
this.globalSearchScope = com.intellij.psi.search.GlobalSearchScope.allScope(project);
|
|
||||||
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
|
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
|
||||||
|
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider.INSTANCE$;
|
||||||
this.bodyResolver = new BodyResolver();
|
this.bodyResolver = new BodyResolver();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
@@ -195,13 +195,13 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices);
|
this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices);
|
||||||
this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver);
|
this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver);
|
||||||
this.forLoopConventionsChecker = new ForLoopConventionsChecker();
|
this.forLoopConventionsChecker = new ForLoopConventionsChecker();
|
||||||
this.reflectionTypes = new ReflectionTypes(getModuleDescriptor());
|
this.reflectionTypes = new ReflectionTypes(module);
|
||||||
this.callExpressionResolver = new CallExpressionResolver();
|
this.callExpressionResolver = new CallExpressionResolver();
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
this.lazinessToken = new LazinessToken();
|
this.lazinessToken = new LazinessToken();
|
||||||
this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, getModuleDescriptor(), javaFlexibleTypeCapabilitiesProvider, storageManager, lazinessToken);
|
this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, javaFlexibleTypeCapabilitiesProvider, storageManager, lazinessToken);
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.partialBodyResolveProvider = new PartialBodyResolveProvider();
|
this.partialBodyResolveProvider = new PartialBodyResolveProvider();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
@@ -217,36 +217,32 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
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.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
|
||||||
|
|
||||||
this.topDownAnalyzer.setAdditionalCheckerProvider(additionalCheckerProvider);
|
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
|
||||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
|
||||||
this.topDownAnalyzer.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
|
|
||||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
|
||||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
|
||||||
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
|
||||||
this.topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
|
||||||
this.topDownAnalyzer.setProject(project);
|
|
||||||
this.topDownAnalyzer.setTrace(bindingTrace);
|
|
||||||
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
|
||||||
|
|
||||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||||
this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
this.lazyTopDownAnalyzer.setKotlinCodeAnalyzer(resolveSession);
|
||||||
|
this.lazyTopDownAnalyzer.setModuleDescriptor(module);
|
||||||
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
|
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||||
|
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||||
|
this.resolveSession.setJetImportFactory(jetImportsFactory);
|
||||||
|
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
|
this.resolveSession.setScopeProvider(scopeProvider);
|
||||||
|
this.resolveSession.setScriptBodyResolver(scriptBodyResolver);
|
||||||
|
this.resolveSession.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
javaClassFinder.setScope(globalSearchScope);
|
javaClassFinder.setScope(moduleContentScope);
|
||||||
|
|
||||||
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
traceBasedExternalSignatureResolver.setProject(project);
|
traceBasedExternalSignatureResolver.setProject(project);
|
||||||
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
lazyResolveBasedCache.setSession(resolveSession);
|
||||||
|
|
||||||
traceBasedErrorReporter.setTrace(bindingTrace);
|
traceBasedErrorReporter.setTrace(bindingTrace);
|
||||||
|
|
||||||
@@ -331,7 +327,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
declarationResolver.setTrace(bindingTrace);
|
declarationResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
importsResolver.setImportsFactory(jetImportsFactory);
|
importsResolver.setImportsFactory(jetImportsFactory);
|
||||||
importsResolver.setModuleDescriptor(moduleDescriptor);
|
importsResolver.setModuleDescriptor(module);
|
||||||
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
importsResolver.setTrace(bindingTrace);
|
importsResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
@@ -341,15 +337,6 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
|
|
||||||
overrideResolver.setTrace(bindingTrace);
|
overrideResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
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();
|
||||||
@@ -360,18 +347,14 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
public void destroy() {
|
public void destroy() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModuleDescriptor getModuleDescriptor() {
|
|
||||||
return this.moduleDescriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TopDownAnalyzer getTopDownAnalyzer() {
|
|
||||||
return this.topDownAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
|
public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
|
||||||
return this.lazyTopDownAnalyzer;
|
return this.lazyTopDownAnalyzer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ResolveSession getResolveSession() {
|
||||||
|
return this.resolveSession;
|
||||||
|
}
|
||||||
|
|
||||||
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
||||||
return this.javaDescriptorResolver;
|
return this.javaDescriptorResolver;
|
||||||
}
|
}
|
||||||
|
|||||||
+25
-4
@@ -20,11 +20,13 @@ import com.google.common.base.Predicate;
|
|||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
|
import com.intellij.psi.search.GlobalSearchScope;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.analyzer.AnalysisResult;
|
import org.jetbrains.jet.analyzer.AnalysisResult;
|
||||||
import org.jetbrains.jet.context.ContextPackage;
|
import org.jetbrains.jet.context.ContextPackage;
|
||||||
import org.jetbrains.jet.context.GlobalContext;
|
import org.jetbrains.jet.context.GlobalContext;
|
||||||
|
import org.jetbrains.jet.context.GlobalContextImpl;
|
||||||
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
|
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider;
|
import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl;
|
||||||
@@ -36,7 +38,9 @@ import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
|
|||||||
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.kotlin.incremental.IncrementalPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache;
|
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCache;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCacheProvider;
|
import org.jetbrains.jet.lang.resolve.kotlin.incremental.cache.IncrementalCacheProvider;
|
||||||
|
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
|
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -64,7 +68,11 @@ public enum TopDownAnalyzerFacadeForJVM {
|
|||||||
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
||||||
@NotNull ModuleDescriptorImpl module
|
@NotNull ModuleDescriptorImpl module
|
||||||
) {
|
) {
|
||||||
return analyzeFilesWithJavaIntegration(project, files, trace, topDownAnalysisParameters, module, null, null);
|
GlobalContext globalContext = new GlobalContextImpl(
|
||||||
|
(LockBasedStorageManager) topDownAnalysisParameters.getStorageManager(),
|
||||||
|
topDownAnalysisParameters.getExceptionTracker());
|
||||||
|
|
||||||
|
return analyzeFilesWithJavaIntegration(project, files, trace, topDownAnalysisParameters, module, globalContext, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -103,7 +111,8 @@ public enum TopDownAnalyzerFacadeForJVM {
|
|||||||
);
|
);
|
||||||
|
|
||||||
return analyzeFilesWithJavaIntegration(
|
return analyzeFilesWithJavaIntegration(
|
||||||
project, files, trace, topDownAnalysisParameters, module, moduleIds, incrementalCacheProvider);
|
project, files, trace, topDownAnalysisParameters, module,
|
||||||
|
globalContext, moduleIds, incrementalCacheProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -113,10 +122,22 @@ public enum TopDownAnalyzerFacadeForJVM {
|
|||||||
BindingTrace trace,
|
BindingTrace trace,
|
||||||
TopDownAnalysisParameters topDownAnalysisParameters,
|
TopDownAnalysisParameters topDownAnalysisParameters,
|
||||||
ModuleDescriptorImpl module,
|
ModuleDescriptorImpl module,
|
||||||
|
GlobalContext globalContext,
|
||||||
@Nullable List<String> moduleIds,
|
@Nullable List<String> moduleIds,
|
||||||
@Nullable IncrementalCacheProvider incrementalCacheProvider
|
@Nullable IncrementalCacheProvider incrementalCacheProvider
|
||||||
) {
|
) {
|
||||||
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
FileBasedDeclarationProviderFactory providerFactory =
|
||||||
|
new FileBasedDeclarationProviderFactory(topDownAnalysisParameters.getStorageManager(), files);
|
||||||
|
|
||||||
|
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(
|
||||||
|
project,
|
||||||
|
globalContext,
|
||||||
|
trace,
|
||||||
|
module,
|
||||||
|
GlobalSearchScope.allScope(project),
|
||||||
|
providerFactory
|
||||||
|
);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>();
|
List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>();
|
||||||
|
|
||||||
@@ -135,7 +156,7 @@ public enum TopDownAnalyzerFacadeForJVM {
|
|||||||
}
|
}
|
||||||
additionalProviders.add(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
additionalProviders.add(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||||
|
|
||||||
injector.getTopDownAnalyzer().analyzeFiles(topDownAnalysisParameters, files, additionalProviders);
|
injector.getLazyTopDownAnalyzer().analyzeFiles(topDownAnalysisParameters, files, additionalProviders);
|
||||||
return AnalysisResult.success(trace.getBindingContext(), module);
|
return AnalysisResult.success(trace.getBindingContext(), module);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.di;
|
|||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.context.GlobalContext;
|
import org.jetbrains.jet.context.GlobalContext;
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
|
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
@@ -56,7 +57,6 @@ import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
|||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -67,6 +67,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
private final Project project;
|
private final Project project;
|
||||||
private final GlobalContext globalContext;
|
private final GlobalContext globalContext;
|
||||||
private final StorageManager storageManager;
|
private final StorageManager storageManager;
|
||||||
|
private final KotlinCodeAnalyzer analyzer;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final AdditionalCheckerProvider additionalCheckerProvider;
|
private final AdditionalCheckerProvider additionalCheckerProvider;
|
||||||
private final ModuleDescriptor moduleDescriptor;
|
private final ModuleDescriptor moduleDescriptor;
|
||||||
@@ -115,6 +116,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
this.project = project;
|
this.project = project;
|
||||||
this.globalContext = globalContext;
|
this.globalContext = globalContext;
|
||||||
this.storageManager = globalContext.getStorageManager();
|
this.storageManager = globalContext.getStorageManager();
|
||||||
|
this.analyzer = analyzer;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.additionalCheckerProvider = additionalCheckerProvider;
|
this.additionalCheckerProvider = additionalCheckerProvider;
|
||||||
this.moduleDescriptor = analyzer.getModuleDescriptor();
|
this.moduleDescriptor = analyzer.getModuleDescriptor();
|
||||||
@@ -155,6 +157,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
|
|
||||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||||
|
this.lazyTopDownAnalyzer.setKotlinCodeAnalyzer(analyzer);
|
||||||
this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||||
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
|
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||||
@@ -74,7 +73,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
private final ModuleDescriptor moduleDescriptor;
|
private final ModuleDescriptor moduleDescriptor;
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final AdditionalCheckerProvider additionalCheckerProvider;
|
private final AdditionalCheckerProvider additionalCheckerProvider;
|
||||||
private final BodyResolver bodyResolver;
|
private final BodyResolver bodyResolver;
|
||||||
@@ -126,7 +124,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
this.additionalCheckerProvider = additionalCheckerProvider;
|
this.additionalCheckerProvider = additionalCheckerProvider;
|
||||||
this.bodyResolver = new BodyResolver();
|
this.bodyResolver = new BodyResolver();
|
||||||
@@ -167,7 +164,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.topDownAnalyzer.setAdditionalCheckerProvider(additionalCheckerProvider);
|
this.topDownAnalyzer.setAdditionalCheckerProvider(additionalCheckerProvider);
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||||
this.topDownAnalyzer.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
|
|
||||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||||
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
@@ -176,13 +172,6 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.topDownAnalyzer.setTrace(bindingTrace);
|
this.topDownAnalyzer.setTrace(bindingTrace);
|
||||||
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
|
||||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
|
||||||
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
bodyResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
bodyResolver.setCallResolver(callResolver);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||||
@@ -292,8 +281,4 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
return this.topDownAnalyzer;
|
return this.topDownAnalyzer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
|
|
||||||
return this.lazyTopDownAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ public class LazyTopDownAnalyzer {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private BodyResolver bodyResolver = null;
|
private BodyResolver bodyResolver = null;
|
||||||
|
|
||||||
|
@Inject
|
||||||
public void setKotlinCodeAnalyzer(@NotNull KotlinCodeAnalyzer kotlinCodeAnalyzer) {
|
public void setKotlinCodeAnalyzer(@NotNull KotlinCodeAnalyzer kotlinCodeAnalyzer) {
|
||||||
this.resolveSession = kotlinCodeAnalyzer;
|
this.resolveSession = kotlinCodeAnalyzer;
|
||||||
}
|
}
|
||||||
@@ -113,36 +114,23 @@ public class LazyTopDownAnalyzer {
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public TopDownAnalysisContext analyzeFiles(
|
public TopDownAnalysisContext analyzeFiles(
|
||||||
@NotNull Project project,
|
|
||||||
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
@NotNull TopDownAnalysisParameters topDownAnalysisParameters,
|
||||||
@NotNull Collection<JetFile> files,
|
@NotNull Collection<JetFile> files,
|
||||||
@NotNull List<? extends PackageFragmentProvider> additionalProviders,
|
@NotNull List<? extends PackageFragmentProvider> additionalProviders
|
||||||
AdditionalCheckerProvider additionalCheckerProvider
|
|
||||||
) {
|
) {
|
||||||
TopDownAnalysisContext c = new TopDownAnalysisContext(topDownAnalysisParameters);
|
PackageFragmentProvider provider;
|
||||||
|
if (additionalProviders.isEmpty()) {
|
||||||
|
provider = resolveSession.getPackageFragmentProvider();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
provider = new CompositePackageFragmentProvider(KotlinPackage.plus(
|
||||||
|
Arrays.asList(resolveSession.getPackageFragmentProvider()),
|
||||||
|
additionalProviders));
|
||||||
|
}
|
||||||
|
|
||||||
ResolveSession resolveSession = new InjectorForLazyResolve(
|
((ModuleDescriptorImpl) resolveSession.getModuleDescriptor()).initialize(provider);
|
||||||
project,
|
|
||||||
new GlobalContextImpl((LockBasedStorageManager) c.getStorageManager(), c.getExceptionTracker()), // TODO
|
|
||||||
(ModuleDescriptorImpl) moduleDescriptor, // TODO
|
|
||||||
new FileBasedDeclarationProviderFactory(c.getStorageManager(), files),
|
|
||||||
trace,
|
|
||||||
additionalCheckerProvider
|
|
||||||
).getResolveSession();
|
|
||||||
|
|
||||||
CompositePackageFragmentProvider provider =
|
return analyzeDeclarations(topDownAnalysisParameters, files);
|
||||||
new CompositePackageFragmentProvider(KotlinPackage.plus(Arrays.asList(resolveSession.getPackageFragmentProvider()), additionalProviders));
|
|
||||||
|
|
||||||
((ModuleDescriptorImpl) moduleDescriptor).initialize(provider);
|
|
||||||
|
|
||||||
setKotlinCodeAnalyzer(resolveSession);
|
|
||||||
|
|
||||||
analyzeDeclarations(
|
|
||||||
c.getTopDownAnalysisParameters(),
|
|
||||||
files
|
|
||||||
);
|
|
||||||
|
|
||||||
return c;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
|
|||||||
@@ -58,9 +58,6 @@ public class TopDownAnalyzer {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private Project project;
|
private Project project;
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setTrace(@NotNull BindingTrace trace) {
|
public void setTrace(@NotNull BindingTrace trace) {
|
||||||
this.trace = trace;
|
this.trace = trace;
|
||||||
@@ -106,11 +103,6 @@ public class TopDownAnalyzer {
|
|||||||
this.project = project;
|
this.project = project;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setLazyTopDownAnalyzer(@NotNull LazyTopDownAnalyzer lazyTopDownAnalyzer) {
|
|
||||||
this.lazyTopDownAnalyzer = lazyTopDownAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setAdditionalCheckerProvider(@NotNull AdditionalCheckerProvider additionalCheckerProvider) {
|
public void setAdditionalCheckerProvider(@NotNull AdditionalCheckerProvider additionalCheckerProvider) {
|
||||||
this.additionalCheckerProvider = additionalCheckerProvider;
|
this.additionalCheckerProvider = additionalCheckerProvider;
|
||||||
@@ -185,10 +177,7 @@ public class TopDownAnalyzer {
|
|||||||
@NotNull Collection<JetFile> files,
|
@NotNull Collection<JetFile> files,
|
||||||
@NotNull List<PackageFragmentProvider> additionalProviders
|
@NotNull List<PackageFragmentProvider> additionalProviders
|
||||||
) {
|
) {
|
||||||
if (topDownAnalysisParameters.isLazy()) {
|
assert !topDownAnalysisParameters.isLazy() : "Lazy resolve must be disabled for this method";
|
||||||
return lazyTopDownAnalyzer.analyzeFiles(
|
|
||||||
project, topDownAnalysisParameters, files, additionalProviders, additionalCheckerProvider);
|
|
||||||
}
|
|
||||||
|
|
||||||
TopDownAnalysisContext c = new TopDownAnalysisContext(topDownAnalysisParameters);
|
TopDownAnalysisContext c = new TopDownAnalysisContext(topDownAnalysisParameters);
|
||||||
CompositePackageFragmentProvider provider =
|
CompositePackageFragmentProvider provider =
|
||||||
@@ -208,7 +197,6 @@ public class TopDownAnalyzer {
|
|||||||
public MutablePackageFragmentProvider getPackageFragmentProvider() {
|
public MutablePackageFragmentProvider getPackageFragmentProvider() {
|
||||||
return packageFragmentProvider;
|
return packageFragmentProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,10 +19,7 @@ package org.jetbrains.jet.lang.resolve.lazy;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.ReadOnly;
|
import org.jetbrains.annotations.ReadOnly;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||||
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||||
import org.jetbrains.jet.lang.psi.JetScript;
|
import org.jetbrains.jet.lang.psi.JetScript;
|
||||||
@@ -64,4 +61,7 @@ public interface KotlinCodeAnalyzer {
|
|||||||
* Use this method when laziness plays against you, e.g. when lazy descriptors may be accessed in a multi-threaded setting
|
* Use this method when laziness plays against you, e.g. when lazy descriptors may be accessed in a multi-threaded setting
|
||||||
*/
|
*/
|
||||||
void forceResolveAll();
|
void forceResolveAll();
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
PackageFragmentProvider getPackageFragmentProvider();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -178,6 +178,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public PackageFragmentProvider getPackageFragmentProvider() {
|
public PackageFragmentProvider getPackageFragmentProvider() {
|
||||||
return packageFragmentProvider;
|
return packageFragmentProvider;
|
||||||
|
|||||||
@@ -22,7 +22,8 @@ import org.jetbrains.jet.context.GlobalContextImpl
|
|||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl
|
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl
|
||||||
import org.jetbrains.jet.lang.resolve.*
|
import org.jetbrains.jet.lang.resolve.*
|
||||||
import org.jetbrains.jet.lang.resolve.java.*
|
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.*
|
import org.jetbrains.jet.lang.resolve.java.resolver.*
|
||||||
import org.jetbrains.jet.lang.resolve.java.sam.SamConversionResolverImpl
|
import org.jetbrains.jet.lang.resolve.java.sam.SamConversionResolverImpl
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder
|
||||||
@@ -39,8 +40,10 @@ import org.jetbrains.jet.lang.resolve.java.lazy.ModuleClassResolver
|
|||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.SingleModuleClassResolver
|
import org.jetbrains.jet.lang.resolve.java.lazy.SingleModuleClassResolver
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider
|
import org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer
|
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaFlexibleTypeCapabilitiesProvider
|
||||||
import org.jetbrains.jet.context.LazyResolveToken
|
import org.jetbrains.jet.context.LazyResolveToken
|
||||||
|
|
||||||
// NOTE: After making changes, you need to re-generate the injectors.
|
// NOTE: After making changes, you need to re-generate the injectors.
|
||||||
@@ -78,8 +81,7 @@ private fun DependencyInjectorGenerator.commonForTopDownAnalyzer() {
|
|||||||
publicParameter(javaClass<ModuleDescriptor>(), useAsContext = true)
|
publicParameter(javaClass<ModuleDescriptor>(), useAsContext = true)
|
||||||
|
|
||||||
publicFields(
|
publicFields(
|
||||||
javaClass<TopDownAnalyzer>(),
|
javaClass<TopDownAnalyzer>()
|
||||||
javaClass<LazyTopDownAnalyzer>()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
field(javaClass<MutablePackageFragmentProvider>())
|
field(javaClass<MutablePackageFragmentProvider>())
|
||||||
@@ -116,30 +118,42 @@ private fun generatorForTopDownAnalyzerForJs() =
|
|||||||
|
|
||||||
private fun generatorForTopDownAnalyzerForJvm() =
|
private fun generatorForTopDownAnalyzerForJvm() =
|
||||||
generator("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm") {
|
generator("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm") {
|
||||||
commonForTopDownAnalyzer()
|
parameter(javaClass<Project>())
|
||||||
|
parameter(javaClass<GlobalContext>(), useAsContext = true)
|
||||||
|
parameter(javaClass<BindingTrace>())
|
||||||
|
parameter(javaClass<ModuleDescriptorImpl>(), name = "module", useAsContext = true)
|
||||||
|
parameter(javaClass<GlobalSearchScope>(), name = "moduleContentScope")
|
||||||
|
parameter(javaClass<DeclarationProviderFactory>())
|
||||||
|
|
||||||
publicField(javaClass<JavaDescriptorResolver>())
|
publicFields(
|
||||||
publicField(javaClass<DeserializationComponentsForJava>())
|
javaClass<LazyTopDownAnalyzer>(),
|
||||||
|
javaClass<ResolveSession>(),
|
||||||
|
javaClass<JavaDescriptorResolver>(),
|
||||||
|
javaClass<DeserializationComponentsForJava>()
|
||||||
|
)
|
||||||
|
|
||||||
field(javaClass<AdditionalCheckerProvider>(),
|
field(javaClass<VirtualFileFinder>(),
|
||||||
init = GivenExpression(javaClass<JavaDeclarationCheckerProvider>().getName() + ".INSTANCE$"))
|
init = GivenExpression(javaClass<VirtualFileFinderFactory>().getName()
|
||||||
|
+ ".SERVICE.getInstance(project).create(moduleContentScope)")
|
||||||
field(javaClass <GlobalSearchScope>(),
|
)
|
||||||
init = GivenExpression(javaClass<GlobalSearchScope>().getName() + ".allScope(project)"))
|
|
||||||
fields(
|
fields(
|
||||||
javaClass<JavaClassFinderImpl>(),
|
javaClass<JavaClassFinderImpl>(),
|
||||||
javaClass<TraceBasedExternalSignatureResolver>(),
|
javaClass<TraceBasedExternalSignatureResolver>(),
|
||||||
javaClass<TraceBasedJavaResolverCache>(),
|
javaClass<LazyResolveBasedCache>(),
|
||||||
javaClass<TraceBasedErrorReporter>(),
|
javaClass<TraceBasedErrorReporter>(),
|
||||||
javaClass<PsiBasedMethodSignatureChecker>(),
|
javaClass<PsiBasedMethodSignatureChecker>(),
|
||||||
javaClass<PsiBasedExternalAnnotationResolver>(),
|
javaClass<PsiBasedExternalAnnotationResolver>(),
|
||||||
javaClass<MutablePackageFragmentProvider>(),
|
|
||||||
javaClass<JavaPropertyInitializerEvaluatorImpl>(),
|
javaClass<JavaPropertyInitializerEvaluatorImpl>(),
|
||||||
javaClass<SamConversionResolverImpl>(),
|
javaClass<SamConversionResolverImpl>(),
|
||||||
javaClass<JavaSourceElementFactoryImpl>(),
|
javaClass<JavaSourceElementFactoryImpl>(),
|
||||||
javaClass<SingleModuleClassResolver>(),
|
javaClass<SingleModuleClassResolver>(),
|
||||||
|
javaClass<MutablePackageFragmentProvider>(),
|
||||||
javaClass<JavaFlexibleTypeCapabilitiesProvider>()
|
javaClass<JavaFlexibleTypeCapabilitiesProvider>()
|
||||||
)
|
)
|
||||||
|
|
||||||
|
field(javaClass<AdditionalCheckerProvider>(),
|
||||||
|
init = GivenExpression(javaClass<JavaDeclarationCheckerProvider>().getName() + ".INSTANCE$"))
|
||||||
|
|
||||||
field(javaClass<VirtualFileFinder>(), init = GivenExpression(javaClass<VirtualFileFinder>().getName() + ".SERVICE.getInstance(project)"))
|
field(javaClass<VirtualFileFinder>(), init = GivenExpression(javaClass<VirtualFileFinder>().getName() + ".SERVICE.getInstance(project)"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-4
@@ -20,10 +20,7 @@ import com.intellij.openapi.project.Project;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.ReadOnly;
|
import org.jetbrains.annotations.ReadOnly;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.*;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.psi.*;
|
import org.jetbrains.jet.lang.psi.*;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
|
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
|
||||||
@@ -137,4 +134,10 @@ public class ResolveSessionForBodies implements KotlinCodeAnalyzer {
|
|||||||
public ExceptionTracker getExceptionTracker() {
|
public ExceptionTracker getExceptionTracker() {
|
||||||
return resolveSession.getExceptionTracker();
|
return resolveSession.getExceptionTracker();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public PackageFragmentProvider getPackageFragmentProvider() {
|
||||||
|
return resolveSession.getPackageFragmentProvider();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -95,6 +95,8 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
|
|||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
GlobalContextImpl globalContext = ContextPackage.GlobalContext();
|
GlobalContextImpl globalContext = ContextPackage.GlobalContext();
|
||||||
|
|
||||||
|
// TODO built-ins and lazy resolve
|
||||||
TopDownAnalysisParameters topDownAnalysisParameters = TopDownAnalysisParameters.create(
|
TopDownAnalysisParameters topDownAnalysisParameters = TopDownAnalysisParameters.create(
|
||||||
globalContext.getStorageManager(),
|
globalContext.getStorageManager(),
|
||||||
globalContext.getExceptionTracker(),
|
globalContext.getExceptionTracker(),
|
||||||
|
|||||||
@@ -23,7 +23,6 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||||
@@ -74,7 +73,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
private final ModuleDescriptor moduleDescriptor;
|
private final ModuleDescriptor moduleDescriptor;
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final AdditionalCheckerProvider additionalCheckerProvider;
|
private final AdditionalCheckerProvider additionalCheckerProvider;
|
||||||
private final BodyResolver bodyResolver;
|
private final BodyResolver bodyResolver;
|
||||||
@@ -125,7 +123,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer();
|
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider.Empty.INSTANCE$;
|
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider.Empty.INSTANCE$;
|
||||||
this.bodyResolver = new BodyResolver();
|
this.bodyResolver = new BodyResolver();
|
||||||
@@ -166,7 +163,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.topDownAnalyzer.setAdditionalCheckerProvider(additionalCheckerProvider);
|
this.topDownAnalyzer.setAdditionalCheckerProvider(additionalCheckerProvider);
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||||
this.topDownAnalyzer.setLazyTopDownAnalyzer(lazyTopDownAnalyzer);
|
|
||||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||||
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
@@ -175,13 +171,6 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.topDownAnalyzer.setTrace(bindingTrace);
|
this.topDownAnalyzer.setTrace(bindingTrace);
|
||||||
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
|
||||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
|
||||||
this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
bodyResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
bodyResolver.setCallResolver(callResolver);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||||
@@ -291,8 +280,4 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
return this.topDownAnalyzer;
|
return this.topDownAnalyzer;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LazyTopDownAnalyzer getLazyTopDownAnalyzer() {
|
|
||||||
return this.lazyTopDownAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user