FIR: use transformer creator from existing return type calculator when creating a new one

This commit is contained in:
Ilya Kirillov
2020-12-18 13:06:31 +01:00
parent 68f6e734be
commit 6ad396f417
@@ -73,6 +73,7 @@ fun <F : FirClass<F>> F.runContractAndBodiesResolutionForLocalClass(
components.scopeSession,
implicitBodyResolveComputationSession,
designationMap,
createTransformer = components.returnTypeCalculator.getTransformerCreator()
)
val newContext = components.context.createSnapshotForLocalClasses(returnTypeCalculator, targetedClasses)
@@ -98,6 +99,11 @@ fun <F : FirClass<F>> 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<FirCallableMemberDeclaration<*>, List<FirClass<*>>> = mapOf(),
private val createTransformer: (
val createTransformer: (
designation: Iterator<FirElement>,
session: FirSession,
scopeSession: ScopeSession,