diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SessionHolder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SessionHolder.kt index b15ea2160a9..b448e7ea4b1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SessionHolder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SessionHolder.kt @@ -31,6 +31,7 @@ interface BodyResolveComponents : SessionHolder { val inferenceComponents: InferenceComponents val resolutionStageRunner: ResolutionStageRunner val scopeSession: ScopeSession + val samResolver: FirSamResolver val AbstractFirBasedSymbol.phasedFir: D where D : FirDeclaration, D : FirSymbolOwner get() = phasedFir(session, FirResolvePhase.DECLARATIONS) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt index 8b1a74e9b45..74505b7fd37 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt @@ -60,7 +60,7 @@ class Candidate( system } - val samResolver get() = bodyResolveComponents.inferenceComponents.samResolver + val samResolver get() = bodyResolveComponents.samResolver lateinit var substitutor: ConeSubstitutor diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt index de45d0f58df..737e4a15aac 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/InferenceUtil.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.resolve.FirSamResolver import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.transformers.ReturnTypeCalculator @@ -58,8 +57,7 @@ class InferenceComponents( val ctx: TypeSystemInferenceExtensionContextDelegate, val session: FirSession, val returnTypeCalculator: ReturnTypeCalculator, - val scopeSession: ScopeSession, - val samResolver: FirSamResolver + val scopeSession: ScopeSession ) { private val approximator = object : AbstractTypeApproximator(ctx) { override fun createErrorType(message: String): SimpleTypeMarker { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index 7c5d4330587..bf955843396 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -72,6 +72,7 @@ open class FirBodyResolveTransformer( private val topLevelScopes = mutableListOf() final override val implicitReceiverStack: ImplicitReceiverStackImpl = ImplicitReceiverStackImpl() final override val inferenceComponents = inferenceComponents(session, returnTypeCalculator, scopeSession) + final override val samResolver: FirSamResolver = FirSamResolverImpl(session, scopeSession) private var primaryConstructorParametersScope: FirLocalScope? = null @@ -978,7 +979,7 @@ private fun inferenceComponents(session: FirSession, returnTypeCalculator: Retur require(this is ErrorTypeConstructor) return ConeClassErrorType(reason) } - }, session, returnTypeCalculator, scopeSession, FirSamResolverImpl(session, scopeSession)) + }, session, returnTypeCalculator, scopeSession) class FirDesignatedBodyResolveTransformer(