diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt index f20af61fe57..4243708c27d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt @@ -12,9 +12,9 @@ public object O { public final class TopLevel { public constructor TopLevel() public final val x: kotlin.String = "a" - public final val y: kotlin.String + public external final val y: kotlin.String public final val O.u: kotlin.String - public final val O.v: kotlin.String + public external final val O.v: kotlin.String public final external fun bar(): kotlin.Int @kotlin.js.native public final fun baz(): kotlin.Int public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -40,9 +40,9 @@ public final class TopLevel { public final class TopLevelNative { public constructor TopLevelNative() public final val x: kotlin.String = "a" - public final val y: kotlin.String + public external final val y: kotlin.String public final val O.u: kotlin.String - public final val O.v: kotlin.String + public external final val O.v: kotlin.String public final external fun bar(): kotlin.Int public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final fun foo(): kotlin.Int diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt index 587f7d2055f..a9159da4c67 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt @@ -1,8 +1,8 @@ package -public val baz: kotlin.Int -public val boo: kotlin.Int -public val kotlin.Int.baz: kotlin.Int +public external val baz: kotlin.Int +public external val boo: kotlin.Int +public external val kotlin.Int.baz: kotlin.Int public external fun bar(): kotlin.Unit public external fun foo(): kotlin.Unit public external fun kotlin.String.bar(): kotlin.Int diff --git a/compiler/testData/diagnostics/testsWithStdLib/native/nonFunction.txt b/compiler/testData/diagnostics/testsWithStdLib/native/nonFunction.txt index 498288ab058..612b9787217 100644 --- a/compiler/testData/diagnostics/testsWithStdLib/native/nonFunction.txt +++ b/compiler/testData/diagnostics/testsWithStdLib/native/nonFunction.txt @@ -1,8 +1,8 @@ package -public val foo: kotlin.Int = 23 +public external val foo: kotlin.Int = 23 -public final class A { +public external final class A { public constructor A() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -11,12 +11,12 @@ public final class A { public final class B { public constructor B() - public final val foo: kotlin.Int = 23 + public external final val foo: kotlin.Int = 23 public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - public final class A { + public external final class A { public constructor A() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int diff --git a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt index 1cb308aa94c..3e17a5c92b6 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -515,6 +515,12 @@ internal class DescriptorRendererImpl( } } + private fun renderExternal(memberDescriptor: MemberDescriptor, builder: StringBuilder) { + if (memberDescriptor.isExternal) { + builder.append("external ") + } + } + private fun renderLateInit(propertyDescriptor: PropertyDescriptor, builder: StringBuilder) { if (propertyDescriptor.isLateInit) { builder.append("lateinit ") @@ -528,9 +534,7 @@ internal class DescriptorRendererImpl( if (functionDescriptor.isInfix && (functionDescriptor.overriddenDescriptors.none { it.isInfix } || alwaysRenderModifiers)) { builder.append("infix ") } - if (functionDescriptor.isExternal) { - builder.append("external ") - } + renderExternal(functionDescriptor, builder) if (functionDescriptor.isInline) { builder.append("inline ") } @@ -839,6 +843,7 @@ internal class DescriptorRendererImpl( builder.append("const ") } + renderExternal(property, builder) renderModalityForCallable(property, builder) renderOverride(property, builder) renderLateInit(property, builder) @@ -984,9 +989,7 @@ internal class DescriptorRendererImpl( } private fun renderAccessorModifiers(descriptor: PropertyAccessorDescriptor, builder: StringBuilder) { - if (descriptor.isExternal) { - builder.append("external ") - } + renderExternal(descriptor, builder) } /* STUPID DISPATCH-ONLY VISITOR */