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 4f7b62bff74..a49d55d80cd 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 @@ -5,6 +5,8 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir +import org.jetbrains.kotlin.descriptors.Visibility + interface CirClassConstructor : CirDeclaration, CirHasAnnotations, @@ -15,4 +17,35 @@ interface CirClassConstructor : val isPrimary: Boolean override val containingClass: CirContainingClass // non-nullable + + companion object { + @Suppress("NOTHING_TO_INLINE") + inline fun create( + annotations: List, + typeParameters: List, + visibility: Visibility, + containingClass: CirContainingClass, + valueParameters: List, + hasStableParameterNames: Boolean, + isPrimary: Boolean + ): CirClassConstructor = CirClassConstructorImpl( + annotations = annotations, + typeParameters = typeParameters, + visibility = visibility, + containingClass = containingClass, + valueParameters = valueParameters, + hasStableParameterNames = hasStableParameterNames, + isPrimary = isPrimary + ) + } } + +data class CirClassConstructorImpl( + override val annotations: List, + override val typeParameters: List, + override val visibility: Visibility, + override val containingClass: CirContainingClass, + override var valueParameters: List, + override var hasStableParameterNames: Boolean, + override val isPrimary: Boolean +) : CirClassConstructor 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 5bb790d285d..9eca24a4430 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 @@ -8,15 +8,14 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.factory import kotlinx.metadata.Flag import kotlinx.metadata.KmConstructor import kotlinx.metadata.klib.annotations -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.descriptors.commonizer.cir.* -import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirClassConstructorImpl +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirClassConstructor +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeVisibility import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap object CirClassConstructorFactory { - fun create(source: KmConstructor, containingClass: CirContainingClass, typeResolver: CirTypeResolver): CirClassConstructor { - return create( + fun create(source: KmConstructor, containingClass: CirContainingClass, typeResolver: CirTypeResolver): CirClassConstructor = + CirClassConstructor.create( annotations = CirAnnotationFactory.createAnnotations(source.flags, typeResolver, source::annotations), typeParameters = emptyList(), // TODO: nowhere to read constructor type parameters from visibility = decodeVisibility(source.flags), @@ -25,26 +24,4 @@ object CirClassConstructorFactory { hasStableParameterNames = !Flag.Constructor.HAS_NON_STABLE_PARAMETER_NAMES(source.flags), isPrimary = !Flag.Constructor.IS_SECONDARY(source.flags) ) - } - - @Suppress("NOTHING_TO_INLINE") - inline fun create( - annotations: List, - typeParameters: List, - visibility: Visibility, - containingClass: CirContainingClass, - valueParameters: List, - hasStableParameterNames: Boolean, - isPrimary: Boolean - ): CirClassConstructor { - return CirClassConstructorImpl( - annotations = annotations, - typeParameters = typeParameters, - visibility = visibility, - containingClass = containingClass, - valueParameters = valueParameters, - hasStableParameterNames = hasStableParameterNames, - isPrimary = isPrimary - ) - } } 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 deleted file mode 100644 index 9d0771dfcc6..00000000000 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirClassConstructorImpl.kt +++ /dev/null @@ -1,19 +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.impl - -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.descriptors.commonizer.cir.* - -data class CirClassConstructorImpl( - override val annotations: List, - override val typeParameters: List, - override val visibility: Visibility, - override val containingClass: CirContainingClass, - override var valueParameters: List, - override var hasStableParameterNames: Boolean, - override val isPrimary: Boolean -) : CirClassConstructor 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 b8e9a9d84b5..cd6bfd3337b 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 @@ -9,7 +9,6 @@ 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.mergedtree.CirKnownClassifiers class ClassConstructorCommonizer( @@ -24,7 +23,7 @@ class ClassConstructorCommonizer( val valueParameters = valueParameters.result valueParameters.patchCallables() - return CirClassConstructorFactory.create( + return CirClassConstructor.create( annotations = emptyList(), typeParameters = typeParameters.result, visibility = visibility.result,