From 367db345a86a45692770aac85331374aa9562629 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Thu, 12 Aug 2021 15:33:00 +0200 Subject: [PATCH] [Commonizer] Do not re-calculate classifier indices for transformer ^KT-47430 --- .../src/org/jetbrains/kotlin/commonizer/facade.kt | 4 ++-- .../TypeSubstitutionCirNodeTransformer.kt | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt index e720b8422dd..0ae533754d6 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/facade.kt @@ -53,7 +53,7 @@ internal fun commonizeTarget( parameters.logger.progress(output, "Commonized declarations from ${inputs.targets}") { val classifiers = CirKnownClassifiers( - classifierIndices = availableTrees.toList().map(::CirClassifierIndex), // TODO NOW: Reuse for transformer!! + classifierIndices = availableTrees.toList().map(::CirClassifierIndex), commonizedNodes = CirCommonizedClassifierNodes.default(), commonDependencies = parameters.dependencyClassifiers(output) ) @@ -61,7 +61,7 @@ internal fun commonizeTarget( val mergedTree = mergeCirTree(parameters.storageManager, classifiers, availableTrees) InlineTypeAliasCirNodeTransformer(parameters.storageManager, classifiers).invoke(mergedTree) - TypeSubstitutionCirNodeTransformer(parameters.storageManager, classifiers, availableTrees).invoke(mergedTree) + TypeSubstitutionCirNodeTransformer(parameters.storageManager, classifiers).invoke(mergedTree) mergedTree.accept(CommonizationVisitor(classifiers, mergedTree), Unit) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/TypeSubstitutionCirNodeTransformer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/TypeSubstitutionCirNodeTransformer.kt index cb4ab57b969..cba05d99921 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/TypeSubstitutionCirNodeTransformer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/TypeSubstitutionCirNodeTransformer.kt @@ -10,19 +10,18 @@ import org.jetbrains.kotlin.commonizer.mergedtree.CirNodeRelationship.ParentNode import org.jetbrains.kotlin.commonizer.tree.CirTreeRoot import org.jetbrains.kotlin.storage.StorageManager -internal fun TypeSubstitutionCirNodeTransformer( - storageManager: StorageManager, classifiers: CirKnownClassifiers, roots: Iterable -): TypeSubstitutionCirNodeTransformer { - val typeSubstitutor = CirAliasTypeSubstitutor(classifiers.commonDependencies, roots.map(::CirClassifierIndex)) - return TypeSubstitutionCirNodeTransformer(storageManager, classifiers, typeSubstitutor) -} - internal class TypeSubstitutionCirNodeTransformer( private val storageManager: StorageManager, private val classifiers: CirKnownClassifiers, private val typeSubstitutor: CirTypeSubstitutor ) : CirNodeTransformer { + constructor(storageManager: StorageManager, classifiers: CirKnownClassifiers) : this( + storageManager = storageManager, + classifiers = classifiers, + typeSubstitutor = CirAliasTypeSubstitutor(classifiers.commonDependencies, classifiers.classifierIndices) + ) + override fun invoke(root: CirRootNode) { for (index in 0 until root.targetDeclarations.size) { root.modules.forEach { (_, module) -> this(module, index) }