[Commonizer] Refactoring: Clean-up in CirTreeMerger
This commit is contained in:
+4
-4
@@ -16,12 +16,12 @@ class CirClassNode(
|
|||||||
override val targetDeclarations: CommonizedGroup<CirClass>,
|
override val targetDeclarations: CommonizedGroup<CirClass>,
|
||||||
override val commonDeclaration: NullableLazyValue<CirClass>,
|
override val commonDeclaration: NullableLazyValue<CirClass>,
|
||||||
override val classId: ClassId
|
override val classId: ClassId
|
||||||
) : CirNodeWithClassId<CirClass, CirClass> {
|
) : CirNodeWithClassId<CirClass, CirClass>, CirNodeWithMembers<CirClass, CirClass> {
|
||||||
|
|
||||||
val constructors: MutableMap<ConstructorApproximationKey, CirClassConstructorNode> = THashMap()
|
val constructors: MutableMap<ConstructorApproximationKey, CirClassConstructorNode> = THashMap()
|
||||||
val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = THashMap()
|
override val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = THashMap()
|
||||||
val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = THashMap()
|
override val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = THashMap()
|
||||||
val classes: MutableMap<Name, CirClassNode> = THashMap()
|
override val classes: MutableMap<Name, CirClassNode> = THashMap()
|
||||||
|
|
||||||
override fun <T, R> accept(visitor: CirNodeVisitor<T, R>, data: T): R =
|
override fun <T, R> accept(visitor: CirNodeVisitor<T, R>, data: T): R =
|
||||||
visitor.visitClassNode(this, data)
|
visitor.visitClassNode(this, data)
|
||||||
|
|||||||
+24
@@ -5,8 +5,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
||||||
|
|
||||||
|
import gnu.trove.THashMap
|
||||||
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassifier
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirDeclaration
|
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.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
|
import org.jetbrains.kotlin.storage.NullableLazyValue
|
||||||
|
|
||||||
interface CirNode<T : CirDeclaration, R : CirDeclaration> {
|
interface CirNode<T : CirDeclaration, R : CirDeclaration> {
|
||||||
@@ -37,3 +43,21 @@ interface CirNode<T : CirDeclaration, R : CirDeclaration> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface CirNodeWithClassId<T : CirClassifier, R : CirClassifier> : CirNode<T, R> {
|
||||||
|
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
|
||||||
|
}
|
||||||
|
|
||||||
|
interface CirNodeWithMembers<T : CirDeclaration, R : CirDeclaration> : CirNode<T, R> {
|
||||||
|
val properties: MutableMap<PropertyApproximationKey, CirPropertyNode>
|
||||||
|
val functions: MutableMap<FunctionApproximationKey, CirFunctionNode>
|
||||||
|
val classes: MutableMap<Name, CirClassNode>
|
||||||
|
}
|
||||||
|
|||||||
-13
@@ -1,13 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassifier
|
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
|
||||||
|
|
||||||
interface CirNodeWithClassId<T : CirClassifier, R : CirClassifier> : CirNode<T, R> {
|
|
||||||
val classId: ClassId
|
|
||||||
}
|
|
||||||
-13
@@ -1,13 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirDeclaration
|
|
||||||
import org.jetbrains.kotlin.name.FqName
|
|
||||||
|
|
||||||
interface CirNodeWithFqName<T : CirDeclaration, R : CirDeclaration> : CirNode<T, R> {
|
|
||||||
val fqName: FqName
|
|
||||||
}
|
|
||||||
-14
@@ -1,14 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
|
||||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.descriptors.commonizer.mergedtree
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirDeclaration
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirLiftedUpDeclaration
|
|
||||||
|
|
||||||
interface CirNodeWithLiftingUp<T : CirDeclaration, R : CirDeclaration> : CirNode<T, R> {
|
|
||||||
val isLiftedUp: Boolean
|
|
||||||
get() = (commonDeclaration() as? CirLiftedUpDeclaration)?.isLiftedUp == true
|
|
||||||
}
|
|
||||||
+4
-4
@@ -17,11 +17,11 @@ class CirPackageNode(
|
|||||||
override val commonDeclaration: NullableLazyValue<CirPackage>,
|
override val commonDeclaration: NullableLazyValue<CirPackage>,
|
||||||
override val fqName: FqName,
|
override val fqName: FqName,
|
||||||
val moduleName: Name
|
val moduleName: Name
|
||||||
) : CirNodeWithFqName<CirPackage, CirPackage> {
|
) : CirNodeWithFqName<CirPackage, CirPackage>, CirNodeWithMembers<CirPackage, CirPackage> {
|
||||||
|
|
||||||
val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = THashMap()
|
override val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = THashMap()
|
||||||
val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = THashMap()
|
override val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = THashMap()
|
||||||
val classes: MutableMap<Name, CirClassNode> = THashMap()
|
override val classes: MutableMap<Name, CirClassNode> = THashMap()
|
||||||
val typeAliases: MutableMap<Name, CirTypeAliasNode> = THashMap()
|
val typeAliases: MutableMap<Name, CirTypeAliasNode> = THashMap()
|
||||||
|
|
||||||
override fun <T, R> accept(visitor: CirNodeVisitor<T, R>, data: T) =
|
override fun <T, R> accept(visitor: CirNodeVisitor<T, R>, data: T) =
|
||||||
|
|||||||
+33
-55
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.descriptors.commonizer.LeafTarget
|
|||||||
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider.ModuleInfo
|
import org.jetbrains.kotlin.descriptors.commonizer.ModulesProvider.ModuleInfo
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.CommonizerParameters
|
import org.jetbrains.kotlin.descriptors.commonizer.CommonizerParameters
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.TargetProvider
|
import org.jetbrains.kotlin.descriptors.commonizer.TargetProvider
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClass
|
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.*
|
import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.*
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.intern
|
import org.jetbrains.kotlin.descriptors.commonizer.utils.intern
|
||||||
import org.jetbrains.kotlin.descriptors.commonizer.utils.internedClassId
|
import org.jetbrains.kotlin.descriptors.commonizer.utils.internedClassId
|
||||||
@@ -18,7 +17,6 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.name.FqName
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
import org.jetbrains.kotlin.resolve.scopes.MemberScope
|
||||||
import org.jetbrains.kotlin.storage.NullableLazyValue
|
|
||||||
import org.jetbrains.kotlin.storage.StorageManager
|
import org.jetbrains.kotlin.storage.StorageManager
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -110,16 +108,15 @@ class CirTreeMerger(
|
|||||||
val allDependeeModules = targetDependeeModules + dependeeModules
|
val allDependeeModules = targetDependeeModules + dependeeModules
|
||||||
|
|
||||||
val moduleDescriptors: Map<String, ModuleDescriptor> = targetProvider.modulesProvider.loadModules(allDependeeModules)
|
val moduleDescriptors: Map<String, ModuleDescriptor> = targetProvider.modulesProvider.loadModules(allDependeeModules)
|
||||||
val modules: MutableMap<Name, CirModuleNode> = rootNode.modules
|
|
||||||
|
|
||||||
moduleDescriptors.forEach { (name, moduleDescriptor) ->
|
moduleDescriptors.forEach { (name, moduleDescriptor) ->
|
||||||
val moduleInfo = commonModuleInfos[name] ?: return@forEach
|
val moduleInfo = commonModuleInfos[name] ?: return@forEach
|
||||||
processModule(modules, targetIndex, moduleInfo, moduleDescriptor)
|
processModule(rootNode, targetIndex, moduleInfo, moduleDescriptor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processModule(
|
private fun processModule(
|
||||||
modules: MutableMap<Name, CirModuleNode>,
|
rootNode: CirRootNode,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
moduleInfo: ModuleInfo,
|
moduleInfo: ModuleInfo,
|
||||||
moduleDescriptor: ModuleDescriptor
|
moduleDescriptor: ModuleDescriptor
|
||||||
@@ -127,114 +124,97 @@ class CirTreeMerger(
|
|||||||
processCInteropModuleAttributes(moduleInfo)
|
processCInteropModuleAttributes(moduleInfo)
|
||||||
|
|
||||||
val moduleName: Name = moduleDescriptor.name.intern()
|
val moduleName: Name = moduleDescriptor.name.intern()
|
||||||
val moduleNode: CirModuleNode = modules.getOrPut(moduleName) {
|
val moduleNode: CirModuleNode = rootNode.modules.getOrPut(moduleName) {
|
||||||
buildModuleNode(storageManager, size)
|
buildModuleNode(storageManager, size)
|
||||||
}
|
}
|
||||||
moduleNode.targetDeclarations[targetIndex] = CirModuleFactory.create(moduleDescriptor)
|
moduleNode.targetDeclarations[targetIndex] = CirModuleFactory.create(moduleDescriptor)
|
||||||
|
|
||||||
val packages: MutableMap<FqName, CirPackageNode> = moduleNode.packages
|
|
||||||
|
|
||||||
moduleDescriptor.collectNonEmptyPackageMemberScopes { packageFqName, packageMemberScope ->
|
moduleDescriptor.collectNonEmptyPackageMemberScopes { packageFqName, packageMemberScope ->
|
||||||
processPackage(packages, targetIndex, packageFqName.intern(), packageMemberScope, moduleName)
|
processPackage(moduleNode, targetIndex, packageFqName.intern(), packageMemberScope, moduleName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processPackage(
|
private fun processPackage(
|
||||||
packages: MutableMap<FqName, CirPackageNode>,
|
moduleNode: CirModuleNode,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
packageFqName: FqName,
|
packageFqName: FqName,
|
||||||
packageMemberScope: MemberScope,
|
packageMemberScope: MemberScope,
|
||||||
moduleName: Name
|
moduleName: Name
|
||||||
) {
|
) {
|
||||||
val packageNode: CirPackageNode = packages.getOrPut(packageFqName) {
|
val packageNode: CirPackageNode = moduleNode.packages.getOrPut(packageFqName) {
|
||||||
buildPackageNode(storageManager, size, packageFqName, moduleName)
|
buildPackageNode(storageManager, size, packageFqName, moduleName)
|
||||||
}
|
}
|
||||||
packageNode.targetDeclarations[targetIndex] = CirPackageFactory.create(packageFqName)
|
packageNode.targetDeclarations[targetIndex] = CirPackageFactory.create(packageFqName)
|
||||||
|
|
||||||
val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = packageNode.properties
|
|
||||||
val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = packageNode.functions
|
|
||||||
val classes: MutableMap<Name, CirClassNode> = packageNode.classes
|
|
||||||
val typeAliases: MutableMap<Name, CirTypeAliasNode> = packageNode.typeAliases
|
|
||||||
|
|
||||||
packageMemberScope.collectMembers(
|
packageMemberScope.collectMembers(
|
||||||
PropertyCollector { propertyDescriptor ->
|
PropertyCollector { propertyDescriptor ->
|
||||||
processProperty(properties, targetIndex, propertyDescriptor, null)
|
processProperty(packageNode, targetIndex, propertyDescriptor)
|
||||||
},
|
},
|
||||||
FunctionCollector { functionDescriptor ->
|
FunctionCollector { functionDescriptor ->
|
||||||
processFunction(functions, targetIndex, functionDescriptor, null)
|
processFunction(packageNode, targetIndex, functionDescriptor)
|
||||||
},
|
},
|
||||||
ClassCollector { classDescriptor ->
|
ClassCollector { classDescriptor ->
|
||||||
processClass(classes, targetIndex, classDescriptor, null) { className ->
|
processClass(packageNode, targetIndex, classDescriptor) { className ->
|
||||||
internedClassId(packageFqName, className)
|
internedClassId(packageFqName, className)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
TypeAliasCollector { typeAliasDescriptor ->
|
TypeAliasCollector { typeAliasDescriptor ->
|
||||||
processTypeAlias(typeAliases, targetIndex, typeAliasDescriptor, packageFqName)
|
processTypeAlias(packageNode, targetIndex, typeAliasDescriptor)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processProperty(
|
private fun processProperty(
|
||||||
properties: MutableMap<PropertyApproximationKey, CirPropertyNode>,
|
ownerNode: CirNodeWithMembers<*, *>,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
propertyDescriptor: PropertyDescriptor,
|
propertyDescriptor: PropertyDescriptor
|
||||||
parentCommonDeclaration: NullableLazyValue<*>?
|
|
||||||
) {
|
) {
|
||||||
val propertyNode: CirPropertyNode = properties.getOrPut(PropertyApproximationKey(propertyDescriptor)) {
|
val propertyNode: CirPropertyNode = ownerNode.properties.getOrPut(PropertyApproximationKey(propertyDescriptor)) {
|
||||||
buildPropertyNode(storageManager, size, classifiers, parentCommonDeclaration)
|
buildPropertyNode(storageManager, size, classifiers, (ownerNode as? CirClassNode)?.commonDeclaration)
|
||||||
}
|
}
|
||||||
propertyNode.targetDeclarations[targetIndex] = CirPropertyFactory.create(propertyDescriptor)
|
propertyNode.targetDeclarations[targetIndex] = CirPropertyFactory.create(propertyDescriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processFunction(
|
private fun processFunction(
|
||||||
functions: MutableMap<FunctionApproximationKey, CirFunctionNode>,
|
ownerNode: CirNodeWithMembers<*, *>,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
functionDescriptor: SimpleFunctionDescriptor,
|
functionDescriptor: SimpleFunctionDescriptor
|
||||||
parentCommonDeclaration: NullableLazyValue<*>?
|
|
||||||
) {
|
) {
|
||||||
val functionNode: CirFunctionNode = functions.getOrPut(FunctionApproximationKey(functionDescriptor)) {
|
val functionNode: CirFunctionNode = ownerNode.functions.getOrPut(FunctionApproximationKey(functionDescriptor)) {
|
||||||
buildFunctionNode(storageManager, size, classifiers, parentCommonDeclaration)
|
buildFunctionNode(storageManager, size, classifiers, (ownerNode as? CirClassNode)?.commonDeclaration)
|
||||||
}
|
}
|
||||||
functionNode.targetDeclarations[targetIndex] = CirFunctionFactory.create(functionDescriptor)
|
functionNode.targetDeclarations[targetIndex] = CirFunctionFactory.create(functionDescriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processClass(
|
private fun processClass(
|
||||||
classes: MutableMap<Name, CirClassNode>,
|
ownerNode: CirNodeWithMembers<*, *>,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
classDescriptor: ClassDescriptor,
|
classDescriptor: ClassDescriptor,
|
||||||
parentCommonDeclaration: NullableLazyValue<*>?,
|
|
||||||
classIdFunction: (Name) -> ClassId
|
classIdFunction: (Name) -> ClassId
|
||||||
) {
|
) {
|
||||||
val className = classDescriptor.name.intern()
|
val className = classDescriptor.name.intern()
|
||||||
val classId = classIdFunction(className)
|
val classId = classIdFunction(className)
|
||||||
|
|
||||||
val classNode: CirClassNode = classes.getOrPut(className) {
|
val classNode: CirClassNode = ownerNode.classes.getOrPut(className) {
|
||||||
buildClassNode(storageManager, size, classifiers, parentCommonDeclaration, classId)
|
buildClassNode(storageManager, size, classifiers, (ownerNode as? CirClassNode)?.commonDeclaration, classId)
|
||||||
}
|
}
|
||||||
classNode.targetDeclarations[targetIndex] = CirClassFactory.create(classDescriptor)
|
classNode.targetDeclarations[targetIndex] = CirClassFactory.create(classDescriptor)
|
||||||
|
|
||||||
val parentCommonDeclarationForMembers: NullableLazyValue<CirClass> = classNode.commonDeclaration
|
|
||||||
|
|
||||||
val constructors: MutableMap<ConstructorApproximationKey, CirClassConstructorNode> = classNode.constructors
|
|
||||||
val properties: MutableMap<PropertyApproximationKey, CirPropertyNode> = classNode.properties
|
|
||||||
val functions: MutableMap<FunctionApproximationKey, CirFunctionNode> = classNode.functions
|
|
||||||
val nestedClasses: MutableMap<Name, CirClassNode> = classNode.classes
|
|
||||||
|
|
||||||
if (classDescriptor.kind != ClassKind.ENUM_ENTRY) {
|
if (classDescriptor.kind != ClassKind.ENUM_ENTRY) {
|
||||||
classDescriptor.constructors.forEach { constructorDescriptor ->
|
classDescriptor.constructors.forEach { constructorDescriptor ->
|
||||||
processClassConstructor(constructors, targetIndex, constructorDescriptor, parentCommonDeclarationForMembers)
|
processClassConstructor(classNode, targetIndex, constructorDescriptor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
classDescriptor.unsubstitutedMemberScope.collectMembers(
|
classDescriptor.unsubstitutedMemberScope.collectMembers(
|
||||||
PropertyCollector { propertyDescriptor ->
|
PropertyCollector { propertyDescriptor ->
|
||||||
processProperty(properties, targetIndex, propertyDescriptor, parentCommonDeclarationForMembers)
|
processProperty(classNode, targetIndex, propertyDescriptor)
|
||||||
},
|
},
|
||||||
FunctionCollector { functionDescriptor ->
|
FunctionCollector { functionDescriptor ->
|
||||||
processFunction(functions, targetIndex, functionDescriptor, parentCommonDeclarationForMembers)
|
processFunction(classNode, targetIndex, functionDescriptor)
|
||||||
},
|
},
|
||||||
ClassCollector { nestedClassDescriptor ->
|
ClassCollector { nestedClassDescriptor ->
|
||||||
processClass(nestedClasses, targetIndex, nestedClassDescriptor, parentCommonDeclarationForMembers) { nestedClassName ->
|
processClass(classNode, targetIndex, nestedClassDescriptor) { nestedClassName ->
|
||||||
internedClassId(classId, nestedClassName)
|
internedClassId(classId, nestedClassName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -242,27 +222,25 @@ class CirTreeMerger(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun processClassConstructor(
|
private fun processClassConstructor(
|
||||||
constructors: MutableMap<ConstructorApproximationKey, CirClassConstructorNode>,
|
classNode: CirClassNode,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
constructorDescriptor: ClassConstructorDescriptor,
|
constructorDescriptor: ClassConstructorDescriptor
|
||||||
parentCommonDeclaration: NullableLazyValue<*>?
|
|
||||||
) {
|
) {
|
||||||
val constructorNode: CirClassConstructorNode = constructors.getOrPut(ConstructorApproximationKey(constructorDescriptor)) {
|
val constructorNode: CirClassConstructorNode = classNode.constructors.getOrPut(ConstructorApproximationKey(constructorDescriptor)) {
|
||||||
buildClassConstructorNode(storageManager, size, classifiers, parentCommonDeclaration)
|
buildClassConstructorNode(storageManager, size, classifiers, classNode.commonDeclaration)
|
||||||
}
|
}
|
||||||
constructorNode.targetDeclarations[targetIndex] = CirClassConstructorFactory.create(constructorDescriptor)
|
constructorNode.targetDeclarations[targetIndex] = CirClassConstructorFactory.create(constructorDescriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun processTypeAlias(
|
private fun processTypeAlias(
|
||||||
typeAliases: MutableMap<Name, CirTypeAliasNode>,
|
packageNode: CirPackageNode,
|
||||||
targetIndex: Int,
|
targetIndex: Int,
|
||||||
typeAliasDescriptor: TypeAliasDescriptor,
|
typeAliasDescriptor: TypeAliasDescriptor
|
||||||
packageFqName: FqName
|
|
||||||
) {
|
) {
|
||||||
val typeAliasName = typeAliasDescriptor.name.intern()
|
val typeAliasName = typeAliasDescriptor.name.intern()
|
||||||
val typeAliasClassId = internedClassId(packageFqName, typeAliasName)
|
val typeAliasClassId = internedClassId(packageNode.fqName, typeAliasName)
|
||||||
|
|
||||||
val typeAliasNode: CirTypeAliasNode = typeAliases.getOrPut(typeAliasName) {
|
val typeAliasNode: CirTypeAliasNode = packageNode.typeAliases.getOrPut(typeAliasName) {
|
||||||
buildTypeAliasNode(storageManager, size, classifiers, typeAliasClassId)
|
buildTypeAliasNode(storageManager, size, classifiers, typeAliasClassId)
|
||||||
}
|
}
|
||||||
typeAliasNode.targetDeclarations[targetIndex] = CirTypeAliasFactory.create(typeAliasDescriptor)
|
typeAliasNode.targetDeclarations[targetIndex] = CirTypeAliasFactory.create(typeAliasDescriptor)
|
||||||
|
|||||||
Reference in New Issue
Block a user