Allow open callable members in expect interfaces
#KT-42094 fixed
This commit is contained in:
committed by
Sebastian Sellmair
parent
bf0156f7c6
commit
06cb64bb51
@@ -0,0 +1,37 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
// TODO: .fir.kt version is just a stub.
|
||||
|
||||
expect interface My {
|
||||
open fun bar()
|
||||
open fun bas() {}
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract fun bat(): Int
|
||||
|
||||
fun foo()
|
||||
|
||||
|
||||
open val a: Int
|
||||
open val b: String
|
||||
open val c: String get() = ""
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract val e: Int
|
||||
|
||||
val f: Int
|
||||
}
|
||||
|
||||
class MyImpl1: My
|
||||
|
||||
class MyImpl2: My {
|
||||
override fun foo() {}
|
||||
override val f = 0
|
||||
override val e = 1
|
||||
}
|
||||
|
||||
expect interface Outer {
|
||||
interface Inner {
|
||||
open fun bar()
|
||||
open fun bas() {}
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract fun bat(): Int
|
||||
fun foo()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
// TODO: .fir.kt version is just a stub.
|
||||
|
||||
expect interface My {
|
||||
open fun bar()
|
||||
<!EXPECTED_DECLARATION_WITH_BODY!>open fun bas()<!> {}
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract fun bat(): Int
|
||||
|
||||
fun foo()
|
||||
|
||||
|
||||
open val a: Int
|
||||
open val b: String
|
||||
open val c: String <!EXPECTED_DECLARATION_WITH_BODY!>get()<!> = ""
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract val e: Int
|
||||
|
||||
val f: Int
|
||||
}
|
||||
|
||||
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class MyImpl1<!>: My
|
||||
|
||||
class MyImpl2: My {
|
||||
override fun foo() {}
|
||||
override val f = 0
|
||||
override val e = 1
|
||||
}
|
||||
|
||||
expect interface Outer {
|
||||
interface Inner {
|
||||
open fun bar()
|
||||
<!EXPECTED_DECLARATION_WITH_BODY!>open fun bas()<!> {}
|
||||
<!REDUNDANT_MODIFIER!>open<!> abstract fun bat(): Int
|
||||
fun foo()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package
|
||||
|
||||
public expect interface My {
|
||||
public expect open val a: kotlin.Int
|
||||
public expect open val b: kotlin.String
|
||||
public expect open val c: kotlin.String
|
||||
public expect open val e: kotlin.Int
|
||||
public expect abstract val f: kotlin.Int
|
||||
public open expect fun bar(): kotlin.Unit
|
||||
public open expect fun bas(): kotlin.Unit
|
||||
public open expect fun bat(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract expect fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class MyImpl1 : My {
|
||||
public constructor MyImpl1()
|
||||
public expect open override /*1*/ /*fake_override*/ val a: kotlin.Int
|
||||
public expect open override /*1*/ /*fake_override*/ val b: kotlin.String
|
||||
public expect open override /*1*/ /*fake_override*/ val c: kotlin.String
|
||||
public expect open override /*1*/ /*fake_override*/ val e: kotlin.Int
|
||||
public expect abstract override /*1*/ /*fake_override*/ val f: kotlin.Int
|
||||
public open expect override /*1*/ /*fake_override*/ fun bar(): kotlin.Unit
|
||||
public open expect override /*1*/ /*fake_override*/ fun bas(): kotlin.Unit
|
||||
public open expect override /*1*/ /*fake_override*/ fun bat(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract expect override /*1*/ /*fake_override*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public final class MyImpl2 : My {
|
||||
public constructor MyImpl2()
|
||||
public expect open override /*1*/ /*fake_override*/ val a: kotlin.Int
|
||||
public expect open override /*1*/ /*fake_override*/ val b: kotlin.String
|
||||
public expect open override /*1*/ /*fake_override*/ val c: kotlin.String
|
||||
public open override /*1*/ val e: kotlin.Int = 1
|
||||
public open override /*1*/ val f: kotlin.Int = 0
|
||||
public open expect override /*1*/ /*fake_override*/ fun bar(): kotlin.Unit
|
||||
public open expect override /*1*/ /*fake_override*/ fun bas(): kotlin.Unit
|
||||
public open expect override /*1*/ /*fake_override*/ fun bat(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
public expect interface Outer {
|
||||
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 override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public expect interface Inner {
|
||||
public open expect fun bar(): kotlin.Unit
|
||||
public open expect fun bas(): kotlin.Unit
|
||||
public open expect fun bat(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract expect fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
+25
@@ -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
|
||||
}
|
||||
+25
@@ -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
|
||||
}
|
||||
+30
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user