diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java index 4ad7bfd283c..7696759e209 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java @@ -2596,6 +2596,12 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest { runTest("compiler/testData/ir/irText/firProblems/InnerClassInAnonymous.kt"); } + @Test + @TestMetadata("internalPotentialFakeOverride.kt") + public void testInternalPotentialFakeOverride() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt"); + } + @Test @TestMetadata("internalPotentialOverride.kt") public void testInternalPotentialOverride() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/LightTreeFir2IrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/LightTreeFir2IrTextTestGenerated.java index 7569d7a6e88..efb9110da96 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/LightTreeFir2IrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/LightTreeFir2IrTextTestGenerated.java @@ -2596,6 +2596,12 @@ public class LightTreeFir2IrTextTestGenerated extends AbstractLightTreeFir2IrTex runTest("compiler/testData/ir/irText/firProblems/InnerClassInAnonymous.kt"); } + @Test + @TestMetadata("internalPotentialFakeOverride.kt") + public void testInternalPotentialFakeOverride() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt"); + } + @Test @TestMetadata("internalPotentialOverride.kt") public void testInternalPotentialOverride() throws Exception { diff --git a/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.ir.txt b/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.ir.txt new file mode 100644 index 00000000000..cbba02dbb59 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.ir.txt @@ -0,0 +1,58 @@ +Module: m1 +FILE fqName: fileName:/A.kt + CLASS CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A + CONSTRUCTOR visibility:public <> () returnType:.A [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:OPEN visibility:public superTypes:[kotlin.Any]' + FUN name:foo visibility:internal modality:OPEN <> ($this:.A) returnType:kotlin.Int + $this: VALUE_PARAMETER name: type:.A + BLOCK_BODY + RETURN type=kotlin.Nothing from='internal open fun foo (): kotlin.Int declared in .A' + CONST Int type=kotlin.Int value=1 + PROPERTY name:bar visibility:internal modality:OPEN [val] + FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final] + EXPRESSION_BODY + CONST Int type=kotlin.Int value=1 + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:internal modality:OPEN <> ($this:.A) returnType:kotlin.Int + correspondingProperty: PROPERTY name:bar visibility:internal modality:OPEN [val] + $this: VALUE_PARAMETER name: type:.A + BLOCK_BODY + RETURN type=kotlin.Nothing from='internal open fun (): kotlin.Int declared in .A' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.' type=.A origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any +Module: m2 +FILE fqName: fileName:/B.kt + CLASS CLASS name:B modality:FINAL visibility:public superTypes:[.A] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.B + CONSTRUCTOR visibility:public <> () returnType:.B [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in .A' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[.A]' + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in .A + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int [fake_override] declared in .A + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String [fake_override] declared in .A + $this: VALUE_PARAMETER name: type:kotlin.Any diff --git a/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt b/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt new file mode 100644 index 00000000000..30b473b2ec0 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt @@ -0,0 +1,16 @@ +// FIR_IDENTICAL +// TARGET_BACKEND: JVM_IR +// MODULE: m1 +// FILE: A.kt + +open class A { + internal open fun foo() : Int = 1 + + internal open val bar: Int = 1 +} + +// MODULE: m2(m1) +// FILE: B.kt + +class B : A() { +} diff --git a/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt.txt b/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt.txt new file mode 100644 index 00000000000..fd0664a9919 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt.txt @@ -0,0 +1,31 @@ +// MODULE: m1 +// FILE: A.kt + +open class A { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + internal open fun foo(): Int { + return 1 + } + + internal open val bar: Int + field = 1 + internal open get + +} + +// MODULE: m2 +// FILE: B.kt + +class B : A { + constructor() /* primary */ { + super/*A*/() + /* () */ + + } + +} diff --git a/compiler/testData/ir/irText/firProblems/internalPotentialOverride.ir.txt b/compiler/testData/ir/irText/firProblems/internalPotentialOverride.ir.txt index 161ff8a445e..149bf31461e 100644 --- a/compiler/testData/ir/irText/firProblems/internalPotentialOverride.ir.txt +++ b/compiler/testData/ir/irText/firProblems/internalPotentialOverride.ir.txt @@ -11,6 +11,17 @@ FILE fqName: fileName:/A.kt BLOCK_BODY RETURN type=kotlin.Nothing from='internal open fun foo (): kotlin.Int declared in .A' CONST Int type=kotlin.Int value=1 + PROPERTY name:bar visibility:internal modality:OPEN [val] + FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final] + EXPRESSION_BODY + CONST Int type=kotlin.Int value=1 + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:internal modality:OPEN <> ($this:.A) returnType:kotlin.Int + correspondingProperty: PROPERTY name:bar visibility:internal modality:OPEN [val] + $this: VALUE_PARAMETER name: type:.A + BLOCK_BODY + RETURN type=kotlin.Nothing from='internal open fun (): kotlin.Int declared in .A' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .A declared in .A.' type=.A origin=null FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any @@ -37,6 +48,17 @@ FILE fqName: fileName:/B.kt BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun foo (): kotlin.String declared in .B' CONST String type=kotlin.String value="OK" + PROPERTY name:bar visibility:public modality:FINAL [val] + FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final] + EXPRESSION_BODY + CONST Int type=kotlin.Int value=2 + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.B) returnType:kotlin.Int + correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [val] + $this: VALUE_PARAMETER name: type:.B + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in .B' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:bar type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null + receiver: GET_VAR ': .B declared in .B.' type=.B origin=null FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in .A diff --git a/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt b/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt index b14b06830fb..15cfc83e5fe 100644 --- a/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt +++ b/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt @@ -5,6 +5,8 @@ open class A { internal open fun foo() : Int = 1 + + internal open val bar: Int = 1 } // MODULE: m2(m1) @@ -12,4 +14,6 @@ open class A { class B : A() { fun foo() : String = "OK" + + val bar: Int = 2 } diff --git a/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt.txt b/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt.txt index 57994a2b4d7..626c45b09ba 100644 --- a/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt.txt +++ b/compiler/testData/ir/irText/firProblems/internalPotentialOverride.kt.txt @@ -12,6 +12,10 @@ open class A { return 1 } + internal open val bar: Int + field = 1 + internal open get + } // MODULE: m2 @@ -28,4 +32,8 @@ class B : A { return "OK" } + val bar: Int + field = 2 + get + } diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java index db12669de6e..57a3fec1ca2 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java @@ -2596,6 +2596,12 @@ public class IrTextTestGenerated extends AbstractIrTextTest { runTest("compiler/testData/ir/irText/firProblems/InnerClassInAnonymous.kt"); } + @Test + @TestMetadata("internalPotentialFakeOverride.kt") + public void testInternalPotentialFakeOverride() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/internalPotentialFakeOverride.kt"); + } + @Test @TestMetadata("internalPotentialOverride.kt") public void testInternalPotentialOverride() throws Exception {