diff --git a/compiler/testData/codegen/box/bridges/jsNative.kt b/compiler/testData/codegen/box/bridges/jsNative.kt index eb8cb89a9a1..b13d97886dd 100644 --- a/compiler/testData/codegen/box/bridges/jsNative.kt +++ b/compiler/testData/codegen/box/bridges/jsNative.kt @@ -1,7 +1,7 @@ // TARGET_BACKEND: JS package foo -@native interface A { +external interface A { fun foo(value: Int): String } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.kt index d0e5c462e79..f42979cf740 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.kt @@ -5,14 +5,14 @@ package foo import kotlin.js.* @JsModule("A") -@native object A { +external object A { fun f(): Int val g: Int } @JsNonModule -@native open class B { +external open class B { fun foo(): Int } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.txt index ea7397dbb00..e1c97c236fd 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/dualModuleFromUmd.txt @@ -6,7 +6,7 @@ package bar { package foo { - @kotlin.js.JsModule(import = "A") @kotlin.js.native public object A { + @kotlin.js.JsModule(import = "A") public external object A { private constructor A() public final val g: kotlin.Int public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -15,7 +15,7 @@ package foo { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - @kotlin.js.JsNonModule @kotlin.js.native public open class B { + @kotlin.js.JsNonModule public external open class B { public constructor B() 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/module/jsModuleWithoutParameters.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.kt index 4de992d3d8d..250fd3fd0d5 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.kt @@ -2,6 +2,8 @@ // This should not crash package foo -@JsModule @native fun foo(x: Int): Int +@JsModule +external fun foo(x: Int): Int -@JsModule(23) @native fun bar(x: Int): Int \ No newline at end of file +@JsModule(23) +external fun bar(x: Int): Int \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.txt index 89861369f38..af9ca79086d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsModuleWithoutParameters.txt @@ -1,6 +1,6 @@ package package foo { - @kotlin.js.JsModule(import = 23) @kotlin.js.native public fun bar(/*0*/ x: kotlin.Int): kotlin.Int - @kotlin.js.JsModule @kotlin.js.native public fun foo(/*0*/ x: kotlin.Int): kotlin.Int + @kotlin.js.JsModule(import = 23) public external fun bar(/*0*/ x: kotlin.Int): kotlin.Int + @kotlin.js.JsModule public external fun foo(/*0*/ x: kotlin.Int): kotlin.Int } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.kt index f53843c465e..e488944d6de 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.kt @@ -1,7 +1,7 @@ package foo @JsModule("bar") -@native var bar: Int = noImpl +external var bar: Int = noImpl @JsNonModule -@native var baz: Int = noImpl \ No newline at end of file +external var baz: Int = noImpl \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.txt index 6d4f1fa3bc4..866c312ff41 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/jsVarProhibited.txt @@ -1,6 +1,6 @@ package package foo { - @kotlin.js.JsModule(import = "bar") @kotlin.js.native public var bar: kotlin.Int - @kotlin.js.JsNonModule @kotlin.js.native public var baz: kotlin.Int + @kotlin.js.JsModule(import = "bar") public external var bar: kotlin.Int + @kotlin.js.JsNonModule public external var baz: kotlin.Int } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.kt index d888c3b23ca..c7ad3dddb95 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.kt @@ -2,16 +2,16 @@ package foo @JsModule("A") -@native class A +external class A @JsModule("B") -@native object B +external object B @JsModule("foo") -@native fun foo() = 23 +external fun foo() = 23 @JsModule("bar") -@native val bar = 42 +external val bar = 42 @JsNonModule -@native val baz = 99 \ No newline at end of file +external val baz = 99 \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.txt index 60c6459ed4b..7b0f5f3f911 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/nestedProhibited.txt @@ -1,18 +1,18 @@ package package foo { - @kotlin.js.JsModule(import = "bar") @kotlin.js.native public val bar: kotlin.Int = 42 - @kotlin.js.JsNonModule @kotlin.js.native public val baz: kotlin.Int = 99 - @kotlin.js.JsModule(import = "foo") @kotlin.js.native public fun foo(): kotlin.Int + @kotlin.js.JsModule(import = "bar") public external val bar: kotlin.Int = 42 + @kotlin.js.JsNonModule public external val baz: kotlin.Int = 99 + @kotlin.js.JsModule(import = "foo") public external fun foo(): kotlin.Int - @kotlin.js.JsModule(import = "A") @kotlin.js.native public final class A { + @kotlin.js.JsModule(import = "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 public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - @kotlin.js.JsModule(import = "B") @kotlin.js.native public object B { + @kotlin.js.JsModule(import = "B") public external object B { private constructor B() 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/module/nonTopLevelProhibited.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/nonTopLevelProhibited.kt deleted file mode 100644 index dfce271ec43..00000000000 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/nonTopLevelProhibited.kt +++ /dev/null @@ -1,19 +0,0 @@ -package foo - -class A { - @JsModule("foo") - @native fun foo(): Int -} - -object B { - @JsModule("foo") - @native fun bar(): Int -} - -fun baz() { - @JsModule("bzz") - @native fun bzz(): Int - - @JsModule("bzz") - @native class C -} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/nonTopLevelProhibited.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/nonTopLevelProhibited.txt deleted file mode 100644 index 2e23e888d1c..00000000000 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/nonTopLevelProhibited.txt +++ /dev/null @@ -1,21 +0,0 @@ -package - -package foo { - public fun baz(): kotlin.Unit - - public final class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - @kotlin.js.JsModule(import = "foo") @kotlin.js.native public final fun foo(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - } - - public object B { - private constructor B() - @kotlin.js.JsModule(import = "foo") @kotlin.js.native public final fun bar(): kotlin.Int - 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/module/wrongCallToModule.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.kt index 30cee6bb2db..d6ed0cd0476 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.kt @@ -5,19 +5,19 @@ package foo import kotlin.js.* @JsModule("A") -@native object A { +external object A { fun f(): Int val g: Int } @JsModule("B") -@native open class B { +external open class B { fun foo(): Int } @JsModule("bar") -@native fun bar(): Unit +external fun bar(): Unit // MODULE: m2(m1) // FILE: b.kt @@ -25,7 +25,7 @@ import kotlin.js.* @file:JsModule("foo") package foo -@native fun baz(): Unit +external fun baz(): Unit // FILE: c.kt package bar @@ -39,4 +39,4 @@ fun box() { baz() } -@native class DerivedB : B() \ No newline at end of file +external class DerivedB : B() \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.txt index 856a428fa57..9db3570a9f2 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToModule.txt @@ -2,9 +2,9 @@ package package foo { - @kotlin.js.JsModule(import = "bar") @kotlin.js.native public fun bar(): kotlin.Unit + @kotlin.js.JsModule(import = "bar") public external fun bar(): kotlin.Unit - @kotlin.js.JsModule(import = "A") @kotlin.js.native public object A { + @kotlin.js.JsModule(import = "A") public external object A { private constructor A() public final val g: kotlin.Int public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -13,7 +13,7 @@ package foo { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - @kotlin.js.JsModule(import = "B") @kotlin.js.native public open class B { + @kotlin.js.JsModule(import = "B") public external open class B { public constructor B() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final fun foo(): kotlin.Int @@ -29,7 +29,7 @@ package package bar { public fun box(): kotlin.Unit - @kotlin.js.native public final class DerivedB : foo.B { + public external final class DerivedB : foo.B { public constructor DerivedB() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Int @@ -39,5 +39,5 @@ package bar { } package foo { - @kotlin.js.native public fun baz(): kotlin.Unit + public external fun baz(): kotlin.Unit } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.kt b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.kt index 496b79850cd..f767317d939 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.kt @@ -5,19 +5,19 @@ package foo import kotlin.js.* @JsNonModule -@native object A { +external object A { fun f(): Int val g: Int } @JsNonModule -@native open class B { +external open class B { fun foo(): Int } @JsNonModule -@native fun bar(): Unit +external fun bar(): Unit // MODULE: m2(m1) // MODULE_KIND: AMD @@ -33,4 +33,4 @@ fun box() { bar() } -@native class DerivedB : B() \ No newline at end of file +external class DerivedB : B() \ No newline at end of file diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.txt b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.txt index 35636a9db1c..697330909bc 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/module/wrongCallToNonModule.txt @@ -3,7 +3,7 @@ package package bar { public fun box(): kotlin.Unit - @kotlin.js.native public final class DerivedB : foo.B { + public external final class DerivedB : foo.B { public constructor DerivedB() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public final override /*1*/ /*fake_override*/ fun foo(): kotlin.Int @@ -13,9 +13,9 @@ package bar { } package foo { - @kotlin.js.JsNonModule @kotlin.js.native public fun bar(): kotlin.Unit + @kotlin.js.JsNonModule public external fun bar(): kotlin.Unit - @kotlin.js.JsNonModule @kotlin.js.native public object A { + @kotlin.js.JsNonModule public external object A { private constructor A() public final val g: kotlin.Int public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean @@ -24,7 +24,7 @@ package foo { public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } - @kotlin.js.JsNonModule @kotlin.js.native public open class B { + @kotlin.js.JsNonModule public external open class B { public constructor B() 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/name/jsNameAndNamedNative.kt b/compiler/testData/diagnostics/testsWithJsStdLib/name/jsNameAndNamedNative.kt index 64f6e3f0638..83c98e304a4 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/name/jsNameAndNamedNative.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/name/jsNameAndNamedNative.kt @@ -1 +1,4 @@ -@native("B") @JsName("C") class A +// !DIAGNOSTICS: -DEPRECATION +@native("B") +@JsName("C") +class A diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalExtensionFun.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalExtensionFun.kt index 8d70bb60f54..c609adc164d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalExtensionFun.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalExtensionFun.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION fun foo() { @nativeGetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNativeClassMembers.kt index a161a8a40db..6b758314673 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNativeClassMembers.kt @@ -1,8 +1,7 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER fun foo() { - @native - class A { + external class A { @nativeGetter fun get(a: String): Any? = null @@ -13,14 +12,12 @@ fun foo() { fun foo(a: Double): String? = null } - @native - class B { + external class B { @nativeGetter val foo = 0 } - @native - class C { + external class C { @nativeGetter fun Int.get(a: String): Int? = 1 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNonNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNonNativeClassMembers.kt index 4f0a78271f3..d3e2e51384a 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNonNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalNonNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION fun foo() { class A { diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalOtherDeclarations.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalOtherDeclarations.kt index ad001268092..ec809efa050 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalOtherDeclarations.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onLocalOtherDeclarations.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION fun foo() { @nativeGetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.kt index 86d81316a79..46a446fb5ac 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.kt @@ -1,7 +1,6 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION -@native -class A { +external class A { @nativeGetter fun get(a: String): Any? = null @@ -23,8 +22,7 @@ class A { } } -@native -class B { +external class B { @nativeGetter val foo = 0 @@ -40,8 +38,7 @@ class B { } } -@native -class C { +external class C { @nativeGetter fun Int.get(a: String): Int? = 1 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt index 13ed6396944..1460421ce42 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNativeClassMembers.txt @@ -1,6 +1,6 @@ package -@kotlin.js.native public final class A { +public 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 @@ package } } -@kotlin.js.native public final class B { +public 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 @@ package } } -@kotlin.js.native public final class C { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.kt index 3efa0c16690..c3b288b829b 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.kt @@ -1,7 +1,6 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION -@native -class A { +external class A { class B { class A { @nativeGetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt index 5397f42fe1d..b1b2bc12caa 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNativeClass.txt @@ -1,6 +1,6 @@ package -@kotlin.js.native public final class A { +public 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/nativeGetter/onNestedDeclarationsInsideNonNativeClass.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNonNativeClass.kt index 7452d77a2ff..3026f8b5523 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNonNativeClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNestedDeclarationsInsideNonNativeClass.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION class A { class B { diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNonNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNonNativeClassMembers.kt index 6603a3037c0..37acb6cfc4e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNonNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onNonNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION class A { @nativeGetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelExtensionFun.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelExtensionFun.kt index df5a3c46e81..784c4223c0a 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelExtensionFun.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelExtensionFun.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION @nativeGetter fun Int.get(a: String): Int? = 1 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelOtherDeclarations.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelOtherDeclarations.kt index b3bf26f18d4..7fdb032583e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelOtherDeclarations.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeGetter/onToplevelOtherDeclarations.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION @nativeGetter fun toplevelFun(): Any = 0 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalExtensionFun.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalExtensionFun.kt index 2830b6bdcc3..332848d4937 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalExtensionFun.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalExtensionFun.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION fun foo() { @nativeInvoke diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNativeClassMembers.kt index 1bc9a08b376..d9534b70af4 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNativeClassMembers.kt @@ -1,8 +1,7 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER fun foo() { - @native - class A { + external class A { @nativeInvoke fun foo() {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNonNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNonNativeClassMembers.kt index 7f678552771..a86ad81d2d1 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNonNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalNonNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION fun foo() { class A { diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalOtherDeclarations.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalOtherDeclarations.kt index 65a7920e4bf..f2ed82f2040 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalOtherDeclarations.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onLocalOtherDeclarations.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION fun foo() { @nativeInvoke diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.kt index 8db89fffce3..0a3dc35f6ca 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.kt @@ -1,7 +1,6 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION -@native -class A { +external class A { @nativeInvoke fun foo() {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt index 3891b8405d3..f0bc61b25c9 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNativeClassMembers.txt @@ -1,6 +1,6 @@ package -@kotlin.js.native public final class A { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.kt index 530723feed8..023421f2487 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.kt @@ -1,7 +1,6 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION -@native -class A { +external class A { class B { class C { @nativeInvoke diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt index 4123cc2f42a..9244b878553 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNativeClass.txt @@ -1,6 +1,6 @@ package -@kotlin.js.native public final class A { +public 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/onNestedDeclarationsInsideNonNativeClass.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNonNativeClass.kt index 96ed3325199..5fd829c4801 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNonNativeClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNestedDeclarationsInsideNonNativeClass.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION class A { class B { diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNonNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNonNativeClassMembers.kt index 19b4f81178b..ce1f6a5f0d3 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNonNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onNonNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION class A { @nativeInvoke diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelExtensionFun.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelExtensionFun.kt index fd36efe2da6..9165eb39fc4 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelExtensionFun.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelExtensionFun.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION @nativeInvoke fun Int.ext() = 1 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelOtherDeclarations.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelOtherDeclarations.kt index 15380e00299..0a5e542a226 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelOtherDeclarations.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeInvoke/onToplevelOtherDeclarations.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION @nativeInvoke fun toplevelFun() {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalExtensionFun.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalExtensionFun.kt index 81cdf915f1c..56da7aa9eaa 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalExtensionFun.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalExtensionFun.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION fun foo() { @nativeSetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNativeClassMembers.kt index 57fa1e4ddfc..682fa55edcf 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION fun foo() { @native diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNonNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNonNativeClassMembers.kt index f68c1c73241..a3e5f9650e6 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNonNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalNonNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION fun foo() { class A { diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalOtherDeclarations.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalOtherDeclarations.kt index bbd6532f21e..fa222315388 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalOtherDeclarations.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onLocalOtherDeclarations.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION fun foo() { @nativeSetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.kt index 338d4c9986c..9edb1940da7 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.kt @@ -1,7 +1,6 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION -@native -class A { +external class A { @nativeSetter fun set(a: String, v: Any?): Any? = null @@ -35,8 +34,7 @@ class A { } } -@native -class B { +external class B { @nativeSetter val foo = 0 @@ -52,8 +50,7 @@ class B { } } -@native -class C { +external class C { @nativeSetter fun Int.set(a: String, v: Int) {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt index fbf873db01c..1492cfc7d63 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNativeClassMembers.txt @@ -1,6 +1,6 @@ package -@kotlin.js.native public final class A { +public 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 @@ package } } -@kotlin.js.native public final class B { +public 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 @@ package } } -@kotlin.js.native public final class C { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.kt index 750b67418a7..eb57f9c8617 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.kt @@ -1,7 +1,6 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION -@native -class A { +external class A { class B { class A { @nativeSetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt index 538e276be3f..8e138dcfd54 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNativeClass.txt @@ -1,6 +1,6 @@ package -@kotlin.js.native public final class A { +public 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/onNestedDeclarationsInsideNonNativeClass.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNonNativeClass.kt index e835eb1bb11..6571ea29d3e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNonNativeClass.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNestedDeclarationsInsideNonNativeClass.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION +// !DIAGNOSTICS: -UNUSED_PARAMETER -NON_TOPLEVEL_CLASS_DECLARATION, -DEPRECATION class A { class B { diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNonNativeClassMembers.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNonNativeClassMembers.kt index 95b0d96c5d3..c3db2b9346d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNonNativeClassMembers.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onNonNativeClassMembers.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION class A { @nativeSetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelExtensionFun.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelExtensionFun.kt index 7035c24f74d..6352c917d21 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelExtensionFun.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelExtensionFun.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION @nativeSetter fun Int.set(a: String, v: Int) {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelOtherDeclarations.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelOtherDeclarations.kt index dff45959133..79cb546fa15 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelOtherDeclarations.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nativeSetter/onToplevelOtherDeclarations.kt @@ -1,4 +1,4 @@ -// !DIAGNOSTICS: -UNUSED_PARAMETER +// !DIAGNOSTICS: -UNUSED_PARAMETER, -DEPRECATION @nativeSetter fun toplevelFun(): Any = 0 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.kt index ea5a0eb8f5d..bb09e44d45e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.kt @@ -1,7 +1,7 @@ class A { - @native inner class B + external inner class B } -@native class C { - @native inner class D +external class C { + inner external class D } diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.txt index da96592b7a4..255c25b2839 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/nested/nativeInnerClassProhibited.txt @@ -6,7 +6,7 @@ public final class A { public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String - @kotlin.js.native public final inner class B { + public final inner class B { public constructor B() public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int @@ -14,13 +14,13 @@ public final class A { } } -@kotlin.js.native public final class C { +public final class C { 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 - @kotlin.js.native public final inner class D { + public final inner class D { public constructor D() 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt index 779384f21c1..0220c3732f4 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.kt @@ -1,26 +1,18 @@ // !DIAGNOSTICS: -UNREACHABLE_CODE // unreachable code suppressed due to KT-9586 -@native -val baz: Int -@native -val boo: Int = noImpl +external val baz: Int +external val boo: Int = noImpl -@native -val Int.baz: Int +external val Int.baz: Int -@native -fun foo() -@native -fun bar() {} +external fun foo() +external fun bar() {} -@native -fun String.foo(): Int -@native -fun String.bar(): Int = noImpl +external fun String.foo(): Int +external fun String.bar(): Int = noImpl -@native -interface T { +external interface T { val baz: Int fun foo() @@ -35,8 +27,7 @@ interface T { } } -@native -class C { +external class C { val baz: Int val boo: Int = noImpl @@ -52,8 +43,7 @@ class C { } } -@native -object O { +external object O { val baz: Int val boo: Int = noImpl @@ -62,8 +52,7 @@ object O { } fun test() { - @native - class Local { + external class Local { val baz: Int val boo: Int = noImpl diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt index 936a6ff96f1..6a4d5db6db6 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/native.txt @@ -1,15 +1,15 @@ package -@kotlin.js.native public val baz: kotlin.Int -@kotlin.js.native public val boo: kotlin.Int -@kotlin.js.native public val kotlin.Int.baz: kotlin.Int -@kotlin.js.native public fun bar(): kotlin.Unit -@kotlin.js.native public fun foo(): kotlin.Unit +public val baz: kotlin.Int +public val boo: kotlin.Int +public val kotlin.Int.baz: kotlin.Int +public external fun bar(): kotlin.Unit +public external fun foo(): kotlin.Unit public fun test(): kotlin.Unit -@kotlin.js.native public fun kotlin.String.bar(): kotlin.Int -@kotlin.js.native public fun kotlin.String.foo(): kotlin.Int +public external fun kotlin.String.bar(): kotlin.Int +public external fun kotlin.String.foo(): kotlin.Int -@kotlin.js.native public final class C { +public final class C { public constructor C() public final val baz: kotlin.Int public final val boo: kotlin.Int @@ -31,7 +31,7 @@ public fun test(): kotlin.Unit } } -@kotlin.js.native public object O { +public object O { private constructor O() public final val baz: kotlin.Int public final val boo: kotlin.Int @@ -42,7 +42,7 @@ public fun test(): kotlin.Unit public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -@kotlin.js.native public interface T { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.kt index 1aa68c19387..90100fabfc3 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.kt @@ -1,11 +1,11 @@ +// !DIAGNOSTICS: -DEPRECATION @nativeGetter fun String.foo(n: Int): Int? @nativeGetter fun String.bar(n: Int): Int? = noImpl -@native -interface T { +external interface T { @nativeGetter fun foo(d: Double): String? @nativeGetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeGetter.txt index 152ff98485a..eb66d88014e 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? -@kotlin.js.native public interface T { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.kt index b9eef6f4fca..53784154f42 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.kt @@ -1,11 +1,11 @@ +// !DIAGNOSTICS: -DEPRECATION @nativeInvoke fun String.foo(): Int @nativeInvoke fun String.bar(): Int = noImpl -@native -object O { +external object O { @nativeInvoke fun foo() @nativeInvoke diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeInvoke.txt index 0c222817abb..adc21b37a01 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 -@kotlin.js.native public object O { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.kt index e2bdc64716f..d8fe9452bc7 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.kt @@ -1,11 +1,11 @@ +// !DIAGNOSTICS: -DEPRECATION @nativeSetter fun String.foo(n: Int, v: Any) @nativeSetter fun String.bar(n: Int, v: Any) {} -@native -class C { +external class C { @nativeSetter fun foo(d: Double, v: Any): Any @nativeSetter diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/optionlBody/nativeSetter.txt index d351654f89d..c1b254e6c1a 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 -@kotlin.js.native public final class C { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.kt index 0a8a4cdc333..bf198c2f57b 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.kt @@ -1,4 +1,4 @@ -@native interface I +external interface I fun box(a: Any, b: Any): Pair { return Pair(a as I, b as? I) diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/castToNativeInterface.txt index 7504f06221c..deaa99d773a 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 -@kotlin.js.native public interface I { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.kt index 83ed4ff9702..3cdffaccc03 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.kt @@ -1,4 +1,4 @@ -@native interface I +external interface I fun box(a: Any, b: Any): Boolean { return a is I && b !is I diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/checkForNativeInterface.txt index 6487bca95bf..3c4497612f8 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 -@kotlin.js.native public interface I { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.kt index ca608e42ce9..6094c98a61e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.kt @@ -4,9 +4,9 @@ inline fun foo(x: T) { println(x) } -@native interface I +external interface I -@native class C : I +external class C : I operator inline fun C.plus(other: T) = this diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/nativeInterfaceAsReifiedTypeArgument.txt index a804797a640..0321e248ac4 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 -@kotlin.js.native public final class C : I { +public 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 } -@kotlin.js.native public interface I { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.kt index ca580321fbc..ed4d85e987f 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.kt @@ -1,6 +1,6 @@ -@native interface I +external interface I -@native interface J +external interface J fun box(a: Any) = when (a) { is I -> 0 diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/rtti/whenIsNativeInterface.txt index 9e1136325b5..c751b922202 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 -@kotlin.js.native public interface I { +public 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 } -@kotlin.js.native public interface J { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.kt index e1921c0399f..50090fcf041 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.kt @@ -1,16 +1,12 @@ -@native -fun foo(a: String): Int = noImpl +external fun foo(a: String): Int = noImpl -@native -fun Int.foo(a: String): Int = noImpl +external fun Int.foo(a: String): Int = noImpl -@native -class Bar(b: Int, c: Char) { +external class Bar(b: Int, c: Char) { fun baz(d: Int) {} } -@native -object Obj { +external object Obj { fun test1(e: String) {} object Nested { fun test2(g: Int) {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt index 4555ce07e5c..6575fc1c80e 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/native.txt @@ -1,9 +1,9 @@ package -@kotlin.js.native public fun foo(/*0*/ a: kotlin.String): kotlin.Int -@kotlin.js.native public fun kotlin.Int.foo(/*0*/ a: kotlin.String): kotlin.Int +public external fun foo(/*0*/ a: kotlin.String): kotlin.Int +public external fun kotlin.Int.foo(/*0*/ a: kotlin.String): kotlin.Int -@kotlin.js.native public final class Bar { +public 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 @@ package public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -@kotlin.js.native public object Obj { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.kt index 14061dce11c..1e2f20325c7 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.kt @@ -1,14 +1,13 @@ +// !DIAGNOSTICS: -DEPRECATION @nativeGetter fun Int.foo(a: String): Int? = noImpl -@native -class Bar(b: Int, c: Char) { +external class Bar(b: Int, c: Char) { @nativeGetter fun baz(d: Int): Any? = noImpl } -@native -object Obj { +external object Obj { @nativeGetter fun test1(e: String): String? = noImpl diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeGetter.txt index 0f4148aa309..afb4933f004 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? -@kotlin.js.native public final class Bar { +public 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 @@ package public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -@kotlin.js.native public object Obj { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.kt index c6fd1882c9e..07e52928695 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.kt @@ -1,14 +1,13 @@ +// !DIAGNOSTICS: -DEPRECATION @nativeInvoke fun Int.foo(a: String): Int = noImpl -@native -class Bar(b: Int, c: Char) { +external class Bar(b: Int, c: Char) { @nativeInvoke fun baz(d: Int) {} } -@native -object Obj { +external object Obj { @nativeInvoke fun test1(e: String) {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeInvoke.txt index c3226701032..c6b5d508238 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 -@kotlin.js.native public final class Bar { +public 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 @@ package public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -@kotlin.js.native public object Obj { +public 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.kt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.kt index 8a59b0024e9..ed41b75210d 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.kt @@ -1,14 +1,13 @@ +// !DIAGNOSTICS: -DEPRECATION @nativeSetter fun Int.foo(a: String, v: Int): Int = noImpl -@native -class Bar(b: Int, c: Char) { +external class Bar(b: Int, c: Char) { @nativeSetter fun baz(d: Int, v: Int) {} } -@native -object Obj { +external object Obj { @nativeSetter fun test1(e: String, v: Any) {} diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.txt b/compiler/testData/diagnostics/testsWithJsStdLib/native/unusedParam/nativeSetter.txt index 82a2b79e527..b902b137fac 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 -@kotlin.js.native public final class Bar { +public 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 @@ package public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String } -@kotlin.js.native public object Obj { +public 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/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java index 54c538bcb76..6a3e662cf7b 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestWithJsStdLibGenerated.java @@ -329,12 +329,6 @@ public class DiagnosticsTestWithJsStdLibGenerated extends AbstractDiagnosticsTes doTest(fileName); } - @TestMetadata("nonTopLevelProhibited.kt") - public void testNonTopLevelProhibited() throws Exception { - String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/module/nonTopLevelProhibited.kt"); - doTest(fileName); - } - @TestMetadata("prohibitedOnNonNative.kt") public void testProhibitedOnNonNative() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/testsWithJsStdLib/module/prohibitedOnNonNative.kt"); diff --git a/idea/testData/run/InJsModule/module/src/test.kt b/idea/testData/run/InJsModule/module/src/test.kt index 35437b584c2..4e171b8eec9 100644 --- a/idea/testData/run/InJsModule/module/src/test.kt +++ b/idea/testData/run/InJsModule/module/src/test.kt @@ -1,14 +1,12 @@ package q -@native -class Foo { +external class Foo { // RUN: fun foo(s: Array) = noImpl } // RUN: -@native -fun main(s: Array) { +external fun main(s: Array) { println("Top-level") } \ No newline at end of file diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/naming/NameSuggestion.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/naming/NameSuggestion.kt index 34f888c0f93..f50939670dc 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/naming/NameSuggestion.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/naming/NameSuggestion.kt @@ -222,7 +222,7 @@ class NameSuggestion { descriptor } - // If declaration is marked with either @native, @library or @JsName, return its stable name as is. + // If declaration is marked with either external, @native, @library or @JsName, return its stable name as is. val nativeName = getNameForAnnotatedObject(overriddenDescriptor) if (nativeName != null) return NameAndStability(nativeName, true) diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/DefaultErrorMessagesJs.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/DefaultErrorMessagesJs.kt index 2140c9480e9..89e0c3d4ee6 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/DefaultErrorMessagesJs.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/DefaultErrorMessagesJs.kt @@ -50,9 +50,7 @@ private val DIAGNOSTIC_FACTORY_TO_RENDERER by lazy { put(ErrorsJs.JS_NAME_PROHIBITED_FOR_NAMED_NATIVE, "@JsName is prohibited for @native declaration with explicit name") put(ErrorsJs.JS_MODULE_PROHIBITED_ON_VAR, "@JsModule and @JsNonModule annotations prohibited for 'var' declarations. " + "Use 'val' instead.") - put(ErrorsJs.JS_MODULE_PROHIBITED_ON_NON_NATIVE, "@JsModule and @JsNonModule annotations prohibited for non-@native declarations.") - put(ErrorsJs.JS_MODULE_PROHIBITED_ON_NON_TOPLEVEL, "@JsModule and @JsNonModule annotations are only allowed to appear " + - "on packages and top-level declarations") + put(ErrorsJs.JS_MODULE_PROHIBITED_ON_NON_NATIVE, "@JsModule and @JsNonModule annotations prohibited for non-external declarations.") put(ErrorsJs.NESTED_JS_MODULE_PROHIBITED, "@JsModule and @JsNonModule can't appear on here since the file is already " + "marked by either @JsModule or @JsNonModule") put(ErrorsJs.CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM, "Can't access declaration marked with @JsModule annotation " + diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/ErrorsJs.java b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/ErrorsJs.java index 04990023916..787eefe04d7 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/ErrorsJs.java +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/ErrorsJs.java @@ -54,7 +54,6 @@ public interface ErrorsJs { DiagnosticFactory0 JS_NAME_PROHIBITED_FOR_NAMED_NATIVE = DiagnosticFactory0.create(ERROR); DiagnosticFactory0 JS_MODULE_PROHIBITED_ON_VAR = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE_OR_DEFAULT); DiagnosticFactory0 JS_MODULE_PROHIBITED_ON_NON_NATIVE = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE_OR_DEFAULT); - DiagnosticFactory0 JS_MODULE_PROHIBITED_ON_NON_TOPLEVEL = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE_OR_DEFAULT); DiagnosticFactory0 NESTED_JS_MODULE_PROHIBITED = DiagnosticFactory0.create(ERROR, DECLARATION_SIGNATURE_OR_DEFAULT); DiagnosticFactory0 CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM = DiagnosticFactory0.create(ERROR, DEFAULT); DiagnosticFactory0 CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM = DiagnosticFactory0.create(ERROR, DEFAULT); diff --git a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsModuleChecker.kt b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsModuleChecker.kt index d14874d08da..35c11911d9f 100644 --- a/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsModuleChecker.kt +++ b/js/js.frontend/src/org/jetbrains/kotlin/js/resolve/diagnostics/JsModuleChecker.kt @@ -42,10 +42,6 @@ object JsModuleChecker : SimpleDeclarationChecker { diagnosticHolder.report(ErrorsJs.JS_MODULE_PROHIBITED_ON_NON_NATIVE.on(declaration)) } - if (!DescriptorUtils.isTopLevelDeclaration(descriptor)) { - diagnosticHolder.report(ErrorsJs.JS_MODULE_PROHIBITED_ON_NON_TOPLEVEL.on(declaration)) - } - val isFileModuleOrNonModule = AnnotationsUtils.getFileModuleName(bindingContext, descriptor) != null || AnnotationsUtils.isFromNonModuleFile(bindingContext, descriptor) if (isFileModuleOrNonModule) { diff --git a/js/js.libraries/src/builtins/declarations.kt b/js/js.libraries/src/builtins/declarations.kt index c0ac8ab5aea..1fc04120fed 100644 --- a/js/js.libraries/src/builtins/declarations.kt +++ b/js/js.libraries/src/builtins/declarations.kt @@ -16,6 +16,5 @@ package kotlin.js.internal -@native @JsName("Error") -public open class JsError(message: String?) +public external open class JsError(message: String?) diff --git a/js/js.libraries/src/builtins/hacks.kt b/js/js.libraries/src/builtins/hacks.kt index 97d3266a162..814f4fa06df 100644 --- a/js/js.libraries/src/builtins/hacks.kt +++ b/js/js.libraries/src/builtins/hacks.kt @@ -20,8 +20,8 @@ import kotlin.annotation.AnnotationTarget.* @Retention(AnnotationRetention.BINARY) @Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR, PROPERTY_GETTER, PROPERTY_SETTER) -@native internal annotation class JsName(val name: String) +internal external annotation class JsName(val name: String) -@native internal annotation class native +internal external annotation class native -@native internal fun js(code: String): dynamic \ No newline at end of file +internal external fun js(code: String): dynamic \ No newline at end of file diff --git a/js/js.libraries/src/core/annotations.kt b/js/js.libraries/src/core/annotations.kt index b3dc29f57db..2f0b90afc91 100644 --- a/js/js.libraries/src/core/annotations.kt +++ b/js/js.libraries/src/core/annotations.kt @@ -18,37 +18,30 @@ package kotlin.js import kotlin.annotation.AnnotationTarget.* -@native @Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR, VALUE_PARAMETER, PROPERTY_GETTER, PROPERTY_SETTER) @Deprecated("Use `external` modifier instead") -public annotation class native(@Deprecated public val name: String = "") +public external annotation class native(@Deprecated public val name: String = "") -@native @Target(FUNCTION) -@Deprecated -public annotation class nativeGetter +@Deprecated("Use inline extension function with body using dynamic") +public external annotation class nativeGetter -@native @Target(FUNCTION) -@Deprecated -public annotation class nativeSetter +@Deprecated("Use inline extension function with body using dynamic") +public external annotation class nativeSetter -@native @Target(FUNCTION) -@Deprecated -public annotation class nativeInvoke +@Deprecated("Use inline extension function with body using dynamic") +public external annotation class nativeInvoke -@native @Target(CLASS, FUNCTION, PROPERTY) -internal annotation class library(public val name: String = "") +internal external annotation class library(public val name: String = "") -@native @Target(PROPERTY) -public annotation class enumerable() +public external annotation class enumerable() -@native @Target(CLASS) -internal annotation class marker +internal external annotation class marker @Retention(AnnotationRetention.BINARY) @Target(CLASS, FUNCTION, PROPERTY, CONSTRUCTOR, PROPERTY_GETTER, PROPERTY_SETTER) diff --git a/js/js.libraries/src/core/char.kt b/js/js.libraries/src/core/char.kt index a6ee97019a4..91a581ff751 100644 --- a/js/js.libraries/src/core/char.kt +++ b/js/js.libraries/src/core/char.kt @@ -19,9 +19,9 @@ package kotlin.text // actually \s is enough to match all whitespace, but \xA0 added because of different regexp behavior of Rhino used in Selenium tests public fun Char.isWhitespace(): Boolean = toString().matches("[\\s\\xA0]") -@native public fun Char.toLowerCase(): Char = noImpl +public external fun Char.toLowerCase(): Char = noImpl -@native public fun Char.toUpperCase(): Char = noImpl +public external fun Char.toUpperCase(): Char = noImpl /** * Returns `true` if this character is a Unicode high-surrogate code unit (also known as leading-surrogate code unit). diff --git a/js/js.libraries/src/core/concurrent.kt b/js/js.libraries/src/core/concurrent.kt index 5ca28f1d680..27be0b848f4 100644 --- a/js/js.libraries/src/core/concurrent.kt +++ b/js/js.libraries/src/core/concurrent.kt @@ -19,7 +19,7 @@ package kotlin // Note: // Right now we don't want to have neither 'volatile' nor 'synchronized' at runtime, -// so they annotated as 'native' to avoid warnings/errors from some minifiers. +// so they annotated as `external` to avoid warnings/errors from some minifiers. // They was reserved word in ECMAScript 2, but is not since ECMAScript 5. // Additional note: @@ -29,10 +29,10 @@ package kotlin @Target(AnnotationTarget.PROPERTY, AnnotationTarget.FIELD) @Retention(AnnotationRetention.SOURCE) -public annotation class Volatile +public external annotation class Volatile @Target(AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER) @Retention(AnnotationRetention.SOURCE) -public annotation class Synchronized +public external annotation class Synchronized -public inline fun synchronized(lock: Any, crossinline block: () -> R): R = block() +public external inline fun synchronized(lock: Any, crossinline block: () -> R): R = block() diff --git a/js/js.libraries/src/core/core.kt b/js/js.libraries/src/core/core.kt index ca949bf13bd..c93815a9c0f 100644 --- a/js/js.libraries/src/core/core.kt +++ b/js/js.libraries/src/core/core.kt @@ -1,16 +1,13 @@ package kotlin.js -@native -public val noImpl: Nothing +public external val noImpl: Nothing get() = throw Exception() -@native -public fun eval(expr: String): dynamic = noImpl +public external fun eval(expr: String): dynamic = noImpl -@native -public val undefined: Nothing? = noImpl +public external val undefined: Nothing? = noImpl -@native operator fun MutableMap.set(key: K, value: V): V? = noImpl +external operator fun MutableMap.set(key: K, value: V): V? = noImpl @library public fun println() {} @@ -22,8 +19,7 @@ public fun println(s: Any?) {} public fun print(s: Any?) {} //TODO: consistent parseInt -@native -public fun parseInt(s: String, radix: Int = 10): Int = noImpl +public external fun parseInt(s: String, radix: Int = 10): Int = noImpl @library public fun safeParseInt(s: String): Int? = noImpl @@ -31,8 +27,7 @@ public fun safeParseInt(s: String): Int? = noImpl @library public fun safeParseDouble(s: String): Double? = noImpl -@native -public fun js(code: String): dynamic = noImpl +public external fun js(code: String): dynamic = noImpl /** * Function corresponding to JavaScript's `typeof` operator diff --git a/js/js.libraries/src/core/date.kt b/js/js.libraries/src/core/date.kt index c509fcbc930..7ec07354ca1 100644 --- a/js/js.libraries/src/core/date.kt +++ b/js/js.libraries/src/core/date.kt @@ -1,6 +1,5 @@ package kotlin.js -@native -public class Date() { +public external class Date() { public fun getTime(): Int = noImpl } diff --git a/js/js.libraries/src/core/debug.kt b/js/js.libraries/src/core/debug.kt index 409d46a5e85..f1f7a0059b8 100644 --- a/js/js.libraries/src/core/debug.kt +++ b/js/js.libraries/src/core/debug.kt @@ -1,13 +1,12 @@ package kotlin.js // https://developer.mozilla.org/en/DOM/console -@native public interface Console { - @native public fun dir(o: Any): Unit = noImpl - @native public fun error(vararg o: Any?): Unit = noImpl - @native public fun info(vararg o: Any?): Unit = noImpl - @native public fun log(vararg o: Any?): Unit = noImpl - @native public fun warn(vararg o: Any?): Unit = noImpl +external public interface Console { + public fun dir(o: Any): Unit = noImpl + public fun error(vararg o: Any?): Unit = noImpl + public fun info(vararg o: Any?): Unit = noImpl + public fun log(vararg o: Any?): Unit = noImpl + public fun warn(vararg o: Any?): Unit = noImpl } -@native -public val console: Console = noImpl +public external val console: Console = noImpl diff --git a/js/js.libraries/src/core/javautil.kt b/js/js.libraries/src/core/javautil.kt index 658985493ba..ee447842f72 100644 --- a/js/js.libraries/src/core/javautil.kt +++ b/js/js.libraries/src/core/javautil.kt @@ -21,8 +21,7 @@ package java.util // typealias Date = kotlin.js.Date @Deprecated("Use kotlin.js.Date instead", ReplaceWith("kotlin.js.Date")) -@native -public class Date() { +public external class Date() { public fun getTime(): Int = noImpl } diff --git a/js/js.libraries/src/core/json.kt b/js/js.libraries/src/core/json.kt index 6edb39cca19..2d424b58a2d 100644 --- a/js/js.libraries/src/core/json.kt +++ b/js/js.libraries/src/core/json.kt @@ -1,6 +1,6 @@ package kotlin.js -@native public class Json() { +public external class Json() { operator fun get(propertyName: String): Any? = noImpl operator fun set(propertyName: String, value: Any?): Unit = noImpl } @@ -16,8 +16,7 @@ public fun json(vararg pairs: Pair): Json { @library("jsonAddProperties") public fun Json.add(other: Json): Json = noImpl -@native -public interface JsonClass { +public external interface JsonClass { public fun stringify(o: Any): String public fun stringify(o: Any, replacer: (key: String, value: Any?) -> Any?): String public fun stringify(o: Any, replacer: (key: String, value: Any?) -> Any?, space: Int): String @@ -30,5 +29,4 @@ public interface JsonClass { public fun parse(text: String, reviver: ((key: String, value: Any?) -> Any?)): T } -@native -public val JSON: JsonClass = noImpl +public external val JSON: JsonClass = noImpl diff --git a/js/js.libraries/src/core/math.kt b/js/js.libraries/src/core/math.kt index acb60e932e0..f5833fd9563 100644 --- a/js/js.libraries/src/core/math.kt +++ b/js/js.libraries/src/core/math.kt @@ -1,8 +1,7 @@ package kotlin.js //TODO: declare using number -@native -public class MathClass() { +public external class MathClass() { public val PI: Double = noImpl public fun random(): Double = noImpl public fun abs(value: Double): Double = noImpl @@ -26,5 +25,4 @@ public class MathClass() { public fun ceil(value: Number): Int = noImpl } -@native -public val Math: MathClass = MathClass() +public external val Math: MathClass = MathClass() diff --git a/js/js.libraries/src/core/regexp.kt b/js/js.libraries/src/core/regexp.kt index 6596b487873..89285c26271 100644 --- a/js/js.libraries/src/core/regexp.kt +++ b/js/js.libraries/src/core/regexp.kt @@ -17,7 +17,7 @@ package kotlin.text.js -@native public class RegExp(pattern: String, flags: String? = null) { +public external class RegExp(pattern: String, flags: String? = null) { public fun test(str: String): Boolean = noImpl @@ -40,7 +40,7 @@ public fun RegExp.reset() { } // TODO: Inherit from array or introduce asArray() extension -@native public interface RegExpMatch { +public external interface RegExpMatch { public val index: Int public val input: String public val length: Int diff --git a/js/js.libraries/src/core/string.kt b/js/js.libraries/src/core/string.kt index 5ee6443f2a4..631683e7edc 100644 --- a/js/js.libraries/src/core/string.kt +++ b/js/js.libraries/src/core/string.kt @@ -2,21 +2,21 @@ package kotlin.text import kotlin.text.js.RegExp -@native public fun String.toUpperCase(): String = noImpl +public external fun String.toUpperCase(): String = noImpl -@native public fun String.toLowerCase(): String = noImpl +public external fun String.toLowerCase(): String = noImpl -@native("indexOf") -internal fun String.nativeIndexOf(str: String, fromIndex: Int): Int = noImpl +@JsName("indexOf") +internal external fun String.nativeIndexOf(str: String, fromIndex: Int): Int = noImpl -@native("lastIndexOf") -internal fun String.nativeLastIndexOf(str: String, fromIndex: Int): Int = noImpl +@JsName("lastIndexOf") +internal external fun String.nativeLastIndexOf(str: String, fromIndex: Int): Int = noImpl -@native("startsWith") -internal fun String.nativeStartsWith(s: String, position: Int): Boolean = noImpl +@JsName("startsWith") +internal external fun String.nativeStartsWith(s: String, position: Int): Boolean = noImpl -@native("endsWith") -internal fun String.nativeEndsWith(s: String): Boolean = noImpl +@JsName("endsWith") +internal external fun String.nativeEndsWith(s: String): Boolean = noImpl @Deprecated("Use split(Regex) instead.", ReplaceWith("split(regex.toRegex()).toTypedArray()")) @library("splitString") @@ -26,19 +26,18 @@ public fun String.splitWithRegex(regex: String): Array = noImpl @library("splitString") public fun String.splitWithRegex(regex: String, limit: Int): Array = noImpl -@native public fun String.substring(startIndex: Int): String = noImpl +public external fun String.substring(startIndex: Int): String = noImpl -@native public fun String.substring(startIndex: Int, endIndex: Int): String = noImpl +public external fun String.substring(startIndex: Int, endIndex: Int): String = noImpl -@native public fun String.concat(str: String): String = noImpl +public external fun String.concat(str: String): String = noImpl -@native public fun String.match(regex: String): Array = noImpl +public external fun String.match(regex: String): Array = noImpl //native public fun String.trim() : String = noImpl //TODO: String.replace to implement effective trimLeading and trimTrailing -@native("length") -public val CharSequence.size: Int get() = noImpl +public inline val CharSequence.size: Int get() = asDynamic().length -@native("replace") -internal fun String.nativeReplace(pattern: RegExp, replacement: String): String = noImpl +@JsName("replace") +internal external fun String.nativeReplace(pattern: RegExp, replacement: String): String = noImpl diff --git a/js/js.libraries/src/jquery/common.kt b/js/js.libraries/src/jquery/common.kt index ff27b58c9d4..7b07da74a9b 100644 --- a/js/js.libraries/src/jquery/common.kt +++ b/js/js.libraries/src/jquery/common.kt @@ -2,8 +2,7 @@ package jquery import org.w3c.dom.Element -@native -public class JQuery() { +public external class JQuery() { public fun addClass(className: String): JQuery = noImpl; public fun addClass(f: Element.(Int, String) -> String): JQuery = noImpl; @@ -43,8 +42,7 @@ public class JQuery() { public fun `val`(): String? = noImpl } -@native -open public class MouseEvent() { +open public external class MouseEvent() { public val pageX: Double = 0.0; public val pageY: Double = 0.0; public fun preventDefault() { @@ -52,20 +50,19 @@ open public class MouseEvent() { public fun isDefaultPrevented(): Boolean = true; } -@native -public class MouseClickEvent() : MouseEvent() { +public external class MouseClickEvent() : MouseEvent() { public val which: Int = 0; } -@native("$") -public fun jq(selector: String): JQuery = JQuery(); -@native("$") -public fun jq(selector: String, context: Element): JQuery = JQuery(); -@native("$") -public fun jq(callback: () -> Unit): JQuery = JQuery(); -@native("$") -public fun jq(obj: JQuery): JQuery = JQuery(); -@native("$") -public fun jq(el: Element): JQuery = JQuery(); -@native("$") -public fun jq(): JQuery = JQuery(); +@JsName("$") +public external fun jq(selector: String): JQuery = JQuery(); +@JsName("$") +public external fun jq(selector: String, context: Element): JQuery = JQuery(); +@JsName("$") +public external fun jq(callback: () -> Unit): JQuery = JQuery(); +@JsName("$") +public external fun jq(obj: JQuery): JQuery = JQuery(); +@JsName("$") +public external fun jq(el: Element): JQuery = JQuery(); +@JsName("$") +public external fun jq(): JQuery = JQuery(); diff --git a/js/js.libraries/src/jquery/ui.kt b/js/js.libraries/src/jquery/ui.kt index d2f97629180..aa8f8c0c4c5 100644 --- a/js/js.libraries/src/jquery/ui.kt +++ b/js/js.libraries/src/jquery/ui.kt @@ -4,23 +4,22 @@ package jquery.ui //jquery UI import jquery.JQuery -@native -public fun JQuery.buttonset() : JQuery = noImpl; -@native -public fun JQuery.dialog() : JQuery = noImpl; -@native -public fun JQuery.dialog(params : Json) : JQuery = noImpl -@native -public fun JQuery.dialog(mode : String, param : String) : Any? = noImpl -@native -public fun JQuery.dialog(mode : String) : JQuery = noImpl -@native -public fun JQuery.dialog(mode : String, param : String, value : Any?) : JQuery = noImpl -@native -public fun JQuery.button() : JQuery = noImpl; -@native -public fun JQuery.accordion() : JQuery = noImpl -@native -public fun JQuery.draggable(params : Json) : JQuery = noImpl -@native -public fun JQuery.selectable() : JQuery = noImpl +public external fun JQuery.buttonset() : JQuery = noImpl; + +public external fun JQuery.dialog() : JQuery = noImpl; + +public external fun JQuery.dialog(params : Json) : JQuery = noImpl + +public external fun JQuery.dialog(mode : String, param : String) : Any? = noImpl + +public external fun JQuery.dialog(mode : String) : JQuery = noImpl + +public external fun JQuery.dialog(mode : String, param : String, value : Any?) : JQuery = noImpl + +public external fun JQuery.button() : JQuery = noImpl; + +public external fun JQuery.accordion() : JQuery = noImpl + +public external fun JQuery.draggable(params : Json) : JQuery = noImpl + +public external fun JQuery.selectable() : JQuery = noImpl diff --git a/js/js.libraries/src/junit/core.kt b/js/js.libraries/src/junit/core.kt index d9789aed602..1f0b35bc68a 100644 --- a/js/js.libraries/src/junit/core.kt +++ b/js/js.libraries/src/junit/core.kt @@ -1,4 +1,3 @@ package org.junit -@native -public annotation class Test(val name: String = "") +public external annotation class Test(val name: String = "") diff --git a/js/js.libraries/src/qunit/core.kt b/js/js.libraries/src/qunit/core.kt index 4ded076e181..498a4ce1c84 100644 --- a/js/js.libraries/src/qunit/core.kt +++ b/js/js.libraries/src/qunit/core.kt @@ -4,6 +4,5 @@ package QUnit * The [QUnit](http://qunitjs.com/) API */ -@native -public fun ok(actual: Boolean, message: String?): Unit = noImpl +public external fun ok(actual: Boolean, message: String?): Unit = noImpl diff --git a/js/js.libraries/src/reflect/JsClass.kt b/js/js.libraries/src/reflect/JsClass.kt index 7f4fddceccc..f741986472e 100644 --- a/js/js.libraries/src/reflect/JsClass.kt +++ b/js/js.libraries/src/reflect/JsClass.kt @@ -20,14 +20,12 @@ import getKClass import kotlin.reflect.KClass import kotlin.reflect.js.internal.KClassImpl -@native -interface JsClass { +external interface JsClass { val name: String } -@native @Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("T::class.js")) -fun jsClass(): JsClass = noImpl +external fun jsClass(): JsClass = noImpl @Deprecated("Use class literal and extension property `js` instead.", replaceWith = ReplaceWith("this::class.js")) val T.jsClass: JsClass diff --git a/js/js.libraries/src/stdlib/browser.kt b/js/js.libraries/src/stdlib/browser.kt index 63dfecbd233..35873770e22 100644 --- a/js/js.libraries/src/stdlib/browser.kt +++ b/js/js.libraries/src/stdlib/browser.kt @@ -2,15 +2,11 @@ package kotlin.browser import org.w3c.dom.* -@native -public val window: Window = noImpl +public external val window: Window = noImpl -@native -public val document: Document = noImpl +public external val document: Document = noImpl -@native -public val localStorage: Storage = noImpl +public external val localStorage: Storage = noImpl -@native -public val sessionStorage: Storage = noImpl +public external val sessionStorage: Storage = noImpl diff --git a/js/js.libraries/src/stdlib/domCode.kt b/js/js.libraries/src/stdlib/domCode.kt index e096b6bab62..579a4c9ad0d 100644 --- a/js/js.libraries/src/stdlib/domCode.kt +++ b/js/js.libraries/src/stdlib/domCode.kt @@ -7,7 +7,7 @@ import org.w3c.dom.Node public fun createDocument(): Document = Document() @Deprecated("use member property outerHTML of Element class instead") -@native public val Node.outerHTML: String get() = noImpl +public external val Node.outerHTML: String get() = noImpl /** Converts the node to an XML String */ @Deprecated("use outerHTML directly") diff --git a/js/js.translator/testData/box/closure/closureThisByUsingMethodFromParentClass.kt b/js/js.translator/testData/box/closure/closureThisByUsingMethodFromParentClass.kt index 9d70f90dceb..7d2cb3583b6 100644 --- a/js/js.translator/testData/box/closure/closureThisByUsingMethodFromParentClass.kt +++ b/js/js.translator/testData/box/closure/closureThisByUsingMethodFromParentClass.kt @@ -2,15 +2,14 @@ package foo // HACKS -@native -const val PATH_TO_F_CREATOR = "B\$far\$lambda" -@native -const val PATH_TO_G_CREATOR = "B\$gar\$lambda" +external const val PATH_TO_F_CREATOR = "B\$far\$lambda" +external const val PATH_TO_G_CREATOR = "B\$gar\$lambda" -@native("$PATH_TO_F_CREATOR") -val F_CREATOR: Any = noImpl -@native("$PATH_TO_G_CREATOR") -val G_CREATOR: Any = noImpl +@JsName("$PATH_TO_F_CREATOR") +external val F_CREATOR: Any = noImpl + +@JsName("$PATH_TO_G_CREATOR") +external val G_CREATOR: Any = noImpl // Test @@ -46,10 +45,8 @@ fun box(): String { // Helpers -@native -fun String.replace(regexp: RegExp, replacement: String): String = noImpl +external fun String.replace(regexp: RegExp, replacement: String): String = noImpl fun String.replaceAll(regexp: String, replacement: String): String = replace(RegExp(regexp, "g"), replacement) -@native -class RegExp(regexp: String, flags: String) +external class RegExp(regexp: String, flags: String) diff --git a/js/js.translator/testData/box/crossModuleRef/constructor.kt b/js/js.translator/testData/box/crossModuleRef/constructor.kt index 2129bddbbd3..f9b66ef01ca 100644 --- a/js/js.translator/testData/box/crossModuleRef/constructor.kt +++ b/js/js.translator/testData/box/crossModuleRef/constructor.kt @@ -6,7 +6,7 @@ class A(val x: Int) { constructor(a: Int, b: Int) : this(a + b) } -@native class B(x: Int) { +external class B(x: Int) { constructor(a: Int, b: Int) : this(0) {} val x: Int diff --git a/js/js.translator/testData/box/crossModuleRef/topLevelFunction.kt b/js/js.translator/testData/box/crossModuleRef/topLevelFunction.kt index c1886a8c71d..5fb2008b2a6 100644 --- a/js/js.translator/testData/box/crossModuleRef/topLevelFunction.kt +++ b/js/js.translator/testData/box/crossModuleRef/topLevelFunction.kt @@ -5,7 +5,7 @@ package lib fun foo() = 23 -@native fun bar(): Int = noImpl +external fun bar(): Int = noImpl inline fun baz() = 99 diff --git a/js/js.translator/testData/box/crossModuleRef/topLevelProperty.kt b/js/js.translator/testData/box/crossModuleRef/topLevelProperty.kt index 837464d2dc6..c714f328922 100644 --- a/js/js.translator/testData/box/crossModuleRef/topLevelProperty.kt +++ b/js/js.translator/testData/box/crossModuleRef/topLevelProperty.kt @@ -7,9 +7,9 @@ val foo = 23 val boo: Int get() = 42 -@native val bar: Int = noImpl +external val bar: Int = noImpl -@native val far: Int +external val far: Int get() = noImpl // TODO: annotations like this are not serialized properly. Uncomment after KT-14529 gets fixed @@ -20,7 +20,8 @@ val fuzz: Int inline fun fetchFoo() = foo -@JsName("fee") val tee = 2525 +@JsName("fee") +val tee = 2525 // FILE: lib.js diff --git a/js/js.translator/testData/box/dynamic/_common.kt b/js/js.translator/testData/box/dynamic/_common.kt index 637584397aa..1d70ea70684 100644 --- a/js/js.translator/testData/box/dynamic/_common.kt +++ b/js/js.translator/testData/box/dynamic/_common.kt @@ -1,13 +1,10 @@ package foo -@native -var bar: dynamic = noImpl +external var bar: dynamic = noImpl -@native -var arr: dynamic = noImpl +external var arr: dynamic = noImpl -@native -var baz: dynamic = noImpl +external var baz: dynamic = noImpl object t { override fun toString() = "object t {}" diff --git a/js/js.translator/testData/box/dynamic/is.kt b/js/js.translator/testData/box/dynamic/is.kt index 7fa1bde0949..0b431b48048 100644 --- a/js/js.translator/testData/box/dynamic/is.kt +++ b/js/js.translator/testData/box/dynamic/is.kt @@ -3,8 +3,7 @@ package foo class A -@native -class B +external class B fun box(): String { val a: dynamic = A() diff --git a/js/js.translator/testData/box/enum/nativeEnum.kt b/js/js.translator/testData/box/enum/nativeEnum.kt index f0bf0408bab..2b6ee7e4750 100644 --- a/js/js.translator/testData/box/enum/nativeEnum.kt +++ b/js/js.translator/testData/box/enum/nativeEnum.kt @@ -1,7 +1,6 @@ package foo -@native -enum class JsEnum { +external enum class JsEnum { Foo, Bar, Baz diff --git a/js/js.translator/testData/box/expression/function/_common.kt b/js/js.translator/testData/box/expression/function/_common.kt index f2742c38b45..73d18c9a97f 100644 --- a/js/js.translator/testData/box/expression/function/_common.kt +++ b/js/js.translator/testData/box/expression/function/_common.kt @@ -1,14 +1,11 @@ package foo -@native -fun String.replace(regexp: RegExp, replacement: String): String = noImpl +external fun String.replace(regexp: RegExp, replacement: String): String = noImpl fun String.replaceAll(regexp: String, replacement: String): String = replace(RegExp(regexp, "g"), replacement) -@native -fun String.search(regexp: RegExp): Int = noImpl +external fun String.search(regexp: RegExp): Int = noImpl -@native -class RegExp(regexp: String, flags: String = "") { +external class RegExp(regexp: String, flags: String = "") { fun exec(s: String): Array? = noImpl } \ No newline at end of file diff --git a/js/js.translator/testData/box/expression/function/mangling.kt b/js/js.translator/testData/box/expression/function/mangling.kt index aeba9888841..aecf906bc1e 100644 --- a/js/js.translator/testData/box/expression/function/mangling.kt +++ b/js/js.translator/testData/box/expression/function/mangling.kt @@ -5,35 +5,35 @@ private var log = "" public fun public_baz(i: Int) { log = "public_baz" } -@native public fun public_baz(a: String) { +external public fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } -internal @native fun internal_baz(a: String) { +internal external fun internal_baz(a: String) { } private fun getCurrentPackage(): dynamic = js("_").foo private fun private_baz(i: Int) { } -@native private fun private_baz(a: String) { +private external fun private_baz(a: String) { } public class PublicClass { public fun public_baz(i: Int) { } - @native public fun public_baz(a: String) { + public external fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } - @native internal fun internal_baz(a: String) { + internal external fun internal_baz(a: String) { } private fun private_baz(i: Int) { } - @native private fun private_baz(a: String) { + private external fun private_baz(a: String) { } val call_private_baz = { private_baz(0) } @@ -43,17 +43,17 @@ public class PublicClass { internal class InternalClass { public fun public_baz(i: Int) { } - @native public fun public_baz(a: String) { + public external fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } - @native internal fun internal_baz(a: String) { + internal external fun internal_baz(a: String) { } private fun private_baz(i: Int) { } - @native private fun private_baz(a: String) { + private external fun private_baz(a: String) { } val call_private_baz = { private_baz(0) } @@ -63,17 +63,17 @@ internal class InternalClass { private class PrivateClass { public fun public_baz(i: Int) { } - @native public fun public_baz(a: String) { + public external fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } - @native internal fun internal_baz(a: String) { + internal external fun internal_baz(a: String) { } private fun private_baz(i: Int) { } - @native private fun private_baz(a: String) { + private external fun private_baz(a: String) { } val call_private_baz = { private_baz(0) } @@ -83,17 +83,17 @@ private class PrivateClass { open public class OpenPublicClass { public fun public_baz(i: Int) { } - @native public fun public_baz(a: String) { + public external fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } - @native internal fun internal_baz(a: String) { + internal external fun internal_baz(a: String) { } private fun private_baz(i: Int) { } - @native private fun private_baz(a: String) { + private external fun private_baz(a: String) { } val call_private_baz = { private_baz(0) } @@ -103,17 +103,17 @@ open public class OpenPublicClass { internal open class OpenInternalClass { public fun public_baz(i: Int) { } - @native public fun public_baz(a: String) { + public external fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } - @native internal fun internal_baz(a: String) { + internal external fun internal_baz(a: String) { } private fun private_baz(i: Int) { } - @native private fun private_baz(a: String) { + private external fun private_baz(a: String) { } val call_private_baz = { private_baz(0) } @@ -123,17 +123,17 @@ internal open class OpenInternalClass { open private class OpenPrivateClass { public fun public_baz(i: Int) { } - @native public fun public_baz(a: String) { + public external fun public_baz(a: String) { } internal fun internal_baz(i: Int) { } - @native internal fun internal_baz(a: String) { + internal external fun internal_baz(a: String) { } private fun private_baz(i: Int) { } - @native private fun private_baz(a: String) { + private external fun private_baz(a: String) { } val call_private_baz = { private_baz(0) } diff --git a/js/js.translator/testData/box/expression/misc/elvisWithThrow.kt b/js/js.translator/testData/box/expression/misc/elvisWithThrow.kt index 88535165ee3..3022cb691df 100644 --- a/js/js.translator/testData/box/expression/misc/elvisWithThrow.kt +++ b/js/js.translator/testData/box/expression/misc/elvisWithThrow.kt @@ -6,9 +6,6 @@ fun bar(): Any? { return null } -@native -val Exception.message: String get() = noImpl - fun box(): String { val a: String? = null try { diff --git a/js/js.translator/testData/box/expression/when/whenEqualsPattern.kt b/js/js.translator/testData/box/expression/when/whenEqualsPattern.kt index 0fae7552fc5..8817f81246c 100644 --- a/js/js.translator/testData/box/expression/when/whenEqualsPattern.kt +++ b/js/js.translator/testData/box/expression/when/whenEqualsPattern.kt @@ -2,7 +2,7 @@ package foo data class A(val bar: Int) -@native class B +external class B fun makeB(): B = js("new Object();") diff --git a/js/js.translator/testData/box/inheritance/fromNativeInterface.kt b/js/js.translator/testData/box/inheritance/fromNativeInterface.kt index 09bf7a7a7d2..bdb90cd135c 100644 --- a/js/js.translator/testData/box/inheritance/fromNativeInterface.kt +++ b/js/js.translator/testData/box/inheritance/fromNativeInterface.kt @@ -1,7 +1,6 @@ package foo -@native -interface A { +external interface A { val bar: Int get() = noImpl fun foo(): String = noImpl } diff --git a/js/js.translator/testData/box/inheritance/fromNestedNativeClass.kt b/js/js.translator/testData/box/inheritance/fromNestedNativeClass.kt index 58dd00654f4..bab4ec03efe 100644 --- a/js/js.translator/testData/box/inheritance/fromNestedNativeClass.kt +++ b/js/js.translator/testData/box/inheritance/fromNestedNativeClass.kt @@ -2,8 +2,7 @@ package foo -@native -class A { +external class A { open class B { fun foo(): String } diff --git a/js/js.translator/testData/box/inheritance/nativeNativeKotlin.kt b/js/js.translator/testData/box/inheritance/nativeNativeKotlin.kt index 4932c91b1e3..25a78feae2d 100644 --- a/js/js.translator/testData/box/inheritance/nativeNativeKotlin.kt +++ b/js/js.translator/testData/box/inheritance/nativeNativeKotlin.kt @@ -2,13 +2,11 @@ package foo -@native -open class A { +external open class A { fun foo(): String } -@native -open class B : A() { +external open class B : A() { fun bar(): String } diff --git a/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt b/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt index 0eb1e20b41f..8c31cb29d8b 100644 --- a/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt +++ b/js/js.translator/testData/box/inheritance/overrideAnyMethods.kt @@ -1,7 +1,6 @@ package foo -@native -fun String.charCodeAt(i: Int): Int = noImpl +external fun String.charCodeAt(i: Int): Int = noImpl // Because String in JS doesn't have hashCode method fun String.myHashCode(): Int { diff --git a/js/js.translator/testData/box/inline/arrayLiteralAliasing.kt b/js/js.translator/testData/box/inline/arrayLiteralAliasing.kt index e657cb17e0f..1d5f2c37db6 100644 --- a/js/js.translator/testData/box/inline/arrayLiteralAliasing.kt +++ b/js/js.translator/testData/box/inline/arrayLiteralAliasing.kt @@ -28,9 +28,9 @@ package foo // CHECK_NOT_CALLED: moveTo -@native fun Array.push(element: Int): Unit = noImpl +external fun Array.push(element: Int): Unit = noImpl -@native fun Array.splice(index: Int, howMany: Int): Unit = noImpl +external fun Array.splice(index: Int, howMany: Int): Unit = noImpl data class PairArray(val fst: Array, val snd: Array) diff --git a/js/js.translator/testData/box/inlineMultiFile/_common.kt b/js/js.translator/testData/box/inlineMultiFile/_common.kt index a4e4b036a49..33160377bad 100644 --- a/js/js.translator/testData/box/inlineMultiFile/_common.kt +++ b/js/js.translator/testData/box/inlineMultiFile/_common.kt @@ -1 +1 @@ -@native public fun parseInt(s: String, radix: Int = 10): Int = noImpl \ No newline at end of file +external public fun parseInt(s: String, radix: Int = 10): Int = noImpl \ No newline at end of file diff --git a/js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt b/js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt index 134aafa4310..78c74fbfda3 100644 --- a/js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt +++ b/js/js.translator/testData/box/inlineMultiFile/tryCatch2.kt @@ -136,7 +136,7 @@ inline fun T.performWithFail2(job: (T)-> R, failJob: (e: RuntimeException } } -@native object Number { +external object Number { fun parseInt(str: String): Int = noImpl } diff --git a/js/js.translator/testData/box/jsCode/literal.kt b/js/js.translator/testData/box/jsCode/literal.kt index 6bd1934a721..4fcebf32198 100644 --- a/js/js.translator/testData/box/jsCode/literal.kt +++ b/js/js.translator/testData/box/jsCode/literal.kt @@ -1,6 +1,6 @@ package foo -@native interface HasName { +external interface HasName { val name: String } diff --git a/js/js.translator/testData/box/jsCode/object.kt b/js/js.translator/testData/box/jsCode/object.kt index 7bcc47fb147..e8deff864fd 100644 --- a/js/js.translator/testData/box/jsCode/object.kt +++ b/js/js.translator/testData/box/jsCode/object.kt @@ -1,6 +1,6 @@ package foo -@native interface Summizer { +external interface Summizer { fun sum(a: Int, b: Int): Int } diff --git a/js/js.translator/testData/box/jsCode/objectScopes.kt b/js/js.translator/testData/box/jsCode/objectScopes.kt index 4d19376a32e..6667e000e4d 100644 --- a/js/js.translator/testData/box/jsCode/objectScopes.kt +++ b/js/js.translator/testData/box/jsCode/objectScopes.kt @@ -1,6 +1,6 @@ package foo -@native interface Summizer { +external interface Summizer { fun sum(a: Int, b: Int): Int } diff --git a/js/js.translator/testData/box/jsModule/externalClass.kt b/js/js.translator/testData/box/jsModule/externalClass.kt index 3b733182ff3..27ff4c5fcba 100644 --- a/js/js.translator/testData/box/jsModule/externalClass.kt +++ b/js/js.translator/testData/box/jsModule/externalClass.kt @@ -2,8 +2,8 @@ package foo @JsModule("lib") -@native class A(@native val x: Int = noImpl) { - @native fun foo(y: Int): Int = noImpl +external class A(val x: Int = noImpl) { + fun foo(y: Int): Int = noImpl } fun box(): String { diff --git a/js/js.translator/testData/box/jsModule/externalFunction.kt b/js/js.translator/testData/box/jsModule/externalFunction.kt index a2cb32fabf4..a1740e35b85 100644 --- a/js/js.translator/testData/box/jsModule/externalFunction.kt +++ b/js/js.translator/testData/box/jsModule/externalFunction.kt @@ -2,7 +2,7 @@ package foo @JsModule("lib") -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl fun box(): String { assertEquals(65, foo(42)) diff --git a/js/js.translator/testData/box/jsModule/externalFunctionPlain.kt b/js/js.translator/testData/box/jsModule/externalFunctionPlain.kt index 8d9761df13b..3a255a84ce1 100644 --- a/js/js.translator/testData/box/jsModule/externalFunctionPlain.kt +++ b/js/js.translator/testData/box/jsModule/externalFunctionPlain.kt @@ -2,7 +2,7 @@ package foo @JsModule("lib") @JsNonModule -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl fun box(): String { assertEquals(65, foo(42)) diff --git a/js/js.translator/testData/box/jsModule/externalFunctionUmd.kt b/js/js.translator/testData/box/jsModule/externalFunctionUmd.kt index 6be4e6e87b1..21a3ab317a5 100644 --- a/js/js.translator/testData/box/jsModule/externalFunctionUmd.kt +++ b/js/js.translator/testData/box/jsModule/externalFunctionUmd.kt @@ -3,7 +3,7 @@ package foo @JsModule("lib-foo") @JsNonModule -@native fun foo(x: Int): Int = noImpl +external fun foo(x: Int): Int = noImpl fun box(): String { assertEquals(65, foo(42)) diff --git a/js/js.translator/testData/box/jsModule/externalFunctionUmdFallback.kt b/js/js.translator/testData/box/jsModule/externalFunctionUmdFallback.kt index 40ca3978d0c..32a81ccd6f5 100644 --- a/js/js.translator/testData/box/jsModule/externalFunctionUmdFallback.kt +++ b/js/js.translator/testData/box/jsModule/externalFunctionUmdFallback.kt @@ -4,12 +4,12 @@ package foo @JsModule("libfoo") @JsNonModule -@native fun foo(x: Int): Int = noImpl +external fun foo(x: Int): Int = noImpl @JsModule("libbar") @JsNonModule @JsName("baz") -@native fun bar(x: Int): Int = noImpl +external fun bar(x: Int): Int = noImpl fun box(): String { assertEquals(65, foo(42)) diff --git a/js/js.translator/testData/box/jsModule/externalObject.kt b/js/js.translator/testData/box/jsModule/externalObject.kt index 2a799bda81b..946673dc685 100644 --- a/js/js.translator/testData/box/jsModule/externalObject.kt +++ b/js/js.translator/testData/box/jsModule/externalObject.kt @@ -2,10 +2,10 @@ package foo @JsModule("lib") -@native object A { - @native val x: Int = noImpl +external object A { + val x: Int = noImpl - @native fun foo(y: Int): Int = noImpl + fun foo(y: Int): Int = noImpl } fun box(): String { diff --git a/js/js.translator/testData/box/jsModule/externalPackage.kt b/js/js.translator/testData/box/jsModule/externalPackage.kt index 559dfabaf67..7d18973b614 100644 --- a/js/js.translator/testData/box/jsModule/externalPackage.kt +++ b/js/js.translator/testData/box/jsModule/externalPackage.kt @@ -2,21 +2,21 @@ @file:JsModule("lib") package foo -@native class A(@native val x: Int = noImpl) { - @native fun foo(y: Int): Int = noImpl +external class A(@native val x: Int = noImpl) { + fun foo(y: Int): Int = noImpl } -@native object B { - @native val x: Int = noImpl +external object B { + val x: Int = noImpl - @native fun foo(y: Int): Int = noImpl + fun foo(y: Int): Int = noImpl } -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl -@native val bar: Int = noImpl +external val bar: Int = noImpl -@native var mbar: Int = noImpl +external var mbar: Int = noImpl fun box(): String { val a = A(23) diff --git a/js/js.translator/testData/box/jsModule/externalPackageInDifferentFile.kt b/js/js.translator/testData/box/jsModule/externalPackageInDifferentFile.kt index 728e5f12479..dcc8a978d70 100644 --- a/js/js.translator/testData/box/jsModule/externalPackageInDifferentFile.kt +++ b/js/js.translator/testData/box/jsModule/externalPackageInDifferentFile.kt @@ -3,26 +3,26 @@ @file:JsModule("lib") package foo -@native class A(@native val x: Int = noImpl) { - @native fun foo(y: Int): Int = noImpl +external class A(@native val x: Int = noImpl) { + fun foo(y: Int): Int = noImpl } -@native object B { - @native val x: Int = noImpl +external object B { + val x: Int = noImpl - @native fun foo(y: Int): Int = noImpl + fun foo(y: Int): Int = noImpl } -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl -@native val bar: Int = noImpl +external val bar: Int = noImpl -@native var mbar: Int = noImpl +external var mbar: Int = noImpl // FILE: lib2.kt package foo -@native object C { +external object C { fun f(): Int = noImpl } diff --git a/js/js.translator/testData/box/jsModule/externalPackagePlain.kt b/js/js.translator/testData/box/jsModule/externalPackagePlain.kt index 827a5ae2a78..a4b9bf162ed 100644 --- a/js/js.translator/testData/box/jsModule/externalPackagePlain.kt +++ b/js/js.translator/testData/box/jsModule/externalPackagePlain.kt @@ -2,21 +2,21 @@ @file:JsNonModule package foo -@native class A(@native val x: Int = noImpl) { - @native fun foo(y: Int): Int = noImpl +external class A(val x: Int = noImpl) { + fun foo(y: Int): Int = noImpl } -@native object B { - @native val x: Int = noImpl +external object B { + val x: Int = noImpl - @native fun foo(y: Int): Int = noImpl + fun foo(y: Int): Int = noImpl } -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl -@native val bar: Int = noImpl +external val bar: Int = noImpl -@native var mbar: Int = noImpl +external var mbar: Int = noImpl fun box(): String { val a = A(23) diff --git a/js/js.translator/testData/box/jsModule/externalPackageUmdFallback.kt b/js/js.translator/testData/box/jsModule/externalPackageUmdFallback.kt index 9e96a0299c4..289ec93a455 100644 --- a/js/js.translator/testData/box/jsModule/externalPackageUmdFallback.kt +++ b/js/js.translator/testData/box/jsModule/externalPackageUmdFallback.kt @@ -4,21 +4,21 @@ @file:JsNonModule package foo -@native class A(@native val x: Int = noImpl) { - @native fun foo(y: Int): Int = noImpl +external class A(val x: Int = noImpl) { + fun foo(y: Int): Int = noImpl } -@native object B { - @native val x: Int = noImpl +external object B { + val x: Int = noImpl - @native fun foo(y: Int): Int = noImpl + fun foo(y: Int): Int = noImpl } -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl -@native val bar: Int = noImpl +external val bar: Int = noImpl -@native var mbar: Int = noImpl +external var mbar: Int = noImpl fun box(): String { val a = A(23) diff --git a/js/js.translator/testData/box/jsModule/externalProperty.kt b/js/js.translator/testData/box/jsModule/externalProperty.kt index 7118eb09074..7e91f3dca9d 100644 --- a/js/js.translator/testData/box/jsModule/externalProperty.kt +++ b/js/js.translator/testData/box/jsModule/externalProperty.kt @@ -2,7 +2,7 @@ package foo @JsModule("lib") -@native val foo: Int = noImpl +external val foo: Int = noImpl fun box(): String { assertEquals(23, foo) diff --git a/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClass.kt b/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClass.kt index 3c9e9811709..ec183a98c6f 100644 --- a/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClass.kt +++ b/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClass.kt @@ -2,9 +2,8 @@ package foo -@native @JsName("A") -open class B(val foo: String) +external open class B(val foo: String) class C(s: String) : B(s) diff --git a/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClassMultimodule.kt b/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClassMultimodule.kt index 277c086e680..06217899224 100644 --- a/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClassMultimodule.kt +++ b/js/js.translator/testData/box/jsName/inheritFromRenamedNativeClassMultimodule.kt @@ -3,9 +3,8 @@ package foo -@native @JsName("A") -open class B(val foo: String) +external open class B(val foo: String) // MODULE: main(module1) // FILE: main.kt diff --git a/js/js.translator/testData/box/jsName/jsName.kt b/js/js.translator/testData/box/jsName/jsName.kt index b3a0b3c9d83..c414dcc3db0 100644 --- a/js/js.translator/testData/box/jsName/jsName.kt +++ b/js/js.translator/testData/box/jsName/jsName.kt @@ -1,22 +1,30 @@ package foo -@JsName("bar") @native fun foo(): Int = noImpl +@JsName("bar") +external fun foo(): Int = noImpl -@JsName("baz") @native val prop: Int get() = noImpl +@JsName("baz") +external val prop: Int get() = noImpl -@JsName("B") @native class A { - @JsName("g") fun f(): Int = noImpl +@JsName("B") +external class A { + @JsName("g") + fun f(): Int = noImpl - @JsName("q") val p: Int get() = noImpl + @JsName("q") + val p: Int get() = noImpl companion object { - @JsName("g") fun f(): Int = noImpl + @JsName("g") + fun f(): Int = noImpl - @JsName("q") val p: Int get() = noImpl + @JsName("q") + val p: Int get() = noImpl } } -@JsName("P") @native object O { +@JsName("P") +external object O { fun f(): Int = noImpl } diff --git a/js/js.translator/testData/box/jsName/jsNamePropertyAccessors.kt b/js/js.translator/testData/box/jsName/jsNamePropertyAccessors.kt index 413a9358e6c..c44cb76628e 100644 --- a/js/js.translator/testData/box/jsName/jsNamePropertyAccessors.kt +++ b/js/js.translator/testData/box/jsName/jsNamePropertyAccessors.kt @@ -1,6 +1,6 @@ package foo -@native class A { +external class A { val xx: Int @JsName("getX") get @@ -9,7 +9,7 @@ package foo @JsName("setY") set } -@native var zz: Int +external var zz: Int @JsName("getZ") get @JsName("setZ") set diff --git a/js/js.translator/testData/box/multiModuleWrappers/amd/jsModuleOnPackage.kt b/js/js.translator/testData/box/multiModuleWrappers/amd/jsModuleOnPackage.kt index 074e80bb2b5..c7531fac376 100644 --- a/js/js.translator/testData/box/multiModuleWrappers/amd/jsModuleOnPackage.kt +++ b/js/js.translator/testData/box/multiModuleWrappers/amd/jsModuleOnPackage.kt @@ -4,21 +4,21 @@ @file:JsModule("native-lib") package foo -@native class A(@native val x: Int = noImpl) { - @native fun foo(y: Int): Int = noImpl +external class A(val x: Int = noImpl) { + fun foo(y: Int): Int = noImpl } -@native object B { - @native val x: Int = noImpl +external object B { + val x: Int = noImpl - @native fun foo(y: Int): Int = noImpl + fun foo(y: Int): Int = noImpl } -@native fun foo(y: Int): Int = noImpl +external fun foo(y: Int): Int = noImpl -@native val bar: Int = noImpl +external val bar: Int = noImpl -@native var mbar: Int = noImpl +external var mbar: Int = noImpl // MODULE: main(lib) // FILE: main.kt diff --git a/js/js.translator/testData/box/nameClashes/propertyAndNativeMethod.kt b/js/js.translator/testData/box/nameClashes/propertyAndNativeMethod.kt index eda00491e6b..17447f00b78 100644 --- a/js/js.translator/testData/box/nameClashes/propertyAndNativeMethod.kt +++ b/js/js.translator/testData/box/nameClashes/propertyAndNativeMethod.kt @@ -2,7 +2,7 @@ // FILE: lib.kt package lib -@native fun bar() +external fun bar() val bar = 32 diff --git a/js/js.translator/testData/box/native/class.kt b/js/js.translator/testData/box/native/class.kt index 8494d6a3feb..d6aaaacae26 100644 --- a/js/js.translator/testData/box/native/class.kt +++ b/js/js.translator/testData/box/native/class.kt @@ -1,7 +1,6 @@ package foo -@native -class A(b: Int) { +external class A(b: Int) { fun g(): Int = noImpl fun m(): Int = noImpl } diff --git a/js/js.translator/testData/box/native/classObject.kt b/js/js.translator/testData/box/native/classObject.kt index 7de81399b07..ad8f530feaa 100644 --- a/js/js.translator/testData/box/native/classObject.kt +++ b/js/js.translator/testData/box/native/classObject.kt @@ -1,9 +1,7 @@ package foo -@native -class A(val c: Int) { - @native - companion object { +external class A(val c: Int) { + external companion object { val g: Int = noImpl val c: String = noImpl } diff --git a/js/js.translator/testData/box/native/inheritanceFromNativeClass.kt b/js/js.translator/testData/box/native/inheritanceFromNativeClass.kt index 0084e1c7395..41a8debd7bc 100644 --- a/js/js.translator/testData/box/native/inheritanceFromNativeClass.kt +++ b/js/js.translator/testData/box/native/inheritanceFromNativeClass.kt @@ -1,13 +1,12 @@ package foo -@native -internal open class A(val a: Int) { +internal external open class A(val a: Int) { fun g(): Int = noImpl fun m(): Int = noImpl public open fun foo(i: Int): String = noImpl public fun boo(i: Int): String = noImpl - @native("bar") + @JsName("bar") open fun baz(i: Int): String = noImpl } diff --git a/js/js.translator/testData/box/native/inheritanceFromNativeTrait.kt b/js/js.translator/testData/box/native/inheritanceFromNativeTrait.kt index c0757e30f7a..8ab2d0e32dd 100644 --- a/js/js.translator/testData/box/native/inheritanceFromNativeTrait.kt +++ b/js/js.translator/testData/box/native/inheritanceFromNativeTrait.kt @@ -1,11 +1,10 @@ package foo -@native -interface NativeTrait { +external interface NativeTrait { val foo: String fun bar(a: Int): Any - @native("boo") + @JsName("boo") fun baz(): String } diff --git a/js/js.translator/testData/box/native/inheritanceInNativeClass.kt b/js/js.translator/testData/box/native/inheritanceInNativeClass.kt index 115f104cca6..80e8d91c1ae 100644 --- a/js/js.translator/testData/box/native/inheritanceInNativeClass.kt +++ b/js/js.translator/testData/box/native/inheritanceInNativeClass.kt @@ -12,9 +12,9 @@ open class B { open fun bar(n: Int) = 142 } -@native fun createA(): A +external fun createA(): A -@native fun createB(): B +external fun createB(): B fun box(): String { val a = createA() diff --git a/js/js.translator/testData/box/native/kt1519.kt b/js/js.translator/testData/box/native/kt1519.kt index 128740fb5d6..efaa96b93da 100644 --- a/js/js.translator/testData/box/native/kt1519.kt +++ b/js/js.translator/testData/box/native/kt1519.kt @@ -1,13 +1,11 @@ package foo -@native -class Wow() { +external class Wow() { val x: Int = noImpl val y: Int = noImpl } -@native -fun Wow.sum(): Int = noImpl +external fun Wow.sum(): Int = noImpl fun Wow.dblSum(): Int { return 2 * sum() diff --git a/js/js.translator/testData/box/native/kt2209.kt b/js/js.translator/testData/box/native/kt2209.kt index 6a014c78747..9de7e081c1d 100644 --- a/js/js.translator/testData/box/native/kt2209.kt +++ b/js/js.translator/testData/box/native/kt2209.kt @@ -1,22 +1,18 @@ package foo -@native -interface Chrome { +external interface Chrome { val extension: Extension } -@native -interface Extension { +external interface Extension { val lastError: LastError? } -@native -interface LastError { +external interface LastError { val message: String } -@native -val chrome: Chrome = noImpl +external val chrome: Chrome = noImpl fun box(): String { val lastError = chrome.extension.lastError?.message diff --git a/js/js.translator/testData/box/native/kt2323.kt b/js/js.translator/testData/box/native/kt2323.kt index f69179130d8..811697cacda 100644 --- a/js/js.translator/testData/box/native/kt2323.kt +++ b/js/js.translator/testData/box/native/kt2323.kt @@ -1,10 +1,9 @@ package foo -@native -val classes: Map = noImpl -@native -val classesMutable: HashMap = noImpl +external val classes: Map = noImpl + +external val classesMutable: HashMap = noImpl fun box(): String { classesMutable.set("why", "?") diff --git a/js/js.translator/testData/box/native/nativeExtensionLikeMember.kt b/js/js.translator/testData/box/native/nativeExtensionLikeMember.kt index 65025902607..88db35ac9ae 100644 --- a/js/js.translator/testData/box/native/nativeExtensionLikeMember.kt +++ b/js/js.translator/testData/box/native/nativeExtensionLikeMember.kt @@ -1,7 +1,6 @@ package foo -@native -open class A(val value: String) { +external open class A(val value: String) { } class B : A("B") { @@ -9,9 +8,9 @@ class B : A("B") { var prop: String = "B prop" } -@native fun A.bar(): String = noImpl +external fun A.bar(): String = noImpl -@native var A.prop: String +external var A.prop: String get() = noImpl set(value) = noImpl diff --git a/js/js.translator/testData/box/native/nativeGetterAndNativeSetter.kt b/js/js.translator/testData/box/native/nativeGetterAndNativeSetter.kt index 69f7fec6fdb..2c13805174e 100644 --- a/js/js.translator/testData/box/native/nativeGetterAndNativeSetter.kt +++ b/js/js.translator/testData/box/native/nativeGetterAndNativeSetter.kt @@ -1,7 +1,7 @@ package foo -@native("Object") -class JsObject { +@JsName("Object") +external class JsObject { @nativeGetter operator fun get(a: String): Any? = noImpl @@ -30,8 +30,7 @@ fun JsObject.put(a: String, v: Any?): Unit = noImpl object t{} -@native -fun getTestObject(): JsObject = noImpl +external fun getTestObject(): JsObject = noImpl fun test(obj: JsObject, key: String, oldValue: Any?, newValue: Any) { assertEquals(oldValue, obj[key]) diff --git a/js/js.translator/testData/box/native/nativeInvoke.kt b/js/js.translator/testData/box/native/nativeInvoke.kt index 1943cb076f2..137edf93dfa 100644 --- a/js/js.translator/testData/box/native/nativeInvoke.kt +++ b/js/js.translator/testData/box/native/nativeInvoke.kt @@ -1,7 +1,6 @@ package foo -@native -class Function(vararg argsAndCode: String) { +external class Function(vararg argsAndCode: String) { @nativeInvoke operator fun invoke(a: Any?): Any? = noImpl diff --git a/js/js.translator/testData/box/native/nestedElements.kt b/js/js.translator/testData/box/native/nestedElements.kt index a07b9f7a753..912ec91433f 100644 --- a/js/js.translator/testData/box/native/nestedElements.kt +++ b/js/js.translator/testData/box/native/nestedElements.kt @@ -85,14 +85,13 @@ fun box(): String { return "OK"; } -@native -object Object { +external object Object { object Object { val a: String = noImpl var b: String = noImpl fun test(): Int = noImpl - @native("AnotherClass") + @JsName("AnotherClass") class Class(val a: String) { var b: String = noImpl fun test(): Int = noImpl @@ -133,8 +132,8 @@ object Object { fun test(): Int = noImpl } -@native("SomeClass") -class Class { +@JsName("SomeClass") +external class Class { object Object { val a: String = noImpl var b: String = noImpl @@ -170,16 +169,15 @@ class Class { } companion object { - @native("aaa") + @JsName("aaa") val a: Trait = noImpl var b: String = noImpl fun test(): Int = noImpl } } -@native -interface Trait { - @native("SomeObject") +external interface Trait { + @JsName("SomeObject") object Object { val a: String = noImpl var b: String = noImpl @@ -197,7 +195,7 @@ interface Trait { } } - @native("SomeTrait") + @JsName("SomeTrait") interface Trait { val a: String var b: String diff --git a/js/js.translator/testData/box/native/passExtLambdaFromNative.kt b/js/js.translator/testData/box/native/passExtLambdaFromNative.kt index 0fd31650dd7..c4ccd7d4517 100644 --- a/js/js.translator/testData/box/native/passExtLambdaFromNative.kt +++ b/js/js.translator/testData/box/native/passExtLambdaFromNative.kt @@ -1,14 +1,13 @@ package foo -@native -internal class A(val v: String) +internal external class A(val v: String) internal class B { fun bar(a: A, extLambda: A.(Int, String) -> String): String = a.extLambda(7, "_rr_") } -@native -internal fun nativeBox(b: B): String = noImpl + +internal external fun nativeBox(b: B): String = noImpl fun box(): String { val r = nativeBox(B()) diff --git a/js/js.translator/testData/box/native/passExtLambdaToNative.kt b/js/js.translator/testData/box/native/passExtLambdaToNative.kt index 6529d9cd759..454e756d855 100644 --- a/js/js.translator/testData/box/native/passExtLambdaToNative.kt +++ b/js/js.translator/testData/box/native/passExtLambdaToNative.kt @@ -1,10 +1,8 @@ package foo -@native -class A(val v: String) +external class A(val v: String) -@native -fun bar(a: A, extLambda: A.(Int, String) -> String): String = noImpl +external fun bar(a: A, extLambda: A.(Int, String) -> String): String = noImpl fun box(): String { val a = A("test") diff --git a/js/js.translator/testData/box/native/passMemberOrExtFromNative.kt b/js/js.translator/testData/box/native/passMemberOrExtFromNative.kt index 62437c67d40..3452ef7377b 100644 --- a/js/js.translator/testData/box/native/passMemberOrExtFromNative.kt +++ b/js/js.translator/testData/box/native/passMemberOrExtFromNative.kt @@ -1,14 +1,13 @@ package foo -@native -class A(val v: String) { +external class A(val v: String) { fun m(i:Int, s:String): String = noImpl } -@native -fun A.nativeExt(i:Int, s:String): String = noImpl -@native("nativeExt2AnotherName") -fun A.nativeExt2(i:Int, s:String): String = noImpl +external fun A.nativeExt(i:Int, s:String): String = noImpl + +@JsName("nativeExt2AnotherName") +external fun A.nativeExt2(i:Int, s:String): String = noImpl fun bar(a: A, extLambda: A.(Int, String) -> String): String = a.(extLambda)(4, "boo") diff --git a/js/js.translator/testData/box/native/passMemberOrExtToNative.kt b/js/js.translator/testData/box/native/passMemberOrExtToNative.kt index 7923ce92fe6..12ce6be2fc1 100644 --- a/js/js.translator/testData/box/native/passMemberOrExtToNative.kt +++ b/js/js.translator/testData/box/native/passMemberOrExtToNative.kt @@ -8,8 +8,7 @@ class B(v: String): A(v) { override fun m(i:Int, s:String): String = "B.m ${this.v} $i $s" } -@native -fun bar(a: A, extLambda: A.(Int, String) -> String): String = noImpl +external fun bar(a: A, extLambda: A.(Int, String) -> String): String = noImpl fun A.topLevelExt(i:Int, s:String): String = "A::topLevelExt ${this.v} $i $s" diff --git a/js/js.translator/testData/box/native/passTopLevelFunctionFromNative.kt b/js/js.translator/testData/box/native/passTopLevelFunctionFromNative.kt index 2719891d499..aebe6509a81 100644 --- a/js/js.translator/testData/box/native/passTopLevelFunctionFromNative.kt +++ b/js/js.translator/testData/box/native/passTopLevelFunctionFromNative.kt @@ -1,7 +1,6 @@ package foo -@native -fun nativeFun(i:Int, s:String): String = noImpl +external fun nativeFun(i:Int, s:String): String = noImpl fun bar(funRef: (Int, String) -> String): String = funRef(4, "boo") diff --git a/js/js.translator/testData/box/native/passTopLevelOrLocalFunctionToNative.kt b/js/js.translator/testData/box/native/passTopLevelOrLocalFunctionToNative.kt index 942e165898e..9b4f692cd5c 100644 --- a/js/js.translator/testData/box/native/passTopLevelOrLocalFunctionToNative.kt +++ b/js/js.translator/testData/box/native/passTopLevelOrLocalFunctionToNative.kt @@ -1,7 +1,6 @@ package foo -@native -fun run(i:Int, s:String, funRef: (Int, String) -> String): String = noImpl +external fun run(i:Int, s:String, funRef: (Int, String) -> String): String = noImpl fun funTopLevel(i:Int, s:String): String = "funTopLevel $i $s" diff --git a/js/js.translator/testData/box/native/print.kt b/js/js.translator/testData/box/native/print.kt index 588eb97285c..01005f149d8 100644 --- a/js/js.translator/testData/box/native/print.kt +++ b/js/js.translator/testData/box/native/print.kt @@ -22,8 +22,7 @@ val EXPECTED_NEWLINE_FOR_EACH = """Hello """ -@native -var buffer: String = noImpl +external var buffer: String = noImpl fun test(expected: String, initCode: String, getResult: () -> String) { buffer = "" diff --git a/js/js.translator/testData/box/native/secondaryConstructor.kt b/js/js.translator/testData/box/native/secondaryConstructor.kt index 779cada5195..74099fc8995 100644 --- a/js/js.translator/testData/box/native/secondaryConstructor.kt +++ b/js/js.translator/testData/box/native/secondaryConstructor.kt @@ -1,7 +1,6 @@ package foo -@native -class A { +external class A { constructor() constructor(s: String) constructor(i: Int) diff --git a/js/js.translator/testData/box/native/simple.kt b/js/js.translator/testData/box/native/simple.kt index 0a3250b68d4..c191153fb9c 100644 --- a/js/js.translator/testData/box/native/simple.kt +++ b/js/js.translator/testData/box/native/simple.kt @@ -1,6 +1,5 @@ package foo -@native -fun returnFalse(): Boolean = noImpl +external fun returnFalse(): Boolean = noImpl fun box() = if (!returnFalse()) "OK" else "fail" diff --git a/js/js.translator/testData/box/native/simpleUndefined.kt b/js/js.translator/testData/box/native/simpleUndefined.kt index 5bb9167851a..572d84cb8cd 100644 --- a/js/js.translator/testData/box/native/simpleUndefined.kt +++ b/js/js.translator/testData/box/native/simpleUndefined.kt @@ -1,7 +1,6 @@ package foo -@native -val c: Any? = noImpl +external val c: Any? = noImpl fun box(): String { if (c != null) return "fail1" diff --git a/js/js.translator/testData/box/native/vararg.kt b/js/js.translator/testData/box/native/vararg.kt index 7d6c70d2382..416c88c1a56 100644 --- a/js/js.translator/testData/box/native/vararg.kt +++ b/js/js.translator/testData/box/native/vararg.kt @@ -1,13 +1,12 @@ package foo -@native -fun paramCount(vararg a: Int): Int = noImpl +external fun paramCount(vararg a: Int): Int = noImpl -@native("paramCount") -fun anotherParamCount(vararg a: Int): Int = noImpl +@JsName("paramCount") +external fun anotherParamCount(vararg a: Int): Int = noImpl -@native("paramCount") -fun genericParamCount(vararg a: T): Int = noImpl +@JsName("paramCount") +external fun genericParamCount(vararg a: T): Int = noImpl // test spread operator fun count(vararg a: Int) = paramCount(*a) @@ -15,14 +14,11 @@ fun count(vararg a: Int) = paramCount(*a) // test spread operator fun anotherCount(vararg a: Int) = anotherParamCount(*a) -@native -fun test3(bar: Bar, dummy: Int, vararg args: Int): Boolean = noImpl +external fun test3(bar: Bar, dummy: Int, vararg args: Int): Boolean = noImpl -@native -fun Bar.test2(order: Int, dummy: Int, vararg args: Int): Boolean = noImpl +external fun Bar.test2(order: Int, dummy: Int, vararg args: Int): Boolean = noImpl -@native -class Bar(val size: Int, order: Int = 0) { +external class Bar(val size: Int, order: Int = 0) { fun test(order: Int, dummy: Int, vararg args: Int): Boolean = noImpl companion object { fun startNewTest(): Boolean = noImpl @@ -30,8 +26,7 @@ class Bar(val size: Int, order: Int = 0) { } } -@native -object obj { +external object obj { fun test(size: Int, vararg args: Int): Boolean = noImpl } @@ -43,8 +38,7 @@ fun spreadInMethodCallWithReceiver(size: Int, vararg args: Int) = Bar(size).test fun spreadInPackageMethodCall(size: Int, vararg args: Int) = test3(Bar(size), 1, *args) -@native -fun testNativeVarargWithFunLit(vararg args: Int, f: (a: IntArray) -> Boolean): Boolean = noImpl +external fun testNativeVarargWithFunLit(vararg args: Int, f: (a: IntArray) -> Boolean): Boolean = noImpl fun testSpreadOperatorWithSafeCall(a: Bar?, expected: Boolean?, vararg args: Int): Boolean { return a?.test(0, 1, *args) == expected @@ -59,14 +53,11 @@ fun testCallOrder(vararg args: Int) = Bar(args.size, 0).test(1, 1, *args) && Bar(args.size, 2).test(3, 1, *args) && !Bar.hasOrderProblem -@native -fun sumOfParameters(x: Int, y: Int, vararg a: Int): Int = noImpl +external fun sumOfParameters(x: Int, y: Int, vararg a: Int): Int = noImpl -@native -fun sumFunValuesOnParameters(x: Int, y: Int, vararg a: Int, f: (Int) -> Int): Int = noImpl +external fun sumFunValuesOnParameters(x: Int, y: Int, vararg a: Int, f: (Int) -> Int): Int = noImpl -@native -fun idArrayVarArg(vararg a: Array): Array = noImpl +external fun idArrayVarArg(vararg a: Array): Array = noImpl fun box(): String { if (paramCount() != 0) diff --git a/js/js.translator/testData/box/nestedTypes/outerNative.kt b/js/js.translator/testData/box/nestedTypes/outerNative.kt index 8bf7c9393d8..1933f7a7e2e 100644 --- a/js/js.translator/testData/box/nestedTypes/outerNative.kt +++ b/js/js.translator/testData/box/nestedTypes/outerNative.kt @@ -1,6 +1,6 @@ package foo -@native class A(x: Int) { +external class A(x: Int) { var x: Int get() = noImpl set(value) = noImpl diff --git a/js/js.translator/testData/box/propertyAccess/enumerable.kt b/js/js.translator/testData/box/propertyAccess/enumerable.kt index fa8b9a747c2..6b328c57981 100644 --- a/js/js.translator/testData/box/propertyAccess/enumerable.kt +++ b/js/js.translator/testData/box/propertyAccess/enumerable.kt @@ -1,11 +1,9 @@ // FILE: enumerable.kt package foo -@native -fun _enumerate(o: T): T = noImpl +external fun _enumerate(o: T): T = noImpl -@native -fun _findFirst(o: Any): T = noImpl +external fun _findFirst(o: Any): T = noImpl class Test() { val a: Int = 100 diff --git a/js/js.translator/testData/box/propertyAccess/nativePropertiesNameClashes.kt b/js/js.translator/testData/box/propertyAccess/nativePropertiesNameClashes.kt index eabd2294209..2afc10baaf5 100644 --- a/js/js.translator/testData/box/propertyAccess/nativePropertiesNameClashes.kt +++ b/js/js.translator/testData/box/propertyAccess/nativePropertiesNameClashes.kt @@ -3,8 +3,8 @@ package foo val PACKAGE = "kotlin.modules.JS_TESTS.foo" class A -@native val Any.__proto__: String get() = noImpl -@native val A.__proto__: String get() = noImpl +external val Any.__proto__: String get() = noImpl +external val A.__proto__: String get() = noImpl fun box(): String { val a = A() diff --git a/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt b/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt index f65e6f02727..bbe65c1c525 100644 --- a/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt +++ b/js/js.translator/testData/box/trait/checkImplementationCharacteristics.kt @@ -9,7 +9,7 @@ public interface B : A { } } -@native class Function(vararg args: String) +external class Function(vararg args: String) val hasProp = Function("obj, prop", "return obj[prop] !== undefined") as ((Any, String) -> Boolean) diff --git a/js/js.translator/testData/jsTester/jsTester.kt b/js/js.translator/testData/jsTester/jsTester.kt index b1a46e3f6d6..d24618cc769 100644 --- a/js/js.translator/testData/jsTester/jsTester.kt +++ b/js/js.translator/testData/jsTester/jsTester.kt @@ -1,7 +1,5 @@ package kotlin.test -import kotlin.test.* - fun init() { asserter = JsTestsAsserter() } @@ -10,8 +8,8 @@ public class JsTestsAsserter() : Asserter { public override fun fail(message: String?): Nothing = failWithMessage(message) } -@native("JsTests.assert") -public fun assert(value: Boolean, message: String?): Unit = noImpl +@JsName("JsTests.assert") +public external fun assert(value: Boolean, message: String?): Unit = noImpl -@native("JsTests.fail") -private fun failWithMessage(message: String?): Nothing = noImpl +@JsName("JsTests.fail") +private external fun failWithMessage(message: String?): Nothing = noImpl diff --git a/libraries/tools/idl2k/src/main/kotlin/render.kt b/libraries/tools/idl2k/src/main/kotlin/render.kt index b78fe19b6e2..87c4a7c3b89 100644 --- a/libraries/tools/idl2k/src/main/kotlin/render.kt +++ b/libraries/tools/idl2k/src/main/kotlin/render.kt @@ -50,7 +50,7 @@ private fun Appendable.renderAttributeDeclarationAsProperty(arg: GenerateAttribu indent(commented, level) if (arg.name in keywords) { - append("@native(\"${arg.name}\") ") + append("@JsName(\"${arg.name}\") ") } renderAttributeDeclaration(arg, modality, omitDefaults) @@ -104,7 +104,7 @@ private fun Appendable.renderFunctionDeclaration(f: GenerateFunction, override: } if (f.name in keywords) { - append("@native(\"${f.name}\") ") + append("@JsName(\"${f.name}\") ") } append("fun ${f.name.replaceKeywords()}") renderArgumentsDeclaration(f.arguments, override) @@ -120,7 +120,7 @@ private fun GenerateAttribute.isRequiredFunctionArgument(owner: String, function private fun GenerateFunction.fixRequiredArguments(parent: String) = copy(arguments = arguments.map { arg -> arg.copy(initializer = if (arg.isRequiredFunctionArgument(parent, name)) null else arg.initializer) }) fun Appendable.render(allTypes: Map, typeNamesToUnions: Map>, iface: GenerateTraitOrClass, markerAnnotation: Boolean = false) { - append("@native public ") + append("public external ") if (markerAnnotation) { append("@marker ") } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJS.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJS.kt index 780dccb2feb..ff6e6e56dcc 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJS.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/SpecialJS.kt @@ -255,7 +255,7 @@ fun specialJS(): List { templates add f("sort(comparison: (T, T) -> Int)") { only(ArraysOfObjects, ArraysOfPrimitives) exclude(PrimitiveType.Boolean) - annotations("@native") + external(true) returns("Unit") doc { "Sorts the array in-place according to the order specified by the given [comparison] function." } body { "noImpl" } diff --git a/libraries/tools/kotlin-stdlib-gen/src/templates/engine/Engine.kt b/libraries/tools/kotlin-stdlib-gen/src/templates/engine/Engine.kt index 944eaf3efaf..4ca58021573 100644 --- a/libraries/tools/kotlin-stdlib-gen/src/templates/engine/Engine.kt +++ b/libraries/tools/kotlin-stdlib-gen/src/templates/engine/Engine.kt @@ -147,6 +147,7 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { val returns = FamilyProperty() val operator = FamilyProperty() val infix = FamilyProperty() + val external = FamilyProperty() val body = object : FamilyProperty() { override fun onKeySet(key: Family) = include(key) } @@ -410,6 +411,8 @@ class GenericFunction(val signature: String, val keyword: String = "fun") { } builder.append("public ") + if (external[f] == true) + builder.append("external ") if (inline[f]?.isInline() == true) builder.append("inline ") if (infix[f] == true)