From 85d6a4d1afe760e6d61baf8e10a0ba338893385b Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 15 Sep 2017 10:44:43 +0300 Subject: [PATCH] Migration to expect/actual: fix multiplatform integration tests --- .../constructorIncorrectSignature/common.kt | 2 +- .../constructorIncorrectSignature/jvm.kt | 4 +- .../constructorIncorrectSignature/output.txt | 6 +- .../enumsWithDifferentEntries/common.kt | 4 +- .../enumsWithDifferentEntries/jvm.kt | 4 +- .../enumsWithDifferentEntries/output.txt | 20 +-- .../classScopes/fakeOverrides/common.kt | 4 +- .../classScopes/fakeOverrides/jvm.kt | 8 +- .../functionIncorrectSignature/common.kt | 2 +- .../functionIncorrectSignature/jvm.kt | 4 +- .../functionIncorrectSignature/output.txt | 4 +- .../common.kt | 2 +- .../jvm.kt | 2 +- .../output.txt | 8 +- .../classScopes/missingConstructor/common.kt | 2 +- .../classScopes/missingConstructor/jvm.kt | 2 +- .../classScopes/missingConstructor/output.txt | 6 +- .../classScopes/missingFunction/common.kt | 2 +- .../classScopes/missingFunction/jvm.kt | 2 +- .../classScopes/missingFunction/output.txt | 8 +- .../classScopes/simple/common.kt | 2 +- .../multiplatform/classScopes/simple/jvm.kt | 6 +- .../compatibleProperties/common.kt | 2 +- .../multiplatform/compatibleProperties/jvm.kt | 2 +- .../multiplatform/compilerArguments/common.kt | 4 +- .../createImplClassInPlatformModule/common.kt | 2 +- .../createImplClassInPlatformModule/jvm.kt | 4 +- .../genericDeclarations/common.kt | 16 +- .../multiplatform/genericDeclarations/jvm.kt | 16 +- .../common.kt | 2 +- .../jvm.kt | 2 +- .../implTypeAlias/generic/common.kt | 2 +- .../implTypeAlias/generic/jvm.kt | 2 +- .../nestedClassesViaTypeAlias/common.kt | 2 +- .../nestedClassesViaTypeAlias/jvm.kt | 2 +- .../incompatibleCallables/common.kt | 46 +++--- .../incompatibleCallables/jvm.kt | 46 +++--- .../incompatibleCallables/output.txt | 78 +++++----- .../incompatibleClasses/common.kt | 32 ++-- .../multiplatform/incompatibleClasses/jvm.kt | 32 ++-- .../incompatibleClasses/output.txt | 144 +++++++++--------- .../incompatibleFunctions/common.kt | 10 +- .../incompatibleFunctions/jvm.kt | 10 +- .../incompatibleFunctions/output.txt | 30 ++-- .../incompatibleNestedClasses/common.kt | 8 +- .../incompatibleNestedClasses/jvm.kt | 24 +-- .../incompatibleNestedClasses/output.txt | 78 +++++----- .../incompatibleProperties/common.kt | 4 +- .../incompatibleProperties/jvm.kt | 4 +- .../incompatibleProperties/output.txt | 8 +- .../incorrectImplInClass/common.kt | 2 +- .../multiplatform/incorrectImplInClass/jvm.kt | 8 +- .../incorrectImplInClass/output.txt | 10 +- .../multiplatform/missingOverload/common.kt | 6 +- .../multiplatform/missingOverload/jvm.kt | 6 +- .../multiplatform/missingOverload/output.txt | 14 +- .../common.kt | 2 +- .../jvm.kt | 2 +- .../output.txt | 2 +- .../regressions/kt17001/common.kt | 4 +- .../multiplatform/regressions/kt17001/jvm.kt | 4 +- .../testData/multiplatform/simple/common.kt | 2 +- compiler/testData/multiplatform/simple/js.kt | 4 +- compiler/testData/multiplatform/simple/jvm.kt | 4 +- .../common.kt | 2 +- 65 files changed, 394 insertions(+), 394 deletions(-) diff --git a/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/common.kt b/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/common.kt index db391be7cc0..5c791bdaaf9 100644 --- a/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/common.kt +++ b/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/common.kt @@ -1,3 +1,3 @@ -header class Foo { +expect class Foo { constructor(s: String) } diff --git a/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt b/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt index 09cce011363..051b3535811 100644 --- a/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt @@ -1,3 +1,3 @@ -impl class Foo { - impl constructor(s: Array) +actual class Foo { + actual constructor(s: Array) } diff --git a/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/output.txt b/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/output.txt index 385366cb0a7..837e5857de7 100644 --- a/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/output.txt +++ b/compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/output.txt @@ -5,9 +5,9 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt:2:10: error: 'impl' constructor of 'Foo' has no corresponding 'header' declaration +compiler/testData/multiplatform/classScopes/constructorIncorrectSignature/jvm.kt:2:12: error: 'impl' constructor of 'Foo' has no corresponding 'header' declaration The following declaration is incompatible because parameter types are different: public constructor Foo(s: String) - impl constructor(s: Array) - ^ + actual constructor(s: Array) + ^ diff --git a/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/common.kt b/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/common.kt index 85698d0891d..995b41546bd 100644 --- a/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/common.kt +++ b/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/common.kt @@ -1,3 +1,3 @@ -header enum class AB { A, B } +expect enum class AB { A, B } -header enum class CD { C, D } +expect enum class CD { C, D } diff --git a/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt b/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt index 79f76b6f3a8..944c1cd49a2 100644 --- a/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt @@ -1,3 +1,3 @@ -impl enum class AB { A, C } +actual enum class AB { A, C } -impl enum class CD { C } +actual enum class CD { C } diff --git a/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/output.txt b/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/output.txt index 6e259c011a0..f68a15be2ad 100644 --- a/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/output.txt +++ b/compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/output.txt @@ -5,15 +5,15 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt:1:17: error: 'impl' enum class 'AB' has no corresponding 'header' declaration -The following declaration is incompatible because some entries from header enum are missing in the impl enum: - public final header enum class AB : Enum +compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt:1:19: error: 'impl' enum class 'AB' has no corresponding 'header' declaration +The following declaration is incompatible because some entries from expected enum are missing in the actual enum: + public final expect enum class AB : Enum -impl enum class AB { A, C } - ^ -compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt:3:17: error: 'impl' enum class 'CD' has no corresponding 'header' declaration -The following declaration is incompatible because some entries from header enum are missing in the impl enum: - public final header enum class CD : Enum +actual enum class AB { A, C } + ^ +compiler/testData/multiplatform/classScopes/enumsWithDifferentEntries/jvm.kt:3:19: error: 'impl' enum class 'CD' has no corresponding 'header' declaration +The following declaration is incompatible because some entries from expected enum are missing in the actual enum: + public final expect enum class CD : Enum -impl enum class CD { C } - ^ +actual enum class CD { C } + ^ diff --git a/compiler/testData/multiplatform/classScopes/fakeOverrides/common.kt b/compiler/testData/multiplatform/classScopes/fakeOverrides/common.kt index c2550dd6a42..f12dacd10c1 100644 --- a/compiler/testData/multiplatform/classScopes/fakeOverrides/common.kt +++ b/compiler/testData/multiplatform/classScopes/fakeOverrides/common.kt @@ -1,7 +1,7 @@ -header open class Base { +expect open class Base { fun base() } -header class Derived : Base { +expect class Derived : Base { fun derived() } diff --git a/compiler/testData/multiplatform/classScopes/fakeOverrides/jvm.kt b/compiler/testData/multiplatform/classScopes/fakeOverrides/jvm.kt index 1fb72b10b89..8c95f62c26e 100644 --- a/compiler/testData/multiplatform/classScopes/fakeOverrides/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/fakeOverrides/jvm.kt @@ -1,7 +1,7 @@ -impl open class Base { - impl fun base() {} +actual open class Base { + actual fun base() {} } -impl class Derived : Base() { - impl fun derived() {} +actual class Derived : Base() { + actual fun derived() {} } diff --git a/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/common.kt b/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/common.kt index a9481f243b0..70cba14b2c4 100644 --- a/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/common.kt +++ b/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/common.kt @@ -1,3 +1,3 @@ -header class Foo { +expect class Foo { fun function(b: ByteArray): Int } diff --git a/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt b/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt index c27957cabc8..5db89192e82 100644 --- a/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt @@ -1,3 +1,3 @@ -impl class Foo { - impl fun function(b: ByteArray): Long = b.size.toLong() +actual class Foo { + actual fun function(b: ByteArray): Long = b.size.toLong() } diff --git a/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/output.txt b/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/output.txt index 94d5186e16d..5837e6517d3 100644 --- a/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/output.txt +++ b/compiler/testData/multiplatform/classScopes/functionIncorrectSignature/output.txt @@ -7,7 +7,7 @@ Exit code: COMPILATION_ERROR Output: compiler/testData/multiplatform/classScopes/functionIncorrectSignature/jvm.kt:2:5: error: 'impl' function 'function' has no corresponding 'header' declaration The following declaration is incompatible because return type is different: - public final header fun function(b: ByteArray): Int + public final expect fun function(b: ByteArray): Int - impl fun function(b: ByteArray): Long = b.size.toLong() + actual fun function(b: ByteArray): Long = b.size.toLong() ^ diff --git a/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/common.kt b/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/common.kt index a9481f243b0..70cba14b2c4 100644 --- a/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/common.kt +++ b/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/common.kt @@ -1,3 +1,3 @@ -header class Foo { +expect class Foo { fun function(b: ByteArray): Int } diff --git a/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/jvm.kt b/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/jvm.kt index d66d369b64a..060b2473755 100644 --- a/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/jvm.kt @@ -2,4 +2,4 @@ open class Base { fun function(b: ByteArray): Long = b.size.toLong() } -impl class Foo : Base() +actual class Foo : Base() diff --git a/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/output.txt b/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/output.txt index 00da8e6c2ea..323fd09762f 100644 --- a/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/output.txt +++ b/compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/output.txt @@ -5,12 +5,12 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/jvm.kt:5:12: error: 'impl' class 'Foo' has no implementation of 'header' class members: +compiler/testData/multiplatform/classScopes/functionIncorrectSignatureFromSuperclass/jvm.kt:5:14: error: 'impl' class 'Foo' has no implementation of 'header' class members: - public final header fun function(b: ByteArray): Int + public final expect fun function(b: ByteArray): Int The following declaration is incompatible because return type is different: public final fun function(b: ByteArray): Long -impl class Foo : Base() - ^ +actual class Foo : Base() + ^ diff --git a/compiler/testData/multiplatform/classScopes/missingConstructor/common.kt b/compiler/testData/multiplatform/classScopes/missingConstructor/common.kt index db391be7cc0..5c791bdaaf9 100644 --- a/compiler/testData/multiplatform/classScopes/missingConstructor/common.kt +++ b/compiler/testData/multiplatform/classScopes/missingConstructor/common.kt @@ -1,3 +1,3 @@ -header class Foo { +expect class Foo { constructor(s: String) } diff --git a/compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt b/compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt index 0a749a23b04..d376e475173 100644 --- a/compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt @@ -1 +1 @@ -impl class Foo +actual class Foo diff --git a/compiler/testData/multiplatform/classScopes/missingConstructor/output.txt b/compiler/testData/multiplatform/classScopes/missingConstructor/output.txt index b3454c1b6a5..904cb0ac888 100644 --- a/compiler/testData/multiplatform/classScopes/missingConstructor/output.txt +++ b/compiler/testData/multiplatform/classScopes/missingConstructor/output.txt @@ -5,12 +5,12 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt:1:12: error: 'impl' class 'Foo' has no implementation of 'header' class members: +compiler/testData/multiplatform/classScopes/missingConstructor/jvm.kt:1:14: error: 'impl' class 'Foo' has no implementation of 'header' class members: public constructor Foo(s: String) The following declaration is incompatible because number of value parameters is different: public constructor Foo() -impl class Foo - ^ +actual class Foo + ^ diff --git a/compiler/testData/multiplatform/classScopes/missingFunction/common.kt b/compiler/testData/multiplatform/classScopes/missingFunction/common.kt index a2c77b484e8..f7f50c1fef4 100644 --- a/compiler/testData/multiplatform/classScopes/missingFunction/common.kt +++ b/compiler/testData/multiplatform/classScopes/missingFunction/common.kt @@ -1,3 +1,3 @@ -header class Foo { +expect class Foo { fun function(s: String) } diff --git a/compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt b/compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt index 0a749a23b04..d376e475173 100644 --- a/compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt @@ -1 +1 @@ -impl class Foo +actual class Foo diff --git a/compiler/testData/multiplatform/classScopes/missingFunction/output.txt b/compiler/testData/multiplatform/classScopes/missingFunction/output.txt index d1f2d2fa0e5..71d0bccab41 100644 --- a/compiler/testData/multiplatform/classScopes/missingFunction/output.txt +++ b/compiler/testData/multiplatform/classScopes/missingFunction/output.txt @@ -5,9 +5,9 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt:1:12: error: 'impl' class 'Foo' has no implementation of 'header' class members: +compiler/testData/multiplatform/classScopes/missingFunction/jvm.kt:1:14: error: 'impl' class 'Foo' has no implementation of 'header' class members: - public final header fun function(s: String): Unit + public final expect fun function(s: String): Unit -impl class Foo - ^ +actual class Foo + ^ diff --git a/compiler/testData/multiplatform/classScopes/simple/common.kt b/compiler/testData/multiplatform/classScopes/simple/common.kt index 1ca6125ced6..6dc0e3221fd 100644 --- a/compiler/testData/multiplatform/classScopes/simple/common.kt +++ b/compiler/testData/multiplatform/classScopes/simple/common.kt @@ -1,4 +1,4 @@ -header class Foo(param: String) { +expect class Foo(param: String) { var property: Int fun function(p: List): T diff --git a/compiler/testData/multiplatform/classScopes/simple/jvm.kt b/compiler/testData/multiplatform/classScopes/simple/jvm.kt index 2113636a60c..b1747907481 100644 --- a/compiler/testData/multiplatform/classScopes/simple/jvm.kt +++ b/compiler/testData/multiplatform/classScopes/simple/jvm.kt @@ -1,5 +1,5 @@ -impl class Foo impl constructor(param: String) { - impl var property: Int = param.length +actual class Foo actual constructor(param: String) { + actual var property: Int = param.length - impl fun function(p: List): T = p.first() + actual fun function(p: List): T = p.first() } diff --git a/compiler/testData/multiplatform/compatibleProperties/common.kt b/compiler/testData/multiplatform/compatibleProperties/common.kt index a9256d70c60..72fdba17886 100644 --- a/compiler/testData/multiplatform/compatibleProperties/common.kt +++ b/compiler/testData/multiplatform/compatibleProperties/common.kt @@ -1,2 +1,2 @@ -header val bar: String +expect val bar: String diff --git a/compiler/testData/multiplatform/compatibleProperties/jvm.kt b/compiler/testData/multiplatform/compatibleProperties/jvm.kt index 61a4850a01f..d356e5a1192 100644 --- a/compiler/testData/multiplatform/compatibleProperties/jvm.kt +++ b/compiler/testData/multiplatform/compatibleProperties/jvm.kt @@ -1 +1 @@ -impl val bar = "Hello" \ No newline at end of file +actual val bar = "Hello" \ No newline at end of file diff --git a/compiler/testData/multiplatform/compilerArguments/common.kt b/compiler/testData/multiplatform/compilerArguments/common.kt index 2a1dde5f48c..b6cc8d59849 100644 --- a/compiler/testData/multiplatform/compilerArguments/common.kt +++ b/compiler/testData/multiplatform/compilerArguments/common.kt @@ -4,6 +4,6 @@ fun f(g: suspend () -> Unit): Any = g suspend fun h() = f { } -header suspend fun k() +expect suspend fun k() -header fun l(g: suspend () -> Unit): Any +expect fun l(g: suspend () -> Unit): Any diff --git a/compiler/testData/multiplatform/createImplClassInPlatformModule/common.kt b/compiler/testData/multiplatform/createImplClassInPlatformModule/common.kt index b7b0f1b26c6..2a3a31a2dec 100644 --- a/compiler/testData/multiplatform/createImplClassInPlatformModule/common.kt +++ b/compiler/testData/multiplatform/createImplClassInPlatformModule/common.kt @@ -1 +1 @@ -header class Foo +expect class Foo diff --git a/compiler/testData/multiplatform/createImplClassInPlatformModule/jvm.kt b/compiler/testData/multiplatform/createImplClassInPlatformModule/jvm.kt index 5abb848dd57..9bf9610d9cd 100644 --- a/compiler/testData/multiplatform/createImplClassInPlatformModule/jvm.kt +++ b/compiler/testData/multiplatform/createImplClassInPlatformModule/jvm.kt @@ -1,5 +1,5 @@ -impl class Foo(x: Int) { - impl constructor() : this(0) +actual class Foo(x: Int) { + actual constructor() : this(0) val x: Int = x } diff --git a/compiler/testData/multiplatform/genericDeclarations/common.kt b/compiler/testData/multiplatform/genericDeclarations/common.kt index 82decb00331..df3022eb9a0 100644 --- a/compiler/testData/multiplatform/genericDeclarations/common.kt +++ b/compiler/testData/multiplatform/genericDeclarations/common.kt @@ -1,13 +1,13 @@ -header fun f1(): T +expect fun f1(): T -header fun f2(t: T) +expect fun f2(t: T) -header fun , V : MutableList> f3(v: Map>, w: Comparable<*>) +expect fun , V : MutableList> f3(v: Map>, w: Comparable<*>) -header fun > Array.sort(): Unit +expect fun > Array.sort(): Unit -header class C1 -header class C2> -header class C3> +expect class C1 +expect class C2> +expect class C3> -header abstract class AbstractList : MutableList +expect abstract class AbstractList : MutableList diff --git a/compiler/testData/multiplatform/genericDeclarations/jvm.kt b/compiler/testData/multiplatform/genericDeclarations/jvm.kt index a0af9e5b67e..bf9f7549b4d 100644 --- a/compiler/testData/multiplatform/genericDeclarations/jvm.kt +++ b/compiler/testData/multiplatform/genericDeclarations/jvm.kt @@ -1,15 +1,15 @@ -impl fun f1(): T = throw AssertionError() +actual fun f1(): T = throw AssertionError() -impl fun f2(t: T) {} +actual fun f2(t: T) {} -impl fun , V : MutableList> f3(v: Map>, w: Comparable<*>) {} +actual fun , V : MutableList> f3(v: Map>, w: Comparable<*>) {} -impl fun > Array.sort(): Unit { +actual fun > Array.sort(): Unit { java.util.Arrays.sort(this) } -impl class C1 -impl class C2> -impl class C3> +actual class C1 +actual class C2> +actual class C3> -impl abstract class AbstractList : MutableList, java.io.Serializable +actual abstract class AbstractList : MutableList, java.io.Serializable diff --git a/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/common.kt b/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/common.kt index 325e2668d8a..30269c97248 100644 --- a/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/common.kt +++ b/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/common.kt @@ -1,3 +1,3 @@ class Foo(val a: A? = null) -header class A +expect class A diff --git a/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/jvm.kt b/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/jvm.kt index 3f1e5af8ae7..bb3a06eadb4 100644 --- a/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/jvm.kt +++ b/compiler/testData/multiplatform/implTypeAlias/discriminateHeaderClassInFavorOfTypeAlias/jvm.kt @@ -1,4 +1,4 @@ -impl typealias A = AImpl +actual typealias A = AImpl class AImpl { fun jvm(): A = this diff --git a/compiler/testData/multiplatform/implTypeAlias/generic/common.kt b/compiler/testData/multiplatform/implTypeAlias/generic/common.kt index 7586d114f7e..b67d583e95c 100644 --- a/compiler/testData/multiplatform/implTypeAlias/generic/common.kt +++ b/compiler/testData/multiplatform/implTypeAlias/generic/common.kt @@ -1,3 +1,3 @@ -header class C1 { +expect class C1 { fun foo(a: A): List? } diff --git a/compiler/testData/multiplatform/implTypeAlias/generic/jvm.kt b/compiler/testData/multiplatform/implTypeAlias/generic/jvm.kt index 916937db06e..71c79a0f724 100644 --- a/compiler/testData/multiplatform/implTypeAlias/generic/jvm.kt +++ b/compiler/testData/multiplatform/implTypeAlias/generic/jvm.kt @@ -1,4 +1,4 @@ -impl typealias C1 = C1Impl +actual typealias C1 = C1Impl class C1Impl { fun foo(a: A): List? = null } diff --git a/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/common.kt b/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/common.kt index b2aff6acf18..85c59cc8338 100644 --- a/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/common.kt +++ b/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/common.kt @@ -1,3 +1,3 @@ -header class ByTypeAlias { +expect class ByTypeAlias { interface Nested } diff --git a/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/jvm.kt b/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/jvm.kt index 5e28bc060d5..f20bd82737b 100644 --- a/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/jvm.kt +++ b/compiler/testData/multiplatform/implTypeAlias/nestedClassesViaTypeAlias/jvm.kt @@ -2,4 +2,4 @@ class ByTypeAliasImpl { interface Nested } -impl typealias ByTypeAlias = ByTypeAliasImpl +actual typealias ByTypeAlias = ByTypeAliasImpl diff --git a/compiler/testData/multiplatform/incompatibleCallables/common.kt b/compiler/testData/multiplatform/incompatibleCallables/common.kt index 8741cb2e7d1..24373914659 100644 --- a/compiler/testData/multiplatform/incompatibleCallables/common.kt +++ b/compiler/testData/multiplatform/incompatibleCallables/common.kt @@ -1,34 +1,34 @@ -header fun f1() +expect fun f1() -header fun f2(name: String) +expect fun f2(name: String) -header fun f3(name: String) -header fun String.f3ext() +expect fun f3(name: String) +expect fun String.f3ext() -header fun f4(name: String) +expect fun f4(name: String) -header fun String.f5() +expect fun String.f5() -header fun f6(p1: String, p2: Int) +expect fun f6(p1: String, p2: Int) -header fun f7() +expect fun f7() -internal header fun f8() -private header fun f9() -public header fun f10() +internal expect fun f8() +private expect fun f9() +public expect fun f10() -header fun f11() -header fun > f12() -header fun > f13() +expect fun f11() +expect fun > f12() +expect fun > f13() -header inline fun f14() -header inline fun f15() +expect inline fun f14() +expect inline fun f15() -header fun f16(s: String) +expect fun f16(s: String) -header fun f17(vararg s: String) -header fun f18(s: Array) -header inline fun f19(s: () -> Unit) -header inline fun f20(s: () -> Unit) -header fun f21(c: suspend Unit.() -> Unit) -header fun f22(c: Unit.() -> Unit) +expect fun f17(vararg s: String) +expect fun f18(s: Array) +expect inline fun f19(s: () -> Unit) +expect inline fun f20(s: () -> Unit) +expect fun f21(c: suspend Unit.() -> Unit) +expect fun f22(c: Unit.() -> Unit) diff --git a/compiler/testData/multiplatform/incompatibleCallables/jvm.kt b/compiler/testData/multiplatform/incompatibleCallables/jvm.kt index 38e5269119e..93265bf8371 100644 --- a/compiler/testData/multiplatform/incompatibleCallables/jvm.kt +++ b/compiler/testData/multiplatform/incompatibleCallables/jvm.kt @@ -1,34 +1,34 @@ -impl fun f1(): String = "" +actual fun f1(): String = "" -impl fun f2(otherName: String) {} +actual fun f2(otherName: String) {} -impl fun f3(name: Double) {} -impl fun Double.f3ext() {} +actual fun f3(name: Double) {} +actual fun Double.f3ext() {} -impl fun String.f4() {} +actual fun String.f4() {} -impl fun f5(name: String) {} +actual fun f5(name: String) {} -impl fun f6(p2: Int) {} +actual fun f6(p2: Int) {} -impl fun f7() {} +actual fun f7() {} -public impl fun f8() {} -internal impl fun f9() {} -private impl fun f10() {} +public actual fun f8() {} +internal actual fun f9() {} +private actual fun f10() {} -impl fun f11() {} -impl fun > f12() {} -impl fun > f13() {} +actual fun f11() {} +actual fun > f12() {} +actual fun > f13() {} -impl inline fun f14() {} -impl inline fun f15() {} +actual inline fun f14() {} +actual inline fun f15() {} -impl fun f16(s: String = "") {} +actual fun f16(s: String = "") {} -impl fun f17(s: Array) {} -impl fun f18(vararg s: String) {} -impl inline fun f19(crossinline s: () -> Unit) {} -impl inline fun f20(noinline s: () -> Unit) {} -impl fun f21(c: Unit.() -> Unit) {} -impl fun f22(c: suspend Unit.() -> Unit) {} +actual fun f17(s: Array) {} +actual fun f18(vararg s: String) {} +actual inline fun f19(crossinline s: () -> Unit) {} +actual inline fun f20(noinline s: () -> Unit) {} +actual fun f21(c: Unit.() -> Unit) {} +actual fun f22(c: suspend Unit.() -> Unit) {} diff --git a/compiler/testData/multiplatform/incompatibleCallables/output.txt b/compiler/testData/multiplatform/incompatibleCallables/output.txt index 289610214c9..9192647b539 100644 --- a/compiler/testData/multiplatform/incompatibleCallables/output.txt +++ b/compiler/testData/multiplatform/incompatibleCallables/output.txt @@ -2,7 +2,7 @@ Exit code: OK Output: compiler/testData/multiplatform/incompatibleCallables/common.kt:33:19: warning: the feature "coroutines" is experimental (see: https://kotlinlang.org/docs/diagnostics/experimental-coroutines) -header fun f21(c: suspend Unit.() -> Unit) +expect fun f21(c: suspend Unit.() -> Unit) ^ -- JVM -- @@ -10,115 +10,115 @@ Exit code: COMPILATION_ERROR Output: compiler/testData/multiplatform/incompatibleCallables/jvm.kt:1:1: error: 'impl' function 'f1' has no corresponding 'header' declaration The following declaration is incompatible because return type is different: - public header fun f1(): Unit + public expect fun f1(): Unit -impl fun f1(): String = "" +actual fun f1(): String = "" ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:3:1: error: 'impl' function 'f2' has no corresponding 'header' declaration The following declaration is incompatible because parameter names are different: - public header fun f2(name: String): Unit + public expect fun f2(name: String): Unit -impl fun f2(otherName: String) {} +actual fun f2(otherName: String) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:5:1: error: 'impl' function 'f3' has no corresponding 'header' declaration The following declaration is incompatible because parameter types are different: - public header fun f3(name: String): Unit + public expect fun f3(name: String): Unit -impl fun f3(name: Double) {} +actual fun f3(name: Double) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:6:1: error: 'impl' function 'f3ext' has no corresponding 'header' declaration The following declaration is incompatible because parameter types are different: - public header fun String.f3ext(): Unit + public expect fun String.f3ext(): Unit -impl fun Double.f3ext() {} +actual fun Double.f3ext() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:8:1: error: 'impl' function 'f4' has no corresponding 'header' declaration The following declaration is incompatible because parameter shapes are different (extension vs non-extension): - public header fun f4(name: String): Unit + public expect fun f4(name: String): Unit -impl fun String.f4() {} +actual fun String.f4() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:10:1: error: 'impl' function 'f5' has no corresponding 'header' declaration The following declaration is incompatible because parameter shapes are different (extension vs non-extension): - public header fun String.f5(): Unit + public expect fun String.f5(): Unit -impl fun f5(name: String) {} +actual fun f5(name: String) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:12:1: error: 'impl' function 'f6' has no corresponding 'header' declaration The following declaration is incompatible because number of value parameters is different: - public header fun f6(p1: String, p2: Int): Unit + public expect fun f6(p1: String, p2: Int): Unit -impl fun f6(p2: Int) {} +actual fun f6(p2: Int) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:14:1: error: 'impl' function 'f7' has no corresponding 'header' declaration The following declaration is incompatible because number of type parameters is different: - public header fun f7(): Unit + public expect fun f7(): Unit -impl fun f7() {} +actual fun f7() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:16:1: error: 'impl' function 'f8' has no corresponding 'header' declaration The following declaration is incompatible because visibility is different: - internal header fun f8(): Unit + internal expect fun f8(): Unit -public impl fun f8() {} +public actual fun f8() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:17:1: error: 'impl' function 'f9' has no corresponding 'header' declaration The following declaration is incompatible because visibility is different: - private header fun f9(): Unit + private expect fun f9(): Unit -internal impl fun f9() {} +internal actual fun f9() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:18:1: error: 'impl' function 'f10' has no corresponding 'header' declaration The following declaration is incompatible because visibility is different: - public header fun f10(): Unit + public expect fun f10(): Unit -private impl fun f10() {} +private actual fun f10() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:24:1: error: 'impl' function 'f14' has no corresponding 'header' declaration The following declaration is incompatible because some type parameter is reified in one declaration and non-reified in the other: - public header inline fun f14(): Unit + public expect inline fun f14(): Unit -impl inline fun f14() {} +actual inline fun f14() {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:27:1: error: 'impl' function 'f16' has no corresponding 'header' declaration The following declaration is incompatible because some parameters have default values: - public header fun f16(s: String): Unit + public expect fun f16(s: String): Unit -impl fun f16(s: String = "") {} +actual fun f16(s: String = "") {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:29:1: error: 'impl' function 'f17' has no corresponding 'header' declaration The following declaration is incompatible because some value parameter is vararg in one declaration and non-vararg in the other: - public header fun f17(vararg s: String): Unit + public expect fun f17(vararg s: String): Unit -impl fun f17(s: Array) {} +actual fun f17(s: Array) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:30:1: error: 'impl' function 'f18' has no corresponding 'header' declaration The following declaration is incompatible because some value parameter is vararg in one declaration and non-vararg in the other: - public header fun f18(s: Array): Unit + public expect fun f18(s: Array): Unit -impl fun f18(vararg s: String) {} +actual fun f18(vararg s: String) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:31:1: error: 'impl' function 'f19' has no corresponding 'header' declaration The following declaration is incompatible because some value parameter is crossinline in one declaration and not crossinline in the other: - public header inline fun f19(s: () -> Unit): Unit + public expect inline fun f19(s: () -> Unit): Unit -impl inline fun f19(crossinline s: () -> Unit) {} +actual inline fun f19(crossinline s: () -> Unit) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:32:1: error: 'impl' function 'f20' has no corresponding 'header' declaration The following declaration is incompatible because some value parameter is noinline in one declaration and not noinline in the other: - public header inline fun f20(s: () -> Unit): Unit + public expect inline fun f20(s: () -> Unit): Unit -impl inline fun f20(noinline s: () -> Unit) {} +actual inline fun f20(noinline s: () -> Unit) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:33:1: error: 'impl' function 'f21' has no corresponding 'header' declaration The following declaration is incompatible because parameter types are different: - public header fun f21(c: suspend Unit.() -> Unit): Unit + public expect fun f21(c: suspend Unit.() -> Unit): Unit -impl fun f21(c: Unit.() -> Unit) {} +actual fun f21(c: Unit.() -> Unit) {} ^ compiler/testData/multiplatform/incompatibleCallables/jvm.kt:34:1: error: 'impl' function 'f22' has no corresponding 'header' declaration The following declaration is incompatible because parameter types are different: - public header fun f22(c: Unit.() -> Unit): Unit + public expect fun f22(c: Unit.() -> Unit): Unit -impl fun f22(c: suspend Unit.() -> Unit) {} +actual fun f22(c: suspend Unit.() -> Unit) {} ^ diff --git a/compiler/testData/multiplatform/incompatibleClasses/common.kt b/compiler/testData/multiplatform/incompatibleClasses/common.kt index 8bf34161e26..cb2e82e4f0d 100644 --- a/compiler/testData/multiplatform/incompatibleClasses/common.kt +++ b/compiler/testData/multiplatform/incompatibleClasses/common.kt @@ -1,22 +1,22 @@ -header class PClass -header interface PInterface -header object PObject -header enum class PEnumClass -header annotation class PAnnotationClass +expect class PClass +expect interface PInterface +expect object PObject +expect enum class PEnumClass +expect annotation class PAnnotationClass -internal header object InternalObject -public header object PublicObject -private header object PrivateObject +internal expect object InternalObject +public expect object PublicObject +private expect object PrivateObject -open header class OpenClass -abstract header class AbstractClass -final header class FinalClass +open expect class OpenClass +abstract expect class AbstractClass +final expect class FinalClass -header class C1 -header class C2 -header class C3 +expect class C1 +expect class C2 +expect class C3 -header class C4 +expect class C4 -header abstract class ExtendsNumber : Number +expect abstract class ExtendsNumber : Number diff --git a/compiler/testData/multiplatform/incompatibleClasses/jvm.kt b/compiler/testData/multiplatform/incompatibleClasses/jvm.kt index 1d4e298a450..a3c9ba487c9 100644 --- a/compiler/testData/multiplatform/incompatibleClasses/jvm.kt +++ b/compiler/testData/multiplatform/incompatibleClasses/jvm.kt @@ -1,22 +1,22 @@ -impl interface PClass -impl object PInterface -impl enum class PObject -impl annotation class PEnumClass -impl class PAnnotationClass +actual interface PClass +actual object PInterface +actual enum class PObject +actual annotation class PEnumClass +actual class PAnnotationClass -private impl object InternalObject -internal impl object PublicObject -public impl object PrivateObject +private actual object InternalObject +internal actual object PublicObject +public actual object PrivateObject -final impl class OpenClass -open impl class AbstractClass -abstract impl class FinalClass +final actual class OpenClass +open actual class AbstractClass +abstract actual class FinalClass -impl class C1 -impl class C2 -impl class C3 +actual class C1 +actual class C2 +actual class C3 -impl typealias C4 = C4Impl +actual typealias C4 = C4Impl class C4Impl -impl abstract class ExtendsNumber : Any() +actual abstract class ExtendsNumber : Any() diff --git a/compiler/testData/multiplatform/incompatibleClasses/output.txt b/compiler/testData/multiplatform/incompatibleClasses/output.txt index 3346d03fadf..a6414332c58 100644 --- a/compiler/testData/multiplatform/incompatibleClasses/output.txt +++ b/compiler/testData/multiplatform/incompatibleClasses/output.txt @@ -5,87 +5,87 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:1:16: error: 'impl' interface 'PClass' has no corresponding 'header' declaration +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:1:18: error: 'impl' interface 'PClass' has no corresponding 'header' declaration The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public final header class PClass + public final expect class PClass -impl interface PClass - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:2:6: error: 'impl' object 'PInterface' has no corresponding 'header' declaration -The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public header interface PInterface - -impl object PInterface - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:3:17: error: 'impl' enum class 'PObject' has no corresponding 'header' declaration -The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public header object PObject - -impl enum class PObject - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:4:23: error: 'impl' annotation class 'PEnumClass' has no corresponding 'header' declaration -The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public final header enum class PEnumClass : Enum - -impl annotation class PEnumClass - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:5:12: error: 'impl' class 'PAnnotationClass' has no corresponding 'header' declaration -The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public final header annotation class PAnnotationClass : Annotation - -impl class PAnnotationClass - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:7:14: error: 'impl' object 'InternalObject' has no corresponding 'header' declaration -The following declaration is incompatible because visibility is different: - internal header object InternalObject - -private impl object InternalObject - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:8:15: error: 'impl' object 'PublicObject' has no corresponding 'header' declaration -The following declaration is incompatible because visibility is different: - public header object PublicObject - -internal impl object PublicObject - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:9:13: error: 'impl' object 'PrivateObject' has no corresponding 'header' declaration -The following declaration is incompatible because visibility is different: - private header object PrivateObject - -public impl object PrivateObject - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:11:18: error: 'impl' class 'OpenClass' has no corresponding 'header' declaration -The following declaration is incompatible because modality is different: - public open header class OpenClass - -final impl class OpenClass +actual interface PClass ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:12:17: error: 'impl' class 'AbstractClass' has no corresponding 'header' declaration -The following declaration is incompatible because modality is different: - public abstract header class AbstractClass +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:2:8: error: 'impl' object 'PInterface' has no corresponding 'header' declaration +The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): + public expect interface PInterface -open impl class AbstractClass +actual object PInterface + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:3:19: error: 'impl' enum class 'PObject' has no corresponding 'header' declaration +The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): + public expect object PObject + +actual enum class PObject + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:4:25: error: 'impl' annotation class 'PEnumClass' has no corresponding 'header' declaration +The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): + public final expect enum class PEnumClass : Enum + +actual annotation class PEnumClass + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:5:14: error: 'impl' class 'PAnnotationClass' has no corresponding 'header' declaration +The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): + public final expect annotation class PAnnotationClass : Annotation + +actual class PAnnotationClass + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:7:16: error: 'impl' object 'InternalObject' has no corresponding 'header' declaration +The following declaration is incompatible because visibility is different: + internal expect object InternalObject + +private actual object InternalObject + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:8:17: error: 'impl' object 'PublicObject' has no corresponding 'header' declaration +The following declaration is incompatible because visibility is different: + public expect object PublicObject + +internal actual object PublicObject ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:13:21: error: 'impl' class 'FinalClass' has no corresponding 'header' declaration +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:9:15: error: 'impl' object 'PrivateObject' has no corresponding 'header' declaration +The following declaration is incompatible because visibility is different: + private expect object PrivateObject + +public actual object PrivateObject + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:11:20: error: 'impl' class 'OpenClass' has no corresponding 'header' declaration The following declaration is incompatible because modality is different: - public final header class FinalClass + public open expect class OpenClass -abstract impl class FinalClass - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:15:12: error: 'impl' class 'C1' has no corresponding 'header' declaration +final actual class OpenClass + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:12:19: error: 'impl' class 'AbstractClass' has no corresponding 'header' declaration +The following declaration is incompatible because modality is different: + public abstract expect class AbstractClass + +open actual class AbstractClass + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:13:23: error: 'impl' class 'FinalClass' has no corresponding 'header' declaration +The following declaration is incompatible because modality is different: + public final expect class FinalClass + +abstract actual class FinalClass + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:15:14: error: 'impl' class 'C1' has no corresponding 'header' declaration The following declaration is incompatible because number of type parameters is different: - public final header class C1 + public final expect class C1 -impl class C1 - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:16:12: error: 'impl' class 'C2' has no corresponding 'header' declaration +actual class C1 + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:16:14: error: 'impl' class 'C2' has no corresponding 'header' declaration The following declaration is incompatible because declaration-site variances of type parameters are different: - public final header class C2 + public final expect class C2 -impl class C2 - ^ -compiler/testData/multiplatform/incompatibleClasses/jvm.kt:22:21: error: 'impl' class 'ExtendsNumber' has no corresponding 'header' declaration -The following declaration is incompatible because some supertypes are missing in the implementation: - public abstract header class ExtendsNumber : Number +actual class C2 + ^ +compiler/testData/multiplatform/incompatibleClasses/jvm.kt:22:23: error: 'impl' class 'ExtendsNumber' has no corresponding 'header' declaration +The following declaration is incompatible because some supertypes are missing in the actual declaration: + public abstract expect class ExtendsNumber : Number -impl abstract class ExtendsNumber : Any() - ^ +actual abstract class ExtendsNumber : Any() + ^ diff --git a/compiler/testData/multiplatform/incompatibleFunctions/common.kt b/compiler/testData/multiplatform/incompatibleFunctions/common.kt index 2d7f3e82781..6cf28f9c0eb 100644 --- a/compiler/testData/multiplatform/incompatibleFunctions/common.kt +++ b/compiler/testData/multiplatform/incompatibleFunctions/common.kt @@ -1,9 +1,9 @@ -header infix fun Int.plus(s: CharSequence): Int +expect infix fun Int.plus(s: CharSequence): Int -header operator fun Double.times(x: CharArray) +expect operator fun Double.times(x: CharArray) -header external fun f1() +expect external fun f1() -header inline fun f2() +expect inline fun f2() -header tailrec fun f3() +expect tailrec fun f3() diff --git a/compiler/testData/multiplatform/incompatibleFunctions/jvm.kt b/compiler/testData/multiplatform/incompatibleFunctions/jvm.kt index 51cab42fe40..f4f11733cc8 100644 --- a/compiler/testData/multiplatform/incompatibleFunctions/jvm.kt +++ b/compiler/testData/multiplatform/incompatibleFunctions/jvm.kt @@ -1,9 +1,9 @@ -impl fun Int.plus(s: CharSequence): Int = 0 +actual fun Int.plus(s: CharSequence): Int = 0 -impl fun Double.times(x: CharArray) {} +actual fun Double.times(x: CharArray) {} -impl fun f1() {} +actual fun f1() {} -impl fun f2() {} +actual fun f2() {} -impl fun f3() {} +actual fun f3() {} diff --git a/compiler/testData/multiplatform/incompatibleFunctions/output.txt b/compiler/testData/multiplatform/incompatibleFunctions/output.txt index 448d67e8ee6..a1fb3e44cff 100644 --- a/compiler/testData/multiplatform/incompatibleFunctions/output.txt +++ b/compiler/testData/multiplatform/incompatibleFunctions/output.txt @@ -6,32 +6,32 @@ Output: Exit code: COMPILATION_ERROR Output: compiler/testData/multiplatform/incompatibleFunctions/jvm.kt:1:1: error: 'impl' function 'plus' has no corresponding 'header' declaration -The following declaration is incompatible because some modifiers on header declaration are missing on the implementation (external, infix, inline, operator, tailrec): - public infix header fun Int.plus(s: CharSequence): Int +The following declaration is incompatible because some modifiers on expected declaration are missing on the actual one (external, infix, inline, operator, tailrec): + public infix expect fun Int.plus(s: CharSequence): Int -impl fun Int.plus(s: CharSequence): Int = 0 +actual fun Int.plus(s: CharSequence): Int = 0 ^ compiler/testData/multiplatform/incompatibleFunctions/jvm.kt:3:1: error: 'impl' function 'times' has no corresponding 'header' declaration -The following declaration is incompatible because some modifiers on header declaration are missing on the implementation (external, infix, inline, operator, tailrec): - public operator header fun Double.times(x: CharArray): Unit +The following declaration is incompatible because some modifiers on expected declaration are missing on the actual one (external, infix, inline, operator, tailrec): + public operator expect fun Double.times(x: CharArray): Unit -impl fun Double.times(x: CharArray) {} +actual fun Double.times(x: CharArray) {} ^ compiler/testData/multiplatform/incompatibleFunctions/jvm.kt:5:1: error: 'impl' function 'f1' has no corresponding 'header' declaration -The following declaration is incompatible because some modifiers on header declaration are missing on the implementation (external, infix, inline, operator, tailrec): - public external header fun f1(): Unit +The following declaration is incompatible because some modifiers on expected declaration are missing on the actual one (external, infix, inline, operator, tailrec): + public external expect fun f1(): Unit -impl fun f1() {} +actual fun f1() {} ^ compiler/testData/multiplatform/incompatibleFunctions/jvm.kt:7:1: error: 'impl' function 'f2' has no corresponding 'header' declaration -The following declaration is incompatible because some modifiers on header declaration are missing on the implementation (external, infix, inline, operator, tailrec): - public header inline fun f2(): Unit +The following declaration is incompatible because some modifiers on expected declaration are missing on the actual one (external, infix, inline, operator, tailrec): + public expect inline fun f2(): Unit -impl fun f2() {} +actual fun f2() {} ^ compiler/testData/multiplatform/incompatibleFunctions/jvm.kt:9:1: error: 'impl' function 'f3' has no corresponding 'header' declaration -The following declaration is incompatible because some modifiers on header declaration are missing on the implementation (external, infix, inline, operator, tailrec): - public header tailrec fun f3(): Unit +The following declaration is incompatible because some modifiers on expected declaration are missing on the actual one (external, infix, inline, operator, tailrec): + public expect tailrec fun f3(): Unit -impl fun f3() {} +actual fun f3() {} ^ diff --git a/compiler/testData/multiplatform/incompatibleNestedClasses/common.kt b/compiler/testData/multiplatform/incompatibleNestedClasses/common.kt index aaa50f224f4..e2042331f3f 100644 --- a/compiler/testData/multiplatform/incompatibleNestedClasses/common.kt +++ b/compiler/testData/multiplatform/incompatibleNestedClasses/common.kt @@ -1,19 +1,19 @@ -header class O1 { +expect class O1 { class N1 interface N2 object N3 } -header class O2 { +expect class O2 { class N2 inner class I2 } -header class O3 { +expect class O3 { object Companion companion object Factory } -header class O4 { +expect class O4 { companion object } diff --git a/compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt b/compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt index 30f96386ac6..b0018cb3f86 100644 --- a/compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt +++ b/compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt @@ -1,19 +1,19 @@ -impl class O1 { - impl interface N1 - impl object N2 - impl class N3 +actual class O1 { + actual interface N1 + actual object N2 + actual class N3 } -impl class O2 { - impl inner class N2 - impl class I2 +actual class O2 { + actual inner class N2 + actual class I2 } -impl class O3 { - impl companion object {} - impl object Factory +actual class O3 { + actual companion object {} + actual object Factory } -impl class O4 { - impl object Companion +actual class O4 { + actual object Companion } diff --git a/compiler/testData/multiplatform/incompatibleNestedClasses/output.txt b/compiler/testData/multiplatform/incompatibleNestedClasses/output.txt index d431d93e97e..96598e37169 100644 --- a/compiler/testData/multiplatform/incompatibleNestedClasses/output.txt +++ b/compiler/testData/multiplatform/incompatibleNestedClasses/output.txt @@ -5,51 +5,51 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:2:20: error: 'impl' interface 'N1' has no corresponding 'header' declaration +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:2:22: error: 'impl' interface 'N1' has no corresponding 'header' declaration The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public final header class N1 + public final expect class N1 - impl interface N1 - ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:3:10: error: 'impl' object 'N2' has no corresponding 'header' declaration -The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public header interface N2 - - impl object N2 - ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:4:16: error: 'impl' class 'N3' has no corresponding 'header' declaration -The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): - public header object N3 - - impl class N3 - ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:8:22: error: 'impl' class 'N2' has no corresponding 'header' declaration -The following declaration is incompatible because modifiers are different (companion, inner): - public final header class N2 - - impl inner class N2 + actual interface N1 ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:9:16: error: 'impl' class 'I2' has no corresponding 'header' declaration -The following declaration is incompatible because modifiers are different (companion, inner): - public final header inner class I2 +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:3:12: error: 'impl' object 'N2' has no corresponding 'header' declaration +The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): + public expect interface N2 - impl class I2 - ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:13:20: error: 'impl' companion object 'Companion' has no corresponding 'header' declaration -The following declaration is incompatible because modifiers are different (companion, inner): - public header object Companion + actual object N2 + ^ +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:4:18: error: 'impl' class 'N3' has no corresponding 'header' declaration +The following declaration is incompatible because class kinds are different (class, interface, object, enum, annotation): + public expect object N3 - impl companion object {} - ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:14:10: error: 'impl' object 'Factory' has no corresponding 'header' declaration + actual class N3 + ^ +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:8:24: error: 'impl' class 'N2' has no corresponding 'header' declaration The following declaration is incompatible because modifiers are different (companion, inner): - public header companion object Factory + public final expect class N2 - impl object Factory - ^ -compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:18:10: error: 'impl' object 'Companion' has no corresponding 'header' declaration + actual inner class N2 + ^ +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:9:18: error: 'impl' class 'I2' has no corresponding 'header' declaration The following declaration is incompatible because modifiers are different (companion, inner): - public header companion object + public final expect inner class I2 - impl object Companion - ^ + actual class I2 + ^ +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:13:22: error: 'impl' companion object 'Companion' has no corresponding 'header' declaration +The following declaration is incompatible because modifiers are different (companion, inner): + public expect object Companion + + actual companion object {} + ^ +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:14:12: error: 'impl' object 'Factory' has no corresponding 'header' declaration +The following declaration is incompatible because modifiers are different (companion, inner): + public expect companion object Factory + + actual object Factory + ^ +compiler/testData/multiplatform/incompatibleNestedClasses/jvm.kt:18:12: error: 'impl' object 'Companion' has no corresponding 'header' declaration +The following declaration is incompatible because modifiers are different (companion, inner): + public expect companion object + + actual object Companion + ^ diff --git a/compiler/testData/multiplatform/incompatibleProperties/common.kt b/compiler/testData/multiplatform/incompatibleProperties/common.kt index 0a3059997bb..982c71b2e38 100644 --- a/compiler/testData/multiplatform/incompatibleProperties/common.kt +++ b/compiler/testData/multiplatform/incompatibleProperties/common.kt @@ -1,2 +1,2 @@ -header val pval: String -header var pvar: String +expect val pval: String +expect var pvar: String diff --git a/compiler/testData/multiplatform/incompatibleProperties/jvm.kt b/compiler/testData/multiplatform/incompatibleProperties/jvm.kt index 34770ea3eb5..3138741e50b 100644 --- a/compiler/testData/multiplatform/incompatibleProperties/jvm.kt +++ b/compiler/testData/multiplatform/incompatibleProperties/jvm.kt @@ -1,2 +1,2 @@ -impl var pval: String = "" -impl val pvar: String = "" +actual var pval: String = "" +actual val pvar: String = "" diff --git a/compiler/testData/multiplatform/incompatibleProperties/output.txt b/compiler/testData/multiplatform/incompatibleProperties/output.txt index e1b30fbbd11..33e10b497bf 100644 --- a/compiler/testData/multiplatform/incompatibleProperties/output.txt +++ b/compiler/testData/multiplatform/incompatibleProperties/output.txt @@ -7,13 +7,13 @@ Exit code: COMPILATION_ERROR Output: compiler/testData/multiplatform/incompatibleProperties/jvm.kt:1:1: error: 'impl' property 'pval' has no corresponding 'header' declaration The following declaration is incompatible because property kinds are different (val vs var): - public header val pval: String + public expect val pval: String -impl var pval: String = "" +actual var pval: String = "" ^ compiler/testData/multiplatform/incompatibleProperties/jvm.kt:2:1: error: 'impl' property 'pvar' has no corresponding 'header' declaration The following declaration is incompatible because property kinds are different (val vs var): - public header var pvar: String + public expect var pvar: String -impl val pvar: String = "" +actual val pvar: String = "" ^ diff --git a/compiler/testData/multiplatform/incorrectImplInClass/common.kt b/compiler/testData/multiplatform/incorrectImplInClass/common.kt index b7b0f1b26c6..2a3a31a2dec 100644 --- a/compiler/testData/multiplatform/incorrectImplInClass/common.kt +++ b/compiler/testData/multiplatform/incorrectImplInClass/common.kt @@ -1 +1 @@ -header class Foo +expect class Foo diff --git a/compiler/testData/multiplatform/incorrectImplInClass/jvm.kt b/compiler/testData/multiplatform/incorrectImplInClass/jvm.kt index 229461d8624..2305e80487a 100644 --- a/compiler/testData/multiplatform/incorrectImplInClass/jvm.kt +++ b/compiler/testData/multiplatform/incorrectImplInClass/jvm.kt @@ -1,9 +1,9 @@ -impl class Foo impl constructor() { - impl constructor(s: String) : this() +actual class Foo actual constructor() { + actual constructor(s: String) : this() - impl fun nonPlatformFun() {} + actual fun nonPlatformFun() {} - impl val nonPlatformVal = "" + actual val nonPlatformVal = "" private fun nonImplFun() {} private val nonImplVal = "" diff --git a/compiler/testData/multiplatform/incorrectImplInClass/output.txt b/compiler/testData/multiplatform/incorrectImplInClass/output.txt index 84d09229ff2..22bf6221699 100644 --- a/compiler/testData/multiplatform/incorrectImplInClass/output.txt +++ b/compiler/testData/multiplatform/incorrectImplInClass/output.txt @@ -5,15 +5,15 @@ Output: -- JVM -- Exit code: COMPILATION_ERROR Output: -compiler/testData/multiplatform/incorrectImplInClass/jvm.kt:2:10: error: 'impl' constructor of 'Foo' has no corresponding 'header' declaration +compiler/testData/multiplatform/incorrectImplInClass/jvm.kt:2:12: error: 'impl' constructor of 'Foo' has no corresponding 'header' declaration The following declaration is incompatible because number of value parameters is different: public constructor Foo() - impl constructor(s: String) : this() - ^ + actual constructor(s: String) : this() + ^ compiler/testData/multiplatform/incorrectImplInClass/jvm.kt:4:5: error: 'impl' function 'nonPlatformFun' has no corresponding 'header' declaration - impl fun nonPlatformFun() {} + actual fun nonPlatformFun() {} ^ compiler/testData/multiplatform/incorrectImplInClass/jvm.kt:6:5: error: 'impl' property 'nonPlatformVal' has no corresponding 'header' declaration - impl val nonPlatformVal = "" + actual val nonPlatformVal = "" ^ diff --git a/compiler/testData/multiplatform/missingOverload/common.kt b/compiler/testData/multiplatform/missingOverload/common.kt index 4d4a5877c58..bb4a6f6f31e 100644 --- a/compiler/testData/multiplatform/missingOverload/common.kt +++ b/compiler/testData/multiplatform/missingOverload/common.kt @@ -1,9 +1,9 @@ -header class Foo { +expect class Foo { fun f(s: String) fun f(a: Any) } -header fun g(s: String) +expect fun g(s: String) -header fun g(a: Any) +expect fun g(a: Any) diff --git a/compiler/testData/multiplatform/missingOverload/jvm.kt b/compiler/testData/multiplatform/missingOverload/jvm.kt index 87b6748ce58..b30f307c82c 100644 --- a/compiler/testData/multiplatform/missingOverload/jvm.kt +++ b/compiler/testData/multiplatform/missingOverload/jvm.kt @@ -1,5 +1,5 @@ -impl class Foo { - impl fun f(s: String) {} +actual class Foo { + actual fun f(s: String) {} } -impl fun g(a: Any) {} +actual fun g(a: Any) {} diff --git a/compiler/testData/multiplatform/missingOverload/output.txt b/compiler/testData/multiplatform/missingOverload/output.txt index e7d87757674..3fa19d59f7f 100644 --- a/compiler/testData/multiplatform/missingOverload/output.txt +++ b/compiler/testData/multiplatform/missingOverload/output.txt @@ -7,16 +7,16 @@ Exit code: COMPILATION_ERROR Output: compiler/testData/multiplatform/missingOverload/common.kt:7:1: error: 'header' function 'g' has no implementation in module The following declaration is incompatible because parameter types are different: - public impl fun g(a: Any): Unit + public actual fun g(a: Any): Unit -header fun g(s: String) +expect fun g(s: String) ^ -compiler/testData/multiplatform/missingOverload/jvm.kt:1:12: error: 'impl' class 'Foo' has no implementation of 'header' class members: +compiler/testData/multiplatform/missingOverload/jvm.kt:1:14: error: 'impl' class 'Foo' has no implementation of 'header' class members: - public final header fun f(a: Any): Unit + public final expect fun f(a: Any): Unit The following declaration is incompatible because parameter types are different: - public final impl fun f(s: String): Unit + public final actual fun f(s: String): Unit -impl class Foo { - ^ +actual class Foo { + ^ diff --git a/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/common.kt b/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/common.kt index 13d87726556..f3260d13279 100644 --- a/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/common.kt +++ b/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/common.kt @@ -1,3 +1,3 @@ package test -header abstract class Writer protected constructor() +expect abstract class Writer protected constructor() diff --git a/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/jvm.kt b/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/jvm.kt index 23eb7e686dc..ca8f8771c07 100644 --- a/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/jvm.kt +++ b/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/jvm.kt @@ -1,3 +1,3 @@ package test -impl typealias Writer = java.io.Writer +actual typealias Writer = java.io.Writer diff --git a/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/output.txt b/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/output.txt index d269017c4d2..9409841c961 100644 --- a/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/output.txt +++ b/compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeAlias/output.txt @@ -14,5 +14,5 @@ compiler/testData/multiplatform/regressions/incompatibleClassScopesWithImplTypeA The following declaration is incompatible because number of value parameters is different: protected/*protected and package*/ constructor Writer(p0: Any!) -impl typealias Writer = java.io.Writer +actual typealias Writer = java.io.Writer ^ diff --git a/compiler/testData/multiplatform/regressions/kt17001/common.kt b/compiler/testData/multiplatform/regressions/kt17001/common.kt index 9a3594802be..c488bf4bf72 100644 --- a/compiler/testData/multiplatform/regressions/kt17001/common.kt +++ b/compiler/testData/multiplatform/regressions/kt17001/common.kt @@ -1,7 +1,7 @@ package test -header fun stringToByteArray(str: String): ByteArray +expect fun stringToByteArray(str: String): ByteArray -header var prop: String +expect var prop: String fun ttt() {} diff --git a/compiler/testData/multiplatform/regressions/kt17001/jvm.kt b/compiler/testData/multiplatform/regressions/kt17001/jvm.kt index 74db2f31c55..8fcb0bc6933 100644 --- a/compiler/testData/multiplatform/regressions/kt17001/jvm.kt +++ b/compiler/testData/multiplatform/regressions/kt17001/jvm.kt @@ -1,5 +1,5 @@ package test -impl fun stringToByteArray(str: String): ByteArray = byteArrayOf() +actual fun stringToByteArray(str: String): ByteArray = byteArrayOf() -impl var prop: String = "" +actual var prop: String = "" diff --git a/compiler/testData/multiplatform/simple/common.kt b/compiler/testData/multiplatform/simple/common.kt index e0e045dc4dc..414e58ab2e3 100644 --- a/compiler/testData/multiplatform/simple/common.kt +++ b/compiler/testData/multiplatform/simple/common.kt @@ -1,4 +1,4 @@ -header class Printer { +expect class Printer { fun print(message: String) } diff --git a/compiler/testData/multiplatform/simple/js.kt b/compiler/testData/multiplatform/simple/js.kt index 7849bab9754..25bdea6c338 100644 --- a/compiler/testData/multiplatform/simple/js.kt +++ b/compiler/testData/multiplatform/simple/js.kt @@ -1,5 +1,5 @@ -impl class Printer { - impl fun print(message: String) { +actual class Printer { + actual fun print(message: String) { println("JS says: " + message) } } diff --git a/compiler/testData/multiplatform/simple/jvm.kt b/compiler/testData/multiplatform/simple/jvm.kt index 6dc952b2562..9c15bacaef7 100644 --- a/compiler/testData/multiplatform/simple/jvm.kt +++ b/compiler/testData/multiplatform/simple/jvm.kt @@ -1,5 +1,5 @@ -impl class Printer { - impl fun print(message: String) { +actual class Printer { + actual fun print(message: String) { println("JVM says: " + message) } } diff --git a/compiler/testData/multiplatform/simpleNoImplKeywordOnTopLevelFunction/common.kt b/compiler/testData/multiplatform/simpleNoImplKeywordOnTopLevelFunction/common.kt index ca0a00ce950..caeefea56a4 100644 --- a/compiler/testData/multiplatform/simpleNoImplKeywordOnTopLevelFunction/common.kt +++ b/compiler/testData/multiplatform/simpleNoImplKeywordOnTopLevelFunction/common.kt @@ -1,3 +1,3 @@ package test -header fun foo(s: String): Array +expect fun foo(s: String): Array