diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt index e9be4f7c01d..da49b3d888e 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClass.kt @@ -5,14 +5,11 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir -import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.name.Name -interface CirClass : CirClassifier, CirHasModality { - val kind: ClassKind +interface CirClass : CirClassifier, CirContainingClass { var companion: Name? // null means no companion object val isCompanion: Boolean - val isData: Boolean val isInline: Boolean val isInner: Boolean val isExternal: Boolean diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClassConstructor.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClassConstructor.kt index b241f85e641..4f7b62bff74 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClassConstructor.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirClassConstructor.kt @@ -14,5 +14,5 @@ interface CirClassConstructor : CirCallableMemberWithParameters { val isPrimary: Boolean - override val containingClassDetails: CirContainingClassDetails // non-nullable + override val containingClass: CirContainingClass // non-nullable } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirContainingClassDetails.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirContainingClassDetails.kt deleted file mode 100644 index 1df89347124..00000000000 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirContainingClassDetails.kt +++ /dev/null @@ -1,15 +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.cir - -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.Modality - -data class CirContainingClassDetails( - val kind: ClassKind, - override val modality: Modality, - val isData: Boolean -) : CirHasModality diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt index b8eef7eb2b6..4200302c849 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirDeclaration.kt @@ -44,7 +44,15 @@ interface CirHasModality { } interface CirMaybeCallableMemberOfClass { - val containingClassDetails: CirContainingClassDetails? // null assumes no containing class + val containingClass: CirContainingClass? // null assumes no containing class +} + +/** + * A subset of containing [CirClass] visible to such class members as [CirFunction], [CirProperty] and [CirClassConstructor]. + */ +interface CirContainingClass : CirHasModality { + val kind: ClassKind + val isData: Boolean } interface CirHasTypeParameters { diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt index e407bf3129e..02b9f3907d4 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunctionOrProperty.kt @@ -26,5 +26,5 @@ interface CirFunctionOrProperty : fun isVirtual(): Boolean = visibility != DescriptorVisibilities.PRIVATE && modality != Modality.FINAL - && !(containingClassDetails?.modality == Modality.FINAL && containingClassDetails?.kind != ClassKind.ENUM_CLASS) + && !(containingClass?.modality == Modality.FINAL && containingClass?.kind != ClassKind.ENUM_CLASS) } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirClassConstructorFactory.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirClassConstructorFactory.kt index b9445dc44ad..d25de09ffdc 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirClassConstructorFactory.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirClassConstructorFactory.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMapNotNull object CirClassConstructorFactory { - fun create(source: ClassConstructorDescriptor): CirClassConstructor { + fun create(source: ClassConstructorDescriptor, containingClass: CirContainingClass): CirClassConstructor { check(source.kind == CallableMemberDescriptor.Kind.DECLARATION) { "Unexpected ${CallableMemberDescriptor.Kind::class.java} for class constructor $source, ${source::class.java}: ${source.kind}" } @@ -26,7 +26,7 @@ object CirClassConstructorFactory { typeParameter.takeIf { it.containingDeclaration == source }?.let(CirTypeParameterFactory::create) }, visibility = source.visibility, - containingClassDetails = CirContainingClassDetailsFactory.create(source), + containingClass = containingClass, valueParameters = source.valueParameters.compactMap(CirValueParameterFactory::create), hasStableParameterNames = source.hasStableParameterNames(), isPrimary = source.isPrimary @@ -38,7 +38,7 @@ object CirClassConstructorFactory { annotations: List, typeParameters: List, visibility: DescriptorVisibility, - containingClassDetails: CirContainingClassDetails, + containingClass: CirContainingClass, valueParameters: List, hasStableParameterNames: Boolean, isPrimary: Boolean @@ -47,7 +47,7 @@ object CirClassConstructorFactory { annotations = annotations, typeParameters = typeParameters, visibility = visibility, - containingClassDetails = containingClassDetails, + containingClass = containingClass, valueParameters = valueParameters, hasStableParameterNames = hasStableParameterNames, isPrimary = isPrimary diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirContainingClassDetailsFactory.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirContainingClassDetailsFactory.kt deleted file mode 100644 index b493a70c9ec..00000000000 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirContainingClassDetailsFactory.kt +++ /dev/null @@ -1,49 +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.cir.factory - -import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClassDetails -import org.jetbrains.kotlin.descriptors.commonizer.utils.Interner - -object CirContainingClassDetailsFactory { - private val interner = Interner() - - // speed optimization - val DOES_NOT_MATTER: CirContainingClassDetails = create( - kind = ClassKind.CLASS, - modality = Modality.FINAL, - isData = false - ) - - fun create(source: ClassConstructorDescriptor): CirContainingClassDetails = doCreate(source.containingDeclaration) - - fun create(source: CallableMemberDescriptor): CirContainingClassDetails? { - val containingClass: ClassDescriptor = source.containingDeclaration as? ClassDescriptor ?: return null - return doCreate(containingClass) - } - - @Suppress("NOTHING_TO_INLINE") - private inline fun doCreate(containingClass: ClassDescriptor): CirContainingClassDetails = create( - kind = containingClass.kind, - modality = containingClass.modality, - isData = containingClass.isData - ) - - fun create( - kind: ClassKind, - modality: Modality, - isData: Boolean - ): CirContainingClassDetails { - return interner.intern( - CirContainingClassDetails( - kind = kind, - modality = modality, - isData = isData - ) - ) - } -} diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirFunctionFactory.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirFunctionFactory.kt index ff0f5331d16..ff00d8bcc16 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirFunctionFactory.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirFunctionFactory.kt @@ -13,13 +13,13 @@ import org.jetbrains.kotlin.descriptors.commonizer.utils.intern import org.jetbrains.kotlin.name.Name object CirFunctionFactory { - fun create(source: SimpleFunctionDescriptor): CirFunction = create( + fun create(source: SimpleFunctionDescriptor, containingClass: CirContainingClass?): CirFunction = create( annotations = source.annotations.compactMap(CirAnnotationFactory::create), name = source.name.intern(), typeParameters = source.typeParameters.compactMap(CirTypeParameterFactory::create), visibility = source.visibility, modality = source.modality, - containingClassDetails = CirContainingClassDetailsFactory.create(source), + containingClass = containingClass, valueParameters = source.valueParameters.compactMap(CirValueParameterFactory::create), hasStableParameterNames = source.hasStableParameterNames(), extensionReceiver = source.extensionReceiverParameter?.let(CirExtensionReceiverFactory::create), @@ -35,7 +35,7 @@ object CirFunctionFactory { typeParameters: List, visibility: DescriptorVisibility, modality: Modality, - containingClassDetails: CirContainingClassDetails?, + containingClass: CirContainingClass?, valueParameters: List, hasStableParameterNames: Boolean, extensionReceiver: CirExtensionReceiver?, @@ -49,7 +49,7 @@ object CirFunctionFactory { typeParameters = typeParameters, visibility = visibility, modality = modality, - containingClassDetails = containingClassDetails, + containingClass = containingClass, valueParameters = valueParameters, hasStableParameterNames = hasStableParameterNames, extensionReceiver = extensionReceiver, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirPropertyFactory.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirPropertyFactory.kt index c806528394e..58dc8f0842a 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirPropertyFactory.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/factory/CirPropertyFactory.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.constants.ConstantValue object CirPropertyFactory { - fun create(source: PropertyDescriptor): CirProperty { + fun create(source: PropertyDescriptor, containingClass: CirContainingClass?): CirProperty { val compileTimeInitializer: ConstantValue<*>? = source.compileTimeInitializer if (compileTimeInitializer != null) { checkConstantSupportedInCommonization( @@ -34,7 +34,7 @@ object CirPropertyFactory { typeParameters = source.typeParameters.compactMap(CirTypeParameterFactory::create), visibility = source.visibility, modality = source.modality, - containingClassDetails = CirContainingClassDetailsFactory.create(source), + containingClass = containingClass, isExternal = source.isExternal, extensionReceiver = source.extensionReceiverParameter?.let(CirExtensionReceiverFactory::create), returnType = CirTypeFactory.create(source.returnType!!), @@ -58,7 +58,7 @@ object CirPropertyFactory { typeParameters: List, visibility: DescriptorVisibility, modality: Modality, - containingClassDetails: CirContainingClassDetails?, + containingClass: CirContainingClass?, isExternal: Boolean, extensionReceiver: CirExtensionReceiver?, returnType: CirType, @@ -79,7 +79,7 @@ object CirPropertyFactory { typeParameters = typeParameters, visibility = visibility, modality = modality, - containingClassDetails = containingClassDetails, + containingClass = containingClass, isExternal = isExternal, extensionReceiver = extensionReceiver, returnType = returnType, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt index a2406026584..90de9de82e1 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt @@ -12,7 +12,7 @@ data class CirClassConstructorImpl( override val annotations: List, override val typeParameters: List, override val visibility: DescriptorVisibility, - override val containingClassDetails: CirContainingClassDetails, + override val containingClass: CirContainingClass, override var valueParameters: List, override var hasStableParameterNames: Boolean, override val isPrimary: Boolean diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt index 80c3dc4d8bd..cfea44e0acc 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt @@ -17,7 +17,7 @@ data class CirFunctionImpl( override val typeParameters: List, override val visibility: DescriptorVisibility, override val modality: Modality, - override val containingClassDetails: CirContainingClassDetails?, + override val containingClass: CirContainingClass?, override var valueParameters: List, override var hasStableParameterNames: Boolean, override val extensionReceiver: CirExtensionReceiver?, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt index f7b5654ce2a..4178bb61045 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirPropertyImpl.kt @@ -18,7 +18,7 @@ data class CirPropertyImpl( override val typeParameters: List, override val visibility: DescriptorVisibility, override val modality: Modality, - override val containingClassDetails: CirContainingClassDetails?, + override val containingClass: CirContainingClass?, override val isExternal: Boolean, override val extensionReceiver: CirExtensionReceiver?, override val returnType: CirType, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt index 659ddb0d7f6..9005a109dcb 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/AbstractFunctionOrPropertyCommonizer.kt @@ -30,7 +30,7 @@ abstract class AbstractFunctionOrPropertyCommonizer( override fun doCommonizeWith(next: T): Boolean = next.kind != DELEGATION // delegated members should not be commonized - && (next.kind != SYNTHESIZED || next.containingClassDetails?.isData != true) // synthesized members of data classes should not be commonized + && (next.kind != SYNTHESIZED || next.containingClass?.isData != true) // synthesized members of data classes should not be commonized && kind == next.kind && modality.commonizeWith(next.modality) && visibility.commonizeWith(next) diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt index b1b42efa23c..b8e9a9d84b5 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/ClassConstructorCommonizer.kt @@ -5,10 +5,11 @@ package org.jetbrains.kotlin.descriptors.commonizer.core +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassConstructor +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirClassConstructorFactory -import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirContainingClassDetailsFactory import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirKnownClassifiers class ClassConstructorCommonizer( @@ -27,7 +28,7 @@ class ClassConstructorCommonizer( annotations = emptyList(), typeParameters = typeParameters.result, visibility = visibility.result, - containingClassDetails = CirContainingClassDetailsFactory.DOES_NOT_MATTER, + containingClass = CONTAINING_CLASS_DOES_NOT_MATTER, // does not matter valueParameters = valueParameters.valueParameters, hasStableParameterNames = valueParameters.hasStableParameterNames, isPrimary = isPrimary @@ -39,11 +40,19 @@ class ClassConstructorCommonizer( } override fun doCommonizeWith(next: CirClassConstructor): Boolean { - return !next.containingClassDetails.kind.isSingleton // don't commonize constructors for objects and enum entries - && next.containingClassDetails.modality != Modality.SEALED // don't commonize constructors for sealed classes (not not their subclasses) + return !next.containingClass.kind.isSingleton // don't commonize constructors for objects and enum entries + && next.containingClass.modality != Modality.SEALED // don't commonize constructors for sealed classes (not not their subclasses) && isPrimary == next.isPrimary && visibility.commonizeWith(next) && typeParameters.commonizeWith(next.typeParameters) && valueParameters.commonizeWith(next) } + + companion object { + private val CONTAINING_CLASS_DOES_NOT_MATTER = object : CirContainingClass { + override val modality get() = Modality.FINAL + override val kind get() = ClassKind.CLASS + override val isData get() = false + } + } } diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt index 3c301a3fcaa..1992bc6dc2f 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/FunctionCommonizer.kt @@ -24,7 +24,7 @@ class FunctionCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP typeParameters = typeParameters.result, visibility = visibility.result, modality = modality.result, - containingClassDetails = null, + containingClass = null, // does not matter valueParameters = valueParameters.valueParameters, hasStableParameterNames = valueParameters.hasStableParameterNames, extensionReceiver = extensionReceiver.result, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt index 74e25eea2d4..c326893141b 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/core/PropertyCommonizer.kt @@ -34,7 +34,7 @@ class PropertyCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP typeParameters = typeParameters.result, visibility = visibility.result, modality = modality.result, - containingClassDetails = null, + containingClass = null, // does not matter isExternal = isExternal, extensionReceiver = extensionReceiver.result, returnType = returnType.result, diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt index 9e423dae00d..51208812a40 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/mergedtree/CirTreeMerger.kt @@ -171,7 +171,10 @@ class CirTreeMerger( val propertyNode: CirPropertyNode = ownerNode.properties.getOrPut(PropertyApproximationKey(propertyDescriptor)) { buildPropertyNode(storageManager, size, classifiers, (ownerNode as? CirClassNode)?.commonDeclaration) } - propertyNode.targetDeclarations[targetIndex] = CirPropertyFactory.create(propertyDescriptor) + propertyNode.targetDeclarations[targetIndex] = CirPropertyFactory.create( + source = propertyDescriptor, + containingClass = (ownerNode as? CirClassNode)?.targetDeclarations?.get(targetIndex) + ) } private fun processFunction( @@ -182,7 +185,10 @@ class CirTreeMerger( val functionNode: CirFunctionNode = ownerNode.functions.getOrPut(FunctionApproximationKey(functionDescriptor)) { buildFunctionNode(storageManager, size, classifiers, (ownerNode as? CirClassNode)?.commonDeclaration) } - functionNode.targetDeclarations[targetIndex] = CirFunctionFactory.create(functionDescriptor) + functionNode.targetDeclarations[targetIndex] = CirFunctionFactory.create( + source = functionDescriptor, + containingClass = (ownerNode as? CirClassNode)?.targetDeclarations?.get(targetIndex) + ) } private fun processClass( @@ -228,7 +234,10 @@ class CirTreeMerger( val constructorNode: CirClassConstructorNode = classNode.constructors.getOrPut(ConstructorApproximationKey(constructorDescriptor)) { buildClassConstructorNode(storageManager, size, classifiers, classNode.commonDeclaration) } - constructorNode.targetDeclarations[targetIndex] = CirClassConstructorFactory.create(constructorDescriptor) + constructorNode.targetDeclarations[targetIndex] = CirClassConstructorFactory.create( + source = constructorDescriptor, + containingClass = classNode.targetDeclarations[targetIndex]!! + ) } private fun processTypeAlias( diff --git a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt index fd50b7fde7d..4c93eeff426 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/descriptors/commonizer/core/LoweringVisibilityCommonizerTest.kt @@ -9,9 +9,9 @@ import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.DescriptorVisibilities.* import org.jetbrains.kotlin.descriptors.DescriptorVisibility +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass import org.jetbrains.kotlin.descriptors.commonizer.cir.CirFunctionOrProperty import org.jetbrains.kotlin.descriptors.commonizer.cir.CirHasVisibility -import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirContainingClassDetailsFactory import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.unsupported import org.junit.Test @@ -50,12 +50,12 @@ abstract class LoweringVisibilityCommonizerTest( override val typeParameters get() = unsupported() override val visibility = this@toMock override val modality get() = if (areMembersVirtual) Modality.OPEN else Modality.FINAL - override val containingClassDetails = if (areMembersVirtual) - CirContainingClassDetailsFactory.create( - kind = ClassKind.CLASS, - modality = Modality.OPEN, - isData = false - ) else null + override val containingClass = if (areMembersVirtual) + object : CirContainingClass { + override val modality get() = Modality.OPEN + override val kind get() = ClassKind.CLASS + override val isData get() = false + } else null override val extensionReceiver get() = unsupported() override val returnType get() = unsupported() override val kind get() = unsupported()