Move reifiedTypeInliner to root context
This commit is contained in:
+1
-1
@@ -183,7 +183,7 @@ class AnonymousObjectTransformer(
|
|||||||
capturedBuilder: ParametersBuilder,
|
capturedBuilder: ParametersBuilder,
|
||||||
isConstructor: Boolean
|
isConstructor: Boolean
|
||||||
): InlineResult {
|
): InlineResult {
|
||||||
val typeParametersToReify = inliningContext.reifiedTypeInliner.reifyInstructions(sourceNode)
|
val typeParametersToReify = inliningContext.root.reifiedTypeInliner.reifyInstructions(sourceNode)
|
||||||
val parameters = if (isConstructor) capturedBuilder.buildParameters() else getMethodParametersWithCaptured(capturedBuilder, sourceNode)
|
val parameters = if (isConstructor) capturedBuilder.buildParameters() else getMethodParametersWithCaptured(capturedBuilder, sourceNode)
|
||||||
|
|
||||||
val remapper = RegeneratedLambdaFieldRemapper(
|
val remapper = RegeneratedLambdaFieldRemapper(
|
||||||
|
|||||||
@@ -18,9 +18,6 @@ package org.jetbrains.kotlin.codegen.inline
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class RootInliningContext(
|
class RootInliningContext(
|
||||||
expressionMap: Map<Int, LambdaInfo>,
|
expressionMap: Map<Int, LambdaInfo>,
|
||||||
@@ -28,10 +25,10 @@ class RootInliningContext(
|
|||||||
nameGenerator: NameGenerator,
|
nameGenerator: NameGenerator,
|
||||||
val callElement: KtElement,
|
val callElement: KtElement,
|
||||||
override val callSiteInfo: InlineCallSiteInfo,
|
override val callSiteInfo: InlineCallSiteInfo,
|
||||||
inliner: ReifiedTypeInliner,
|
val reifiedTypeInliner: ReifiedTypeInliner,
|
||||||
val typeParameterMappings: TypeParameterMappings
|
val typeParameterMappings: TypeParameterMappings
|
||||||
) : InliningContext(
|
) : InliningContext(
|
||||||
null, expressionMap, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), inliner, null, false
|
null, expressionMap, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), null, false
|
||||||
)
|
)
|
||||||
|
|
||||||
class RegeneratedClassContext(
|
class RegeneratedClassContext(
|
||||||
@@ -40,22 +37,18 @@ class RegeneratedClassContext(
|
|||||||
state: GenerationState,
|
state: GenerationState,
|
||||||
nameGenerator: NameGenerator,
|
nameGenerator: NameGenerator,
|
||||||
typeRemapper: TypeRemapper,
|
typeRemapper: TypeRemapper,
|
||||||
reifiedTypeInliner: ReifiedTypeInliner,
|
|
||||||
lambdaInfo: LambdaInfo?,
|
lambdaInfo: LambdaInfo?,
|
||||||
override val callSiteInfo: InlineCallSiteInfo
|
override val callSiteInfo: InlineCallSiteInfo
|
||||||
) : InliningContext(
|
) : InliningContext(
|
||||||
parent, expressionMap, state, nameGenerator, typeRemapper, reifiedTypeInliner, lambdaInfo, true
|
parent, expressionMap, state, nameGenerator, typeRemapper, lambdaInfo, true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
open class InliningContext(
|
open class InliningContext(
|
||||||
val parent: InliningContext?,
|
val parent: InliningContext?,
|
||||||
private val expressionMap: Map<Int, LambdaInfo>,
|
private val expressionMap: Map<Int, LambdaInfo>,
|
||||||
val state: GenerationState,
|
val state: GenerationState,
|
||||||
val nameGenerator: NameGenerator,
|
val nameGenerator: NameGenerator,
|
||||||
val typeRemapper: TypeRemapper,
|
val typeRemapper: TypeRemapper,
|
||||||
val reifiedTypeInliner: ReifiedTypeInliner,
|
|
||||||
val lambdaInfo: LambdaInfo?,
|
val lambdaInfo: LambdaInfo?,
|
||||||
val classRegeneration: Boolean
|
val classRegeneration: Boolean
|
||||||
) {
|
) {
|
||||||
@@ -86,7 +79,7 @@ open class InliningContext(
|
|||||||
): InliningContext {
|
): InliningContext {
|
||||||
return RegeneratedClassContext(
|
return RegeneratedClassContext(
|
||||||
this, expressionMap, state, generator, TypeRemapper.createFrom(typeRemapper, newTypeMappings),
|
this, expressionMap, state, generator, TypeRemapper.createFrom(typeRemapper, newTypeMappings),
|
||||||
reifiedTypeInliner, lambdaInfo, callSiteInfo
|
lambdaInfo, callSiteInfo
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -106,7 +99,7 @@ open class InliningContext(
|
|||||||
//root inline lambda
|
//root inline lambda
|
||||||
isInliningLambda && !this.isInliningLambda
|
isInliningLambda && !this.isInliningLambda
|
||||||
),
|
),
|
||||||
reifiedTypeInliner, lambdaInfo, classRegeneration
|
lambdaInfo, classRegeneration
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user