[NI] Propagate tracking binding trace into context

This commit is contained in:
Mikhail Zarechenskiy
2017-08-09 12:27:41 +03:00
parent 4a74ca568c
commit cfbc559a97
2 changed files with 3 additions and 2 deletions
@@ -38,9 +38,9 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver
class DiagnosticReporterByTrackingStrategy( class DiagnosticReporterByTrackingStrategy(
val constantExpressionEvaluator: ConstantExpressionEvaluator, val constantExpressionEvaluator: ConstantExpressionEvaluator,
val context: BasicCallResolutionContext, val context: BasicCallResolutionContext,
val trace: TrackingBindingTrace,
val psiKotlinCall: PSIKotlinCall val psiKotlinCall: PSIKotlinCall
): DiagnosticReporter { ): DiagnosticReporter {
private val trace = context.trace as TrackingBindingTrace
private val tracingStrategy: TracingStrategy get() = psiKotlinCall.tracingStrategy private val tracingStrategy: TracingStrategy get() = psiKotlinCall.tracingStrategy
private val call: Call get() = psiKotlinCall.psiCall private val call: Call get() = psiKotlinCall.psiCall
@@ -343,7 +343,8 @@ class KotlinToResolvedCallTransformer(
completedCall: CompletedKotlinCall.Simple completedCall: CompletedKotlinCall.Simple
) { ) {
val trackingTrace = TrackingBindingTrace(trace) 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) { for (diagnostic in completedCall.resolutionStatus.diagnostics) {
trackingTrace.reported = false trackingTrace.reported = false