diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.java index 398298b2bae..e48c47a7c46 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.java @@ -227,8 +227,7 @@ public class CallExpressionResolver { context, "trace to resolve as function call", callExpression); ResolvedCall resolvedCall = getResolvedCallForFunction( call, - // It's possible start of a call so we should reset safe call chain - context.replaceTraceAndCache(temporaryForFunction).replaceInsideCallChain(false), + context.replaceTraceAndCache(temporaryForFunction), CheckArgumentTypesMode.CHECK_VALUE_ARGUMENTS, result); if (result[0]) { FunctionDescriptor functionDescriptor = resolvedCall != null ? resolvedCall.getResultingDescriptor() : null; diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java index f4b1578aadc..0a18b23802e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java @@ -42,11 +42,10 @@ public class BasicCallResolutionContext extends CallResolutionContext resolvedCall) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallCandidateResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallCandidateResolutionContext.java index ae5ae6069ea..e9e95ea6254 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallCandidateResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallCandidateResolutionContext.java @@ -59,12 +59,11 @@ public final class CallCandidateResolutionContext @NotNull Receiver explicitExtensionReceiverForInvoke, @NotNull CandidateResolveMode candidateResolveMode, boolean isAnnotationContext, - boolean collectAllCandidates, - boolean insideSafeCallChain + boolean collectAllCandidates ) { super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, dataFlowInfoForArguments, callChecker, statementFilter, isAnnotationContext, - collectAllCandidates, insideSafeCallChain); + collectAllCandidates); this.candidateCall = candidateCall; this.tracing = tracing; this.explicitExtensionReceiverForInvoke = explicitExtensionReceiverForInvoke; @@ -81,7 +80,7 @@ public final class CallCandidateResolutionContext context.dataFlowInfo, context.contextDependency, context.checkArguments, context.resolutionResultsCache, context.dataFlowInfoForArguments, context.callChecker, context.statementFilter, explicitExtensionReceiverForInvoke, - candidateResolveMode, context.isAnnotationContext, context.collectAllCandidates, context.insideCallChain); + candidateResolveMode, context.isAnnotationContext, context.collectAllCandidates); } @NotNull @@ -92,7 +91,7 @@ public final class CallCandidateResolutionContext candidateCall, tracing, context.trace, context.scope, context.call, context.expectedType, context.dataFlowInfo, context.contextDependency, context.checkArguments, context.resolutionResultsCache, context.dataFlowInfoForArguments, context.callChecker, context.statementFilter, - ReceiverValue.NO_RECEIVER, CandidateResolveMode.FULLY, context.isAnnotationContext, context.collectAllCandidates, context.insideCallChain); + ReceiverValue.NO_RECEIVER, CandidateResolveMode.FULLY, context.isAnnotationContext, context.collectAllCandidates); } @Override @@ -104,12 +103,11 @@ public final class CallCandidateResolutionContext @NotNull ContextDependency contextDependency, @NotNull ResolutionResultsCache resolutionResultsCache, @NotNull StatementFilter statementFilter, - boolean collectAllCandidates, - boolean insideSafeCallChain + boolean collectAllCandidates ) { return new CallCandidateResolutionContext( candidateCall, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, dataFlowInfoForArguments, callChecker, statementFilter, - explicitExtensionReceiverForInvoke, candidateResolveMode, isAnnotationContext, collectAllCandidates, insideSafeCallChain); + explicitExtensionReceiverForInvoke, candidateResolveMode, isAnnotationContext, collectAllCandidates); } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java index 2c781a14653..9e0093427f2 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java @@ -50,11 +50,10 @@ public abstract class CallResolutionContext extends C @NotNull StatementFilter statementFilter, @NotNull Collection> resolvedCalls, boolean isAnnotationContext, - boolean collectAllCandidates, - boolean insideSafeCallChain + boolean collectAllCandidates ) { super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, - dataFlowInfoForArguments, callChecker, statementFilter, isAnnotationContext, collectAllCandidates, insideSafeCallChain); + dataFlowInfoForArguments, callChecker, statementFilter, isAnnotationContext, collectAllCandidates); this.lazyCandidates = lazyCandidates; this.resolvedCalls = resolvedCalls; this.tracing = tracing; @@ -79,7 +78,7 @@ public class ResolutionTask extends C context.resolutionResultsCache, context.dataFlowInfoForArguments, context.callChecker, context.statementFilter, new SmartList>(), - context.isAnnotationContext, context.collectAllCandidates, context.insideCallChain); + context.isAnnotationContext, context.collectAllCandidates); } @NotNull @@ -105,15 +104,14 @@ public class ResolutionTask extends C @NotNull ContextDependency contextDependency, @NotNull ResolutionResultsCache resolutionResultsCache, @NotNull StatementFilter statementFilter, - boolean collectAllCandidates, - boolean insideSafeCallChain + boolean collectAllCandidates ) { return new ResolutionTask( lazyCandidates, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, dataFlowInfoForArguments, callChecker, statementFilter, resolvedCalls, - isAnnotationContext, collectAllCandidates, insideSafeCallChain); + isAnnotationContext, collectAllCandidates); } @Override diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java index e9917e9645b..9c7cb0767a0 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java @@ -61,7 +61,7 @@ public class ExpressionTypingContext extends ResolutionContext