Generate only final fields for injectors - make the access thread-safe

This commit is contained in:
Nikolay Krasko
2013-07-29 14:53:43 +04:00
parent 14247ea2ab
commit 70ae9e589c
11 changed files with 186 additions and 187 deletions
@@ -36,12 +36,12 @@ public class InjectorForJvmCodegen {
private final GenerationState generationState; private final GenerationState generationState;
private final ClassBuilderFactory classBuilderFactory; private final ClassBuilderFactory classBuilderFactory;
private final Project project; private final Project project;
private BindingTrace bindingTrace; private final BindingTrace bindingTrace;
private BindingContext bindingContext; private final BindingContext bindingContext;
private ClassBuilderMode classBuilderMode; private final ClassBuilderMode classBuilderMode;
private ScriptCodegen scriptCodegen; private final ScriptCodegen scriptCodegen;
private IntrinsicMethods intrinsics; private final IntrinsicMethods intrinsics;
private ClassFileFactory classFileFactory; private final ClassFileFactory classFileFactory;
public InjectorForJvmCodegen( public InjectorForJvmCodegen(
@NotNull JetTypeMapper jetTypeMapper, @NotNull JetTypeMapper jetTypeMapper,
@@ -46,24 +46,24 @@ public class InjectorForJavaDescriptorResolver {
private final Project project; private final Project project;
private final BindingTrace bindingTrace; private final BindingTrace bindingTrace;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptor moduleDescriptor;
private JavaBridgeConfiguration javaBridgeConfiguration; private final JavaBridgeConfiguration javaBridgeConfiguration;
private JavaSemanticServices javaSemanticServices; private final JavaSemanticServices javaSemanticServices;
private JavaDescriptorResolver javaDescriptorResolver; private final JavaDescriptorResolver javaDescriptorResolver;
private PsiClassFinderImpl psiClassFinder; private final PsiClassFinderImpl psiClassFinder;
private PsiDeclarationProviderFactory psiDeclarationProviderFactory; private final PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private JavaTypeTransformer javaTypeTransformer; private final JavaTypeTransformer javaTypeTransformer;
private JavaClassResolver javaClassResolver; private final JavaClassResolver javaClassResolver;
private JavaAnnotationResolver javaAnnotationResolver; private final JavaAnnotationResolver javaAnnotationResolver;
private JavaCompileTimeConstResolver javaCompileTimeConstResolver; private final JavaCompileTimeConstResolver javaCompileTimeConstResolver;
private JavaClassObjectResolver javaClassObjectResolver; private final JavaClassObjectResolver javaClassObjectResolver;
private JavaSupertypeResolver javaSupertypeResolver; private final JavaSupertypeResolver javaSupertypeResolver;
private JavaFunctionResolver javaFunctionResolver; private final JavaFunctionResolver javaFunctionResolver;
private JavaValueParameterResolver javaValueParameterResolver; private final JavaValueParameterResolver javaValueParameterResolver;
private JavaSignatureResolver javaSignatureResolver; private final JavaSignatureResolver javaSignatureResolver;
private JavaNamespaceResolver javaNamespaceResolver; private final JavaNamespaceResolver javaNamespaceResolver;
private JavaConstructorResolver javaConstructorResolver; private final JavaConstructorResolver javaConstructorResolver;
private JavaInnerClassResolver javaInnerClassResolver; private final JavaInnerClassResolver javaInnerClassResolver;
private JavaPropertyResolver javaPropertyResolver; private final JavaPropertyResolver javaPropertyResolver;
public InjectorForJavaDescriptorResolver( public InjectorForJavaDescriptorResolver(
@NotNull Project project, @NotNull Project project,
@@ -43,27 +43,27 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForJavaSemanticServices { public class InjectorForJavaSemanticServices {
private JavaSemanticServices javaSemanticServices; private final JavaSemanticServices javaSemanticServices;
private JavaDescriptorResolver javaDescriptorResolver; private final JavaDescriptorResolver javaDescriptorResolver;
private BindingTrace bindingTrace; private final BindingTrace bindingTrace;
private JavaBridgeConfiguration javaBridgeConfiguration; private final JavaBridgeConfiguration javaBridgeConfiguration;
private PsiClassFinderImpl psiClassFinder; private final PsiClassFinderImpl psiClassFinder;
private ModuleDescriptorImpl moduleDescriptor; private final ModuleDescriptorImpl moduleDescriptor;
private final Project project; private final Project project;
private PsiDeclarationProviderFactory psiDeclarationProviderFactory; private final PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private JavaTypeTransformer javaTypeTransformer; private final JavaTypeTransformer javaTypeTransformer;
private JavaClassResolver javaClassResolver; private final JavaClassResolver javaClassResolver;
private JavaAnnotationResolver javaAnnotationResolver; private final JavaAnnotationResolver javaAnnotationResolver;
private JavaCompileTimeConstResolver javaCompileTimeConstResolver; private final JavaCompileTimeConstResolver javaCompileTimeConstResolver;
private JavaClassObjectResolver javaClassObjectResolver; private final JavaClassObjectResolver javaClassObjectResolver;
private JavaSupertypeResolver javaSupertypeResolver; private final JavaSupertypeResolver javaSupertypeResolver;
private JavaFunctionResolver javaFunctionResolver; private final JavaFunctionResolver javaFunctionResolver;
private JavaValueParameterResolver javaValueParameterResolver; private final JavaValueParameterResolver javaValueParameterResolver;
private JavaSignatureResolver javaSignatureResolver; private final JavaSignatureResolver javaSignatureResolver;
private JavaNamespaceResolver javaNamespaceResolver; private final JavaNamespaceResolver javaNamespaceResolver;
private JavaConstructorResolver javaConstructorResolver; private final JavaConstructorResolver javaConstructorResolver;
private JavaInnerClassResolver javaInnerClassResolver; private final JavaInnerClassResolver javaInnerClassResolver;
private JavaPropertyResolver javaPropertyResolver; private final JavaPropertyResolver javaPropertyResolver;
public InjectorForJavaSemanticServices( public InjectorForJavaSemanticServices(
@NotNull Project project @NotNull Project project
@@ -68,52 +68,52 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer { public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer {
private TopDownAnalyzer topDownAnalyzer; private final TopDownAnalyzer topDownAnalyzer;
private TopDownAnalysisContext topDownAnalysisContext; private final TopDownAnalysisContext topDownAnalysisContext;
private BodyResolver bodyResolver; private final BodyResolver bodyResolver;
private ControlFlowAnalyzer controlFlowAnalyzer; private final ControlFlowAnalyzer controlFlowAnalyzer;
private DeclarationsChecker declarationsChecker; private final DeclarationsChecker declarationsChecker;
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
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 JavaBridgeConfiguration javaBridgeConfiguration; private final JavaBridgeConfiguration javaBridgeConfiguration;
private JavaDescriptorResolver javaDescriptorResolver; private final JavaDescriptorResolver javaDescriptorResolver;
private PsiClassFinderImpl psiClassFinder; private final PsiClassFinderImpl psiClassFinder;
private NamespaceFactoryImpl namespaceFactory; private final NamespaceFactoryImpl namespaceFactory;
private DeclarationResolver declarationResolver; private final DeclarationResolver declarationResolver;
private AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
private ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private JetImportsFactory jetImportsFactory; private final JetImportsFactory jetImportsFactory;
private ScriptHeaderResolver scriptHeaderResolver; private final ScriptHeaderResolver scriptHeaderResolver;
private OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private TypeHierarchyResolver typeHierarchyResolver; private final TypeHierarchyResolver typeHierarchyResolver;
private ScriptBodyResolver scriptBodyResolver; private final ScriptBodyResolver scriptBodyResolver;
private JavaSemanticServices javaSemanticServices; private final JavaSemanticServices javaSemanticServices;
private PsiDeclarationProviderFactory psiDeclarationProviderFactory; private final PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private JavaTypeTransformer javaTypeTransformer; private final JavaTypeTransformer javaTypeTransformer;
private JavaClassResolver javaClassResolver; private final JavaClassResolver javaClassResolver;
private JavaAnnotationResolver javaAnnotationResolver; private final JavaAnnotationResolver javaAnnotationResolver;
private JavaCompileTimeConstResolver javaCompileTimeConstResolver; private final JavaCompileTimeConstResolver javaCompileTimeConstResolver;
private JavaClassObjectResolver javaClassObjectResolver; private final JavaClassObjectResolver javaClassObjectResolver;
private JavaSupertypeResolver javaSupertypeResolver; private final JavaSupertypeResolver javaSupertypeResolver;
private JavaFunctionResolver javaFunctionResolver; private final JavaFunctionResolver javaFunctionResolver;
private JavaValueParameterResolver javaValueParameterResolver; private final JavaValueParameterResolver javaValueParameterResolver;
private JavaSignatureResolver javaSignatureResolver; private final JavaSignatureResolver javaSignatureResolver;
private JavaNamespaceResolver javaNamespaceResolver; private final JavaNamespaceResolver javaNamespaceResolver;
private JavaConstructorResolver javaConstructorResolver; private final JavaConstructorResolver javaConstructorResolver;
private JavaInnerClassResolver javaInnerClassResolver; private final JavaInnerClassResolver javaInnerClassResolver;
private JavaPropertyResolver javaPropertyResolver; private final JavaPropertyResolver javaPropertyResolver;
public InjectorForTopDownAnalyzerForJvm( public InjectorForTopDownAnalyzerForJvm(
@NotNull Project project, @NotNull Project project,
@@ -42,26 +42,26 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForBodyResolve { public class InjectorForBodyResolve {
private BodyResolver bodyResolver; private final BodyResolver bodyResolver;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
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 AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
private ControlFlowAnalyzer controlFlowAnalyzer; private final ControlFlowAnalyzer controlFlowAnalyzer;
private DeclarationsChecker declarationsChecker; private final DeclarationsChecker declarationsChecker;
private ScriptBodyResolver scriptBodyResolver; private final ScriptBodyResolver scriptBodyResolver;
private TopDownAnalysisContext topDownAnalysisContext; private final TopDownAnalysisContext topDownAnalysisContext;
public InjectorForBodyResolve( public InjectorForBodyResolve(
@NotNull Project project, @NotNull Project project,
@@ -40,18 +40,18 @@ public class InjectorForLazyResolve {
private final Project project; private final Project project;
private final ResolveSession resolveSession; private final ResolveSession resolveSession;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptor moduleDescriptor;
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private ScopeProvider scopeProvider; private final ScopeProvider scopeProvider;
private AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private JetImportsFactory jetImportsFactory; private final JetImportsFactory jetImportsFactory;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
public InjectorForLazyResolve( public InjectorForLazyResolve(
@NotNull Project project, @NotNull Project project,
@@ -34,18 +34,18 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForMacros { public class InjectorForMacros {
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
private final Project project; private final Project project;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptor moduleDescriptor;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
public InjectorForMacros( public InjectorForMacros(
@NotNull Project project, @NotNull Project project,
@@ -51,35 +51,35 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForTopDownAnalyzerBasic { public class InjectorForTopDownAnalyzerBasic {
private TopDownAnalyzer topDownAnalyzer; private final TopDownAnalyzer topDownAnalyzer;
private TopDownAnalysisContext topDownAnalysisContext; private final TopDownAnalysisContext topDownAnalysisContext;
private BodyResolver bodyResolver; private final BodyResolver bodyResolver;
private ControlFlowAnalyzer controlFlowAnalyzer; private final ControlFlowAnalyzer controlFlowAnalyzer;
private DeclarationsChecker declarationsChecker; private final DeclarationsChecker declarationsChecker;
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
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 DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy; private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
private NamespaceFactoryImpl namespaceFactory; private final NamespaceFactoryImpl namespaceFactory;
private DeclarationResolver declarationResolver; private final DeclarationResolver declarationResolver;
private AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
private ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private JetImportsFactory jetImportsFactory; private final JetImportsFactory jetImportsFactory;
private ScriptHeaderResolver scriptHeaderResolver; private final ScriptHeaderResolver scriptHeaderResolver;
private OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private TypeHierarchyResolver typeHierarchyResolver; private final TypeHierarchyResolver typeHierarchyResolver;
private ScriptBodyResolver scriptBodyResolver; private final ScriptBodyResolver scriptBodyResolver;
public InjectorForTopDownAnalyzerBasic( public InjectorForTopDownAnalyzerBasic(
@NotNull Project project, @NotNull Project project,
@@ -35,19 +35,19 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForTests { public class InjectorForTests {
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
private KotlinBuiltIns kotlinBuiltIns; private final KotlinBuiltIns kotlinBuiltIns;
private final Project project; private final Project project;
private final ModuleDescriptor moduleDescriptor; private final ModuleDescriptor moduleDescriptor;
private AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
public InjectorForTests( public InjectorForTests(
@NotNull Project project, @NotNull Project project,
@@ -235,8 +235,7 @@ public class DependencyInjectorGenerator {
private void generateFields(Printer out) { private void generateFields(Printer out) {
for (Field field : fields) { for (Field field : fields) {
String _final = backsParameter.contains(field) ? "final " : ""; out.println("private final " + type(InjectorGeneratorUtil.getEffectiveFieldType(field)) + " " + field.getName() + ";");
out.println("private " + _final + type(InjectorGeneratorUtil.getEffectiveFieldType(field)) + " " + field.getName() + ";");
} }
} }
@@ -299,7 +298,7 @@ public class DependencyInjectorGenerator {
private void generateGetters(Printer out) { private void generateGetters(Printer out) {
for (Field field : fields) { for (Field field : fields) {
if (!field.isPublic()) continue; if (!field.isPublic()) continue;
String visibility = field.isPublic() ? "public" : "private"; String visibility = "public";
out.println(visibility + " " + type(field.getType()) + " " + field.getGetterName() + "() {"); out.println(visibility + " " + type(field.getType()) + " " + field.getGetterName() + "() {");
out.pushIndent(); out.pushIndent();
@@ -51,35 +51,35 @@ import javax.annotation.PreDestroy;
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */ /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
public class InjectorForTopDownAnalyzerForJs { public class InjectorForTopDownAnalyzerForJs {
private TopDownAnalyzer topDownAnalyzer; private final TopDownAnalyzer topDownAnalyzer;
private TopDownAnalysisContext topDownAnalysisContext; private final TopDownAnalysisContext topDownAnalysisContext;
private BodyResolver bodyResolver; private final BodyResolver bodyResolver;
private ControlFlowAnalyzer controlFlowAnalyzer; private final ControlFlowAnalyzer controlFlowAnalyzer;
private DeclarationsChecker declarationsChecker; private final DeclarationsChecker declarationsChecker;
private DescriptorResolver descriptorResolver; private final DescriptorResolver descriptorResolver;
private NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension; private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
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 DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy; private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
private NamespaceFactoryImpl namespaceFactory; private final NamespaceFactoryImpl namespaceFactory;
private DeclarationResolver declarationResolver; private final DeclarationResolver declarationResolver;
private AnnotationResolver annotationResolver; private final AnnotationResolver annotationResolver;
private CallResolver callResolver; private final CallResolver callResolver;
private ArgumentTypeResolver argumentTypeResolver; private final ArgumentTypeResolver argumentTypeResolver;
private ExpressionTypingServices expressionTypingServices; private final ExpressionTypingServices expressionTypingServices;
private CallExpressionResolver callExpressionResolver; private final CallExpressionResolver callExpressionResolver;
private TypeResolver typeResolver; private final TypeResolver typeResolver;
private QualifiedExpressionResolver qualifiedExpressionResolver; private final QualifiedExpressionResolver qualifiedExpressionResolver;
private CandidateResolver candidateResolver; private final CandidateResolver candidateResolver;
private ImportsResolver importsResolver; private final ImportsResolver importsResolver;
private JetImportsFactory jetImportsFactory; private final JetImportsFactory jetImportsFactory;
private ScriptHeaderResolver scriptHeaderResolver; private final ScriptHeaderResolver scriptHeaderResolver;
private OverloadResolver overloadResolver; private final OverloadResolver overloadResolver;
private OverrideResolver overrideResolver; private final OverrideResolver overrideResolver;
private TypeHierarchyResolver typeHierarchyResolver; private final TypeHierarchyResolver typeHierarchyResolver;
private ScriptBodyResolver scriptBodyResolver; private final ScriptBodyResolver scriptBodyResolver;
public InjectorForTopDownAnalyzerForJs( public InjectorForTopDownAnalyzerForJs(
@NotNull Project project, @NotNull Project project,