From 8c67ec8c89eefb048a04ef142844a6b41b35974c Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 16 Apr 2019 21:47:19 +0300 Subject: [PATCH] FIR resolve: abstract PostponedResolvedAtom & buildCurrentSubstitutor --- .../src/org/jetbrains/kotlin/fir/resolve/calls/CallResolver.kt | 2 ++ .../org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallResolver.kt index 0fe7c56f4a5..d81aee7d413 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallResolver.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.calls.inference.model.ConstraintStorage +import org.jetbrains.kotlin.resolve.calls.model.PostponedResolvedAtomMarker import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.utils.addToStdlib.cast @@ -74,6 +75,7 @@ class Candidate( lateinit var substitutor: ConeSubstitutor var argumentMapping: Map? = null + val postponedAtoms = mutableListOf() } sealed class CallKind { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt index 616288918a7..3a40f7f2b7d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CandidateFactory.kt @@ -36,7 +36,7 @@ class CandidateFactory( } } -private fun PostponedArgumentsAnalyzer.Context.addSubsystemFromExpression(expression: FirExpression) { +fun PostponedArgumentsAnalyzer.Context.addSubsystemFromExpression(expression: FirExpression) { when (expression) { is FirFunctionCall -> expression.candidate()?.let { addOtherSystem(it.system.asReadOnlyStorage()) } }