[IR] Fix missing AMBIGUOUS_ACTUALS
^KT-59938 Fixed Review: https://jetbrains.team/p/kt/reviews/13760 After this patch: > The /compiler/testData/diagnostics/tests/multiplatform/topLevelFun/conflictingImplDeclarations.kt test: Fixed > The /compiler/testData/diagnostics/tests/multiplatform/headerClass/expectDeclarationWithWeakIncompatibilities.kt test: Declarations are in the same module. `PACKAGE_OR_CLASSIFIER_REDECLARATION` is reported anyway > The /compiler/testData/diagnostics/tests/multiplatform/java/varPropertyAgainstJavaGetterAndNonFinalField.kt test: Expect-actual matcher doesn't match fields in K2 https://youtrack.jetbrains.com/issue/KT-63667 => green code > The /compiler/testData/diagnostics/tests/multiplatform/java/propertyAgainstJavaPrivateFieldAndPublicMethod.kt test: Expect-actual matcher doesn't match fields in K2 https://youtrack.jetbrains.com/issue/KT-63667 => green code > The /compiler/testData/diagnostics/tests/multiplatform/java/implicitJavaActualization_multipleActuals.kt test: K2 doesn't have implicit Java actualization. And PACKAGE_OR_CLASSIFIER_REDECLARATION is reported anyway > The /compiler/testData/diagnostics/tests/multiplatform/java/propertyAgainstJavaPublicFieldAndPublicGetter.kt test: Expect-actual matcher doesn't match fields in K2 https://youtrack.jetbrains.com/issue/KT-63667 => green code > The /compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/injectContextReceiverOverload.kt test: Context receivers are not supported in expect-actual matcher. https://youtrack.jetbrains.com/issue/KT-61447 And K2 reports another error right now anyway
This commit is contained in:
+1
-1
@@ -9,7 +9,7 @@ expect open class Foo {
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual open class Foo {
|
||||
actual open class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>Foo<!> {
|
||||
actual fun foo() {}
|
||||
|
||||
// Expected: NON_ACTUAL_MEMBER_DECLARED_IN_EXPECT_NON_FINAL_CLASSIFIER_ACTUALIZATION_WARNING.
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
<!AMBIGUOUS_ACTUALS{JVM}, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
actual fun foo() {}
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
actual fun foo() {}
|
||||
@@ -0,0 +1,10 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
expect fun <!AMBIGUOUS_ACTUALS{JVM}, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{COMMON}!>foo<!>()
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
<!CONFLICTING_OVERLOADS{JVM}!>actual fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>foo<!>()<!> {}
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
<!CONFLICTING_OVERLOADS!>actual fun foo()<!> {}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
expect fun foo()
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
actual fun foo() {}
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
actual fun foo() {}
|
||||
Vendored
+1
-1
@@ -12,4 +12,4 @@
|
||||
|
||||
import java.util.AbstractMap
|
||||
|
||||
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
|
||||
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS, NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
|
||||
|
||||
Vendored
+1
-1
@@ -12,4 +12,4 @@ public expect abstract class AbstractMutableMap<K, V> : MutableMap<K, V> {
|
||||
|
||||
import java.util.AbstractMap
|
||||
|
||||
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
|
||||
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS, NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
|
||||
|
||||
+2
@@ -5,6 +5,8 @@ interface I {
|
||||
}
|
||||
|
||||
expect class Foo : I {
|
||||
// AMBIGUOUS_ACTUALS in K1, green code in K2.
|
||||
// Reason: expect-actual matcher doesn't match fields in K2 KT-63667
|
||||
override val foo: Int
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -5,6 +5,8 @@ interface I {
|
||||
}
|
||||
|
||||
expect class Foo : I {
|
||||
// AMBIGUOUS_ACTUALS in K1, green code in K2.
|
||||
// Reason: expect-actual matcher doesn't match fields in K2 KT-63667
|
||||
override val <!AMBIGUOUS_ACTUALS{JVM}!>foo<!>: Int
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect class Foo {
|
||||
// AMBIGUOUS_ACTUALS in K1, green code in K2.
|
||||
// Reason: expect-actual matcher doesn't match fields in K2 KT-63667
|
||||
val foo: Int
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect class Foo {
|
||||
// AMBIGUOUS_ACTUALS in K1, green code in K2.
|
||||
// Reason: expect-actual matcher doesn't match fields in K2 KT-63667
|
||||
val <!AMBIGUOUS_ACTUALS{JVM}!>foo<!>: Int
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect class Foo {
|
||||
// AMBIGUOUS_ACTUALS in K1, green code in K2.
|
||||
// Reason: expect-actual matcher doesn't match fields in K2 KT-63667
|
||||
var foo: Int
|
||||
}
|
||||
|
||||
|
||||
+2
@@ -1,6 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect class Foo {
|
||||
// AMBIGUOUS_ACTUALS in K1, green code in K2.
|
||||
// Reason: expect-actual matcher doesn't match fields in K2 KT-63667
|
||||
var <!AMBIGUOUS_ACTUALS{JVM}!>foo<!>: Int
|
||||
}
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,7 +1,7 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect fun foo()
|
||||
<!AMBIGUOUS_ACTUALS{JVM}, NO_ACTUAL_FOR_EXPECT{JVM}!>expect fun foo()<!>
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
Vendored
+16
@@ -0,0 +1,16 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect fun foo()
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
<!CONFLICTING_OVERLOADS!>actual fun foo()<!> {}
|
||||
<!CONFLICTING_OVERLOADS!>actual fun foo()<!> {}
|
||||
|
||||
// MODULE: m3-js()()(m1-common)
|
||||
// FILE: js.kt
|
||||
|
||||
<!CONFLICTING_OVERLOADS!>actual fun foo()<!> {}
|
||||
<!CONFLICTING_OVERLOADS!>actual fun foo()<!> {}
|
||||
Reference in New Issue
Block a user