Move reifiedTypeInliner to root context

This commit is contained in:
Mikhael Bogdanov
2017-05-12 15:12:46 +02:00
parent da13ea4a8a
commit 45bfb2075d
2 changed files with 6 additions and 13 deletions
@@ -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
) )
} }