diff --git a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunction.kt b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunction.kt index b6d9e34ee65..4a5f6f0c796 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunction.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/CirFunction.kt @@ -5,6 +5,56 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir +import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor +import org.jetbrains.kotlin.descriptors.Modality +import org.jetbrains.kotlin.descriptors.Visibility + interface CirFunction : CirFunctionOrProperty, CirCallableMemberWithParameters { val modifiers: CirFunctionModifiers + + companion object { + @Suppress("NOTHING_TO_INLINE") + inline fun create( + annotations: List, + name: CirName, + typeParameters: List, + visibility: Visibility, + modality: Modality, + containingClass: CirContainingClass?, + valueParameters: List, + hasStableParameterNames: Boolean, + extensionReceiver: CirExtensionReceiver?, + returnType: CirType, + kind: CallableMemberDescriptor.Kind, + modifiers: CirFunctionModifiers + ): CirFunction = CirFunctionImpl( + annotations = annotations, + name = name, + typeParameters = typeParameters, + visibility = visibility, + modality = modality, + containingClass = containingClass, + valueParameters = valueParameters, + hasStableParameterNames = hasStableParameterNames, + extensionReceiver = extensionReceiver, + returnType = returnType, + kind = kind, + modifiers = modifiers + ) + } } + +data class CirFunctionImpl( + override val annotations: List, + override val name: CirName, + override val typeParameters: List, + override val visibility: Visibility, + override val modality: Modality, + override val containingClass: CirContainingClass?, + override var valueParameters: List, + override var hasStableParameterNames: Boolean, + override val extensionReceiver: CirExtensionReceiver?, + override val returnType: CirType, + override val kind: CallableMemberDescriptor.Kind, + override val modifiers: CirFunctionModifiers +) : CirFunction 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 1aaabdb8612..aff956ebfc1 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 @@ -8,19 +8,17 @@ package org.jetbrains.kotlin.descriptors.commonizer.cir.factory import kotlinx.metadata.Flag import kotlinx.metadata.KmFunction import kotlinx.metadata.klib.annotations -import org.jetbrains.kotlin.descriptors.CallableMemberDescriptor -import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.descriptors.commonizer.cir.* -import org.jetbrains.kotlin.descriptors.commonizer.cir.impl.CirFunctionImpl +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirContainingClass +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirFunction +import org.jetbrains.kotlin.descriptors.commonizer.cir.CirName import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeCallableKind import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeModality import org.jetbrains.kotlin.descriptors.commonizer.metadata.decodeVisibility import org.jetbrains.kotlin.descriptors.commonizer.utils.compactMap object CirFunctionFactory { - fun create(name: CirName, source: KmFunction, containingClass: CirContainingClass?, typeResolver: CirTypeResolver): CirFunction { - return create( + fun create(name: CirName, source: KmFunction, containingClass: CirContainingClass?, typeResolver: CirTypeResolver): CirFunction = + CirFunction.create( annotations = CirAnnotationFactory.createAnnotations(source.flags, typeResolver, source::annotations), name = name, typeParameters = source.typeParameters.compactMap { CirTypeParameterFactory.create(it, typeResolver) }, @@ -34,36 +32,4 @@ object CirFunctionFactory { kind = decodeCallableKind(source.flags), modifiers = CirFunctionModifiersFactory.create(source), ) - } - - @Suppress("NOTHING_TO_INLINE") - inline fun create( - annotations: List, - name: CirName, - typeParameters: List, - visibility: Visibility, - modality: Modality, - containingClass: CirContainingClass?, - valueParameters: List, - hasStableParameterNames: Boolean, - extensionReceiver: CirExtensionReceiver?, - returnType: CirType, - kind: CallableMemberDescriptor.Kind, - modifiers: CirFunctionModifiers - ): CirFunction { - return CirFunctionImpl( - annotations = annotations, - name = name, - typeParameters = typeParameters, - visibility = visibility, - modality = modality, - containingClass = containingClass, - valueParameters = valueParameters, - hasStableParameterNames = hasStableParameterNames, - extensionReceiver = extensionReceiver, - returnType = returnType, - kind = kind, - modifiers = modifiers - ) - } } 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 deleted file mode 100644 index 90d0a283166..00000000000 --- a/native/commonizer/src/org/jetbrains/kotlin/descriptors/commonizer/cir/impl/CirFunctionImpl.kt +++ /dev/null @@ -1,26 +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.CallableMemberDescriptor -import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility -import org.jetbrains.kotlin.descriptors.commonizer.cir.* - -data class CirFunctionImpl( - override val annotations: List, - override val name: CirName, - override val typeParameters: List, - override val visibility: Visibility, - override val modality: Modality, - override val containingClass: CirContainingClass?, - override var valueParameters: List, - override var hasStableParameterNames: Boolean, - override val extensionReceiver: CirExtensionReceiver?, - override val returnType: CirType, - override val kind: CallableMemberDescriptor.Kind, - override val modifiers: CirFunctionModifiers -) : CirFunction 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 1992bc6dc2f..42a096431d1 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.descriptors.commonizer.core import org.jetbrains.kotlin.descriptors.commonizer.cir.CirFunction -import org.jetbrains.kotlin.descriptors.commonizer.cir.factory.CirFunctionFactory import org.jetbrains.kotlin.descriptors.commonizer.mergedtree.CirKnownClassifiers class FunctionCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrPropertyCommonizer(classifiers) { @@ -18,7 +17,7 @@ class FunctionCommonizer(classifiers: CirKnownClassifiers) : AbstractFunctionOrP val valueParameters = valueParameters.result valueParameters.patchCallables() - return CirFunctionFactory.create( + return CirFunction.create( annotations = annotations.result, name = name, typeParameters = typeParameters.result,