diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt index c41e2b650c7..ea9568d1d61 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirClass.kt @@ -14,7 +14,6 @@ interface CirClass : CirClassifier, CirContainingClass, AnyClass { val isCompanion: Boolean val isValue: Boolean val isInner: Boolean - val isExternal: Boolean val hasEnumEntries: Boolean val supertypes: List @@ -33,7 +32,6 @@ interface CirClass : CirClassifier, CirContainingClass, AnyClass { isData: Boolean, isValue: Boolean, isInner: Boolean, - isExternal: Boolean, hasEnumEntries: Boolean ): CirClass = CirClassImpl( annotations = annotations, @@ -48,7 +46,6 @@ interface CirClass : CirClassifier, CirContainingClass, AnyClass { isData = isData, isValue = isValue, isInner = isInner, - isExternal = isExternal, hasEnumEntries = hasEnumEntries ) } @@ -67,6 +64,5 @@ data class CirClassImpl( override val isData: Boolean, override val isValue: Boolean, override val isInner: Boolean, - override val isExternal: Boolean, override val hasEnumEntries: Boolean ) : CirClass diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirFunctionModifiers.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirFunctionModifiers.kt index f0c84e96db3..e07d8e7cb23 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirFunctionModifiers.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirFunctionModifiers.kt @@ -11,26 +11,20 @@ interface CirFunctionModifiers { val isOperator: Boolean val isInfix: Boolean val isInline: Boolean - val isTailrec: Boolean val isSuspend: Boolean - val isExternal: Boolean companion object { fun createInterned( isOperator: Boolean, isInfix: Boolean, isInline: Boolean, - isTailrec: Boolean, isSuspend: Boolean, - isExternal: Boolean ): CirFunctionModifiers = interner.intern( CirFunctionModifiersInternedImpl( isOperator = isOperator, isInfix = isInfix, isInline = isInline, - isTailrec = isTailrec, isSuspend = isSuspend, - isExternal = isExternal ) ) @@ -42,7 +36,5 @@ private data class CirFunctionModifiersInternedImpl( override val isOperator: Boolean, override val isInfix: Boolean, override val isInline: Boolean, - override val isTailrec: Boolean, override val isSuspend: Boolean, - override val isExternal: Boolean ) : CirFunctionModifiers diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirProperty.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirProperty.kt index 6d3179d6be5..1b53f5f6142 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirProperty.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirProperty.kt @@ -16,7 +16,6 @@ data class CirProperty( override val visibility: Visibility, override val modality: Modality, override val containingClass: CirContainingClass?, - val isExternal: Boolean, override val extensionReceiver: CirExtensionReceiver?, override val returnType: CirType, override val kind: CallableMemberDescriptor.Kind, diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyAccessor.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyAccessor.kt index 663d92f046c..5941a4a7af7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyAccessor.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyAccessor.kt @@ -7,6 +7,5 @@ package org.jetbrains.kotlin.commonizer.cir interface CirPropertyAccessor : CirHasAnnotations { val isDefault: Boolean - val isExternal: Boolean val isInline: Boolean } diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyGetter.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyGetter.kt index 03dc7b04a1d..44b4ed4c491 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyGetter.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertyGetter.kt @@ -15,13 +15,11 @@ interface CirPropertyGetter : CirPropertyAccessor { fun createInterned( annotations: List, isDefault: Boolean, - isExternal: Boolean, isInline: Boolean ): CirPropertyGetter = interner.intern( CirPropertyGetterInternedImpl( annotations = annotations, isDefault = isDefault, - isExternal = isExternal, isInline = isInline ) ) @@ -32,7 +30,6 @@ interface CirPropertyGetter : CirPropertyAccessor { DEFAULT_NO_ANNOTATIONS = createInterned( annotations = emptyList(), isDefault = true, - isExternal = false, isInline = false ) } @@ -42,6 +39,5 @@ interface CirPropertyGetter : CirPropertyAccessor { private data class CirPropertyGetterInternedImpl( override val annotations: List, override val isDefault: Boolean, - override val isExternal: Boolean, override val isInline: Boolean ) : CirPropertyGetter diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertySetter.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertySetter.kt index 40d662c0768..bd7508e847c 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertySetter.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/CirPropertySetter.kt @@ -18,7 +18,6 @@ interface CirPropertySetter : CirDeclaration, CirPropertyAccessor, CirHasVisibil parameterAnnotations: List, visibility: Visibility, isDefault: Boolean, - isExternal: Boolean, isInline: Boolean ): CirPropertySetter = interner.intern( CirPropertySetterInternedImpl( @@ -26,7 +25,6 @@ interface CirPropertySetter : CirDeclaration, CirPropertyAccessor, CirHasVisibil parameterAnnotations = parameterAnnotations, visibility = visibility, isDefault = isDefault, - isExternal = isExternal, isInline = isInline ) ) @@ -37,7 +35,6 @@ interface CirPropertySetter : CirDeclaration, CirPropertyAccessor, CirHasVisibil parameterAnnotations = emptyList(), visibility = visibility, isDefault = visibility == Visibilities.Public, - isExternal = false, isInline = false ) @@ -50,6 +47,5 @@ private data class CirPropertySetterInternedImpl( override val parameterAnnotations: List, override val visibility: Visibility, override val isDefault: Boolean, - override val isExternal: Boolean, override val isInline: Boolean ) : CirPropertySetter diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/RecursionMarkers.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/RecursionMarkers.kt index ae400ab5f5f..b82f25d43c1 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/RecursionMarkers.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/cir/RecursionMarkers.kt @@ -19,7 +19,6 @@ object CirClassRecursionMarker : CirClass, CirRecursionMarker { override val isData get() = unsupported() override val isValue get() = unsupported() override val isInner get() = unsupported() - override val isExternal get() = unsupported() override val hasEnumEntries: Boolean get() = unsupported() override var supertypes: List get() = unsupported() diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassCommonizer.kt index 0b34cebf307..3683c504bae 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ClassCommonizer.kt @@ -38,7 +38,6 @@ class ClassCommonizer internal constructor( isData = false, isValue = isValue, isInner = isInner, - isExternal = false, hasEnumEntries = hasEnumEntries ) } diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizer.kt index 53b4a986d17..8ec9346b568 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizer.kt @@ -12,26 +12,20 @@ class FunctionModifiersCommonizer : AbstractStandardCommonizer() { private val setter = PropertySetterCommonizer.asNullableCommonizer() - private var isExternal = true private lateinit var constCommonizationState: ConstCommonizationState private val functionOrPropertyBaseCommonizer = functionOrPropertyBaseCommonizer.asCommonizer() @@ -36,7 +35,6 @@ class PropertyCommonizer( visibility = functionOrPropertyBase.visibility, modality = functionOrPropertyBase.modality, containingClass = null, // does not matter - isExternal = isExternal, extensionReceiver = functionOrPropertyBase.extensionReceiver, returnType = functionOrPropertyBase.returnType, kind = functionOrPropertyBase.kind, @@ -92,10 +90,6 @@ class PropertyCommonizer( val result = functionOrPropertyBaseCommonizer.commonizeWith(next) && setter.commonizeWith(next.setter) - if (result) { - isExternal = isExternal && next.isExternal - } - return result } diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt index 7aaba8984d0..b0d7d0015a7 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/CirDeserializers.kt @@ -102,7 +102,6 @@ object CirDeserializers { visibility = visibility(source.flags), modality = modality(source.flags), containingClass = containingClass, - isExternal = Flag.Property.IS_EXTERNAL(source.flags), extensionReceiver = source.receiverParameterType?.let { extensionReceiver(it, typeResolver) }, returnType = type(source.returnType, typeResolver), kind = callableKind(source.flags), @@ -133,7 +132,6 @@ object CirDeserializers { return CirPropertyGetter.createInterned( annotations = annotations, isDefault = isDefault, - isExternal = Flag.PropertyAccessor.IS_EXTERNAL(getterFlags), isInline = Flag.PropertyAccessor.IS_INLINE(getterFlags) ) } @@ -151,7 +149,6 @@ object CirDeserializers { }.orEmpty(), visibility = visibility(setterFlags), isDefault = !Flag.PropertyAccessor.IS_NOT_DEFAULT(setterFlags), - isExternal = Flag.PropertyAccessor.IS_EXTERNAL(setterFlags), isInline = Flag.PropertyAccessor.IS_INLINE(setterFlags) ) } @@ -186,9 +183,7 @@ object CirDeserializers { isOperator = Flag.Function.IS_OPERATOR(source.flags), isInfix = Flag.Function.IS_INFIX(source.flags), isInline = Flag.Function.IS_INLINE(source.flags), - isTailrec = Flag.Function.IS_TAILREC(source.flags), isSuspend = Flag.Function.IS_SUSPEND(source.flags), - isExternal = Flag.Function.IS_EXTERNAL(source.flags) ) private fun valueParameter(source: KmValueParameter, typeResolver: CirTypeResolver): CirValueParameter = @@ -265,7 +260,6 @@ object CirDeserializers { isData = Flag.Class.IS_DATA(source.flags), isValue = Flag.Class.IS_VALUE(source.flags), isInner = Flag.Class.IS_INNER(source.flags), - isExternal = Flag.Class.IS_EXTERNAL(source.flags), hasEnumEntries = Flag.Class.HAS_ENUM_ENTRIES(source.flags) ) @@ -295,7 +289,6 @@ object CirDeserializers { isData = false, isValue = false, isInner = false, - isExternal = false, hasEnumEntries = hasEnumEntries ) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/flags.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/flags.kt index 7b0eecc9830..7e485ee7f24 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/flags.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/metadata/flags.kt @@ -47,7 +47,6 @@ internal fun CirPropertyAccessor.propertyAccessorFlags( visibilityHolder.visibilityFlag, modalityHolder.modalityFlag, Flag.PropertyAccessor.IS_NOT_DEFAULT.takeIf { !isDefault }, - Flag.PropertyAccessor.IS_EXTERNAL.takeIf { isExternal }, Flag.PropertyAccessor.IS_INLINE.takeIf { isInline } ) } @@ -88,7 +87,6 @@ internal fun CirClass.classFlags(isExpect: Boolean): Flags = Flag.Class.IS_COMPANION_OBJECT.takeIf { isCompanion }, Flag.Class.IS_INNER.takeIf { isInner }, Flag.Class.IS_DATA.takeIf { isData }, - Flag.Class.IS_EXTERNAL.takeIf { isExternal }, Flag.Class.IS_EXPECT.takeIf { isExpect }, Flag.Class.IS_VALUE.takeIf { isValue }, Flag.Class.HAS_ENUM_ENTRIES.takeIf { hasEnumEntries } @@ -163,9 +161,7 @@ private inline val CirFunctionModifiers.modifiersFlags: Flags Flag.Function.IS_OPERATOR.takeIf { isOperator }, Flag.Function.IS_INFIX.takeIf { isInfix }, Flag.Function.IS_INLINE.takeIf { isInline }, - Flag.Function.IS_TAILREC.takeIf { isTailrec }, Flag.Function.IS_SUSPEND.takeIf { isSuspend }, - Flag.Function.IS_EXTERNAL.takeIf { isExternal } ) private inline val CirProperty.modifiersFlags: Flags @@ -174,7 +170,6 @@ private inline val CirProperty.modifiersFlags: Flags Flag.Property.IS_CONST.takeIf { isConst }, Flag.Property.HAS_CONSTANT.takeIf { compileTimeInitializer.takeIf { it !is CirConstantValue.NullValue } != null }, Flag.Property.IS_LATEINIT.takeIf { isLateInit }, - Flag.Property.IS_EXTERNAL.takeIf { isExternal } ) private inline val CirType.nullableFlag: Flag? diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/InlineTypeAliasCirNodeTransformer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/InlineTypeAliasCirNodeTransformer.kt index f4a2c5bdad2..1d90b32066f 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/InlineTypeAliasCirNodeTransformer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/transformer/InlineTypeAliasCirNodeTransformer.kt @@ -127,7 +127,7 @@ internal class InlineTypeAliasCirNodeTransformer( private fun CirTypeAlias.toArtificialCirClass(targetIndex: Int): CirClass = CirClass.create( annotations = emptyList(), name = name, typeParameters = typeParameters, supertypes = resolveSupertypes(targetIndex), visibility = this.visibility, modality = Modality.FINAL, kind = ClassKind.CLASS, - companion = null, isCompanion = false, isData = false, isValue = false, isInner = false, isExternal = false, hasEnumEntries = false + companion = null, isCompanion = false, isData = false, isValue = false, isInner = false, hasEnumEntries = false ) private fun CirTypeAlias.resolveSupertypes(targetIndex: Int): List { diff --git a/native/commonizer/testData/classifierCommonization/classKindAndModifiers/commonized/common/package_root.kt b/native/commonizer/testData/classifierCommonization/classKindAndModifiers/commonized/common/package_root.kt index 230ed0bd0b2..c6c09380c08 100644 --- a/native/commonizer/testData/classifierCommonization/classKindAndModifiers/commonized/common/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/classKindAndModifiers/commonized/common/package_root.kt @@ -94,3 +94,5 @@ expect class LL1(value: String) { expect class LL2(value: String) { val value: String } + +expect class ExternalClass() \ No newline at end of file diff --git a/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/js/package_root.kt b/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/js/package_root.kt index 1d54ea977a4..9fd4c6b0b2a 100644 --- a/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/js/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/js/package_root.kt @@ -145,3 +145,5 @@ class KK2(private val wrapped: JJ) : JJ by wrapped data class LL1(val value: String) data class LL2(val value: String) + +external class ExternalClass \ No newline at end of file diff --git a/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/jvm/package_root.kt b/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/jvm/package_root.kt index ba85cf5050c..7049ea20cb2 100644 --- a/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/jvm/package_root.kt +++ b/native/commonizer/testData/classifierCommonization/classKindAndModifiers/original/jvm/package_root.kt @@ -145,3 +145,5 @@ class KK2(wrapped: JJ) : JJ by wrapped data class LL1(val value: String) class LL2(val value: String) + +external class ExternalClass \ No newline at end of file diff --git a/native/commonizer/testData/functionCommonization/specifics/commonized/common/package_root.kt b/native/commonizer/testData/functionCommonization/specifics/commonized/common/package_root.kt index 43d5aa82a9f..ef4dd451af3 100644 --- a/native/commonizer/testData/functionCommonization/specifics/commonized/common/package_root.kt +++ b/native/commonizer/testData/functionCommonization/specifics/commonized/common/package_root.kt @@ -8,10 +8,10 @@ expect fun Qux.set(index: Int, value: String) expect infix fun Qux.infixFunction1(another: Qux) expect fun Qux.infixFunction2(another: Qux) -expect tailrec fun tailrecFunction1() +expect fun tailrecFunction1() expect fun tailrecFunction2() -expect external fun externalFunction1() +expect fun externalFunction1() expect fun externalFunction2() expect inline fun inlineFunction1() {} diff --git a/native/commonizer/testData/propertyCommonization/specifics/commonized/common/package_root.kt b/native/commonizer/testData/propertyCommonization/specifics/commonized/common/package_root.kt index b1d8c1961dd..f86193e12f8 100644 --- a/native/commonizer/testData/propertyCommonization/specifics/commonized/common/package_root.kt +++ b/native/commonizer/testData/propertyCommonization/specifics/commonized/common/package_root.kt @@ -13,5 +13,7 @@ expect var inlineProperty6: Int expect var inlineProperty7: Int expect var inlineProperty8: Int -expect external val externalProperty1: Int +expect val externalProperty1: Int expect val externalProperty2: Int + +expect var externalSetGet: Int \ No newline at end of file diff --git a/native/commonizer/testData/propertyCommonization/specifics/original/js/package_root.kt b/native/commonizer/testData/propertyCommonization/specifics/original/js/package_root.kt index 20115bd33e5..28912da56a1 100644 --- a/native/commonizer/testData/propertyCommonization/specifics/original/js/package_root.kt +++ b/native/commonizer/testData/propertyCommonization/specifics/original/js/package_root.kt @@ -28,3 +28,7 @@ inline var inlineProperty8 external val externalProperty1: Int external val externalProperty2: Int + +var externalSetGet: Int + external get + external set \ No newline at end of file diff --git a/native/commonizer/testData/propertyCommonization/specifics/original/jvm/package_root.kt b/native/commonizer/testData/propertyCommonization/specifics/original/jvm/package_root.kt index 7fcc4ed0c37..fd0efcdd91c 100644 --- a/native/commonizer/testData/propertyCommonization/specifics/original/jvm/package_root.kt +++ b/native/commonizer/testData/propertyCommonization/specifics/original/jvm/package_root.kt @@ -28,3 +28,7 @@ var inlineProperty8 external val externalProperty1: Int val externalProperty2: Int = 1 + +var externalSetGet: Int + external get + external set \ No newline at end of file diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizerTest.kt index 7458eacb06e..0860d7f6710 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/FunctionModifiersCommonizerTest.kt @@ -112,54 +112,6 @@ class FunctionModifiersCommonizerTest : AbstractCommonizerTest