Do not resolve all bodies of anonymous objects and local classes in partial body resolve
This commit is contained in:
@@ -106,6 +106,7 @@ fun createContainerForLazyLocalClassifierAnalyzer(
|
||||
platform: TargetPlatform,
|
||||
lookupTracker: LookupTracker,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
statementFilter: StatementFilter,
|
||||
localClassDescriptorHolder: LocalClassDescriptorHolder
|
||||
): StorageComponentContainer = createContainer("LocalClassifierAnalyzer", platform) {
|
||||
configureModule(moduleContext, platform, bindingTrace)
|
||||
@@ -125,6 +126,7 @@ fun createContainerForLazyLocalClassifierAnalyzer(
|
||||
useImpl<LocalLazyDeclarationResolver>()
|
||||
|
||||
useInstance(languageVersionSettings)
|
||||
useInstance(statementFilter)
|
||||
}
|
||||
|
||||
fun createContainerForLazyResolve(
|
||||
|
||||
+5
-5
@@ -35,7 +35,7 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
||||
@NotNull DataFlowInfo dataFlowInfo,
|
||||
@NotNull KotlinType expectedType
|
||||
) {
|
||||
return newContext(trace, scope, dataFlowInfo, expectedType, ContextDependency.INDEPENDENT);
|
||||
return newContext(trace, scope, dataFlowInfo, expectedType, ContextDependency.INDEPENDENT, StatementFilter.NONE);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -44,11 +44,11 @@ public class ExpressionTypingContext extends ResolutionContext<ExpressionTypingC
|
||||
@NotNull LexicalScope scope,
|
||||
@NotNull DataFlowInfo dataFlowInfo,
|
||||
@NotNull KotlinType expectedType,
|
||||
@NotNull ContextDependency contextDependency
|
||||
@NotNull ContextDependency contextDependency,
|
||||
@NotNull StatementFilter statementFilter
|
||||
) {
|
||||
return newContext(trace, scope, dataFlowInfo, expectedType,
|
||||
contextDependency, new ResolutionResultsCacheImpl(),
|
||||
StatementFilter.NONE, false);
|
||||
return newContext(trace, scope, dataFlowInfo, expectedType, contextDependency,
|
||||
new ResolutionResultsCacheImpl(), statementFilter, false);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+1
-1
@@ -106,7 +106,7 @@ public class ExpressionTypingServices {
|
||||
@NotNull ContextDependency contextDependency
|
||||
) {
|
||||
ExpressionTypingContext context = ExpressionTypingContext.newContext(
|
||||
trace, scope, dataFlowInfo, expectedType, contextDependency
|
||||
trace, scope, dataFlowInfo, expectedType, contextDependency, statementFilter
|
||||
);
|
||||
if (contextExpression != expression) {
|
||||
context = context.replaceExpressionContextProvider(new Function1<KtExpression, KtExpression>() {
|
||||
|
||||
+3
-2
@@ -52,7 +52,7 @@ class LocalClassifierAnalyzer(
|
||||
private val globalContext: GlobalContext,
|
||||
private val storageManager: StorageManager,
|
||||
private val descriptorResolver: DescriptorResolver,
|
||||
private val funcionDescriptorResolver: FunctionDescriptorResolver,
|
||||
private val functionDescriptorResolver: FunctionDescriptorResolver,
|
||||
private val typeResolver: TypeResolver,
|
||||
private val annotationResolver: AnnotationResolver,
|
||||
private val platform: TargetPlatform,
|
||||
@@ -74,6 +74,7 @@ class LocalClassifierAnalyzer(
|
||||
platform,
|
||||
lookupTracker,
|
||||
languageVersionSettings,
|
||||
context.statementFilter,
|
||||
LocalClassDescriptorHolder(
|
||||
scope,
|
||||
classOrObject,
|
||||
@@ -82,7 +83,7 @@ class LocalClassifierAnalyzer(
|
||||
context,
|
||||
module,
|
||||
descriptorResolver,
|
||||
funcionDescriptorResolver,
|
||||
functionDescriptorResolver,
|
||||
typeResolver,
|
||||
annotationResolver,
|
||||
supertypeLoopChecker,
|
||||
|
||||
Reference in New Issue
Block a user