[FIR] Implement EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE
^KT-60367 Fixed KT review: https://jetbrains.team/p/kt/reviews/14064/timeline IJ review: https://jetbrains.team/p/ij/reviews/124657/timeline
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>B<!>
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>B<!>
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class A<!>
|
||||
actual <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class B<!>
|
||||
actual <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class B<!>
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class A
|
||||
|
||||
// FILE: common2.kt
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>B<!>
|
||||
|
||||
// FILE: jvm2.kt
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>B<!>
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class A<!>
|
||||
|
||||
// FILE: common2.kt
|
||||
actual <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class B<!>
|
||||
|
||||
// FILE: jvm2.kt
|
||||
actual <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class B<!>
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class A
|
||||
|
||||
// FILE: common2.kt
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>A<!>
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
expect class B
|
||||
|
||||
// FILE: jvm2.kt
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>B<!>
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: common2.kt
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>() {}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: jvm2.kt
|
||||
actual fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>() {}
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect fun <!AMBIGUOUS_ACTUALS{JVM}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: common2.kt
|
||||
actual fun <!AMBIGUOUS_EXPECTS{JVM}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{JVM}!>main<!>() {}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
expect fun <!AMBIGUOUS_ACTUALS, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: jvm2.kt
|
||||
actual fun <!AMBIGUOUS_EXPECTS, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>() {}
|
||||
+18
-18
@@ -1,67 +1,67 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
expect class CommonClass {
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>CommonClass<!> {
|
||||
fun memberFun()
|
||||
val memberProp: Int
|
||||
class Nested
|
||||
inner class Inner
|
||||
}
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>CommonClass<!> {
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>CommonClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT!>Inner<!>
|
||||
}
|
||||
|
||||
expect fun commonFun()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>commonFun<!>() {}
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonFun<!>()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonFun<!>() {}
|
||||
|
||||
expect val commonProperty: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>commonProperty<!>: String
|
||||
expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonProperty<!>: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>commonProperty<!>: String
|
||||
get() = "hello"
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
expect class IntermediateClass {
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>IntermediateClass<!> {
|
||||
fun memberFun()
|
||||
val memberProp: Int
|
||||
class Nested
|
||||
inner class Inner
|
||||
}
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>IntermediateClass<!> {
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>IntermediateClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT!>Inner<!>
|
||||
}
|
||||
|
||||
expect fun intermediateFun()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>intermediateFun<!>() {}
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateFun<!>()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateFun<!>() {}
|
||||
|
||||
expect val intermediateProperty: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>intermediateProperty<!>: String
|
||||
expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateProperty<!>: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>intermediateProperty<!>: String
|
||||
get() = "hello"
|
||||
|
||||
// MODULE: main()()(intermediate)
|
||||
|
||||
expect class PlatformClass {
|
||||
expect class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>PlatformClass<!> {
|
||||
fun memberFun()
|
||||
val memberProp: Int
|
||||
class Nested
|
||||
inner class Inner
|
||||
}
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>PlatformClass<!> {
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>PlatformClass<!> {
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>memberFun<!>() {}
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>memberProp<!>: Int = 42
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>Nested<!>
|
||||
actual inner class <!ACTUAL_WITHOUT_EXPECT!>Inner<!>
|
||||
}
|
||||
|
||||
expect fun platformFun()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>platformFun<!>() {}
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>platformFun<!>()
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>platformFun<!>() {}
|
||||
|
||||
expect val platformProperty: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT!>platformProperty<!>: String
|
||||
expect val <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>platformProperty<!>: String
|
||||
actual val <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>platformProperty<!>: String
|
||||
get() = "hello"
|
||||
|
||||
+2
-2
@@ -13,10 +13,10 @@ val callableKind: Int = 1
|
||||
expect fun <T> typeParameterCount()
|
||||
fun typeParameterCount() {}
|
||||
|
||||
expect enum class EnumEntries {
|
||||
expect enum class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>EnumEntries<!> {
|
||||
ONE, TWO;
|
||||
}
|
||||
actual enum class <!ACTUAL_WITHOUT_EXPECT!>EnumEntries<!> {
|
||||
actual enum class <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>EnumEntries<!> {
|
||||
ONE;
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>expect<!> fun foo1()
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>expect<!> val bar1 = <!EXPECTED_PROPERTY_INITIALIZER!>42<!>
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>expect<!> class ImplicitExpect {
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>expect<!> class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>ImplicitExpect<!> {
|
||||
fun foo()
|
||||
val x: Int
|
||||
class Inner
|
||||
@@ -16,7 +16,7 @@
|
||||
<!MUST_BE_INITIALIZED!><!NOT_A_MULTIPLATFORM_COMPILATION!>actual<!> val bar2: Int<!>
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>actual<!> interface Baz2
|
||||
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>actual<!> class ImplicitExpect {
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>actual<!> class <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>ImplicitExpect<!> {
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>actual<!> fun foo() {
|
||||
}
|
||||
<!NOT_A_MULTIPLATFORM_COMPILATION!>actual<!> val x: Int = 0
|
||||
|
||||
Reference in New Issue
Block a user