diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrSourceRangesTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrSourceRangesTestGenerated.java index 17e927a31c8..50da680fe53 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrSourceRangesTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrSourceRangesTestGenerated.java @@ -130,6 +130,12 @@ public class FirLightTreeJvmIrSourceRangesTestGenerated extends AbstractFirLight runTest("compiler/testData/ir/sourceRanges/declarations/fakeOverrides.kt"); } + @Test + @TestMetadata("fakeOverrides2.kt") + public void testFakeOverrides2() throws Exception { + runTest("compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.kt"); + } + @Test @TestMetadata("kt29862.kt") public void testKt29862() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrSourceRangesTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrSourceRangesTestGenerated.java index f00c50a56de..548eeedccb3 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrSourceRangesTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrSourceRangesTestGenerated.java @@ -130,6 +130,12 @@ public class FirPsiJvmIrSourceRangesTestGenerated extends AbstractFirPsiJvmIrSou runTest("compiler/testData/ir/sourceRanges/declarations/fakeOverrides.kt"); } + @Test + @TestMetadata("fakeOverrides2.kt") + public void testFakeOverrides2() throws Exception { + runTest("compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.kt"); + } + @Test @TestMetadata("kt29862.kt") public void testKt29862() throws Exception { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index 74ad783188e..979f6a56410 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -122,7 +122,7 @@ object FirFakeOverrideGenerator { checkStatusIsResolved(baseFunction) return buildSimpleFunction { - source = baseFunction.source ?: derivedClassLookupTag?.toSymbol(session)?.source + source = derivedClassLookupTag?.toSymbol(session)?.source ?: baseFunction.source moduleData = session.nullableModuleData ?: baseFunction.moduleData this.origin = origin name = baseFunction.name @@ -162,7 +162,7 @@ object FirFakeOverrideGenerator { // As second alternative, we can invent some light-weight kind of FirRegularClass return buildConstructor { annotations += baseConstructor.annotations - source = baseConstructor.source ?: derivedClassLookupTag?.toSymbol(session)?.source + source = derivedClassLookupTag?.toSymbol(session)?.source ?: baseConstructor.source moduleData = session.nullableModuleData ?: baseConstructor.moduleData this.origin = origin receiverParameter = baseConstructor.receiverParameter?.let { receiverParameter -> @@ -302,7 +302,7 @@ object FirFakeOverrideGenerator { ) { valueParameter, newType -> buildValueParameterCopy(valueParameter) { this.origin = origin - source = source ?: this@configureAnnotationsAndSignature.source + source = this@configureAnnotationsAndSignature.source ?: source returnTypeRef = valueParameter.returnTypeRef.withReplacedConeType(newType) symbol = FirValueParameterSymbol(valueParameter.name) containingFunctionSymbol = fakeFunctionSymbol @@ -371,7 +371,7 @@ object FirFakeOverrideGenerator { checkStatusIsResolved(baseProperty) return buildProperty { - source = baseProperty.source ?: derivedClassLookupTag?.toSymbol(session)?.source + source = derivedClassLookupTag?.toSymbol(session)?.source ?: baseProperty.source moduleData = session.nullableModuleData ?: baseProperty.moduleData this.origin = origin name = baseProperty.name diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeFunctionTypeParameterNamesInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeFunctionTypeParameterNamesInOverride.fir.kt index c870d42ac67..8a32afe85a0 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeFunctionTypeParameterNamesInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeFunctionTypeParameterNamesInOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open fun foo(t: T) {} + open fun foo(t: T) {} } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeLateinitInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeLateinitInOverride.fir.kt index 0941f5217b9..0e23bfee81b 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeLateinitInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeLateinitInOverride.fir.kt @@ -2,12 +2,12 @@ // FILE: common.kt open class Base { - open var red1: String = "" - open lateinit var red2: String + open var red1: String = "" + open lateinit var red2: String open lateinit var green: String } -expect open class Foo : Base { +expect open class Foo : Base { } // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToFinalInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToFinalInOverride.fir.kt index de89a679b1d..59cee6f3e66 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToFinalInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToFinalInOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt interface Base { - fun foo() + fun foo() } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToOpenInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToOpenInOverride.fir.kt index 61de83ab2f0..893dc806111 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToOpenInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromAbstractToOpenInOverride.fir.kt @@ -1,9 +1,9 @@ // MODULE: m1-common // FILE: common.kt interface Base { - fun foo() + fun foo() } -expect open class Foo() : Base +expect open class Foo() : Base // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToAbstractInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToAbstractInOverride.fir.kt index 62d34915c80..cd739fde311 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToAbstractInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToAbstractInOverride.fir.kt @@ -1,9 +1,9 @@ // MODULE: m1-common // FILE: common.kt interface Base { - fun foo() {} + fun foo() {} } -expect abstract class Foo() : Base +expect abstract class Foo() : Base // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToFinalInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToFinalInOverride.fir.kt index e1c47a7c26b..bc613cb7253 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToFinalInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityFromOpenToFinalInOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open fun foo() {} + open fun foo() {} } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityOfSubstitutedFakeOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityOfSubstitutedFakeOverride.fir.kt index a570ef59497..987a4303334 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityOfSubstitutedFakeOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeModalityOfSubstitutedFakeOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open fun foo(t: T) {} + open fun foo(t: T) {} } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeParameterNameInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeParameterNameInOverride.fir.kt index 07f18083e34..e262d989d5e 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeParameterNameInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeParameterNameInOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open fun foo(param: Int) {} + open fun foo(param: Int) {} } -expect open class Foo1 : Base +expect open class Foo1 : Base expect open class Foo2 : Base expect open class Foo3 { open fun foo(param: Int) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeSetterVisibilityInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeSetterVisibilityInOverride.fir.kt index eecba805239..549587e1611 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeSetterVisibilityInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeSetterVisibilityInOverride.fir.kt @@ -2,11 +2,11 @@ // FILE: common.kt open class Base { - open var foo: String = "" - protected set + open var foo: String = "" + protected set } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVarargModifierInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVarargModifierInOverride.fir.kt index b7c89b2e316..affa9448549 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVarargModifierInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVarargModifierInOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open fun foo(vararg bar: Int) {} + open fun foo(vararg bar: Int) {} } -expect open class Foo : Base { +expect open class Foo : Base { } // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVisibilityInOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVisibilityInOverride.fir.kt index 53cba1cb298..fc6c00a1e20 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVisibilityInOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/changeVisibilityInOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - protected open fun foo() {} + protected open fun foo() {} } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantFunctionOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantFunctionOverride.fir.kt index 1e17e6fb4f8..f7f7dfa7d03 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantFunctionOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantFunctionOverride.fir.kt @@ -3,10 +3,10 @@ open class Base { open val foo: String = "" - open fun foo(): Any = "" + open fun foo(): Any = "" } -expect open class Foo : Base { +expect open class Foo : Base { } // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenericUpperBound.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenericUpperBound.fir.kt index a8f85dec5ab..e9c1b4b30a8 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenericUpperBound.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenericUpperBound.fir.kt @@ -4,10 +4,10 @@ interface I open class Base { - open fun foo(): I = null!! + open fun foo(): I = null!! } -expect open class Foo : Base { +expect open class Foo : Base { } // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenerics.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenerics.fir.kt index 446a46e8afb..c1dc03731df 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenerics.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantOverrideGenerics.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open fun foo(): R = null!! + open fun foo(): R = null!! } -expect open class Foo : Base { +expect open class Foo : Base { } // MODULE: m2-jvm()()(m1-common) diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantPropertyOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantPropertyOverride.fir.kt index e292b3b1e6b..5e1eef65265 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantPropertyOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/covariantPropertyOverride.fir.kt @@ -2,11 +2,11 @@ // FILE: common.kt open class Base { - open val foo: Any = "" + open val foo: Any = "" open fun foo(): String = "" } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/flexibleTypesMatching.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/flexibleTypesMatching.fir.kt index 882d8300fd3..93f26533907 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/flexibleTypesMatching.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/flexibleTypesMatching.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt expect open class Base { - open fun foo(): MutableList + open fun foo(): MutableList } -expect open class Foo : Base { +expect open class Foo : Base { } diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/propertyKindOverride.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/propertyKindOverride.fir.kt index d5de594e915..807244cef47 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/propertyKindOverride.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/propertyKindOverride.fir.kt @@ -2,10 +2,10 @@ // FILE: common.kt open class Base { - open val foo: Int = 1 + open val foo: Int = 1 } -expect open class Foo : Base +expect open class Foo : Base // MODULE: m2-jvm()()(m1-common) // FILE: jvm.kt diff --git a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/severalMismatches.fir.kt b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/severalMismatches.fir.kt index b3424f1be20..acc03e6ead7 100644 --- a/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/severalMismatches.fir.kt +++ b/compiler/testData/diagnostics/tests/multiplatform/actualClassifierMustHasTheSameMembersAsNonFinalExpectClassifierChecker/severalMismatches.fir.kt @@ -2,13 +2,13 @@ // FILE: common.kt open class Base() { - open fun overrideReturnType(): Any = "" - open fun overrideModality1(): Any = "" - open fun overrideModality2(): Any = "" - protected open fun overrideVisibility(): Any = "" + open fun overrideReturnType(): Any = "" + open fun overrideModality1(): Any = "" + open fun overrideModality2(): Any = "" + protected open fun overrideVisibility(): Any = "" } -expect open class Foo : Base { +expect open class Foo : Base { fun existingMethod() val existingParam: Int } diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.fir.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.fir.kt deleted file mode 100644 index 85073e1666a..00000000000 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.fir.kt +++ /dev/null @@ -1,9 +0,0 @@ -interface B { - fun getX() = 1 -} - -interface D { - val x: Int -} - -class C(d: D) : D by d, B diff --git a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.kt b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.kt index 5d7bdb1a2a0..6ceafc02766 100644 --- a/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/accidentalOverrides/delegatedFunctionOverriddenByProperty.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL interface B { fun getX() = 1 } diff --git a/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.fir.txt b/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.fir.txt new file mode 100644 index 00000000000..fb844da6690 --- /dev/null +++ b/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.fir.txt @@ -0,0 +1,35 @@ +@0:0..7:0 FILE fqName: fileName:/fakeOverrides2.kt + @0:0..2:1 CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + @0:17..18 TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false + @0:0..2:1 CONSTRUCTOR visibility:public <> () returnType:.A.A> [primary] + @0:0..2:1 BLOCK_BODY + @0:0..2:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + @0:0..2:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]' + @1:4..27 FUN name:foo visibility:public modality:FINAL <> ($this:.A.A>, x:T of .A) returnType:kotlin.Unit + @1:4..27 VALUE_PARAMETER name: type:.A.A> + @1:12..16 VALUE_PARAMETER name:x index:0 type:T of .A + @1:18..20 BLOCK_BODY + @0:0..2:1 FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + @0:0..2:1 VALUE_PARAMETER name: type:kotlin.Any + @0:0..2:1 VALUE_PARAMETER name:other index:0 type:kotlin.Any? + @0:0..2:1 FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + @0:0..2:1 VALUE_PARAMETER name: type:kotlin.Any + @0:0..2:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + @0:0..2:1 VALUE_PARAMETER name: type:kotlin.Any + @0:0..2:1 VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A.A> + @4:0..6:1 CLASS CLASS name:B modality:FINAL visibility:public superTypes:[.A] + @4:0..6:1 CONSTRUCTOR visibility:public <> () returnType:.B [primary] + @4:0..6:1 BLOCK_BODY + @4:10..21 DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in .A' + @4:0..6:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[.A]' + @4:0..6:1 FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:.A, x:kotlin.String) returnType:kotlin.Unit [fake_override] + @4:0..6:1 VALUE_PARAMETER name: type:.A + @4:0..6:1 VALUE_PARAMETER name:x index:0 type:kotlin.String + @4:0..6:1 FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + @4:0..6:1 VALUE_PARAMETER name: type:kotlin.Any + @4:0..6:1 VALUE_PARAMETER name:other index:0 type:kotlin.Any? + @4:0..6:1 FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + @4:0..6:1 VALUE_PARAMETER name: type:kotlin.Any + @4:0..6:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + @4:0..6:1 VALUE_PARAMETER name: type:kotlin.Any + @4:0..6:1 VALUE_PARAMETER INSTANCE_RECEIVER name: type:.B diff --git a/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.kt b/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.kt new file mode 100644 index 00000000000..19be3634be5 --- /dev/null +++ b/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.kt @@ -0,0 +1,7 @@ +abstract class A { + fun foo(x: T) {} // (1) +} + +class B : A() { + // fake-override fun foo(x: String) // (2) should use 'B' class source +} diff --git a/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.txt b/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.txt new file mode 100644 index 00000000000..e37baf0a105 --- /dev/null +++ b/compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.txt @@ -0,0 +1,35 @@ +@0:0..7:0 FILE fqName: fileName:/fakeOverrides2.kt + @0:0..2:1 CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + @0:17..18 TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false + @0:9..2:1 CONSTRUCTOR visibility:public <> () returnType:.A.A> [primary] + @0:0..2:1 BLOCK_BODY + @0:0..2:1 DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + @0:0..2:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]' + @1:4..27 FUN name:foo visibility:public modality:FINAL <> ($this:.A.A>, x:T of .A) returnType:kotlin.Unit + @1:4..27 VALUE_PARAMETER name: type:.A.A> + @1:12..16 VALUE_PARAMETER name:x index:0 type:T of .A + @1:18..20 BLOCK_BODY + @0:9..2:1 FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + @0:0..2:1 VALUE_PARAMETER name: type:kotlin.Any + @0:9..2:1 VALUE_PARAMETER name:other index:0 type:kotlin.Any? + @0:9..2:1 FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + @0:0..2:1 VALUE_PARAMETER name: type:kotlin.Any + @0:9..2:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + @0:0..2:1 VALUE_PARAMETER name: type:kotlin.Any + @0:0..2:1 VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A.A> + @4:0..6:1 CLASS CLASS name:B modality:FINAL visibility:public superTypes:[.A] + @4:0..6:1 CONSTRUCTOR visibility:public <> () returnType:.B [primary] + @4:0..6:1 BLOCK_BODY + @4:10..21 DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in .A' + @4:0..6:1 INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[.A]' + @4:0..6:1 FUN FAKE_OVERRIDE name:foo visibility:public modality:FINAL <> ($this:.A, x:kotlin.String) returnType:kotlin.Unit [fake_override] + @4:0..6:1 VALUE_PARAMETER name: type:.A + @4:0..6:1 VALUE_PARAMETER name:x index:0 type:kotlin.String + @4:0..6:1 FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + @4:0..6:1 VALUE_PARAMETER name: type:kotlin.Any + @4:0..6:1 VALUE_PARAMETER name:other index:0 type:kotlin.Any? + @4:0..6:1 FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + @4:0..6:1 VALUE_PARAMETER name: type:kotlin.Any + @4:0..6:1 FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + @4:0..6:1 VALUE_PARAMETER name: type:kotlin.Any + @4:0..6:1 VALUE_PARAMETER INSTANCE_RECEIVER name: type:.B diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrSourceRangesTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrSourceRangesTestGenerated.java index 2f0a52d8427..38c3dbb95c2 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrSourceRangesTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrSourceRangesTestGenerated.java @@ -130,6 +130,12 @@ public class ClassicJvmIrSourceRangesTestGenerated extends AbstractClassicJvmIrS runTest("compiler/testData/ir/sourceRanges/declarations/fakeOverrides.kt"); } + @Test + @TestMetadata("fakeOverrides2.kt") + public void testFakeOverrides2() throws Exception { + runTest("compiler/testData/ir/sourceRanges/declarations/fakeOverrides2.kt"); + } + @Test @TestMetadata("kt29862.kt") public void testKt29862() throws Exception {