From cfbc559a97ccc4d93d86849865393e6a33f62d43 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 9 Aug 2017 12:27:41 +0300 Subject: [PATCH] [NI] Propagate tracking binding trace into context --- .../resolve/calls/DiagnosticReporterByTrackingStrategy.kt | 2 +- .../resolve/calls/tower/KotlinToResolvedCallTransformer.kt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt index f53c215c21f..49f0bd0242f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/DiagnosticReporterByTrackingStrategy.kt @@ -38,9 +38,9 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver class DiagnosticReporterByTrackingStrategy( val constantExpressionEvaluator: ConstantExpressionEvaluator, val context: BasicCallResolutionContext, - val trace: TrackingBindingTrace, val psiKotlinCall: PSIKotlinCall ): DiagnosticReporter { + private val trace = context.trace as TrackingBindingTrace private val tracingStrategy: TracingStrategy get() = psiKotlinCall.tracingStrategy private val call: Call get() = psiKotlinCall.psiCall diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt index 2c6911d6148..96c5a3b917f 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tower/KotlinToResolvedCallTransformer.kt @@ -343,7 +343,8 @@ class KotlinToResolvedCallTransformer( completedCall: CompletedKotlinCall.Simple ) { val trackingTrace = TrackingBindingTrace(trace) - val diagnosticReporter = DiagnosticReporterByTrackingStrategy(constantExpressionEvaluator, context, trackingTrace, completedCall.kotlinCall.psiKotlinCall) + val newContext = context.replaceBindingTrace(trackingTrace) + val diagnosticReporter = DiagnosticReporterByTrackingStrategy(constantExpressionEvaluator, newContext, completedCall.kotlinCall.psiKotlinCall) for (diagnostic in completedCall.resolutionStatus.diagnostics) { trackingTrace.reported = false