Support 'expect final' -> 'actual open' for callables
#KT-17944
This commit is contained in:
+27
@@ -0,0 +1,27 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class Foo {
|
||||
fun f()
|
||||
val v: String
|
||||
}
|
||||
|
||||
expect class Bar {
|
||||
fun g()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual open class Foo(actual open val v: String) {
|
||||
actual open fun f() {}
|
||||
}
|
||||
|
||||
actual typealias Bar = JavaBar
|
||||
|
||||
// FILE: JavaBar.java
|
||||
|
||||
public class JavaBar {
|
||||
public void g() {}
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
// -- Module: <m1-common> --
|
||||
package
|
||||
|
||||
public final expect class Bar {
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final expect fun g(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final expect class Foo {
|
||||
public expect final val v: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final expect fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
|
||||
// -- Module: <m2-jvm> --
|
||||
package
|
||||
|
||||
public open actual class Foo {
|
||||
public constructor Foo(/*0*/ v: kotlin.String)
|
||||
public actual open val v: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open actual fun f(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public open class JavaBar {
|
||||
public constructor JavaBar()
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open fun g(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
public typealias Bar = JavaBar
|
||||
+3
-3
@@ -23,13 +23,13 @@ open class Open {
|
||||
}
|
||||
|
||||
actual open class Foo1 : Open() {
|
||||
override val <!ACTUAL_WITHOUT_EXPECT!>x<!> = super.x
|
||||
override val <!ACTUAL_MISSING!>x<!> = super.x
|
||||
}
|
||||
|
||||
actual open class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>Foo2<!> : Open()
|
||||
actual open class Foo2 : Open()
|
||||
|
||||
open class WithFinal {
|
||||
val x = "42"
|
||||
}
|
||||
|
||||
actual open class Foo3 : WithFinal()
|
||||
actual open class Foo3 : WithFinal()
|
||||
|
||||
Reference in New Issue
Block a user