[FIR] 2/2 Support more wider actual member visibility, if the expect member is effectively final
^KT-61955 Fixed Introduce LV vs don't introduce LV: introduce LV: - K1 IDE and K2 project: IDE accurately shows compiler errors - K2 IDE and K1 project: There are cases when IDE shows red but in reality it's green don't introduce LV: - K1 IDE and K2 project: There are cases when IDE shows red but in reality it's green - K2 IDE and K1 project: There are cases when IDE shows green but in reality it's red
This commit is contained in:
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
internal open fun foo() {}
|
||||
}
|
||||
expect class Foo : Base {
|
||||
override fun foo()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
public actual override fun foo() {
|
||||
}
|
||||
}
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
internal open fun foo() {}
|
||||
}
|
||||
expect class Foo : Base {
|
||||
override fun foo()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
<!ACTUAL_WITHOUT_EXPECT!>public<!> actual override fun foo() {
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
protected open fun foo() {}
|
||||
}
|
||||
expect class Foo : Base
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
public override fun foo() {
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// LANGUAGE: -SupportEffectivelyFinalInExpectActualVisibilityCheck
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
internal open fun foo() {}
|
||||
}
|
||||
<!EXPECT_ACTUAL_INCOMPATIBILITY{JVM}!>expect class Foo : Base {
|
||||
<!EXPECT_ACTUAL_INCOMPATIBILITY{JVM}!>override fun foo()<!>
|
||||
}<!>
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
public actual override fun <!ACTUAL_WITHOUT_EXPECT!>foo<!>() {
|
||||
}
|
||||
}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
// LANGUAGE: -SupportEffectivelyFinalInExpectActualVisibilityCheck
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
internal open fun foo() {}
|
||||
}
|
||||
expect class Foo : Base {
|
||||
override fun foo()
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
<!ACTUAL_WITHOUT_EXPECT!>public<!> actual override fun foo() {
|
||||
}
|
||||
}
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
open var foo: Int = 2
|
||||
internal set
|
||||
}
|
||||
expect class Foo : Base {
|
||||
override var foo: Int
|
||||
internal set
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
actual override var foo: Int = 2
|
||||
public set
|
||||
}
|
||||
Vendored
+19
@@ -0,0 +1,19 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
open var foo: Int = 2
|
||||
internal set
|
||||
}
|
||||
expect class Foo : Base {
|
||||
override var foo: Int
|
||||
internal set
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
actual override var foo: Int = 2
|
||||
<!ACTUAL_WITHOUT_EXPECT!>public<!> set
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class Base {
|
||||
open var foo: Int = 2
|
||||
protected set
|
||||
}
|
||||
expect class Foo : Base
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual class Foo : Base() {
|
||||
override var foo: Int = 2
|
||||
public set
|
||||
}
|
||||
Reference in New Issue
Block a user