diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt index dabc2e380c5..584765d0f59 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/CommonizationVisitor.kt @@ -85,9 +85,8 @@ internal class CommonizationVisitor( // companion object should have the same name for each target class, then it could be set to common class val companionObjectName = node.targetDeclarations.mapTo(HashSet()) { it!!.companion }.singleOrNull() if (companionObjectName != null) { - val companionObjectClassId = node.classifierId.createNestedEntityId(companionObjectName) - val companionObjectNode = classifiers.commonized.classNode(companionObjectClassId) - ?: error("Can't find companion object with class ID $companionObjectClassId") + val companionObjectNode = node.classes[companionObjectName] + ?: error("Can't find node for companion object $companionObjectName in node for class ${node.classifierName}") if (companionObjectNode.commonDeclaration() != null) { // companion object has been successfully commonized @@ -132,7 +131,7 @@ internal class CommonizationVisitor( val expandedClassNode = classifiers.commonized.classNode(expandedClassId) ?: return null val expandedClass = expandedClassNode.targetDeclarations[index] - ?: error("Can't find expanded class with class ID $expandedClassId and index $index for type alias $classifierId") + ?: error("Can't find expanded class with class ID $expandedClassId and index $index for type alias $classifierName") for (supertype in expandedClass.supertypes) { supertypesMap.getOrPut(supertype) { CommonizedGroup(targetDeclarations.size) }[index] = supertype diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirClassNode.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirClassNode.kt index 71fca5e3f9a..d7548c16207 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirClassNode.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirClassNode.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.descriptors.commonizer.mergedtree import gnu.trove.THashMap import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClass -import org.jetbrains.kotlin.descriptors.commonizer.cir.CirEntityId import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName import org.jetbrains.kotlin.descriptors.commonizer.utils.CommonizedGroup import org.jetbrains.kotlin.storage.NullableLazyValue @@ -15,8 +14,7 @@ import org.jetbrains.kotlin.storage.NullableLazyValue class CirClassNode( override val targetDeclarations: CommonizedGroup, override val commonDeclaration: NullableLazyValue, - override val classifierId: CirEntityId -) : CirNodeWithClassifierId, CirNodeWithMembers { +) : CirClassifierNode, CirNodeWithMembers { val constructors: MutableMap = THashMap() override val properties: MutableMap = THashMap() diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirNode.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirNode.kt index b6069ae877c..d22683d2abc 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirNode.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirNode.kt @@ -7,6 +7,7 @@ package org.jetbrains.kotlin.descriptors.commonizer.mergedtree import org.jetbrains.kotlin.descriptors.commonizer.cir.* import org.jetbrains.kotlin.descriptors.commonizer.utils.CommonizedGroup +import org.jetbrains.kotlin.descriptors.commonizer.utils.firstNonNull import org.jetbrains.kotlin.storage.NullableLazyValue interface CirNode { @@ -26,8 +27,8 @@ interface CirNode { if (node is CirPackageNode) { append("packageName=").append(node.packageName).append(", ") } - if (node is CirNodeWithClassifierId) { - append("classifierId=").append(node.classifierId).append(", ") + if (node is CirClassifierNode) { + append("classifierName=").append(node.classifierName).append(", ") } append("target=") node.targetDeclarations.joinTo(this) @@ -37,8 +38,9 @@ interface CirNode { } } -interface CirNodeWithClassifierId : CirNode { - val classifierId: CirEntityId +interface CirClassifierNode : CirNode { + val classifierName: CirName + get() = targetDeclarations.firstNonNull().name } interface CirNodeWithLiftingUp : CirNode { diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTypeAliasNode.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTypeAliasNode.kt index cddfbfb982e..8b3d58adc92 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTypeAliasNode.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTypeAliasNode.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.descriptors.commonizer.mergedtree import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassifier -import org.jetbrains.kotlin.descriptors.commonizer.cir.CirEntityId import org.jetbrains.kotlin.descriptors.commonizer.cir.CirTypeAlias import org.jetbrains.kotlin.descriptors.commonizer.utils.CommonizedGroup import org.jetbrains.kotlin.storage.NullableLazyValue @@ -14,8 +13,7 @@ import org.jetbrains.kotlin.storage.NullableLazyValue class CirTypeAliasNode( override val targetDeclarations: CommonizedGroup, override val commonDeclaration: NullableLazyValue, - override val classifierId: CirEntityId -) : CirNodeWithClassifierId, CirNodeWithLiftingUp { +) : CirClassifierNode, CirNodeWithLiftingUp { override fun accept(visitor: CirNodeVisitor, data: T): R = visitor.visitTypeAliasNode(this, data) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/nodeBuilders.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/nodeBuilders.kt index dada2dfd93f..82644db2801 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/nodeBuilders.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/nodeBuilders.kt @@ -83,7 +83,7 @@ internal fun buildClassNode( commonizerProducer = { ClassCommonizer(classifiers) }, recursionMarker = CirClassRecursionMarker, nodeProducer = { targetDeclarations, commonDeclaration -> - CirClassNode(targetDeclarations, commonDeclaration, classId).also { + CirClassNode(targetDeclarations, commonDeclaration).also { classifiers.commonized.addClassNode(classId, it) } } @@ -113,7 +113,7 @@ internal fun buildTypeAliasNode( commonizerProducer = { TypeAliasCommonizer(classifiers) }, recursionMarker = CirClassifierRecursionMarker, nodeProducer = { targetDeclarations, commonDeclaration -> - CirTypeAliasNode(targetDeclarations, commonDeclaration, typeAliasId).also { + CirTypeAliasNode(targetDeclarations, commonDeclaration).also { classifiers.commonized.addTypeAliasNode(typeAliasId, it) } } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/mocks.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/mocks.kt index d689e0cc49b..60c157fc34c 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/mocks.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/utils/mocks.kt @@ -138,8 +138,7 @@ internal val MOCK_CLASSIFIERS = CirKnownClassifiers( isInner = false, isExternal = false ) - }, - CirEntityId.create("kotlin/Any") + } ) override fun classNode(classId: CirEntityId) = MOCK_CLASS_NODE