From 04e71234a1b77aac656803e8bd462c5185f964dd Mon Sep 17 00:00:00 2001 From: Ilya Ryzhenkov Date: Fri, 17 Jul 2015 20:00:34 +0300 Subject: [PATCH] LocalClassifierAnalyzer dependencies --- .../expressions/BasicExpressionTypingVisitor.java | 7 ++----- .../ExpressionTypingVisitorForStatements.java | 14 ++++++-------- .../types/expressions/LocalClassifierAnalyzer.kt | 13 +++++++------ 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java index 06383a6cec7..32cd8428878 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java @@ -642,13 +642,10 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { }; ObservableBindingTrace traceAdapter = new ObservableBindingTrace(temporaryTrace); traceAdapter.addHandler(CLASS, handler); - components.localClassifierAnalyzer.processClassOrObject(components.globalContext, - null, // don't need to add classifier of object literal to any scope + components.localClassifierAnalyzer.processClassOrObject(null, // don't need to add classifier of object literal to any scope context.replaceBindingTrace(traceAdapter).replaceContextDependency(INDEPENDENT), context.scope.getContainingDeclaration(), - expression.getObjectDeclaration(), - components.additionalCheckerProvider, - components.dynamicTypesSettings); + expression.getObjectDeclaration()); temporaryTrace.commit(); DataFlowInfo resultFlowInfo = context.dataFlowInfo; for (JetDelegationSpecifier specifier: expression.getObjectDeclaration().getDelegationSpecifiers()) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorForStatements.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorForStatements.java index 97ec9f84144..30e12e7e517 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorForStatements.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingVisitorForStatements.java @@ -96,10 +96,9 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito @Override public JetTypeInfo visitObjectDeclaration(@NotNull JetObjectDeclaration declaration, ExpressionTypingContext context) { components.localClassifierAnalyzer.processClassOrObject( - components.globalContext, - scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), scope.getContainingDeclaration(), declaration, - components.additionalCheckerProvider, - components.dynamicTypesSettings); + scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), + scope.getContainingDeclaration(), + declaration); return TypeInfoFactoryPackage.createTypeInfo(DataFlowUtils.checkStatementType(declaration, context), context); } @@ -195,10 +194,9 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito @Override public JetTypeInfo visitClass(@NotNull JetClass klass, ExpressionTypingContext context) { components.localClassifierAnalyzer.processClassOrObject( - components.globalContext, - scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), scope.getContainingDeclaration(), klass, - components.additionalCheckerProvider, - components.dynamicTypesSettings); + scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), + scope.getContainingDeclaration(), + klass); return TypeInfoFactoryPackage.createTypeInfo(DataFlowUtils.checkStatementType(klass, context), context); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt index 242c0f514e3..ac2cc72943e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/LocalClassifierAnalyzer.kt @@ -45,19 +45,20 @@ import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.types.DynamicTypesSettings public class LocalClassifierAnalyzer( + val globalContext: GlobalContext, + val storageManager: StorageManager, val descriptorResolver: DescriptorResolver, val funcionDescriptorResolver: FunctionDescriptorResolver, val typeResolver: TypeResolver, - val annotationResolver: AnnotationResolver + val annotationResolver: AnnotationResolver, + val additionalCheckerProvider: AdditionalCheckerProvider, + val dynamicTypesSettings: DynamicTypesSettings ) { fun processClassOrObject( - globalContext: GlobalContext, scope: WritableScope?, context: ExpressionTypingContext, containingDeclaration: DeclarationDescriptor, - classOrObject: JetClassOrObject, - additionalCheckerProvider: AdditionalCheckerProvider, - dynamicTypesSettings: DynamicTypesSettings + classOrObject: JetClassOrObject ) { val module = DescriptorUtils.getContainingModule(containingDeclaration) val moduleContext = globalContext.withProject(classOrObject.getProject()).withModule(module) @@ -70,7 +71,7 @@ public class LocalClassifierAnalyzer( scope, classOrObject, containingDeclaration, - globalContext.storageManager, + storageManager, context, module, descriptorResolver,