diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 725bf09fb9e..caccfb7499b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -73,6 +73,7 @@ fun > F.runContractAndBodiesResolutionForLocalClass( components.scopeSession, implicitBodyResolveComputationSession, designationMap, + createTransformer = components.returnTypeCalculator.getTransformerCreator() ) val newContext = components.context.createSnapshotForLocalClasses(returnTypeCalculator, targetedClasses) @@ -98,6 +99,11 @@ fun > F.runContractAndBodiesResolutionForLocalClass( } } +private fun ReturnTypeCalculator.getTransformerCreator() = when (this) { + is ReturnTypeCalculatorWithJump -> createTransformer + else -> ::FirDesignatedBodyResolveTransformerForReturnTypeCalculator +} + fun createReturnTypeCalculatorForIDE( session: FirSession, scopeSession: ScopeSession, @@ -178,7 +184,7 @@ private class ReturnTypeCalculatorWithJump( private val scopeSession: ScopeSession, val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession, val designationMapForLocalClasses: Map, List>> = mapOf(), - private val createTransformer: ( + val createTransformer: ( designation: Iterator, session: FirSession, scopeSession: ScopeSession,