Allow open callable members in expect interfaces

#KT-42094 fixed
This commit is contained in:
sebastian.sellmair
2020-11-06 17:03:30 +01:00
committed by Sebastian Sellmair
parent bf0156f7c6
commit 06cb64bb51
20 changed files with 289 additions and 10 deletions
@@ -0,0 +1,25 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
// TODO: .fir.kt version is just a stub.
expect interface My {
open fun openFunPositive()
open fun openFunNegative()
abstract fun abstractFun()
open val openValPositive: Int
open val openValNegative: Int
abstract val abstractVal: Int
}
// MODULE: m1-jvm(m1-common)
// FILE: jvm.kt
actual interface My {
actual fun openFunPositive() = Unit
actual fun openFunNegative()
actual fun abstractFun()
actual val openValPositive: Int get() = 0
actual val openValNegative: Int
actual val abstractVal: Int
}
@@ -0,0 +1,25 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
// TODO: .fir.kt version is just a stub.
expect interface My {
open fun openFunPositive()
open fun openFunNegative()
abstract fun abstractFun()
open val openValPositive: Int
open val openValNegative: Int
abstract val abstractVal: Int
}
// MODULE: m1-jvm(m1-common)
// FILE: jvm.kt
actual interface My {
actual fun openFunPositive() = Unit
actual fun <!ACTUAL_WITHOUT_EXPECT!>openFunNegative<!>()
actual fun abstractFun()
actual val openValPositive: Int get() = 0
actual val <!ACTUAL_WITHOUT_EXPECT!>openValNegative<!>: Int
actual val abstractVal: Int
}
@@ -0,0 +1,30 @@
// -- Module: <m1-common> --
package
public expect interface My {
public expect abstract val abstractVal: kotlin.Int
public expect open val openValNegative: kotlin.Int
public expect open val openValPositive: kotlin.Int
public abstract expect fun abstractFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open expect fun openFunNegative(): kotlin.Unit
public open expect fun openFunPositive(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
// -- Module: <m1-jvm> --
package
public actual interface My {
public actual abstract val abstractVal: kotlin.Int
public actual abstract val openValNegative: kotlin.Int
public actual open val openValPositive: kotlin.Int
public abstract actual fun abstractFun(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract actual fun openFunNegative(): kotlin.Unit
public open actual fun openFunPositive(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}