8d3f6f1ce7
For each platform declaration, there must be at least one impl declaration in the module with the compatible signature; similarly, for each impl declaration, there must be at least one platform declaration with the compatible signature. Note that currently the presence of the 'impl' modifier is not checked yet. Also, the sad fact is that if you have platform and impl declarations which are not compatible, you get two errors: on the platform delcaration and on the impl declaration. This needs to be addressed as well
207 lines
12 KiB
Plaintext
Vendored
207 lines
12 KiB
Plaintext
Vendored
-- Common --
|
|
Exit code: OK
|
|
Output:
|
|
|
|
-- JVM --
|
|
Exit code: COMPILATION_ERROR
|
|
Output:
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:1:1: error: no definition is found for platform declaration 'f1'
|
|
The following declaration is incompatible because return type is different:
|
|
public impl fun f1(): String
|
|
|
|
platform fun f1()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:3:1: error: no definition is found for platform declaration 'f2'
|
|
The following declaration is incompatible because parameter names are different:
|
|
public impl fun f2(otherName: String): Unit
|
|
|
|
platform fun f2(name: String)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:5:1: error: no definition is found for platform declaration 'f3'
|
|
The following declaration is incompatible because parameter types are different:
|
|
public impl fun f3(name: Double): Unit
|
|
|
|
platform fun f3(name: String)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:6:1: error: no definition is found for platform declaration 'f3ext'
|
|
The following declaration is incompatible because parameter types are different:
|
|
public impl fun Double.f3ext(): Unit
|
|
|
|
platform fun String.f3ext()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:8:1: error: no definition is found for platform declaration 'f4'
|
|
The following declaration is incompatible because parameter shapes are different (extension vs non-extension):
|
|
public impl fun String.f4(): Unit
|
|
|
|
platform fun f4(name: String)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:10:1: error: no definition is found for platform declaration 'f5'
|
|
The following declaration is incompatible because parameter shapes are different (extension vs non-extension):
|
|
public impl fun f5(name: String): Unit
|
|
|
|
platform fun String.f5()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:12:1: error: no definition is found for platform declaration 'f6'
|
|
The following declaration is incompatible because number of value parameters is different:
|
|
public impl fun f6(p2: Int): Unit
|
|
|
|
platform fun f6(p1: String, p2: Int)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:14:1: error: no definition is found for platform declaration 'f7'
|
|
The following declaration is incompatible because number of type parameters is different:
|
|
public impl fun <K, V> f7(): Unit
|
|
|
|
platform fun <T> f7()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:16:1: error: no definition is found for platform declaration 'f8'
|
|
The following declaration is incompatible because visibility is different:
|
|
public impl fun f8(): Unit
|
|
|
|
internal platform fun f8()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:17:1: error: no definition is found for platform declaration 'f9'
|
|
The following declaration is incompatible because visibility is different:
|
|
internal impl fun f9(): Unit
|
|
|
|
private platform fun f9()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:18:1: error: no definition is found for platform declaration 'f10'
|
|
The following declaration is incompatible because visibility is different:
|
|
private impl fun f10(): Unit
|
|
|
|
public platform fun f10()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:24:1: error: no definition is found for platform declaration 'f14'
|
|
The following declaration is incompatible because some type parameter is reified in one declaration and non-reified in the other:
|
|
public inline impl fun <reified X> f14(): Unit
|
|
|
|
platform inline fun <X> f14()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:25:1: error: no definition is found for platform declaration 'f15'
|
|
The following declaration is incompatible because some type parameter is reified in one declaration and non-reified in the other:
|
|
public inline impl fun <Y> f15(): Unit
|
|
|
|
platform inline fun <reified Y> f15()
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:27:1: error: no definition is found for platform declaration 'f16'
|
|
The following declaration is incompatible because some parameters have default values:
|
|
public impl fun f16(s: String = ...): Unit
|
|
|
|
platform fun f16(s: String)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:29:1: error: no definition is found for platform declaration 'f17'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public impl fun f17(s: Array<out String>): Unit
|
|
|
|
platform fun f17(vararg s: String)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:30:1: error: no definition is found for platform declaration 'f18'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public impl fun f18(vararg s: String): Unit
|
|
|
|
platform fun f18(s: Array<out String>)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:31:1: error: no definition is found for platform declaration 'f19'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public inline impl fun f19(s: () -> Unit): Unit
|
|
|
|
platform inline fun f19(crossinline s: () -> Unit)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:32:1: error: no definition is found for platform declaration 'f20'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public inline impl fun f20(crossinline s: () -> Unit): Unit
|
|
|
|
platform inline fun f20(s: () -> Unit)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:33:1: error: no definition is found for platform declaration 'f21'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public inline impl fun f21(s: () -> Unit): Unit
|
|
|
|
platform inline fun f21(noinline s: () -> Unit)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:34:1: error: no definition is found for platform declaration 'f22'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public inline impl fun f22(noinline s: () -> Unit): Unit
|
|
|
|
platform inline fun f22(s: () -> Unit)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:35:1: error: no definition is found for platform declaration 'f23'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public impl fun f23(c: Unit.() -> Continuation<Unit>): Unit
|
|
|
|
platform fun f23(coroutine c: Unit.() -> Continuation<Unit>)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/common.kt:36:1: error: no definition is found for platform declaration 'f24'
|
|
The following declaration is incompatible because parameter modifiers are different (vararg, coroutine, crossinline, noinline):
|
|
public impl fun f24(coroutine c: Unit.() -> Continuation<Unit>): Unit
|
|
|
|
platform fun f24(c: Unit.() -> Continuation<Unit>)
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:1:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f1(): String = ""
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:3:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f2(otherName: String) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:5:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f3(name: Double) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:6:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun Double.f3ext() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:8:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun String.f4() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:10:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f5(name: String) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:12:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f6(p2: Int) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:14:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun <K, V> f7() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:16:8: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
public impl fun f8() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:17:10: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
internal impl fun f9() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:18:9: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
private impl fun f10() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:24:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl inline fun <reified X> f14() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:25:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl inline fun <Y> f15() {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:27:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f16(s: String = "") {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:29:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f17(s: Array<out String>) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:30:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f18(vararg s: String) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:31:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl inline fun f19(s: () -> Unit) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:32:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl inline fun f20(crossinline s: () -> Unit) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:33:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl inline fun f21(s: () -> Unit) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:34:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl inline fun f22(noinline s: () -> Unit) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:35:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f23(c: Unit.() -> Continuation<Unit>) {}
|
|
^
|
|
compiler/testData/multiplatform/incompatibleCallables/jvm.kt:36:1: error: modifier 'impl' is only applicable to members that are initially declared in platform-independent code
|
|
impl fun f24(coroutine c: Unit.() -> Continuation<Unit>) {}
|
|
^
|
|
|