From 45bfb2075d6b1fdd7c52e277fb3db841afa365e2 Mon Sep 17 00:00:00 2001 From: Mikhael Bogdanov Date: Fri, 12 May 2017 15:12:46 +0200 Subject: [PATCH] Move reifiedTypeInliner to root context --- .../inline/AnonymousObjectTransformer.kt | 2 +- .../kotlin/codegen/inline/InliningContext.kt | 17 +++++------------ 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt index bbd0aff6e42..86b0ca77939 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/AnonymousObjectTransformer.kt @@ -183,7 +183,7 @@ class AnonymousObjectTransformer( capturedBuilder: ParametersBuilder, isConstructor: Boolean ): 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 remapper = RegeneratedLambdaFieldRemapper( diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InliningContext.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InliningContext.kt index bade33727cd..36ef31769ff 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InliningContext.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/InliningContext.kt @@ -18,9 +18,6 @@ package org.jetbrains.kotlin.codegen.inline import org.jetbrains.kotlin.codegen.state.GenerationState import org.jetbrains.kotlin.psi.KtElement -import java.util.* - - class RootInliningContext( expressionMap: Map, @@ -28,10 +25,10 @@ class RootInliningContext( nameGenerator: NameGenerator, val callElement: KtElement, override val callSiteInfo: InlineCallSiteInfo, - inliner: ReifiedTypeInliner, + val reifiedTypeInliner: ReifiedTypeInliner, val typeParameterMappings: TypeParameterMappings ) : InliningContext( - null, expressionMap, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), inliner, null, false + null, expressionMap, state, nameGenerator, TypeRemapper.createRoot(typeParameterMappings), null, false ) class RegeneratedClassContext( @@ -40,22 +37,18 @@ class RegeneratedClassContext( state: GenerationState, nameGenerator: NameGenerator, typeRemapper: TypeRemapper, - reifiedTypeInliner: ReifiedTypeInliner, lambdaInfo: LambdaInfo?, override val callSiteInfo: InlineCallSiteInfo ) : InliningContext( - parent, expressionMap, state, nameGenerator, typeRemapper, reifiedTypeInliner, lambdaInfo, true + parent, expressionMap, state, nameGenerator, typeRemapper, lambdaInfo, true ) - - open class InliningContext( val parent: InliningContext?, private val expressionMap: Map, val state: GenerationState, val nameGenerator: NameGenerator, val typeRemapper: TypeRemapper, - val reifiedTypeInliner: ReifiedTypeInliner, val lambdaInfo: LambdaInfo?, val classRegeneration: Boolean ) { @@ -86,7 +79,7 @@ open class InliningContext( ): InliningContext { return RegeneratedClassContext( this, expressionMap, state, generator, TypeRemapper.createFrom(typeRemapper, newTypeMappings), - reifiedTypeInliner, lambdaInfo, callSiteInfo + lambdaInfo, callSiteInfo ) } @@ -106,7 +99,7 @@ open class InliningContext( //root inline lambda isInliningLambda && !this.isInliningLambda ), - reifiedTypeInliner, lambdaInfo, classRegeneration + lambdaInfo, classRegeneration ) }