[FIR] Report redeclaration across KMP source sets
^KT-57585 Fixed Related tests: - MultiPlatformIntegrationTestGenerated.testSimpleNoImplKeywordOnTopLevelFunction - MultiPlatformIntegrationTestGenerated.testWeakIncompatibilityWithoutActualModifier - FirPsiJsKlibDiagnosticsTestGenerated.testSignatureClash_MPP - LLFirPreresolvedReversedDiagnosticCompilerFirTestDataTestGenerated$ResolveWithStdlib$MultiModule.testFakeOverrides - DiagnosticCompilerTestFE10TestdataTestGenerated$Tests$Multiplatform: - LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated$Tests$Multiplatform - FirOldFrontendMPPDiagnosticsWithPsiTestGenerated - FirOldFrontendMPPDiagnosticsWithLightTreeTestGenerated - FirLibraryModuleDeclarationResolveTestGenerated.testDataClass - org.jetbrains.kotlin.idea.k2.highlighting.K2HighlightingMetaInfoTestGenerated$Diagnostics.testDataClassFromLibrary - org.jetbrains.fir.uast.test.FirLightClassBehaviorTest.testContainingFile - org.jetbrains.fir.uast.test.FirLightClassBehaviorTest.testAnnotationParameterReference - org.jetbrains.uast.test.kotlin.org.jetbrains.uast.test.kotlin.comparison.FE1LightClassBehaviorTest.testContainingFile
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class A {
|
||||
open class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!> {
|
||||
open fun foo(): String = "Fail"
|
||||
}
|
||||
expect class C1() : A
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
open class A {
|
||||
open fun foo(): String = "Fail"
|
||||
}
|
||||
expect class C1() : A
|
||||
expect class C2() : A
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: A_J.java
|
||||
public class A_J {}
|
||||
|
||||
// FILE: B_J.java
|
||||
public class B_J extends A_J {
|
||||
public String foo() { return "O"; }
|
||||
}
|
||||
|
||||
// FILE: C2_J.java
|
||||
public class C2_J extends B_J {
|
||||
public String foo() { return "K"; }
|
||||
}
|
||||
|
||||
// FILE: main.kt
|
||||
actual typealias <!ACTUAL_WITHOUT_EXPECT!>A<!> = A_J
|
||||
|
||||
// Indirect subtyping is allowed in K2 KT-59356
|
||||
actual class C1 : B_J()
|
||||
actual typealias C2 = C2_J
|
||||
compiler/testData/diagnostics/tests/multiplatform/actualWithoutExpectWhenExpectIsFakeOverride.fir.kt
Vendored
+2
-2
@@ -1,8 +1,8 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
fun foo() {}
|
||||
class Foo
|
||||
<!CONFLICTING_OVERLOADS!>fun foo()<!> {}
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>Foo<!>
|
||||
|
||||
open class Base {
|
||||
open fun foo() {}
|
||||
|
||||
Vendored
+33
@@ -0,0 +1,33 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
fun foo() {}
|
||||
class Foo
|
||||
|
||||
open class Base {
|
||||
open fun foo() {}
|
||||
}
|
||||
expect class Bar : Base {
|
||||
}
|
||||
|
||||
expect open class ExpectBase {
|
||||
open fun foo()
|
||||
}
|
||||
expect class Baz : ExpectBase
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT!>foo<!>() {}
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>Foo<!>
|
||||
|
||||
actual class Bar : Base() {
|
||||
actual override fun <!ACTUAL_WITHOUT_EXPECT!>foo<!>() {}
|
||||
}
|
||||
|
||||
actual open class ExpectBase {
|
||||
actual open fun foo() {}
|
||||
}
|
||||
actual class Baz : ExpectBase() {
|
||||
actual override fun <!ACTUAL_WITHOUT_EXPECT!>foo<!>() {}
|
||||
}
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: common2.kt
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>() {}
|
||||
<!CONFLICTING_OVERLOADS!>actual fun <!ACTUAL_WITHOUT_EXPECT!>main<!>()<!> {}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: common2.kt
|
||||
actual fun <!ACTUAL_WITHOUT_EXPECT, EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>() {}
|
||||
|
||||
// MODULE: m1-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
expect fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>()
|
||||
|
||||
// FILE: jvm2.kt
|
||||
actual fun <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>main<!>() {}
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
actual fun foo() {}
|
||||
<!CONFLICTING_OVERLOADS!>actual fun foo()<!> {}
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
actual fun foo() {}
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>C<!>
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
class A
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>B<!>
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
|
||||
class B
|
||||
|
||||
class C
|
||||
@@ -0,0 +1,19 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION{COMMON}, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>A<!>
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>C<!>
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>A<!>
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>B<!>
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>B<!>
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>C<!>
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
class A
|
||||
|
||||
class C
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
class A
|
||||
|
||||
class B
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
|
||||
class B
|
||||
|
||||
class C
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
expect class A
|
||||
|
||||
expect class B
|
||||
|
||||
class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>C<!>
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
actual class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
|
||||
class <!ACTUAL_MISSING, PACKAGE_OR_CLASSIFIER_REDECLARATION!>B<!>
|
||||
|
||||
expect class C
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
|
||||
class A
|
||||
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>B<!>
|
||||
|
||||
actual class C
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{COMMON}!>class <!AMBIGUOUS_ACTUALS{JVM}, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>A<!><!>
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{COMMON}!>class <!AMBIGUOUS_ACTUALS{JVM}, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>B<!><!>
|
||||
|
||||
<!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE{COMMON}!>class <!ACTUAL_MISSING{JVM}, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>C<!><!>
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
actual <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class <!PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>A<!><!>
|
||||
|
||||
<!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class <!ACTUAL_MISSING{JVM}, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>B<!><!>
|
||||
|
||||
expect <!EXPECT_AND_ACTUAL_IN_THE_SAME_MODULE!>class <!AMBIGUOUS_ACTUALS{JVM}, PACKAGE_OR_CLASSIFIER_REDECLARATION{JVM}!>C<!><!>
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
|
||||
class <!ACTUAL_MISSING, PACKAGE_OR_CLASSIFIER_REDECLARATION!>A<!>
|
||||
|
||||
actual class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>B<!>
|
||||
|
||||
actual class <!PACKAGE_OR_CLASSIFIER_REDECLARATION!>C<!>
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
// MODULE: common
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
expect class A
|
||||
|
||||
expect class B
|
||||
|
||||
class C
|
||||
|
||||
// MODULE: intermediate()()(common)
|
||||
// TARGET_PLATFORM: Common
|
||||
|
||||
actual class A
|
||||
|
||||
class <!ACTUAL_MISSING!>B<!>
|
||||
|
||||
expect class C
|
||||
|
||||
// MODULE: main()()(common, intermediate)
|
||||
|
||||
class A
|
||||
|
||||
actual class <!ACTUAL_WITHOUT_EXPECT!>B<!>
|
||||
|
||||
actual class C
|
||||
Reference in New Issue
Block a user