diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt index 1460421ce42..a22d7d459c1 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt @@ -1,6 +1,6 @@ package -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 @kotlin.js.nativeGetter public final fun foo(/*0*/ a: kotlin.Double): kotlin.String? @@ -20,7 +20,7 @@ public final class A { } } -public final class B { +public external final class B { public constructor B() @kotlin.js.nativeGetter public final val foo: kotlin.Int = 0 public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -50,7 +50,7 @@ public final class B { } } -public final class C { +public external final class C { public constructor C() @kotlin.js.nativeGetter public final fun bar(/*0*/ a: kotlin.String): kotlin.Int @kotlin.js.nativeGetter public final fun baz(/*0*/ a: kotlin.String = ...): kotlin.Int? diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt index b1b2bc12caa..d10cf67e7ed 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt @@ -1,6 +1,6 @@ package -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/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt index f0bc61b25c9..25aa2f7e279 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt @@ -1,6 +1,6 @@ package -public final class A { +public external final class A { public constructor A() @kotlin.js.nativeInvoke public final val foo: kotlin.Int = 0 public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt index 9244b878553..42aa11a6319 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt @@ -1,6 +1,6 @@ package -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/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt index 1492cfc7d63..fa2cb7249a5 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt @@ -1,6 +1,6 @@ package -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 @kotlin.js.nativeSetter public final fun foo(/*0*/ a: kotlin.Int, /*1*/ v: kotlin.String): kotlin.Unit @@ -24,7 +24,7 @@ public final class A { } } -public final class B { +public external final class B { public constructor B() @kotlin.js.nativeSetter public final val foo: kotlin.Int = 0 public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -54,7 +54,7 @@ public final class B { } } -public final class C { +public external final class C { public constructor C() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @kotlin.js.nativeSetter public final fun foo(/*0*/ a: kotlin.Number, /*1*/ v: kotlin.String = ...): kotlin.String diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt index 8e138dcfd54..8f4b0dea460 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt @@ -1,6 +1,6 @@ package -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/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt index 4243708c27d..561329c550f 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested.txt @@ -22,7 +22,7 @@ public final class TopLevel { 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 @@ -37,7 +37,7 @@ public final class TopLevel { } } -public final class TopLevelNative { +public external final class TopLevelNative { public constructor TopLevelNative() public final val x: kotlin.String = "a" public external final val y: kotlin.String @@ -49,7 +49,7 @@ public final class TopLevelNative { 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/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt index a9159da4c67..c1233e16682 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt @@ -8,7 +8,7 @@ public external fun foo(): kotlin.Unit public external fun kotlin.String.bar(): kotlin.Int public external fun kotlin.String.foo(): kotlin.Int -public final class C { +public external final class C { public constructor C() public final val baz: kotlin.Int public final val boo: kotlin.Int @@ -30,7 +30,7 @@ public final class C { } } -public object O { +public external object O { private constructor O() public final val baz: kotlin.Int public final val boo: kotlin.Int @@ -41,7 +41,7 @@ public object O { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public interface T { +public external interface T { public abstract val baz: kotlin.Int public open fun bar(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.txt index eb66d88014e..d8e632d2e76 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.txt @@ -3,7 +3,7 @@ package @kotlin.js.nativeGetter public fun kotlin.String.bar(/*0*/ n: kotlin.Int): kotlin.Int? @kotlin.js.nativeGetter public fun kotlin.String.foo(/*0*/ n: kotlin.Int): kotlin.Int? -public interface T { +public external interface T { @kotlin.js.nativeGetter public open fun bar(/*0*/ d: kotlin.Double): kotlin.String? public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @kotlin.js.nativeGetter public abstract fun foo(/*0*/ d: kotlin.Double): kotlin.String? diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.txt index adc21b37a01..896b00f400f 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.txt @@ -3,7 +3,7 @@ package @kotlin.js.nativeInvoke public fun kotlin.String.bar(): kotlin.Int @kotlin.js.nativeInvoke public fun kotlin.String.foo(): kotlin.Int -public object O { +public external object O { private constructor O() @kotlin.js.nativeInvoke public final fun bar(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.txt index c1b254e6c1a..916a2bd61bd 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.txt @@ -3,7 +3,7 @@ package @kotlin.js.nativeSetter public fun kotlin.String.bar(/*0*/ n: kotlin.Int, /*1*/ v: kotlin.Any): kotlin.Unit @kotlin.js.nativeSetter public fun kotlin.String.foo(/*0*/ n: kotlin.Int, /*1*/ v: kotlin.Any): kotlin.Unit -public final class C { +public external final class C { public constructor C() @kotlin.js.nativeSetter public final fun bar(/*0*/ d: kotlin.Double, /*1*/ v: kotlin.Any): kotlin.Any public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.txt index deaa99d773a..2bdcb95520e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.txt @@ -2,7 +2,7 @@ package public fun box(/*0*/ a: kotlin.Any, /*1*/ b: kotlin.Any): kotlin.Pair -public interface I { +public external interface I { 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 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.txt index 3c4497612f8..9bca9eca7b6 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.txt @@ -2,7 +2,7 @@ package public fun box(/*0*/ a: kotlin.Any, /*1*/ b: kotlin.Any): kotlin.Boolean -public interface I { +public external interface I { 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 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.txt index 0321e248ac4..eb89cfbf9d8 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.txt @@ -4,14 +4,14 @@ public fun bar(): kotlin.Unit public inline fun foo(/*0*/ x: T): kotlin.Unit public operator inline fun C.plus(/*0*/ other: T): C -public final class C : I { +public external final class C : I { public constructor C() 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 interface I { +public external interface I { 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 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.txt index c751b922202..d18169b3d6e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.txt @@ -2,13 +2,13 @@ package public fun box(/*0*/ a: kotlin.Any): kotlin.Int -public interface I { +public external interface I { 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 interface J { +public external interface J { 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 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt index 6575fc1c80e..fee4eb7387d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt @@ -3,7 +3,7 @@ package public external fun foo(/*0*/ a: kotlin.String): kotlin.Int public external fun kotlin.Int.foo(/*0*/ a: kotlin.String): kotlin.Int -public final class Bar { +public external final class Bar { public constructor Bar(/*0*/ b: kotlin.Int, /*1*/ c: kotlin.Char) public final fun baz(/*0*/ d: kotlin.Int): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -11,7 +11,7 @@ public final class Bar { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public object Obj { +public external object Obj { private constructor Obj() 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/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.txt index afb4933f004..b0864839faa 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.txt @@ -2,7 +2,7 @@ package @kotlin.js.nativeGetter public fun kotlin.Int.foo(/*0*/ a: kotlin.String): kotlin.Int? -public final class Bar { +public external final class Bar { public constructor Bar(/*0*/ b: kotlin.Int, /*1*/ c: kotlin.Char) @kotlin.js.nativeGetter public final fun baz(/*0*/ d: kotlin.Int): kotlin.Any? public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -10,7 +10,7 @@ public final class Bar { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public object Obj { +public external object Obj { private constructor Obj() 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/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.txt index c6b5d508238..d35b67e016e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.txt @@ -2,7 +2,7 @@ package @kotlin.js.nativeInvoke public fun kotlin.Int.foo(/*0*/ a: kotlin.String): kotlin.Int -public final class Bar { +public external final class Bar { public constructor Bar(/*0*/ b: kotlin.Int, /*1*/ c: kotlin.Char) @kotlin.js.nativeInvoke public final fun baz(/*0*/ d: kotlin.Int): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -10,7 +10,7 @@ public final class Bar { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public object Obj { +public external object Obj { private constructor Obj() 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/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.txt index b902b137fac..5d5fa6bb774 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.txt @@ -2,7 +2,7 @@ package @kotlin.js.nativeSetter public fun kotlin.Int.foo(/*0*/ a: kotlin.String, /*1*/ v: kotlin.Int): kotlin.Int -public final class Bar { +public external final class Bar { public constructor Bar(/*0*/ b: kotlin.Int, /*1*/ c: kotlin.Char) @kotlin.js.nativeSetter public final fun baz(/*0*/ d: kotlin.Int, /*1*/ v: kotlin.Int): kotlin.Unit public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -10,7 +10,7 @@ public final class Bar { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -public object Obj { +public external object Obj { private constructor Obj() 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/compiler/testData/diagnostics/testsWithJsStdLib/native/wrongTarget.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/wrongTarget.txt index b0ef11f8e9a..8c943be598a 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/wrongTarget.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/wrongTarget.txt @@ -3,7 +3,7 @@ package public val x: kotlin.Int public val B.x: kotlin.Int -public final annotation class A : kotlin.Annotation { +public external final annotation class A : kotlin.Annotation { 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 3e17a5c92b6..e6607b1ad66 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/renderer/DescriptorRendererImpl.kt @@ -903,6 +903,7 @@ internal class DescriptorRendererImpl( if (!isEnumEntry) { renderVisibility(klass.visibility, builder) } + renderExternal(klass, builder) if (!(klass.kind == ClassKind.INTERFACE && klass.modality == Modality.ABSTRACT || klass.kind.isSingleton && klass.modality == Modality.FINAL)) { renderModality(klass.modality, builder)