FIR: use transformer creator from existing return type calculator when creating a new one
This commit is contained in:
+7
-1
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user