[Commonizer] Don't keep fqName inside of CirPackageNode
This commit is contained in:
+2
-7
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.descriptors.commonizer.cir.CirDeclaration
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirLiftedUpDeclaration
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.CommonizedGroup
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.storage.NullableLazyValue
|
||||
|
||||
@@ -28,8 +27,8 @@ interface CirNode<T : CirDeclaration, R : CirDeclaration> {
|
||||
get() = targetDeclarations.size + 1
|
||||
|
||||
fun toString(node: CirNode<*, *>) = buildString {
|
||||
if (node is CirNodeWithFqName) {
|
||||
append("fqName=").append(node.fqName.asString()).append(", ")
|
||||
if (node is CirPackageNode) {
|
||||
append("packageFqName=").append(node.packageFqName.asString()).append(", ")
|
||||
}
|
||||
if (node is CirNodeWithClassId) {
|
||||
append("classId=").append(node.classId.asString()).append(", ")
|
||||
@@ -46,10 +45,6 @@ interface CirNodeWithClassId<T : CirClassifier, R : CirClassifier> : CirNode<T,
|
||||
val classId: ClassId
|
||||
}
|
||||
|
||||
interface CirNodeWithFqName<T : CirDeclaration, R : CirDeclaration> : CirNode<T, R> {
|
||||
val fqName: FqName
|
||||
}
|
||||
|
||||
interface CirNodeWithLiftingUp<T : CirDeclaration, R : CirDeclaration> : CirNode<T, R> {
|
||||
val isLiftedUp: Boolean
|
||||
get() = (commonDeclaration() as? CirLiftedUpDeclaration)?.isLiftedUp == true
|
||||
|
||||
+6
-3
@@ -8,21 +8,24 @@ package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
||||
import gnu.trove.THashMap
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirPackage
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.CommonizedGroup
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.firstNonNull
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.storage.NullableLazyValue
|
||||
|
||||
class CirPackageNode(
|
||||
override val targetDeclarations: CommonizedGroup<CirPackage>,
|
||||
override val commonDeclaration: NullableLazyValue<CirPackage>,
|
||||
override val fqName: FqName
|
||||
) : CirNodeWithFqName<CirPackage, CirPackage>, CirNodeWithMembers<CirPackage, CirPackage> {
|
||||
override val commonDeclaration: NullableLazyValue<CirPackage>
|
||||
) : CirNodeWithMembers<CirPackage, CirPackage> {
|
||||
|
||||
override val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = THashMap()
|
||||
override val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = THashMap()
|
||||
override val classes: MutableMap<Name, CirClassNode> = THashMap()
|
||||
val typeAliases: MutableMap<Name, CirTypeAliasNode> = THashMap()
|
||||
|
||||
val packageFqName: FqName
|
||||
get() = targetDeclarations.firstNonNull().fqName
|
||||
|
||||
override fun <T, R> accept(visitor: CirNodeVisitor<T, R>, data: T) =
|
||||
visitor.visitPackageNode(this, data)
|
||||
|
||||
|
||||
+2
-2
@@ -141,7 +141,7 @@ class CirTreeMerger(
|
||||
packageMemberScope: MemberScope
|
||||
) {
|
||||
val packageNode: CirPackageNode = moduleNode.packages.getOrPut(packageFqName) {
|
||||
buildPackageNode(storageManager, size, packageFqName)
|
||||
buildPackageNode(storageManager, size)
|
||||
}
|
||||
packageNode.targetDeclarations[targetIndex] = CirPackageFactory.create(packageFqName)
|
||||
|
||||
@@ -237,7 +237,7 @@ class CirTreeMerger(
|
||||
typeAliasDescriptor: TypeAliasDescriptor
|
||||
) {
|
||||
val typeAliasName = typeAliasDescriptor.name.intern()
|
||||
val typeAliasClassId = internedClassId(packageNode.fqName, typeAliasName)
|
||||
val typeAliasClassId = internedClassId(packageNode.packageFqName, typeAliasName)
|
||||
|
||||
val typeAliasNode: CirTypeAliasNode = packageNode.typeAliases.getOrPut(typeAliasName) {
|
||||
buildTypeAliasNode(storageManager, size, classifiers, typeAliasClassId)
|
||||
|
||||
+2
-6
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirClassifierRecursi
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.core.*
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.CommonizedGroup
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.storage.NullableLazyValue
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
|
||||
@@ -37,15 +36,12 @@ internal fun buildModuleNode(
|
||||
|
||||
internal fun buildPackageNode(
|
||||
storageManager: StorageManager,
|
||||
size: Int,
|
||||
fqName: FqName
|
||||
size: Int
|
||||
): CirPackageNode = buildNode(
|
||||
storageManager = storageManager,
|
||||
size = size,
|
||||
commonizerProducer = ::PackageCommonizer,
|
||||
nodeProducer = { targetDeclarations, commonDeclaration ->
|
||||
CirPackageNode(targetDeclarations, commonDeclaration, fqName)
|
||||
}
|
||||
nodeProducer = ::CirPackageNode
|
||||
)
|
||||
|
||||
internal fun buildPropertyNode(
|
||||
|
||||
Reference in New Issue
Block a user