LocalClassifierAnalyzer dependencies
This commit is contained in:
+2
-5
@@ -642,13 +642,10 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
|||||||
};
|
};
|
||||||
ObservableBindingTrace traceAdapter = new ObservableBindingTrace(temporaryTrace);
|
ObservableBindingTrace traceAdapter = new ObservableBindingTrace(temporaryTrace);
|
||||||
traceAdapter.addHandler(CLASS, handler);
|
traceAdapter.addHandler(CLASS, handler);
|
||||||
components.localClassifierAnalyzer.processClassOrObject(components.globalContext,
|
components.localClassifierAnalyzer.processClassOrObject(null, // don't need to add classifier of object literal to any scope
|
||||||
null, // don't need to add classifier of object literal to any scope
|
|
||||||
context.replaceBindingTrace(traceAdapter).replaceContextDependency(INDEPENDENT),
|
context.replaceBindingTrace(traceAdapter).replaceContextDependency(INDEPENDENT),
|
||||||
context.scope.getContainingDeclaration(),
|
context.scope.getContainingDeclaration(),
|
||||||
expression.getObjectDeclaration(),
|
expression.getObjectDeclaration());
|
||||||
components.additionalCheckerProvider,
|
|
||||||
components.dynamicTypesSettings);
|
|
||||||
temporaryTrace.commit();
|
temporaryTrace.commit();
|
||||||
DataFlowInfo resultFlowInfo = context.dataFlowInfo;
|
DataFlowInfo resultFlowInfo = context.dataFlowInfo;
|
||||||
for (JetDelegationSpecifier specifier: expression.getObjectDeclaration().getDelegationSpecifiers()) {
|
for (JetDelegationSpecifier specifier: expression.getObjectDeclaration().getDelegationSpecifiers()) {
|
||||||
|
|||||||
+6
-8
@@ -96,10 +96,9 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito
|
|||||||
@Override
|
@Override
|
||||||
public JetTypeInfo visitObjectDeclaration(@NotNull JetObjectDeclaration declaration, ExpressionTypingContext context) {
|
public JetTypeInfo visitObjectDeclaration(@NotNull JetObjectDeclaration declaration, ExpressionTypingContext context) {
|
||||||
components.localClassifierAnalyzer.processClassOrObject(
|
components.localClassifierAnalyzer.processClassOrObject(
|
||||||
components.globalContext,
|
scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT),
|
||||||
scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), scope.getContainingDeclaration(), declaration,
|
scope.getContainingDeclaration(),
|
||||||
components.additionalCheckerProvider,
|
declaration);
|
||||||
components.dynamicTypesSettings);
|
|
||||||
return TypeInfoFactoryPackage.createTypeInfo(DataFlowUtils.checkStatementType(declaration, context), context);
|
return TypeInfoFactoryPackage.createTypeInfo(DataFlowUtils.checkStatementType(declaration, context), context);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -195,10 +194,9 @@ public class ExpressionTypingVisitorForStatements extends ExpressionTypingVisito
|
|||||||
@Override
|
@Override
|
||||||
public JetTypeInfo visitClass(@NotNull JetClass klass, ExpressionTypingContext context) {
|
public JetTypeInfo visitClass(@NotNull JetClass klass, ExpressionTypingContext context) {
|
||||||
components.localClassifierAnalyzer.processClassOrObject(
|
components.localClassifierAnalyzer.processClassOrObject(
|
||||||
components.globalContext,
|
scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT),
|
||||||
scope, context.replaceScope(scope).replaceContextDependency(INDEPENDENT), scope.getContainingDeclaration(), klass,
|
scope.getContainingDeclaration(),
|
||||||
components.additionalCheckerProvider,
|
klass);
|
||||||
components.dynamicTypesSettings);
|
|
||||||
return TypeInfoFactoryPackage.createTypeInfo(DataFlowUtils.checkStatementType(klass, context), context);
|
return TypeInfoFactoryPackage.createTypeInfo(DataFlowUtils.checkStatementType(klass, context), context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-6
@@ -45,19 +45,20 @@ import org.jetbrains.kotlin.storage.StorageManager
|
|||||||
import org.jetbrains.kotlin.types.DynamicTypesSettings
|
import org.jetbrains.kotlin.types.DynamicTypesSettings
|
||||||
|
|
||||||
public class LocalClassifierAnalyzer(
|
public class LocalClassifierAnalyzer(
|
||||||
|
val globalContext: GlobalContext,
|
||||||
|
val storageManager: StorageManager,
|
||||||
val descriptorResolver: DescriptorResolver,
|
val descriptorResolver: DescriptorResolver,
|
||||||
val funcionDescriptorResolver: FunctionDescriptorResolver,
|
val funcionDescriptorResolver: FunctionDescriptorResolver,
|
||||||
val typeResolver: TypeResolver,
|
val typeResolver: TypeResolver,
|
||||||
val annotationResolver: AnnotationResolver
|
val annotationResolver: AnnotationResolver,
|
||||||
|
val additionalCheckerProvider: AdditionalCheckerProvider,
|
||||||
|
val dynamicTypesSettings: DynamicTypesSettings
|
||||||
) {
|
) {
|
||||||
fun processClassOrObject(
|
fun processClassOrObject(
|
||||||
globalContext: GlobalContext,
|
|
||||||
scope: WritableScope?,
|
scope: WritableScope?,
|
||||||
context: ExpressionTypingContext,
|
context: ExpressionTypingContext,
|
||||||
containingDeclaration: DeclarationDescriptor,
|
containingDeclaration: DeclarationDescriptor,
|
||||||
classOrObject: JetClassOrObject,
|
classOrObject: JetClassOrObject
|
||||||
additionalCheckerProvider: AdditionalCheckerProvider,
|
|
||||||
dynamicTypesSettings: DynamicTypesSettings
|
|
||||||
) {
|
) {
|
||||||
val module = DescriptorUtils.getContainingModule(containingDeclaration)
|
val module = DescriptorUtils.getContainingModule(containingDeclaration)
|
||||||
val moduleContext = globalContext.withProject(classOrObject.getProject()).withModule(module)
|
val moduleContext = globalContext.withProject(classOrObject.getProject()).withModule(module)
|
||||||
@@ -70,7 +71,7 @@ public class LocalClassifierAnalyzer(
|
|||||||
scope,
|
scope,
|
||||||
classOrObject,
|
classOrObject,
|
||||||
containingDeclaration,
|
containingDeclaration,
|
||||||
globalContext.storageManager,
|
storageManager,
|
||||||
context,
|
context,
|
||||||
module,
|
module,
|
||||||
descriptorResolver,
|
descriptorResolver,
|
||||||
|
|||||||
Reference in New Issue
Block a user