From 931480b12d27d202c39a4a504a1390f3704f5e9a Mon Sep 17 00:00:00 2001 From: Kirill Rakhman Date: Mon, 12 Feb 2024 15:11:23 +0100 Subject: [PATCH] [FIR2IR] Fix nullability of converted raw types #KT-65298 Fixed --- .../kotlin/fir/backend/Fir2IrTypeConverter.kt | 2 +- .../FirLightTreeJvmIrTextTestGenerated.java | 16 +++ .../ir/FirPsiJvmIrTextTestGenerated.java | 16 +++ .../fakeOverrideOfRaw.fir.ir.txt | 29 +++++ .../fakeOverrideOfRaw.fir.kt.txt | 8 ++ .../fakeOverrideOfRaw.fir.sig.kt.txt | 23 ++++ .../fakeOverrides/fakeOverrideOfRaw.ir.txt | 29 +++++ .../irText/fakeOverrides/fakeOverrideOfRaw.kt | 13 ++ .../fakeOverrides/fakeOverrideOfRaw.kt.txt | 8 ++ .../fakeOverrideOfRaw.sig.kt.txt | 23 ++++ .../types/rawTypeInSignature.fir.ir.txt | 110 +++++++++-------- .../types/rawTypeInSignature.fir.kt.txt | 30 ++--- .../types/rawTypeInSignature.fir.sig.kt.txt | 111 +++++++++++------- .../ir/ClassicJvmIrTextTestGenerated.java | 16 +++ .../test/runners/ir/AbstractIrTextTest.kt | 15 ++- .../klib/KlibIrTextTestCaseGenerated.java | 13 ++ .../FirLightTreeJsIrTextTestGenerated.java | 10 ++ .../test/fir/FirPsiJsIrTextTestGenerated.java | 10 ++ .../test/ir/ClassicJsIrTextTestGenerated.java | 10 ++ .../ClassicNativeIrTextTestGenerated.java | 10 ++ ...FirLightTreeNativeIrTextTestGenerated.java | 10 ++ .../FirPsiNativeIrTextTestGenerated.java | 10 ++ 22 files changed, 401 insertions(+), 121 deletions(-) create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.ir.txt create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.kt.txt create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.ir.txt create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt.txt create mode 100644 compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.sig.kt.txt diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt index 0d7dbcd76a8..9ad8d889bc6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt @@ -176,7 +176,7 @@ class Fir2IrTypeConverter( is ConeRawType -> { // Upper bound has star projections here, so we take lower one // (some reflection tests rely on this) - lowerBound.toIrType( + lowerBound.withNullability(upperBound.nullability, session.typeContext).toIrType( typeOrigin, annotations, hasFlexibleNullability = lowerBound.nullability != upperBound.nullability, diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java index c5519dd746a..b412f234d77 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java @@ -2677,6 +2677,22 @@ public class FirLightTreeJvmIrTextTestGenerated extends AbstractFirLightTreeJvmI } } + @Nested + @TestMetadata("compiler/testData/ir/irText/fakeOverrides") + @TestDataPath("$PROJECT_ROOT") + public class FakeOverrides { + @Test + public void testAllFilesPresentInFakeOverrides() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @Test + @TestMetadata("fakeOverrideOfRaw.kt") + public void testFakeOverrideOfRaw() throws Exception { + runTest("compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt"); + } + } + @Nested @TestMetadata("compiler/testData/ir/irText/firProblems") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java index 9f658d72651..84aa2b20bd5 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java @@ -2677,6 +2677,22 @@ public class FirPsiJvmIrTextTestGenerated extends AbstractFirPsiJvmIrTextTest { } } + @Nested + @TestMetadata("compiler/testData/ir/irText/fakeOverrides") + @TestDataPath("$PROJECT_ROOT") + public class FakeOverrides { + @Test + public void testAllFilesPresentInFakeOverrides() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @Test + @TestMetadata("fakeOverrideOfRaw.kt") + public void testFakeOverrideOfRaw() throws Exception { + runTest("compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt"); + } + } + @Nested @TestMetadata("compiler/testData/ir/irText/firProblems") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.ir.txt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.ir.txt new file mode 100644 index 00000000000..2d92db3703e --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.ir.txt @@ -0,0 +1,29 @@ +FILE fqName: fileName:/1.kt + CLASS CLASS name:A modality:FINAL visibility:public superTypes:[.Java1] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A + CONSTRUCTOR visibility:public <> () returnType:.A [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in .Java1' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[.Java1]' + FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:.Java1, a:@[FlexibleNullability] .List?) returnType:kotlin.Unit [fake_override] + overridden: + public open fun foo (a: @[FlexibleNullability] .List?): kotlin.Unit declared in .Java1 + $this: VALUE_PARAMETER name: type:.Java1 + VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] .List? + FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:.Java1) returnType:@[FlexibleNullability] .List? [fake_override] + overridden: + public open fun bar (): @[FlexibleNullability] .List? declared in .Java1 + $this: VALUE_PARAMETER name: type:.Java1 + 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 declared in .Java1 + $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 .Java1 + $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 .Java1 + $this: VALUE_PARAMETER name: type:kotlin.Any diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.kt.txt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.kt.txt new file mode 100644 index 00000000000..edff9089c4c --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.kt.txt @@ -0,0 +1,8 @@ +class A : Java1 { + constructor() /* primary */ { + super/*Java1*/() + /* () */ + + } + +} diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.sig.kt.txt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.sig.kt.txt new file mode 100644 index 00000000000..5439c7c9444 --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.fir.sig.kt.txt @@ -0,0 +1,23 @@ +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +class A : Java1 { + // CHECK: + // Mangled name: A#(){} + // Public signature: /A.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: A#bar(){}List? + // Public signature: /A.bar|-6805136188302315839[0] + // Public signature debug description: bar(){}List? + /* fake */ override fun bar(): List? + + // CHECK: + // Mangled name: A#foo(List?){} + // Public signature: /A.foo|-6260703452578085119[0] + // Public signature debug description: foo(List?){} + /* fake */ override fun foo(a: List?): Unit + +} diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.ir.txt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.ir.txt new file mode 100644 index 00000000000..f10664ab62c --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.ir.txt @@ -0,0 +1,29 @@ +FILE fqName: fileName:/1.kt + CLASS CLASS name:A modality:FINAL visibility:public superTypes:[.Java1] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A + CONSTRUCTOR visibility:public <> () returnType:.A [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in .Java1' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[.Java1]' + 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 declared in .Java1 + $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 .Java1 + $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 .Java1 + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:.Java1, a:@[FlexibleNullability] .List?) returnType:kotlin.Unit [fake_override] + overridden: + public open fun foo (a: @[FlexibleNullability] .List?): kotlin.Unit declared in .Java1 + $this: VALUE_PARAMETER name: type:.Java1 + VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] .List? + FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:.Java1) returnType:@[FlexibleNullability] .List? [fake_override] + overridden: + public open fun bar (): @[FlexibleNullability] .List? declared in .Java1 + $this: VALUE_PARAMETER name: type:.Java1 diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt new file mode 100644 index 00000000000..de22988c792 --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt @@ -0,0 +1,13 @@ +// ISSUE: KT-65298 +// TARGET_BACKEND: JVM +// SEPARATE_SIGNATURE_DUMP_FOR_K2 +// FILE: Java1.java + +public class Java1 { + public void foo(List a) {}; + public List bar() { return null; }; +} + +// FILE: 1.kt +class A : Java1() { +} \ No newline at end of file diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt.txt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt.txt new file mode 100644 index 00000000000..edff9089c4c --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt.txt @@ -0,0 +1,8 @@ +class A : Java1 { + constructor() /* primary */ { + super/*Java1*/() + /* () */ + + } + +} diff --git a/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.sig.kt.txt b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.sig.kt.txt new file mode 100644 index 00000000000..5439c7c9444 --- /dev/null +++ b/compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.sig.kt.txt @@ -0,0 +1,23 @@ +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +class A : Java1 { + // CHECK: + // Mangled name: A#(){} + // Public signature: /A.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: A#bar(){}List? + // Public signature: /A.bar|-6805136188302315839[0] + // Public signature debug description: bar(){}List? + /* fake */ override fun bar(): List? + + // CHECK: + // Mangled name: A#foo(List?){} + // Public signature: /A.foo|-6260703452578085119[0] + // Public signature debug description: foo(List?){} + /* fake */ override fun foo(a: List?): Unit + +} diff --git a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.ir.txt b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.ir.txt index f509d20793f..ef24b6aa191 100644 --- a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.ir.txt +++ b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.ir.txt @@ -59,23 +59,23 @@ FILE fqName: fileName:/rawTypeInSignature.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:testReturnsRawGenericInv visibility:public modality:FINAL <> (j:.JRaw) returnType:@[FlexibleNullability] @[RawType] .GenericInv + FUN name:testReturnsRawGenericInv visibility:public modality:FINAL <> (j:.JRaw) returnType:@[FlexibleNullability] @[RawType] .GenericInv? VALUE_PARAMETER name:j index:0 type:.JRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericInv (j: .JRaw): @[FlexibleNullability] @[RawType] .GenericInv declared in ' - CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericInv origin=null + RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericInv (j: .JRaw): @[FlexibleNullability] @[RawType] .GenericInv? declared in ' + CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv? declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericInv? origin=null $this: GET_VAR 'j: .JRaw declared in .testReturnsRawGenericInv' type=.JRaw origin=null - FUN name:testReturnsRawGenericIn visibility:public modality:FINAL <> (j:.JRaw) returnType:@[FlexibleNullability] @[RawType] .GenericIn + FUN name:testReturnsRawGenericIn visibility:public modality:FINAL <> (j:.JRaw) returnType:@[FlexibleNullability] @[RawType] .GenericIn? VALUE_PARAMETER name:j index:0 type:.JRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericIn (j: .JRaw): @[FlexibleNullability] @[RawType] .GenericIn declared in ' - CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericIn origin=null + RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericIn (j: .JRaw): @[FlexibleNullability] @[RawType] .GenericIn? declared in ' + CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn? declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericIn? origin=null $this: GET_VAR 'j: .JRaw declared in .testReturnsRawGenericIn' type=.JRaw origin=null - FUN name:testReturnsRawGenericOut visibility:public modality:FINAL <> (j:.JRaw) returnType:@[FlexibleNullability] @[RawType] .GenericOut + FUN name:testReturnsRawGenericOut visibility:public modality:FINAL <> (j:.JRaw) returnType:@[FlexibleNullability] @[RawType] .GenericOut? VALUE_PARAMETER name:j index:0 type:.JRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericOut (j: .JRaw): @[FlexibleNullability] @[RawType] .GenericOut declared in ' - CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericOut origin=null + RETURN type=kotlin.Nothing from='public final fun testReturnsRawGenericOut (j: .JRaw): @[FlexibleNullability] @[RawType] .GenericOut? declared in ' + CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut? declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericOut? origin=null $this: GET_VAR 'j: .JRaw declared in .testReturnsRawGenericOut' type=.JRaw origin=null CLASS CLASS name:KRaw modality:FINAL visibility:public superTypes:[.JRaw] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.KRaw @@ -87,86 +87,82 @@ FILE fqName: fileName:/rawTypeInSignature.kt FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final] EXPRESSION_BODY GET_VAR 'j: .JRaw declared in .KRaw.' type=.JRaw origin=null - FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:.KRaw, list:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList) returnType:kotlin.Unit + FUN DELEGATED_MEMBER name:takesRawList visibility:public modality:OPEN <> ($this:.KRaw, list:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList?) returnType:kotlin.Unit overridden: - public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList): kotlin.Unit declared in .JRaw + public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList?): kotlin.Unit declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw - VALUE_PARAMETER name:list index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList + VALUE_PARAMETER name:list index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? BLOCK_BODY - CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null + CALL 'public abstract fun takesRawList (list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList?): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null receiver: GET_VAR ': .KRaw declared in .KRaw.takesRawList' type=.KRaw origin=null - list: GET_VAR 'list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList declared in .KRaw.takesRawList' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList origin=null - FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList + list: GET_VAR 'list: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? declared in .KRaw.takesRawList' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? origin=null + FUN DELEGATED_MEMBER name:returnsRawList visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? overridden: - public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList declared in .JRaw + public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public open fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList declared in .KRaw' - TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList - CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList declared in .JRaw' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList origin=null - $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null - receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawList' type=.KRaw origin=null - FUN DELEGATED_MEMBER name:takesRawGenericInv visibility:public modality:OPEN <> ($this:.KRaw, g:@[FlexibleNullability] @[RawType] .GenericInv) returnType:kotlin.Unit + RETURN type=kotlin.Nothing from='public open fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? declared in .KRaw' + CALL 'public abstract fun returnsRawList (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? declared in .JRaw' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList? origin=null + $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null + receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawList' type=.KRaw origin=null + FUN DELEGATED_MEMBER name:takesRawGenericInv visibility:public modality:OPEN <> ($this:.KRaw, g:@[FlexibleNullability] @[RawType] .GenericInv?) returnType:kotlin.Unit overridden: - public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] .GenericInv): kotlin.Unit declared in .JRaw + public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] .GenericInv?): kotlin.Unit declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw - VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] .GenericInv + VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] .GenericInv? BLOCK_BODY - CALL 'public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] .GenericInv): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null + CALL 'public abstract fun takesRawGenericInv (g: @[FlexibleNullability] @[RawType] .GenericInv?): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null receiver: GET_VAR ': .KRaw declared in .KRaw.takesRawGenericInv' type=.KRaw origin=null - g: GET_VAR 'g: @[FlexibleNullability] @[RawType] .GenericInv declared in .KRaw.takesRawGenericInv' type=@[FlexibleNullability] @[RawType] .GenericInv origin=null - FUN DELEGATED_MEMBER name:returnsRawGenericInv visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[RawType] .GenericInv + g: GET_VAR 'g: @[FlexibleNullability] @[RawType] .GenericInv? declared in .KRaw.takesRawGenericInv' type=@[FlexibleNullability] @[RawType] .GenericInv? origin=null + FUN DELEGATED_MEMBER name:returnsRawGenericInv visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[RawType] .GenericInv? overridden: - public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv declared in .JRaw + public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv? declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public open fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv declared in .KRaw' - TYPE_OP type=@[RawType] .GenericInv origin=IMPLICIT_NOTNULL typeOperand=@[RawType] .GenericInv - CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericInv origin=null - $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null - receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawGenericInv' type=.KRaw origin=null - FUN DELEGATED_MEMBER name:takesRawGenericIn visibility:public modality:OPEN <> ($this:.KRaw, g:@[FlexibleNullability] @[RawType] .GenericIn) returnType:kotlin.Unit + RETURN type=kotlin.Nothing from='public open fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv? declared in .KRaw' + CALL 'public abstract fun returnsRawGenericInv (): @[FlexibleNullability] @[RawType] .GenericInv? declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericInv? origin=null + $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null + receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawGenericInv' type=.KRaw origin=null + FUN DELEGATED_MEMBER name:takesRawGenericIn visibility:public modality:OPEN <> ($this:.KRaw, g:@[FlexibleNullability] @[RawType] .GenericIn?) returnType:kotlin.Unit overridden: - public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] .GenericIn): kotlin.Unit declared in .JRaw + public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] .GenericIn?): kotlin.Unit declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw - VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] .GenericIn + VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] .GenericIn? BLOCK_BODY - CALL 'public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] .GenericIn): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null + CALL 'public abstract fun takesRawGenericIn (g: @[FlexibleNullability] @[RawType] .GenericIn?): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null receiver: GET_VAR ': .KRaw declared in .KRaw.takesRawGenericIn' type=.KRaw origin=null - g: GET_VAR 'g: @[FlexibleNullability] @[RawType] .GenericIn declared in .KRaw.takesRawGenericIn' type=@[FlexibleNullability] @[RawType] .GenericIn origin=null - FUN DELEGATED_MEMBER name:returnsRawGenericIn visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[RawType] .GenericIn + g: GET_VAR 'g: @[FlexibleNullability] @[RawType] .GenericIn? declared in .KRaw.takesRawGenericIn' type=@[FlexibleNullability] @[RawType] .GenericIn? origin=null + FUN DELEGATED_MEMBER name:returnsRawGenericIn visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[RawType] .GenericIn? overridden: - public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn declared in .JRaw + public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn? declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public open fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn declared in .KRaw' - TYPE_OP type=@[RawType] .GenericIn origin=IMPLICIT_NOTNULL typeOperand=@[RawType] .GenericIn - CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericIn origin=null - $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null - receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawGenericIn' type=.KRaw origin=null - FUN DELEGATED_MEMBER name:takesRawGenericOut visibility:public modality:OPEN <> ($this:.KRaw, g:@[FlexibleNullability] @[RawType] .GenericOut) returnType:kotlin.Unit + RETURN type=kotlin.Nothing from='public open fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn? declared in .KRaw' + CALL 'public abstract fun returnsRawGenericIn (): @[FlexibleNullability] @[RawType] .GenericIn? declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericIn? origin=null + $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null + receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawGenericIn' type=.KRaw origin=null + FUN DELEGATED_MEMBER name:takesRawGenericOut visibility:public modality:OPEN <> ($this:.KRaw, g:@[FlexibleNullability] @[RawType] .GenericOut?) returnType:kotlin.Unit overridden: - public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] .GenericOut): kotlin.Unit declared in .JRaw + public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] .GenericOut?): kotlin.Unit declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw - VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] .GenericOut + VALUE_PARAMETER name:g index:0 type:@[FlexibleNullability] @[RawType] .GenericOut? BLOCK_BODY - CALL 'public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] .GenericOut): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null + CALL 'public abstract fun takesRawGenericOut (g: @[FlexibleNullability] @[RawType] .GenericOut?): kotlin.Unit declared in .JRaw' type=kotlin.Unit origin=null $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null receiver: GET_VAR ': .KRaw declared in .KRaw.takesRawGenericOut' type=.KRaw origin=null - g: GET_VAR 'g: @[FlexibleNullability] @[RawType] .GenericOut declared in .KRaw.takesRawGenericOut' type=@[FlexibleNullability] @[RawType] .GenericOut origin=null - FUN DELEGATED_MEMBER name:returnsRawGenericOut visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[RawType] .GenericOut + g: GET_VAR 'g: @[FlexibleNullability] @[RawType] .GenericOut? declared in .KRaw.takesRawGenericOut' type=@[FlexibleNullability] @[RawType] .GenericOut? origin=null + FUN DELEGATED_MEMBER name:returnsRawGenericOut visibility:public modality:OPEN <> ($this:.KRaw) returnType:@[FlexibleNullability] @[RawType] .GenericOut? overridden: - public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut declared in .JRaw + public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut? declared in .JRaw $this: VALUE_PARAMETER name: type:.KRaw BLOCK_BODY - RETURN type=kotlin.Nothing from='public open fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut declared in .KRaw' - TYPE_OP type=@[RawType] .GenericOut origin=IMPLICIT_NOTNULL typeOperand=@[RawType] .GenericOut - CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericOut origin=null - $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null - receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawGenericOut' type=.KRaw origin=null + RETURN type=kotlin.Nothing from='public open fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut? declared in .KRaw' + CALL 'public abstract fun returnsRawGenericOut (): @[FlexibleNullability] @[RawType] .GenericOut? declared in .JRaw' type=@[FlexibleNullability] @[RawType] .GenericOut? origin=null + $this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:.JRaw visibility:private [final]' type=.JRaw origin=null + receiver: GET_VAR ': .KRaw declared in .KRaw.returnsRawGenericOut' type=.KRaw 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 declared in .JRaw diff --git a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.kt.txt b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.kt.txt index 7f593293494..423b61a2589 100644 --- a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.kt.txt +++ b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.kt.txt @@ -25,15 +25,15 @@ class GenericOut { } -fun testReturnsRawGenericInv(j: JRaw): @FlexibleNullability @RawType GenericInv { +fun testReturnsRawGenericInv(j: JRaw): @FlexibleNullability @RawType GenericInv? { return j.returnsRawGenericInv() } -fun testReturnsRawGenericIn(j: JRaw): @FlexibleNullability @RawType GenericIn { +fun testReturnsRawGenericIn(j: JRaw): @FlexibleNullability @RawType GenericIn? { return j.returnsRawGenericIn() } -fun testReturnsRawGenericOut(j: JRaw): @FlexibleNullability @RawType GenericOut { +fun testReturnsRawGenericOut(j: JRaw): @FlexibleNullability @RawType GenericOut? { return j.returnsRawGenericOut() } @@ -45,36 +45,36 @@ class KRaw : JRaw { } private /* final field */ val $$delegate_0: JRaw = j - override fun takesRawList(list: @FlexibleNullability @FlexibleMutability @RawType MutableList) { + override fun takesRawList(list: @FlexibleNullability @FlexibleMutability @RawType MutableList?) { .#$$delegate_0.takesRawList(list = list) } - override fun returnsRawList(): @FlexibleNullability @FlexibleMutability @RawType MutableList { - return .#$$delegate_0.returnsRawList() /*!! @FlexibleMutability @RawType MutableList */ + override fun returnsRawList(): @FlexibleNullability @FlexibleMutability @RawType MutableList? { + return .#$$delegate_0.returnsRawList() } - override fun takesRawGenericInv(g: @FlexibleNullability @RawType GenericInv) { + override fun takesRawGenericInv(g: @FlexibleNullability @RawType GenericInv?) { .#$$delegate_0.takesRawGenericInv(g = g) } - override fun returnsRawGenericInv(): @FlexibleNullability @RawType GenericInv { - return .#$$delegate_0.returnsRawGenericInv() /*!! @RawType GenericInv */ + override fun returnsRawGenericInv(): @FlexibleNullability @RawType GenericInv? { + return .#$$delegate_0.returnsRawGenericInv() } - override fun takesRawGenericIn(g: @FlexibleNullability @RawType GenericIn) { + override fun takesRawGenericIn(g: @FlexibleNullability @RawType GenericIn?) { .#$$delegate_0.takesRawGenericIn(g = g) } - override fun returnsRawGenericIn(): @FlexibleNullability @RawType GenericIn { - return .#$$delegate_0.returnsRawGenericIn() /*!! @RawType GenericIn */ + override fun returnsRawGenericIn(): @FlexibleNullability @RawType GenericIn? { + return .#$$delegate_0.returnsRawGenericIn() } - override fun takesRawGenericOut(g: @FlexibleNullability @RawType GenericOut) { + override fun takesRawGenericOut(g: @FlexibleNullability @RawType GenericOut?) { .#$$delegate_0.takesRawGenericOut(g = g) } - override fun returnsRawGenericOut(): @FlexibleNullability @RawType GenericOut { - return .#$$delegate_0.returnsRawGenericOut() /*!! @RawType GenericOut */ + override fun returnsRawGenericOut(): @FlexibleNullability @RawType GenericOut? { + return .#$$delegate_0.returnsRawGenericOut() } } diff --git a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt index 0d4bfd87bc9..a0711c74e2f 100644 --- a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt +++ b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt @@ -45,69 +45,92 @@ class KRaw : JRaw { constructor(j: JRaw) /* primary */ // CHECK JVM_IR: - // Mangled name: KRaw#returnsRawGenericIn(){}GenericIn - // Public signature: /KRaw.returnsRawGenericIn|-5257730602735068314[0] - // Public signature debug description: returnsRawGenericIn(){}GenericIn - override fun returnsRawGenericIn(): GenericIn + // Mangled name: KRaw#returnsRawGenericIn(){}GenericIn? + // Mangled name for the signature by IR: returnsRawGenericIn(){}GenericIn? + // Mangled name for the signature by Frontend: returnsRawGenericIn(){}GenericIn + // Public signature: /KRaw.returnsRawGenericIn|2316913195849838102[0] + // Public signature debug description: returnsRawGenericIn(){}GenericIn? + override fun returnsRawGenericIn(): GenericIn? // CHECK JVM_IR: - // Mangled name: KRaw#returnsRawGenericInv(){}GenericInv - // Public signature: /KRaw.returnsRawGenericInv|8692532014882222304[0] - // Public signature debug description: returnsRawGenericInv(){}GenericInv - override fun returnsRawGenericInv(): GenericInv + // Mangled name: KRaw#returnsRawGenericInv(){}GenericInv? + // Mangled name for the signature by IR: returnsRawGenericInv(){}GenericInv? + // Mangled name for the signature by Frontend: returnsRawGenericInv(){}GenericInv + // Public signature: /KRaw.returnsRawGenericInv|5636795900726870653[0] + // Public signature debug description: returnsRawGenericInv(){}GenericInv? + override fun returnsRawGenericInv(): GenericInv? // CHECK JVM_IR: - // Mangled name: KRaw#returnsRawGenericOut(){}GenericOut - // Public signature: /KRaw.returnsRawGenericOut|6207427576909418451[0] - // Public signature debug description: returnsRawGenericOut(){}GenericOut - override fun returnsRawGenericOut(): GenericOut + // Mangled name: KRaw#returnsRawGenericOut(){}GenericOut? + // Mangled name for the signature by IR: returnsRawGenericOut(){}GenericOut? + // Mangled name for the signature by Frontend: returnsRawGenericOut(){}GenericOut + // Public signature: /KRaw.returnsRawGenericOut|-2900081068433007254[0] + // Public signature debug description: returnsRawGenericOut(){}GenericOut? + override fun returnsRawGenericOut(): GenericOut? // CHECK JVM_IR: - // Mangled name: KRaw#returnsRawList(){}kotlin.collections.MutableList - // Public signature: /KRaw.returnsRawList|1437515324872981008[0] - // Public signature debug description: returnsRawList(){}kotlin.collections.MutableList - override fun returnsRawList(): MutableList + // Mangled name: KRaw#returnsRawList(){}kotlin.collections.MutableList? + // Mangled name for the signature by IR: returnsRawList(){}kotlin.collections.MutableList? + // Mangled name for the signature by Frontend: returnsRawList(){}kotlin.collections.MutableList + // Public signature: /KRaw.returnsRawList|-6457317888193014337[0] + // Public signature debug description: returnsRawList(){}kotlin.collections.MutableList? + override fun returnsRawList(): MutableList? // CHECK: - // Mangled name: KRaw#takesRawGenericIn(GenericIn){} - // Public signature: /KRaw.takesRawGenericIn|-2236627248339978838[0] - // Public signature debug description: takesRawGenericIn(GenericIn){} - override fun takesRawGenericIn(g: GenericIn): Unit + // Mangled name: KRaw#takesRawGenericIn(GenericIn?){} + // Mangled name for the signature by IR: takesRawGenericIn(GenericIn?){} + // Mangled name for the signature by Frontend: takesRawGenericIn(GenericIn){} + // Public signature: /KRaw.takesRawGenericIn|7111924639802650374[0] + // Public signature debug description: takesRawGenericIn(GenericIn?){} + override fun takesRawGenericIn(g: GenericIn?): Unit // CHECK: - // Mangled name: KRaw#takesRawGenericInv(GenericInv){} - // Public signature: /KRaw.takesRawGenericInv|2853148690189632857[0] - // Public signature debug description: takesRawGenericInv(GenericInv){} - override fun takesRawGenericInv(g: GenericInv): Unit + // Mangled name: KRaw#takesRawGenericInv(GenericInv?){} + // Mangled name for the signature by IR: takesRawGenericInv(GenericInv?){} + // Mangled name for the signature by Frontend: takesRawGenericInv(GenericInv){} + // Public signature: /KRaw.takesRawGenericInv|-7043210737732405875[0] + // Public signature debug description: takesRawGenericInv(GenericInv?){} + override fun takesRawGenericInv(g: GenericInv?): Unit // CHECK: - // Mangled name: KRaw#takesRawGenericOut(GenericOut){} - // Public signature: /KRaw.takesRawGenericOut|-5773421374790089688[0] - // Public signature debug description: takesRawGenericOut(GenericOut){} - override fun takesRawGenericOut(g: GenericOut): Unit + // Mangled name: KRaw#takesRawGenericOut(GenericOut?){} + // Mangled name for the signature by IR: takesRawGenericOut(GenericOut?){} + // Mangled name for the signature by Frontend: takesRawGenericOut(GenericOut){} + // Public signature: /KRaw.takesRawGenericOut|-6937861296436003286[0] + // Public signature debug description: takesRawGenericOut(GenericOut?){} + override fun takesRawGenericOut(g: GenericOut?): Unit // CHECK: - // Mangled name: KRaw#takesRawList(kotlin.collections.MutableList){} - // Public signature: /KRaw.takesRawList|1781281561350478530[0] - // Public signature debug description: takesRawList(kotlin.collections.MutableList){} - override fun takesRawList(list: MutableList): Unit + // Mangled name: KRaw#takesRawList(kotlin.collections.MutableList?){} + // Mangled name for the signature by IR: takesRawList(kotlin.collections.MutableList?){} + // Mangled name for the signature by Frontend: takesRawList(kotlin.collections.MutableList){} + // Public signature: /KRaw.takesRawList|-1231162314770327388[0] + // Public signature debug description: takesRawList(kotlin.collections.MutableList?){} + override fun takesRawList(list: MutableList?): Unit } // CHECK JVM_IR: -// Mangled name: #testReturnsRawGenericIn(JRaw){}GenericIn -// Public signature: /testReturnsRawGenericIn|8366804840057905100[0] -// Public signature debug description: testReturnsRawGenericIn(JRaw){}GenericIn -fun testReturnsRawGenericIn(j: JRaw): GenericIn +// Mangled name: #testReturnsRawGenericIn(JRaw){}GenericIn? +// Mangled name for the signature by IR: testReturnsRawGenericIn(JRaw){}GenericIn? +// Mangled name for the signature by Frontend: testReturnsRawGenericIn(JRaw){}GenericIn +// Public signature: /testReturnsRawGenericIn|-306193371031556622[0] +// Public signature debug description: testReturnsRawGenericIn(JRaw){}GenericIn? +fun testReturnsRawGenericIn(j: JRaw): GenericIn? // CHECK JVM_IR: -// Mangled name: #testReturnsRawGenericInv(JRaw){}GenericInv -// Public signature: /testReturnsRawGenericInv|5130359618608443436[0] -// Public signature debug description: testReturnsRawGenericInv(JRaw){}GenericInv -fun testReturnsRawGenericInv(j: JRaw): GenericInv +// Mangled name: #testReturnsRawGenericInv(JRaw){}GenericInv? +// Mangled name for the signature by IR: testReturnsRawGenericInv(JRaw){}GenericInv? +// Mangled name for the signature by Frontend: testReturnsRawGenericInv(JRaw){}GenericInv +// Public signature: /testReturnsRawGenericInv|6592680998914081032[0] +// Public signature debug description: testReturnsRawGenericInv(JRaw){}GenericInv? +fun testReturnsRawGenericInv(j: JRaw): GenericInv? // CHECK JVM_IR: -// Mangled name: #testReturnsRawGenericOut(JRaw){}GenericOut -// Public signature: /testReturnsRawGenericOut|-62256167970682834[0] -// Public signature debug description: testReturnsRawGenericOut(JRaw){}GenericOut -fun testReturnsRawGenericOut(j: JRaw): GenericOut +// Mangled name: #testReturnsRawGenericOut(JRaw){}GenericOut? +// Mangled name for the signature by IR: testReturnsRawGenericOut(JRaw){}GenericOut? +// Mangled name for the signature by Frontend: testReturnsRawGenericOut(JRaw){}GenericOut +// Public signature: /testReturnsRawGenericOut|6146268409340591089[0] +// Public signature debug description: testReturnsRawGenericOut(JRaw){}GenericOut? +fun testReturnsRawGenericOut(j: JRaw): GenericOut? + diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java index bb2227ab4ec..84aaa6eff2c 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java @@ -2677,6 +2677,22 @@ public class ClassicJvmIrTextTestGenerated extends AbstractClassicJvmIrTextTest } } + @Nested + @TestMetadata("compiler/testData/ir/irText/fakeOverrides") + @TestDataPath("$PROJECT_ROOT") + public class FakeOverrides { + @Test + public void testAllFilesPresentInFakeOverrides() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/ir/irText/fakeOverrides"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); + } + + @Test + @TestMetadata("fakeOverrideOfRaw.kt") + public void testFakeOverrideOfRaw() throws Exception { + runTest("compiler/testData/ir/irText/fakeOverrides/fakeOverrideOfRaw.kt"); + } + } + @Nested @TestMetadata("compiler/testData/ir/irText/firProblems") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt index 8f21afadb10..577844688d0 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/runners/ir/AbstractIrTextTest.kt @@ -11,13 +11,10 @@ import org.jetbrains.kotlin.test.TargetBackend import org.jetbrains.kotlin.test.backend.BlackBoxCodegenSuppressor import org.jetbrains.kotlin.test.backend.handlers.* import org.jetbrains.kotlin.test.backend.ir.IrBackendInput -import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder -import org.jetbrains.kotlin.test.builders.classicFrontendHandlersStep -import org.jetbrains.kotlin.test.builders.firHandlersStep -import org.jetbrains.kotlin.test.builders.irHandlersStep import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_IR import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_KT_IR import org.jetbrains.kotlin.test.FirParser +import org.jetbrains.kotlin.test.builders.* import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_SIGNATURES import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.REPORT_ONLY_EXPLICITLY_DEFINED_DEBUG_INFO @@ -26,6 +23,8 @@ import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives.LINK_VIA_ import org.jetbrains.kotlin.test.directives.configureFirParser import org.jetbrains.kotlin.test.frontend.classic.handlers.ClassicDiagnosticsHandler import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDiagnosticsHandler +import org.jetbrains.kotlin.test.frontend.fir.handlers.FirDumpHandler +import org.jetbrains.kotlin.test.frontend.fir.handlers.FirScopeDumpHandler import org.jetbrains.kotlin.test.model.* import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerWithTargetBackendTest import org.jetbrains.kotlin.test.services.sourceProviders.AdditionalDiagnosticsSourceFilesProvider @@ -103,6 +102,14 @@ abstract class AbstractIrTextTest