Generate Injectors: simplify and remove redundancy
This commit is contained in:
+16
-16
@@ -19,16 +19,16 @@ package org.jetbrains.jet.di;
|
|||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.context.GlobalContextImpl;
|
import org.jetbrains.jet.context.GlobalContextImpl;
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
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.TraceBasedJavaResolverCache;
|
||||||
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;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
|
||||||
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;
|
||||||
@@ -43,16 +43,16 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
private final Project project;
|
private final Project project;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final GlobalContextImpl globalContext;
|
private final GlobalContextImpl globalContext;
|
||||||
private final StorageManager storageManager;
|
private final ModuleDescriptorImpl module;
|
||||||
|
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||||
private final JavaClassFinderImpl javaClassFinder;
|
private final JavaClassFinderImpl javaClassFinder;
|
||||||
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
||||||
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
|
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
|
||||||
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
||||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
private final StorageManager storageManager;
|
||||||
private final VirtualFileFinder virtualFileFinder;
|
private final VirtualFileFinder virtualFileFinder;
|
||||||
private final ModuleDescriptorImpl module;
|
|
||||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
@@ -65,17 +65,17 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
this.project = project;
|
this.project = project;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
||||||
|
this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
|
||||||
this.storageManager = globalContext.getStorageManager();
|
this.storageManager = globalContext.getStorageManager();
|
||||||
this.javaClassFinder = new JavaClassFinderImpl();
|
this.javaClassFinder = new JavaClassFinderImpl();
|
||||||
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
|
||||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
|
||||||
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
|
||||||
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
|
||||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
|
||||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
|
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||||
|
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
||||||
|
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
||||||
|
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
||||||
|
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||||
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, getJavaClassFinder(), virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache);
|
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, getJavaClassFinder(), virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache);
|
||||||
this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
|
|
||||||
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule());
|
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule());
|
||||||
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
|
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||||
@@ -114,16 +114,16 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
return this.globalContext;
|
return this.globalContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JavaClassFinderImpl getJavaClassFinder() {
|
public ModuleDescriptorImpl getModule() {
|
||||||
return this.javaClassFinder;
|
return this.module;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
||||||
return this.javaDescriptorResolver;
|
return this.javaDescriptorResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ModuleDescriptorImpl getModule() {
|
public JavaClassFinderImpl getJavaClassFinder() {
|
||||||
return this.module;
|
return this.javaClassFinder;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+80
-104
@@ -16,18 +16,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.di;
|
package org.jetbrains.jet.di;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
|
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
||||||
@@ -36,26 +32,30 @@ import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
|
|||||||
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;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
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;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
|
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||||
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
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.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
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.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
|
||||||
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;
|
||||||
@@ -67,18 +67,14 @@ import javax.annotation.PreDestroy;
|
|||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer {
|
public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer {
|
||||||
|
|
||||||
private final TopDownAnalyzer topDownAnalyzer;
|
|
||||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
|
||||||
private final BodyResolver bodyResolver;
|
|
||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
|
||||||
private final DeclarationsChecker declarationsChecker;
|
|
||||||
private final DescriptorResolver descriptorResolver;
|
|
||||||
private final StorageManager storageManager;
|
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final ModuleDescriptorImpl moduleDescriptor;
|
private final ModuleDescriptorImpl moduleDescriptor;
|
||||||
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
|
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||||
|
private final StorageManager storageManager;
|
||||||
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||||
private final JavaToKotlinClassMap javaToKotlinClassMap;
|
private final JavaToKotlinClassMap javaToKotlinClassMap;
|
||||||
private final JavaClassFinderImpl javaClassFinder;
|
private final JavaClassFinderImpl javaClassFinder;
|
||||||
@@ -87,26 +83,30 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
||||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
|
||||||
private final VirtualFileFinder virtualFileFinder;
|
private final VirtualFileFinder virtualFileFinder;
|
||||||
private final DeclarationResolver declarationResolver;
|
private final BodyResolver bodyResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
private final ExpressionTypingServices expressionTypingServices;
|
private final ExpressionTypingServices expressionTypingServices;
|
||||||
private final CallExpressionResolver callExpressionResolver;
|
private final CallExpressionResolver callExpressionResolver;
|
||||||
|
private final DescriptorResolver descriptorResolver;
|
||||||
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
private final TypeResolver typeResolver;
|
private final TypeResolver typeResolver;
|
||||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final CandidateResolver candidateResolver;
|
private final CandidateResolver candidateResolver;
|
||||||
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
|
private final DeclarationsChecker declarationsChecker;
|
||||||
|
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||||
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
|
private final DeclarationResolver declarationResolver;
|
||||||
private final ImportsResolver importsResolver;
|
private final ImportsResolver importsResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
private final OverloadResolver overloadResolver;
|
private final OverloadResolver overloadResolver;
|
||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
|
||||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
|
||||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
@@ -118,18 +118,14 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
@NotNull BindingTrace bindingTrace,
|
@NotNull BindingTrace bindingTrace,
|
||||||
@NotNull ModuleDescriptorImpl moduleDescriptor
|
@NotNull ModuleDescriptorImpl moduleDescriptor
|
||||||
) {
|
) {
|
||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
|
||||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
|
||||||
this.bodyResolver = new BodyResolver();
|
|
||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
|
||||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
|
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||||
|
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||||
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
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.VirtualFileFinder.SERVICE.getInstance(project);
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
@@ -142,25 +138,29 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModuleDescriptor());
|
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModuleDescriptor());
|
||||||
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModuleDescriptor());
|
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModuleDescriptor());
|
||||||
this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
|
this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.bodyResolver = new BodyResolver();
|
||||||
this.declarationResolver = new DeclarationResolver();
|
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), javaToKotlinClassMap);
|
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), javaToKotlinClassMap);
|
||||||
this.callExpressionResolver = new CallExpressionResolver();
|
this.callExpressionResolver = new CallExpressionResolver();
|
||||||
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
this.typeResolver = new TypeResolver();
|
this.typeResolver = new TypeResolver();
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
|
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||||
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
|
this.declarationResolver = new DeclarationResolver();
|
||||||
this.importsResolver = new ImportsResolver();
|
this.importsResolver = new ImportsResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
this.overloadResolver = new OverloadResolver();
|
this.overloadResolver = new OverloadResolver();
|
||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
|
||||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||||
|
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
@@ -176,29 +176,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
|
|
||||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
|
||||||
this.bodyResolver.setAnnotationResolver(annotationResolver);
|
|
||||||
this.bodyResolver.setCallResolver(callResolver);
|
|
||||||
this.bodyResolver.setContext(topDownAnalysisContext);
|
|
||||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
|
||||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
|
||||||
this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
|
||||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
|
||||||
this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
|
||||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
|
||||||
this.bodyResolver.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
|
||||||
this.controlFlowAnalyzer.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.declarationsChecker.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
|
||||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
|
||||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
this.descriptorResolver.setStorageManager(storageManager);
|
|
||||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
|
||||||
|
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
|
|
||||||
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
@@ -211,12 +188,17 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||||
|
|
||||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
declarationResolver.setContext(topDownAnalysisContext);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
bodyResolver.setContext(topDownAnalysisContext);
|
||||||
declarationResolver.setImportsResolver(importsResolver);
|
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||||
declarationResolver.setTrace(bindingTrace);
|
bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
|
bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||||
|
bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||||
|
bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
bodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
@@ -239,12 +221,38 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
|
|
||||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
|
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||||
|
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
|
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
descriptorResolver.setStorageManager(storageManager);
|
||||||
|
descriptorResolver.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
|
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
typeResolver.setAnnotationResolver(annotationResolver);
|
typeResolver.setAnnotationResolver(annotationResolver);
|
||||||
typeResolver.setModuleDescriptor(moduleDescriptor);
|
typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
|
|
||||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||||
|
|
||||||
|
controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
controlFlowAnalyzer.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
declarationsChecker.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||||
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
scriptBodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||||
|
declarationResolver.setContext(topDownAnalysisContext);
|
||||||
|
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||||
|
declarationResolver.setImportsResolver(importsResolver);
|
||||||
|
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||||
|
declarationResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
importsResolver.setContext(topDownAnalysisContext);
|
importsResolver.setContext(topDownAnalysisContext);
|
||||||
importsResolver.setImportsFactory(jetImportsFactory);
|
importsResolver.setImportsFactory(jetImportsFactory);
|
||||||
importsResolver.setModuleDescriptor(moduleDescriptor);
|
importsResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
@@ -273,14 +281,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||||
typeHierarchyResolver.setTrace(bindingTrace);
|
typeHierarchyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
|
|
||||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
|
||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
scriptBodyResolver.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
@@ -299,6 +299,10 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
public void destroy() {
|
public void destroy() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||||
|
return this.moduleDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
public TopDownAnalyzer getTopDownAnalyzer() {
|
public TopDownAnalyzer getTopDownAnalyzer() {
|
||||||
return this.topDownAnalyzer;
|
return this.topDownAnalyzer;
|
||||||
}
|
}
|
||||||
@@ -307,34 +311,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
return this.topDownAnalysisContext;
|
return this.topDownAnalysisContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BodyResolver getBodyResolver() {
|
|
||||||
return this.bodyResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ControlFlowAnalyzer getControlFlowAnalyzer() {
|
|
||||||
return this.controlFlowAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DeclarationsChecker getDeclarationsChecker() {
|
|
||||||
return this.declarationsChecker;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DescriptorResolver getDescriptorResolver() {
|
|
||||||
return this.descriptorResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Project getProject() {
|
|
||||||
return this.project;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BindingTrace getBindingTrace() {
|
|
||||||
return this.bindingTrace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
|
||||||
return this.moduleDescriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
||||||
return this.javaDescriptorResolver;
|
return this.javaDescriptorResolver;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,16 +16,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.di;
|
package org.jetbrains.jet.di;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|
||||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.BodiesResolveContext;
|
import org.jetbrains.jet.lang.resolve.BodiesResolveContext;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||||
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
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;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
@@ -35,9 +33,11 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
|
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -47,16 +47,14 @@ import javax.annotation.PreDestroy;
|
|||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class InjectorForBodyResolve {
|
public class InjectorForBodyResolve {
|
||||||
|
|
||||||
private final BodyResolver bodyResolver;
|
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
|
||||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
|
||||||
private final StorageManager storageManager;
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final BodiesResolveContext bodiesResolveContext;
|
private final BodiesResolveContext bodiesResolveContext;
|
||||||
private final ModuleDescriptor moduleDescriptor;
|
private final ModuleDescriptor moduleDescriptor;
|
||||||
|
private final BodyResolver bodyResolver;
|
||||||
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
|
private final StorageManager storageManager;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
@@ -66,9 +64,11 @@ public class InjectorForBodyResolve {
|
|||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
private final TypeResolver typeResolver;
|
private final TypeResolver typeResolver;
|
||||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final CandidateResolver candidateResolver;
|
private final CandidateResolver candidateResolver;
|
||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
private final DeclarationsChecker declarationsChecker;
|
private final DeclarationsChecker declarationsChecker;
|
||||||
|
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||||
|
|
||||||
@@ -79,28 +79,28 @@ public class InjectorForBodyResolve {
|
|||||||
@NotNull BodiesResolveContext bodiesResolveContext,
|
@NotNull BodiesResolveContext bodiesResolveContext,
|
||||||
@NotNull ModuleDescriptor moduleDescriptor
|
@NotNull ModuleDescriptor moduleDescriptor
|
||||||
) {
|
) {
|
||||||
this.bodyResolver = new BodyResolver();
|
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
|
||||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
|
||||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.bodiesResolveContext = bodiesResolveContext;
|
this.bodiesResolveContext = bodiesResolveContext;
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
|
this.bodyResolver = new BodyResolver();
|
||||||
|
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||||
|
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
this.expressionTypingServices = new ExpressionTypingServices(getBodiesResolveContext(), platformToKotlinClassMap);
|
this.expressionTypingServices = new ExpressionTypingServices(bodiesResolveContext, platformToKotlinClassMap);
|
||||||
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.typeResolver = new TypeResolver();
|
this.typeResolver = new TypeResolver();
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
|
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||||
|
|
||||||
@@ -116,8 +116,6 @@ public class InjectorForBodyResolve {
|
|||||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
this.bodyResolver.setTrace(bindingTrace);
|
this.bodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
@@ -158,6 +156,8 @@ public class InjectorForBodyResolve {
|
|||||||
|
|
||||||
declarationsChecker.setTrace(bindingTrace);
|
declarationsChecker.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||||
|
|
||||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
scriptBodyResolver.setTrace(bindingTrace);
|
scriptBodyResolver.setTrace(bindingTrace);
|
||||||
@@ -174,16 +174,4 @@ public class InjectorForBodyResolve {
|
|||||||
return this.bodyResolver;
|
return this.bodyResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Project getProject() {
|
|
||||||
return this.project;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BindingTrace getBindingTrace() {
|
|
||||||
return this.bindingTrace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BodiesResolveContext getBodiesResolveContext() {
|
|
||||||
return this.bodiesResolveContext;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
|
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
@@ -34,6 +33,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||||
@@ -50,7 +50,6 @@ public class InjectorForLazyResolve {
|
|||||||
private final DeclarationProviderFactory declarationProviderFactory;
|
private final DeclarationProviderFactory declarationProviderFactory;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final ResolveSession resolveSession;
|
private final ResolveSession resolveSession;
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final StorageManager storageManager;
|
private final StorageManager storageManager;
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
@@ -62,6 +61,7 @@ public class InjectorForLazyResolve {
|
|||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
private final TypeResolver typeResolver;
|
private final TypeResolver typeResolver;
|
||||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final CandidateResolver candidateResolver;
|
private final CandidateResolver candidateResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScopeProvider scopeProvider;
|
private final ScopeProvider scopeProvider;
|
||||||
@@ -79,7 +79,6 @@ public class InjectorForLazyResolve {
|
|||||||
this.declarationProviderFactory = declarationProviderFactory;
|
this.declarationProviderFactory = declarationProviderFactory;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.resolveSession = new ResolveSession(project, globalContext, moduleDescriptor, declarationProviderFactory, bindingTrace);
|
this.resolveSession = new ResolveSession(project, globalContext, moduleDescriptor, declarationProviderFactory, bindingTrace);
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.storageManager = resolveSession.getStorageManager();
|
this.storageManager = resolveSession.getStorageManager();
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
@@ -91,6 +90,7 @@ public class InjectorForLazyResolve {
|
|||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
this.typeResolver = new TypeResolver();
|
this.typeResolver = new TypeResolver();
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||||
|
|||||||
@@ -16,13 +16,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.di;
|
package org.jetbrains.jet.di;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import org.jetbrains.jet.context.GlobalContext;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||||
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
|
import org.jetbrains.jet.context.GlobalContext;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
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;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
@@ -32,6 +31,7 @@ import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -39,13 +39,12 @@ import javax.annotation.PreDestroy;
|
|||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class InjectorForMacros {
|
public class InjectorForMacros {
|
||||||
|
|
||||||
private final ExpressionTypingServices expressionTypingServices;
|
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final GlobalContext globalContext;
|
|
||||||
private final StorageManager storageManager;
|
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final ModuleDescriptor moduleDescriptor;
|
private final ModuleDescriptor moduleDescriptor;
|
||||||
|
private final ExpressionTypingServices expressionTypingServices;
|
||||||
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
|
private final GlobalContext globalContext;
|
||||||
|
private final StorageManager storageManager;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
@@ -55,18 +54,18 @@ public class InjectorForMacros {
|
|||||||
private final CallExpressionResolver callExpressionResolver;
|
private final CallExpressionResolver callExpressionResolver;
|
||||||
private final DescriptorResolver descriptorResolver;
|
private final DescriptorResolver descriptorResolver;
|
||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
|
|
||||||
public InjectorForMacros(
|
public InjectorForMacros(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@NotNull ModuleDescriptor moduleDescriptor
|
@NotNull ModuleDescriptor moduleDescriptor
|
||||||
) {
|
) {
|
||||||
|
this.project = project;
|
||||||
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||||
this.expressionTypingServices = new ExpressionTypingServices(globalContext, platformToKotlinClassMap);
|
this.expressionTypingServices = new ExpressionTypingServices(globalContext, platformToKotlinClassMap);
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.storageManager = globalContext.getStorageManager();
|
this.storageManager = globalContext.getStorageManager();
|
||||||
this.project = project;
|
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
@@ -76,6 +75,7 @@ public class InjectorForMacros {
|
|||||||
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.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
|
|
||||||
this.expressionTypingServices.setAnnotationResolver(annotationResolver);
|
this.expressionTypingServices.setAnnotationResolver(annotationResolver);
|
||||||
this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
|
this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
|
||||||
@@ -122,8 +122,4 @@ public class InjectorForMacros {
|
|||||||
return this.expressionTypingServices;
|
return this.expressionTypingServices;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Project getProject() {
|
|
||||||
return this.project;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,39 +16,39 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.di;
|
package org.jetbrains.jet.di;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
||||||
|
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;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
|
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||||
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
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.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
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.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -56,39 +56,39 @@ import javax.annotation.PreDestroy;
|
|||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class InjectorForTopDownAnalyzerBasic {
|
public class InjectorForTopDownAnalyzerBasic {
|
||||||
|
|
||||||
private final TopDownAnalyzer topDownAnalyzer;
|
|
||||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
|
||||||
private final BodyResolver bodyResolver;
|
|
||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
|
||||||
private final DeclarationsChecker declarationsChecker;
|
|
||||||
private final DescriptorResolver descriptorResolver;
|
|
||||||
private final StorageManager storageManager;
|
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final ModuleDescriptorImpl moduleDescriptor;
|
private final ModuleDescriptorImpl moduleDescriptor;
|
||||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
|
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||||
|
private final StorageManager storageManager;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final DeclarationResolver declarationResolver;
|
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
||||||
|
private final BodyResolver bodyResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
private final ExpressionTypingServices expressionTypingServices;
|
private final ExpressionTypingServices expressionTypingServices;
|
||||||
private final CallExpressionResolver callExpressionResolver;
|
private final CallExpressionResolver callExpressionResolver;
|
||||||
|
private final DescriptorResolver descriptorResolver;
|
||||||
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
private final TypeResolver typeResolver;
|
private final TypeResolver typeResolver;
|
||||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final CandidateResolver candidateResolver;
|
private final CandidateResolver candidateResolver;
|
||||||
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
|
private final DeclarationsChecker declarationsChecker;
|
||||||
|
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||||
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
|
private final DeclarationResolver declarationResolver;
|
||||||
private final ImportsResolver importsResolver;
|
private final ImportsResolver importsResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
private final OverloadResolver overloadResolver;
|
private final OverloadResolver overloadResolver;
|
||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
|
||||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
|
||||||
|
|
||||||
public InjectorForTopDownAnalyzerBasic(
|
public InjectorForTopDownAnalyzerBasic(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -97,39 +97,39 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
@NotNull ModuleDescriptorImpl moduleDescriptor,
|
@NotNull ModuleDescriptorImpl moduleDescriptor,
|
||||||
@NotNull PlatformToKotlinClassMap platformToKotlinClassMap
|
@NotNull PlatformToKotlinClassMap platformToKotlinClassMap
|
||||||
) {
|
) {
|
||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
|
||||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
|
||||||
this.bodyResolver = new BodyResolver();
|
|
||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
|
||||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
|
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||||
|
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
this.platformToKotlinClassMap = platformToKotlinClassMap;
|
this.platformToKotlinClassMap = platformToKotlinClassMap;
|
||||||
this.declarationResolver = new DeclarationResolver();
|
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
||||||
|
this.bodyResolver = new BodyResolver();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), platformToKotlinClassMap);
|
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), platformToKotlinClassMap);
|
||||||
this.callExpressionResolver = new CallExpressionResolver();
|
this.callExpressionResolver = new CallExpressionResolver();
|
||||||
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
this.typeResolver = new TypeResolver();
|
this.typeResolver = new TypeResolver();
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
|
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||||
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
|
this.declarationResolver = new DeclarationResolver();
|
||||||
this.importsResolver = new ImportsResolver();
|
this.importsResolver = new ImportsResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
this.overloadResolver = new OverloadResolver();
|
this.overloadResolver = new OverloadResolver();
|
||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
|
||||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
|
||||||
|
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||||
@@ -144,35 +144,17 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
|
|
||||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
|
||||||
this.bodyResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
this.bodyResolver.setCallResolver(callResolver);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
this.bodyResolver.setContext(topDownAnalysisContext);
|
bodyResolver.setContext(topDownAnalysisContext);
|
||||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||||
this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||||
this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
this.bodyResolver.setTrace(bindingTrace);
|
bodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
|
||||||
this.controlFlowAnalyzer.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.declarationsChecker.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
|
||||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
|
||||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
this.descriptorResolver.setStorageManager(storageManager);
|
|
||||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
|
||||||
|
|
||||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
|
||||||
declarationResolver.setContext(topDownAnalysisContext);
|
|
||||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
|
||||||
declarationResolver.setImportsResolver(importsResolver);
|
|
||||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
|
||||||
declarationResolver.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
@@ -195,12 +177,38 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
|
|
||||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
|
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||||
|
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
|
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
descriptorResolver.setStorageManager(storageManager);
|
||||||
|
descriptorResolver.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
|
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
typeResolver.setAnnotationResolver(annotationResolver);
|
typeResolver.setAnnotationResolver(annotationResolver);
|
||||||
typeResolver.setModuleDescriptor(moduleDescriptor);
|
typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
|
|
||||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||||
|
|
||||||
|
controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
controlFlowAnalyzer.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
declarationsChecker.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||||
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
scriptBodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||||
|
declarationResolver.setContext(topDownAnalysisContext);
|
||||||
|
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||||
|
declarationResolver.setImportsResolver(importsResolver);
|
||||||
|
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||||
|
declarationResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
importsResolver.setContext(topDownAnalysisContext);
|
importsResolver.setContext(topDownAnalysisContext);
|
||||||
importsResolver.setImportsFactory(jetImportsFactory);
|
importsResolver.setImportsFactory(jetImportsFactory);
|
||||||
importsResolver.setModuleDescriptor(moduleDescriptor);
|
importsResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
@@ -229,20 +237,16 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||||
typeHierarchyResolver.setTrace(bindingTrace);
|
typeHierarchyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
|
|
||||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
|
||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
scriptBodyResolver.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
@PreDestroy
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||||
|
return this.moduleDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
public TopDownAnalyzer getTopDownAnalyzer() {
|
public TopDownAnalyzer getTopDownAnalyzer() {
|
||||||
return this.topDownAnalyzer;
|
return this.topDownAnalyzer;
|
||||||
}
|
}
|
||||||
@@ -251,32 +255,4 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
return this.topDownAnalysisContext;
|
return this.topDownAnalysisContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BodyResolver getBodyResolver() {
|
|
||||||
return this.bodyResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ControlFlowAnalyzer getControlFlowAnalyzer() {
|
|
||||||
return this.controlFlowAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DeclarationsChecker getDeclarationsChecker() {
|
|
||||||
return this.declarationsChecker;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DescriptorResolver getDescriptorResolver() {
|
|
||||||
return this.descriptorResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Project getProject() {
|
|
||||||
return this.project;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BindingTrace getBindingTrace() {
|
|
||||||
return this.bindingTrace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
|
||||||
return this.moduleDescriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,23 +16,22 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.di;
|
package org.jetbrains.jet.di;
|
||||||
|
|
||||||
|
import com.intellij.openapi.project.Project;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.context.GlobalContext;
|
import org.jetbrains.jet.context.GlobalContext;
|
||||||
import com.intellij.openapi.project.Project;
|
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
|
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -40,45 +39,43 @@ import javax.annotation.PreDestroy;
|
|||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class InjectorForTests {
|
public class InjectorForTests {
|
||||||
|
|
||||||
|
private final Project project;
|
||||||
|
private final ModuleDescriptor moduleDescriptor;
|
||||||
private final DescriptorResolver descriptorResolver;
|
private final DescriptorResolver descriptorResolver;
|
||||||
private final ExpressionTypingServices expressionTypingServices;
|
private final ExpressionTypingServices expressionTypingServices;
|
||||||
private final TypeResolver typeResolver;
|
private final TypeResolver typeResolver;
|
||||||
private final CallResolver callResolver;
|
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final StorageManager storageManager;
|
private final StorageManager storageManager;
|
||||||
private final KotlinBuiltIns kotlinBuiltIns;
|
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final GlobalContext globalContext;
|
private final GlobalContext globalContext;
|
||||||
private final Project project;
|
|
||||||
private final ModuleDescriptor moduleDescriptor;
|
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
private final CallResolver callResolver;
|
||||||
private final CallExpressionResolver callExpressionResolver;
|
|
||||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
private final CandidateResolver candidateResolver;
|
private final CandidateResolver candidateResolver;
|
||||||
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
|
private final CallExpressionResolver callExpressionResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
|
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
|
|
||||||
public InjectorForTests(
|
public InjectorForTests(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@NotNull ModuleDescriptor moduleDescriptor
|
@NotNull ModuleDescriptor moduleDescriptor
|
||||||
) {
|
) {
|
||||||
|
this.project = project;
|
||||||
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
||||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||||
this.expressionTypingServices = new ExpressionTypingServices(globalContext, platformToKotlinClassMap);
|
this.expressionTypingServices = new ExpressionTypingServices(globalContext, platformToKotlinClassMap);
|
||||||
this.typeResolver = new TypeResolver();
|
this.typeResolver = new TypeResolver();
|
||||||
this.callResolver = new CallResolver();
|
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.storageManager = globalContext.getStorageManager();
|
this.storageManager = globalContext.getStorageManager();
|
||||||
this.kotlinBuiltIns = KotlinBuiltIns.getInstance();
|
|
||||||
this.project = project;
|
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.callExpressionResolver = new CallExpressionResolver();
|
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
|
this.callExpressionResolver = new CallExpressionResolver();
|
||||||
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
|
|
||||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
@@ -98,23 +95,23 @@ public class InjectorForTests {
|
|||||||
this.typeResolver.setModuleDescriptor(moduleDescriptor);
|
this.typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
this.typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
this.typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
|
|
||||||
this.callResolver.setArgumentTypeResolver(argumentTypeResolver);
|
|
||||||
this.callResolver.setCandidateResolver(candidateResolver);
|
|
||||||
this.callResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
this.callResolver.setTypeResolver(typeResolver);
|
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
callResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||||
|
callResolver.setCandidateResolver(candidateResolver);
|
||||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
callResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
callResolver.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
|
argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
argumentTypeResolver.setTypeResolver(typeResolver);
|
argumentTypeResolver.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||||
|
|
||||||
|
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
|
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
@PreDestroy
|
||||||
@@ -133,16 +130,4 @@ public class InjectorForTests {
|
|||||||
return this.typeResolver;
|
return this.typeResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public CallResolver getCallResolver() {
|
|
||||||
return this.callResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public KotlinBuiltIns getKotlinBuiltIns() {
|
|
||||||
return this.kotlinBuiltIns;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Project getProject() {
|
|
||||||
return this.project;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,9 +67,8 @@ public class JetDefaultModalityModifiersTest extends JetLiteFixture {
|
|||||||
|
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
InjectorForTests injector = new InjectorForTests(getProject(), root);
|
InjectorForTests injector = new InjectorForTests(getProject(), root);
|
||||||
KotlinBuiltIns builtIns = injector.getKotlinBuiltIns();
|
|
||||||
descriptorResolver = injector.getDescriptorResolver();
|
descriptorResolver = injector.getDescriptorResolver();
|
||||||
scope = createScope(builtIns.getBuiltInsPackageScope());
|
scope = createScope(KotlinBuiltIns.getInstance().getBuiltInsPackageScope());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tearDown() throws Exception {
|
public void tearDown() throws Exception {
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
|||||||
public class JetOverloadTest extends JetLiteFixture {
|
public class JetOverloadTest extends JetLiteFixture {
|
||||||
|
|
||||||
private ModuleDescriptor root = JetTestUtils.createEmptyModule("<test_root>");
|
private ModuleDescriptor root = JetTestUtils.createEmptyModule("<test_root>");
|
||||||
private KotlinBuiltIns builtIns;
|
|
||||||
private DescriptorResolver descriptorResolver;
|
private DescriptorResolver descriptorResolver;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -46,13 +45,11 @@ public class JetOverloadTest extends JetLiteFixture {
|
|||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
InjectorForTests injector = new InjectorForTests(getProject(), root);
|
InjectorForTests injector = new InjectorForTests(getProject(), root);
|
||||||
builtIns = injector.getKotlinBuiltIns();
|
|
||||||
descriptorResolver = injector.getDescriptorResolver();
|
descriptorResolver = injector.getDescriptorResolver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
builtIns = null;
|
|
||||||
descriptorResolver = null;
|
descriptorResolver = null;
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
}
|
}
|
||||||
@@ -182,7 +179,7 @@ public class JetOverloadTest extends JetLiteFixture {
|
|||||||
|
|
||||||
private FunctionDescriptor makeFunction(String funDecl) {
|
private FunctionDescriptor makeFunction(String funDecl) {
|
||||||
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
|
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
|
||||||
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsPackageScope(), function,
|
return descriptorResolver.resolveFunctionDescriptor(root, KotlinBuiltIns.getInstance().getBuiltInsPackageScope(), function,
|
||||||
JetTestUtils.DUMMY_TRACE, DataFlowInfo.EMPTY);
|
JetTestUtils.DUMMY_TRACE, DataFlowInfo.EMPTY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
|||||||
public class JetOverridingTest extends JetLiteFixture {
|
public class JetOverridingTest extends JetLiteFixture {
|
||||||
|
|
||||||
private ModuleDescriptor root = JetTestUtils.createEmptyModule("<test_root>");
|
private ModuleDescriptor root = JetTestUtils.createEmptyModule("<test_root>");
|
||||||
private KotlinBuiltIns builtIns;
|
|
||||||
private DescriptorResolver descriptorResolver;
|
private DescriptorResolver descriptorResolver;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -46,13 +45,11 @@ public class JetOverridingTest extends JetLiteFixture {
|
|||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
super.setUp();
|
super.setUp();
|
||||||
InjectorForTests injector = new InjectorForTests(getProject(), root);
|
InjectorForTests injector = new InjectorForTests(getProject(), root);
|
||||||
builtIns = injector.getKotlinBuiltIns();
|
|
||||||
descriptorResolver = injector.getDescriptorResolver();
|
descriptorResolver = injector.getDescriptorResolver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void tearDown() throws Exception {
|
protected void tearDown() throws Exception {
|
||||||
builtIns = null;
|
|
||||||
descriptorResolver = null;
|
descriptorResolver = null;
|
||||||
super.tearDown();
|
super.tearDown();
|
||||||
}
|
}
|
||||||
@@ -172,7 +169,7 @@ public class JetOverridingTest extends JetLiteFixture {
|
|||||||
|
|
||||||
private FunctionDescriptor makeFunction(String funDecl) {
|
private FunctionDescriptor makeFunction(String funDecl) {
|
||||||
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
|
JetNamedFunction function = JetPsiFactory.createFunction(getProject(), funDecl);
|
||||||
return descriptorResolver.resolveFunctionDescriptor(root, builtIns.getBuiltInsPackageScope(), function,
|
return descriptorResolver.resolveFunctionDescriptor(root, KotlinBuiltIns.getInstance().getBuiltInsPackageScope(), function,
|
||||||
JetTestUtils.DUMMY_TRACE, DataFlowInfo.EMPTY);
|
JetTestUtils.DUMMY_TRACE, DataFlowInfo.EMPTY);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,6 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap
|
|||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl
|
||||||
import org.jetbrains.jet.lang.resolve.*
|
import org.jetbrains.jet.lang.resolve.*
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl
|
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
||||||
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap
|
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap
|
||||||
@@ -34,7 +32,6 @@ import org.jetbrains.jet.lang.resolve.lazy.ResolveSession
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory
|
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl
|
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
|
||||||
import org.jetbrains.jet.storage.StorageManager
|
import org.jetbrains.jet.storage.StorageManager
|
||||||
import org.jetbrains.jet.di.*
|
import org.jetbrains.jet.di.*
|
||||||
import kotlin.properties.Delegates
|
import kotlin.properties.Delegates
|
||||||
@@ -60,42 +57,36 @@ public val injectorGenerators: List<DependencyInjectorGenerator> by Delegates.la
|
|||||||
public class GenerateInjectors {
|
public class GenerateInjectors {
|
||||||
|
|
||||||
private fun DependencyInjectorGenerator.commonForTopDownAnalyzer() {
|
private fun DependencyInjectorGenerator.commonForTopDownAnalyzer() {
|
||||||
|
parameters(
|
||||||
|
javaClass<Project>(),
|
||||||
|
javaClass<TopDownAnalysisParameters>(),
|
||||||
|
javaClass<BindingTrace>()
|
||||||
|
)
|
||||||
|
publicParameter(javaClass<ModuleDescriptorImpl>())
|
||||||
|
|
||||||
publicFields(
|
publicFields(
|
||||||
javaClass<TopDownAnalyzer>(),
|
javaClass<TopDownAnalyzer>(),
|
||||||
javaClass<TopDownAnalysisContext>(),
|
javaClass<TopDownAnalysisContext>()
|
||||||
javaClass<BodyResolver>(),
|
|
||||||
javaClass<ControlFlowAnalyzer>(),
|
|
||||||
javaClass<DeclarationsChecker>(),
|
|
||||||
javaClass<DescriptorResolver>()
|
|
||||||
)
|
)
|
||||||
field(javaClass<StorageManager>(), init = GivenExpression("topDownAnalysisParameters.getStorageManager()"))
|
|
||||||
field(javaClass<CallResolverExtensionProvider>())
|
|
||||||
|
|
||||||
publicParameter(javaClass<Project>())
|
field(javaClass<StorageManager>(), init = GivenExpression("topDownAnalysisParameters.getStorageManager()"))
|
||||||
parameter(javaClass<TopDownAnalysisParameters>())
|
field(javaClass<MutablePackageFragmentProvider>())
|
||||||
publicParameters(
|
|
||||||
javaClass<BindingTrace>(),
|
|
||||||
javaClass<ModuleDescriptorImpl>()
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val generatorForTopDownAnalyzerBasic =
|
private val generatorForTopDownAnalyzerBasic =
|
||||||
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerBasic", javaClass<GenerateInjectors>()) {
|
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerBasic", javaClass<GenerateInjectors>()) {
|
||||||
commonForTopDownAnalyzer()
|
commonForTopDownAnalyzer()
|
||||||
fields(
|
|
||||||
javaClass<DependencyClassByQualifiedNameResolverDummyImpl>(),
|
|
||||||
javaClass<MutablePackageFragmentProvider>()
|
|
||||||
)
|
|
||||||
parameter(javaClass<PlatformToKotlinClassMap>())
|
parameter(javaClass<PlatformToKotlinClassMap>())
|
||||||
|
|
||||||
|
field(javaClass<DependencyClassByQualifiedNameResolverDummyImpl>())
|
||||||
}
|
}
|
||||||
|
|
||||||
private val generatorForTopDownAnalyzerForJs =
|
private val generatorForTopDownAnalyzerForJs =
|
||||||
generator("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs", javaClass<GenerateInjectors>()) {
|
generator("js/js.translator/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJs", javaClass<GenerateInjectors>()) {
|
||||||
commonForTopDownAnalyzer()
|
commonForTopDownAnalyzer()
|
||||||
fields(
|
|
||||||
javaClass<DependencyClassByQualifiedNameResolverDummyImpl>(),
|
field(javaClass<DependencyClassByQualifiedNameResolverDummyImpl>())
|
||||||
javaClass<MutablePackageFragmentProvider>()
|
|
||||||
)
|
|
||||||
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY"))
|
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY"))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,7 +94,9 @@ public class GenerateInjectors {
|
|||||||
generator("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm", javaClass<GenerateInjectors>()) {
|
generator("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForTopDownAnalyzerForJvm", javaClass<GenerateInjectors>()) {
|
||||||
implementInterface(javaClass<InjectorForTopDownAnalyzer>())
|
implementInterface(javaClass<InjectorForTopDownAnalyzer>())
|
||||||
commonForTopDownAnalyzer()
|
commonForTopDownAnalyzer()
|
||||||
|
|
||||||
publicField(javaClass<JavaDescriptorResolver>())
|
publicField(javaClass<JavaDescriptorResolver>())
|
||||||
|
|
||||||
field(javaClass<JavaToKotlinClassMap>(), init = GivenExpression("org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance()"))
|
field(javaClass<JavaToKotlinClassMap>(), init = GivenExpression("org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance()"))
|
||||||
fields(
|
fields(
|
||||||
javaClass<JavaClassFinderImpl>(),
|
javaClass<JavaClassFinderImpl>(),
|
||||||
@@ -119,7 +112,6 @@ public class GenerateInjectors {
|
|||||||
|
|
||||||
private val generatorForJavaDescriptorResolver =
|
private val generatorForJavaDescriptorResolver =
|
||||||
generator("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaDescriptorResolver", javaClass<GenerateInjectors>()) {
|
generator("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaDescriptorResolver", javaClass<GenerateInjectors>()) {
|
||||||
|
|
||||||
parameters(
|
parameters(
|
||||||
javaClass<Project>(),
|
javaClass<Project>(),
|
||||||
javaClass<BindingTrace>()
|
javaClass<BindingTrace>()
|
||||||
@@ -127,8 +119,11 @@ public class GenerateInjectors {
|
|||||||
|
|
||||||
publicField(javaClass<GlobalContextImpl>(),
|
publicField(javaClass<GlobalContextImpl>(),
|
||||||
init = GivenExpression("org.jetbrains.jet.context.ContextPackage.GlobalContext()"))
|
init = GivenExpression("org.jetbrains.jet.context.ContextPackage.GlobalContext()"))
|
||||||
field(javaClass<StorageManager>(), init = GivenExpression("globalContext.getStorageManager()"))
|
publicField(javaClass<ModuleDescriptorImpl>(), name = "module",
|
||||||
|
init = GivenExpression("org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule(\"<fake-jdr-module>\")"))
|
||||||
|
publicField(javaClass<JavaDescriptorResolver>())
|
||||||
publicField(javaClass<JavaClassFinderImpl>())
|
publicField(javaClass<JavaClassFinderImpl>())
|
||||||
|
|
||||||
fields(
|
fields(
|
||||||
javaClass<TraceBasedExternalSignatureResolver>(),
|
javaClass<TraceBasedExternalSignatureResolver>(),
|
||||||
javaClass<TraceBasedJavaResolverCache>(),
|
javaClass<TraceBasedJavaResolverCache>(),
|
||||||
@@ -136,58 +131,57 @@ public class GenerateInjectors {
|
|||||||
javaClass<PsiBasedMethodSignatureChecker>(),
|
javaClass<PsiBasedMethodSignatureChecker>(),
|
||||||
javaClass<PsiBasedExternalAnnotationResolver>()
|
javaClass<PsiBasedExternalAnnotationResolver>()
|
||||||
)
|
)
|
||||||
publicField(javaClass<JavaDescriptorResolver>())
|
field(javaClass<StorageManager>(), init = GivenExpression("globalContext.getStorageManager()"))
|
||||||
field(javaClass<VirtualFileFinder>(),
|
field(javaClass<VirtualFileFinder>(),
|
||||||
init = GivenExpression(javaClass<VirtualFileFinder>().getName() + ".SERVICE.getInstance(project)"))
|
init = GivenExpression(javaClass<VirtualFileFinder>().getName() + ".SERVICE.getInstance(project)"))
|
||||||
publicField(javaClass<ModuleDescriptorImpl>(), name = "module",
|
|
||||||
init = GivenExpression("org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule(\"<fake-jdr-module>\")"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val generatorForMacro =
|
private val generatorForMacro =
|
||||||
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForMacros", javaClass<GenerateInjectors>()) {
|
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForMacros", javaClass<GenerateInjectors>()) {
|
||||||
|
parameters(
|
||||||
|
javaClass<Project>(),
|
||||||
|
javaClass<ModuleDescriptor>()
|
||||||
|
)
|
||||||
|
|
||||||
publicField(javaClass<ExpressionTypingServices>())
|
publicField(javaClass<ExpressionTypingServices>())
|
||||||
field(javaClass<CallResolverExtensionProvider>())
|
|
||||||
|
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
||||||
field(javaClass<GlobalContext>(), init = GivenExpression("org.jetbrains.jet.context.ContextPackage.GlobalContext()"))
|
field(javaClass<GlobalContext>(), init = GivenExpression("org.jetbrains.jet.context.ContextPackage.GlobalContext()"))
|
||||||
field(javaClass<StorageManager>(), init = GivenExpression("globalContext.getStorageManager()"))
|
field(javaClass<StorageManager>(), init = GivenExpression("globalContext.getStorageManager()"))
|
||||||
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
|
||||||
|
|
||||||
publicParameter(javaClass<Project>())
|
|
||||||
parameter(javaClass<ModuleDescriptor>())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val generatorForTests =
|
private val generatorForTests =
|
||||||
generator("compiler/tests", "org.jetbrains.jet.di", "InjectorForTests", javaClass<GenerateInjectors>()) {
|
generator("compiler/tests", "org.jetbrains.jet.di", "InjectorForTests", javaClass<GenerateInjectors>()) {
|
||||||
|
parameters(
|
||||||
|
javaClass<Project>(),
|
||||||
|
javaClass<ModuleDescriptor>()
|
||||||
|
)
|
||||||
|
|
||||||
publicFields(
|
publicFields(
|
||||||
javaClass<DescriptorResolver>(),
|
javaClass<DescriptorResolver>(),
|
||||||
javaClass<ExpressionTypingServices>(),
|
javaClass<ExpressionTypingServices>(),
|
||||||
javaClass<TypeResolver>(),
|
javaClass<TypeResolver>()
|
||||||
javaClass<CallResolver>()
|
|
||||||
)
|
)
|
||||||
field(javaClass<CallResolverExtensionProvider>())
|
|
||||||
field(javaClass<StorageManager>(), init = GivenExpression("globalContext.getStorageManager()"))
|
field(javaClass<StorageManager>(), init = GivenExpression("globalContext.getStorageManager()"))
|
||||||
publicField(javaClass<KotlinBuiltIns>(), init = GivenExpression("KotlinBuiltIns.getInstance()"))
|
|
||||||
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
||||||
field(javaClass<GlobalContext>(), init = GivenExpression("org.jetbrains.jet.context.ContextPackage.GlobalContext()"))
|
field(javaClass<GlobalContext>(), init = GivenExpression("org.jetbrains.jet.context.ContextPackage.GlobalContext()"))
|
||||||
|
|
||||||
publicParameter(javaClass<Project>())
|
|
||||||
parameter(javaClass<ModuleDescriptor>())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val generatorForBodyResolve =
|
private val generatorForBodyResolve =
|
||||||
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForBodyResolve", javaClass<GenerateInjectors>()) {
|
generator("compiler/frontend/src", "org.jetbrains.jet.di", "InjectorForBodyResolve", javaClass<GenerateInjectors>()) {
|
||||||
publicField(javaClass<BodyResolver>())
|
parameters(
|
||||||
field(javaClass<CallResolverExtensionProvider>())
|
javaClass<Project>(),
|
||||||
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
javaClass<TopDownAnalysisParameters>(),
|
||||||
field(javaClass<FunctionAnalyzerExtension>())
|
|
||||||
field(javaClass<StorageManager>(), init = GivenExpression("topDownAnalysisParameters.getStorageManager()"))
|
|
||||||
|
|
||||||
publicParameter(javaClass<Project>())
|
|
||||||
parameter(javaClass<TopDownAnalysisParameters>())
|
|
||||||
publicParameters(
|
|
||||||
javaClass<BindingTrace>(),
|
javaClass<BindingTrace>(),
|
||||||
javaClass<BodiesResolveContext>()
|
javaClass<BodiesResolveContext>(),
|
||||||
|
javaClass<ModuleDescriptor>()
|
||||||
)
|
)
|
||||||
parameter(javaClass<ModuleDescriptor>())
|
|
||||||
|
publicField(javaClass<BodyResolver>())
|
||||||
|
|
||||||
|
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
||||||
|
field(javaClass<StorageManager>(), init = GivenExpression("topDownAnalysisParameters.getStorageManager()"))
|
||||||
}
|
}
|
||||||
|
|
||||||
private val generatorForLazyResolve =
|
private val generatorForLazyResolve =
|
||||||
@@ -201,7 +195,7 @@ public class GenerateInjectors {
|
|||||||
)
|
)
|
||||||
|
|
||||||
publicField(javaClass<ResolveSession>())
|
publicField(javaClass<ResolveSession>())
|
||||||
field(javaClass<CallResolverExtensionProvider>())
|
|
||||||
field(javaClass<StorageManager>(), init = GivenExpression("resolveSession.getStorageManager()"))
|
field(javaClass<StorageManager>(), init = GivenExpression("resolveSession.getStorageManager()"))
|
||||||
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
field(javaClass<PlatformToKotlinClassMap>(), init = GivenExpression("moduleDescriptor.getPlatformToKotlinClassMap()"))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,15 +92,16 @@ public class BuiltInsReferenceResolver extends AbstractProjectComponent {
|
|||||||
Predicates.<PsiFile>alwaysFalse(), true, false, Collections.<AnalyzerScriptParameter>emptyList());
|
Predicates.<PsiFile>alwaysFalse(), true, false, Collections.<AnalyzerScriptParameter>emptyList());
|
||||||
ModuleDescriptorImpl module = new ModuleDescriptorImpl(
|
ModuleDescriptorImpl module = new ModuleDescriptorImpl(
|
||||||
Name.special("<fake_module>"), Collections.<ImportPath>emptyList(), PlatformToKotlinClassMap.EMPTY);
|
Name.special("<fake_module>"), Collections.<ImportPath>emptyList(), PlatformToKotlinClassMap.EMPTY);
|
||||||
|
BindingTraceContext trace = new BindingTraceContext();
|
||||||
InjectorForTopDownAnalyzerBasic injector = new InjectorForTopDownAnalyzerBasic(
|
InjectorForTopDownAnalyzerBasic injector = new InjectorForTopDownAnalyzerBasic(
|
||||||
myProject, topDownAnalysisParameters, new BindingTraceContext(), module, PlatformToKotlinClassMap.EMPTY);
|
myProject, topDownAnalysisParameters, trace, module, PlatformToKotlinClassMap.EMPTY);
|
||||||
|
|
||||||
TopDownAnalyzer analyzer = injector.getTopDownAnalyzer();
|
TopDownAnalyzer analyzer = injector.getTopDownAnalyzer();
|
||||||
analyzer.analyzeFiles(jetBuiltInsFiles, Collections.<AnalyzerScriptParameter>emptyList());
|
analyzer.analyzeFiles(jetBuiltInsFiles, Collections.<AnalyzerScriptParameter>emptyList());
|
||||||
|
|
||||||
builtinsPackageFragment = analyzer.getPackageFragmentProvider().getOrCreateFragment(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
|
builtinsPackageFragment = analyzer.getPackageFragmentProvider().getOrCreateFragment(KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME);
|
||||||
builtInsSources = Sets.newHashSet(jetBuiltInsFiles);
|
builtInsSources = Sets.newHashSet(jetBuiltInsFiles);
|
||||||
bindingContext = injector.getBindingTrace().getBindingContext();
|
bindingContext = trace.getBindingContext();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -16,39 +16,39 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.di;
|
package org.jetbrains.jet.di;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
|
||||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
|
||||||
import org.jetbrains.jet.storage.StorageManager;
|
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
|
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
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;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
|
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||||
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
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.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
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.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -56,39 +56,39 @@ import javax.annotation.PreDestroy;
|
|||||||
@SuppressWarnings("ALL")
|
@SuppressWarnings("ALL")
|
||||||
public class InjectorForTopDownAnalyzerForJs {
|
public class InjectorForTopDownAnalyzerForJs {
|
||||||
|
|
||||||
private final TopDownAnalyzer topDownAnalyzer;
|
|
||||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
|
||||||
private final BodyResolver bodyResolver;
|
|
||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
|
||||||
private final DeclarationsChecker declarationsChecker;
|
|
||||||
private final DescriptorResolver descriptorResolver;
|
|
||||||
private final StorageManager storageManager;
|
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
private final ModuleDescriptorImpl moduleDescriptor;
|
private final ModuleDescriptorImpl moduleDescriptor;
|
||||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
|
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||||
|
private final StorageManager storageManager;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
|
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
||||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||||
private final DeclarationResolver declarationResolver;
|
private final BodyResolver bodyResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
private final CallResolver callResolver;
|
private final CallResolver callResolver;
|
||||||
private final ArgumentTypeResolver argumentTypeResolver;
|
private final ArgumentTypeResolver argumentTypeResolver;
|
||||||
private final ExpressionTypingServices expressionTypingServices;
|
private final ExpressionTypingServices expressionTypingServices;
|
||||||
private final CallExpressionResolver callExpressionResolver;
|
private final CallExpressionResolver callExpressionResolver;
|
||||||
|
private final DescriptorResolver descriptorResolver;
|
||||||
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
private final TypeResolver typeResolver;
|
private final TypeResolver typeResolver;
|
||||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||||
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final CandidateResolver candidateResolver;
|
private final CandidateResolver candidateResolver;
|
||||||
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
|
private final DeclarationsChecker declarationsChecker;
|
||||||
|
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||||
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
|
private final DeclarationResolver declarationResolver;
|
||||||
private final ImportsResolver importsResolver;
|
private final ImportsResolver importsResolver;
|
||||||
private final JetImportsFactory jetImportsFactory;
|
private final JetImportsFactory jetImportsFactory;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
private final OverloadResolver overloadResolver;
|
private final OverloadResolver overloadResolver;
|
||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
|
||||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
|
||||||
|
|
||||||
public InjectorForTopDownAnalyzerForJs(
|
public InjectorForTopDownAnalyzerForJs(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -96,39 +96,39 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
@NotNull BindingTrace bindingTrace,
|
@NotNull BindingTrace bindingTrace,
|
||||||
@NotNull ModuleDescriptorImpl moduleDescriptor
|
@NotNull ModuleDescriptorImpl moduleDescriptor
|
||||||
) {
|
) {
|
||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
|
||||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
|
||||||
this.bodyResolver = new BodyResolver();
|
|
||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
|
||||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
|
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||||
|
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
|
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
||||||
this.platformToKotlinClassMap = org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY;
|
this.platformToKotlinClassMap = org.jetbrains.jet.lang.PlatformToKotlinClassMap.EMPTY;
|
||||||
this.declarationResolver = new DeclarationResolver();
|
this.bodyResolver = new BodyResolver();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||||
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), platformToKotlinClassMap);
|
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), platformToKotlinClassMap);
|
||||||
this.callExpressionResolver = new CallExpressionResolver();
|
this.callExpressionResolver = new CallExpressionResolver();
|
||||||
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
this.typeResolver = new TypeResolver();
|
this.typeResolver = new TypeResolver();
|
||||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||||
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.candidateResolver = new CandidateResolver();
|
this.candidateResolver = new CandidateResolver();
|
||||||
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
|
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||||
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
|
this.declarationResolver = new DeclarationResolver();
|
||||||
this.importsResolver = new ImportsResolver();
|
this.importsResolver = new ImportsResolver();
|
||||||
this.jetImportsFactory = new JetImportsFactory();
|
this.jetImportsFactory = new JetImportsFactory();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
this.overloadResolver = new OverloadResolver();
|
this.overloadResolver = new OverloadResolver();
|
||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
|
||||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
|
||||||
|
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||||
@@ -143,35 +143,17 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
|
|
||||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
|
||||||
this.bodyResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
this.bodyResolver.setCallResolver(callResolver);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
this.bodyResolver.setContext(topDownAnalysisContext);
|
bodyResolver.setContext(topDownAnalysisContext);
|
||||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||||
this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||||
this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
this.bodyResolver.setTrace(bindingTrace);
|
bodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
|
||||||
this.controlFlowAnalyzer.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.declarationsChecker.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
|
||||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
|
||||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
this.descriptorResolver.setStorageManager(storageManager);
|
|
||||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
|
||||||
|
|
||||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
|
||||||
declarationResolver.setContext(topDownAnalysisContext);
|
|
||||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
|
||||||
declarationResolver.setImportsResolver(importsResolver);
|
|
||||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
|
||||||
declarationResolver.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
@@ -194,12 +176,38 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
|
|
||||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
|
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||||
|
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||||
|
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
descriptorResolver.setStorageManager(storageManager);
|
||||||
|
descriptorResolver.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
|
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
|
||||||
typeResolver.setAnnotationResolver(annotationResolver);
|
typeResolver.setAnnotationResolver(annotationResolver);
|
||||||
typeResolver.setModuleDescriptor(moduleDescriptor);
|
typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||||
|
|
||||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||||
|
|
||||||
|
controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||||
|
controlFlowAnalyzer.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
declarationsChecker.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||||
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
|
scriptBodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
|
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||||
|
declarationResolver.setContext(topDownAnalysisContext);
|
||||||
|
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||||
|
declarationResolver.setImportsResolver(importsResolver);
|
||||||
|
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||||
|
declarationResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
importsResolver.setContext(topDownAnalysisContext);
|
importsResolver.setContext(topDownAnalysisContext);
|
||||||
importsResolver.setImportsFactory(jetImportsFactory);
|
importsResolver.setImportsFactory(jetImportsFactory);
|
||||||
importsResolver.setModuleDescriptor(moduleDescriptor);
|
importsResolver.setModuleDescriptor(moduleDescriptor);
|
||||||
@@ -228,20 +236,16 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||||
typeHierarchyResolver.setTrace(bindingTrace);
|
typeHierarchyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
|
|
||||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
|
||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
|
||||||
scriptBodyResolver.setTrace(bindingTrace);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PreDestroy
|
@PreDestroy
|
||||||
public void destroy() {
|
public void destroy() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||||
|
return this.moduleDescriptor;
|
||||||
|
}
|
||||||
|
|
||||||
public TopDownAnalyzer getTopDownAnalyzer() {
|
public TopDownAnalyzer getTopDownAnalyzer() {
|
||||||
return this.topDownAnalyzer;
|
return this.topDownAnalyzer;
|
||||||
}
|
}
|
||||||
@@ -250,32 +254,4 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
return this.topDownAnalysisContext;
|
return this.topDownAnalysisContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BodyResolver getBodyResolver() {
|
|
||||||
return this.bodyResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ControlFlowAnalyzer getControlFlowAnalyzer() {
|
|
||||||
return this.controlFlowAnalyzer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DeclarationsChecker getDeclarationsChecker() {
|
|
||||||
return this.declarationsChecker;
|
|
||||||
}
|
|
||||||
|
|
||||||
public DescriptorResolver getDescriptorResolver() {
|
|
||||||
return this.descriptorResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Project getProject() {
|
|
||||||
return this.project;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BindingTrace getBindingTrace() {
|
|
||||||
return this.bindingTrace;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
|
||||||
return this.moduleDescriptor;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user