From da9f0e7af8e59ab351799b65c670c1ad7980bf1e Mon Sep 17 00:00:00 2001 From: Sergej Jaskiewicz Date: Fri, 12 Jan 2024 18:39:39 +0100 Subject: [PATCH] [test] Get rid of SKIP_SIGNATURE_DUMP directive in irText tests Sometimes there are legitimate reasons to have two separate signature dumps for K1 and K2. ^KT-61797 Fixed --- .../classes/delegatedGenericImplementation.kt | 3 - .../delegatedGenericImplementation.sig.kt.txt | 172 +++++ ...plementationOfJavaInterface.fir.sig.kt.txt | 58 ++ .../delegatedImplementationOfJavaInterface.kt | 2 +- ...edImplementationOfJavaInterface.sig.kt.txt | 58 ++ .../ir/irText/classes/kt45853.fir.sig.kt.txt | 52 ++ .../testData/ir/irText/classes/kt45853.kt | 2 +- .../ir/irText/classes/kt45853.sig.kt.txt | 52 ++ .../ir/irText/classes/kt45934.fir.sig.kt.txt | 17 + .../testData/ir/irText/classes/kt45934.kt | 2 +- .../ir/irText/classes/kt45934.sig.kt.txt | 11 + .../annotationsOnDelegatedMembers.kt | 3 - .../annotationsOnDelegatedMembers.sig.kt.txt | 119 ++++ .../enumEntriesWithAnnotations.fir.sig.kt.txt | 252 +++++++ .../annotations/enumEntriesWithAnnotations.kt | 2 +- .../enumEntriesWithAnnotations.sig.kt.txt | 253 +++++++ ...tionWithSingleArrayArgument.fir.sig.kt.txt | 246 +++++++ .../javaAnnotationWithSingleArrayArgument.kt | 2 +- ...notationWithSingleArrayArgument.sig.kt.txt | 246 +++++++ ...eratorInAnnotationArguments.fir.sig.kt.txt | 33 + .../spreadOperatorInAnnotationArguments.kt | 4 +- ...adOperatorInAnnotationArguments.sig.kt.txt | 33 + .../declarations/typeAlias.fir.sig.kt.txt | 22 + .../ir/irText/declarations/typeAlias.kt | 2 +- .../irText/declarations/typeAlias.sig.kt.txt | 26 + ...ReferenceFromEnumEntryClass.fir.sig.kt.txt | 266 ++++++++ .../enumEntryReferenceFromEnumEntryClass.kt | 2 +- ...ntryReferenceFromEnumEntryClass.sig.kt.txt | 265 ++++++++ .../AbstractMutableMap.fir.sig.kt.txt | 193 ++++++ .../irText/firProblems/AbstractMutableMap.kt | 2 +- .../firProblems/AbstractMutableMap.sig.kt.txt | 181 +++++ .../ArrayListOverrides.fir.sig.kt.txt | 477 +++++++++++++ .../irText/firProblems/ArrayListOverrides.kt | 2 +- .../firProblems/ArrayListOverrides.sig.kt.txt | 477 +++++++++++++ .../ir/irText/firProblems/IntArrayAsVararg.kt | 1 - .../firProblems/IntArrayAsVararg.sig.kt.txt | 19 + .../firProblems/MultiList.fir.sig.kt.txt | 631 ++++++++++++++++++ .../ir/irText/firProblems/MultiList.kt | 2 +- .../irText/firProblems/MultiList.sig.kt.txt | 631 ++++++++++++++++++ .../delegatedSetterShouldBeSpecialized.kt | 1 - ...egatedSetterShouldBeSpecialized.sig.kt.txt | 51 ++ .../substitutionOverrideWithDelegate.kt | 1 - ...ubstitutionOverrideWithDelegate.sig.kt.txt | 95 +++ .../types/rawTypeInSignature.fir.sig.kt.txt | 113 ++++ .../ir/irText/types/rawTypeInSignature.kt | 2 +- .../types/rawTypeInSignature.sig.kt.txt | 113 ++++ .../IrMangledNameAndSignatureDumpHandler.kt | 22 +- .../test/directives/CodegenTestDirectives.kt | 9 +- 48 files changed, 5200 insertions(+), 28 deletions(-) create mode 100644 compiler/testData/ir/irText/classes/delegatedGenericImplementation.sig.kt.txt create mode 100644 compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.sig.kt.txt create mode 100644 compiler/testData/ir/irText/classes/kt45853.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/classes/kt45853.sig.kt.txt create mode 100644 compiler/testData/ir/irText/classes/kt45934.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/classes/kt45934.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/typeAlias.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/declarations/typeAlias.sig.kt.txt create mode 100644 compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/AbstractMutableMap.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/ArrayListOverrides.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/ArrayListOverrides.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/IntArrayAsVararg.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/MultiList.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/MultiList.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.sig.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.sig.kt.txt create mode 100644 compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt create mode 100644 compiler/testData/ir/irText/types/rawTypeInSignature.sig.kt.txt diff --git a/compiler/testData/ir/irText/classes/delegatedGenericImplementation.kt b/compiler/testData/ir/irText/classes/delegatedGenericImplementation.kt index 20ee470e782..529f811ae3f 100644 --- a/compiler/testData/ir/irText/classes/delegatedGenericImplementation.kt +++ b/compiler/testData/ir/irText/classes/delegatedGenericImplementation.kt @@ -1,6 +1,3 @@ -// SKIP_SIGNATURE_DUMP -// ^ K1 generates a useless delegate field for the Test2 class, K2 does not - interface IBase { fun foo(a: A, b: B) val C.id: Map? diff --git a/compiler/testData/ir/irText/classes/delegatedGenericImplementation.sig.kt.txt b/compiler/testData/ir/irText/classes/delegatedGenericImplementation.sig.kt.txt new file mode 100644 index 00000000000..a5174e3acad --- /dev/null +++ b/compiler/testData/ir/irText/classes/delegatedGenericImplementation.sig.kt.txt @@ -0,0 +1,172 @@ +// CHECK: +// Mangled name: Test1 +// Public signature: /Test1|null[0] +class Test1 : IBase { + // CHECK: + // Mangled name: Test1#(IBase<1:0>){} + // Public signature: /Test1.|-3017997426280513504[0] + // Public signature debug description: (IBase<1:0>){} + constructor(i: IBase) /* primary */ + + // CHECK: + // Mangled name: Test1#foo(1:0;0:0){0§} + // Public signature: /Test1.foo|406069289574534187[0] + // Public signature debug description: foo(1:0;0:0){0§} + override fun foo(a: E, b: B): Unit + + // CHECK: + // Mangled name: Test1@0:0{0§}id + // Public signature: /Test1.id|6409895071901545951[0] + // Public signature debug description: @0:0{0§}id + override val C.id: Map? + // CHECK JVM_IR: + // Mangled name: Test1#@0:0(){0§}kotlin.collections.Map<1:0,0:0>? + // Public signature: /Test1.id.|-1161899104741266586[0] + // Public signature debug description: @0:0(){0§}kotlin.collections.Map<1:0,0:0>? + // CHECK JS_IR NATIVE: + // Mangled name: Test1#@0:0(){0§} + // Public signature: /Test1.id.|-1537502770664138716[0] + // Public signature debug description: @0:0(){0§} + override get(): Map? + + // CHECK: + // Mangled name: Test1@kotlin.collections.List<0:0>{0§}x + // Public signature: /Test1.x|-197950632589282220[0] + // Public signature debug description: @kotlin.collections.List<0:0>{0§}x + override var List.x: D? + // CHECK JVM_IR: + // Mangled name: Test1#@kotlin.collections.List<0:0>(){0§}0:0? + // Public signature: /Test1.x.|1915131689713400313[0] + // Public signature debug description: @kotlin.collections.List<0:0>(){0§}0:0? + // CHECK JS_IR NATIVE: + // Mangled name: Test1#@kotlin.collections.List<0:0>(){0§} + // Public signature: /Test1.x.|-7897041295469127828[0] + // Public signature debug description: @kotlin.collections.List<0:0>(){0§} + override get(): D? + // CHECK: + // Mangled name: Test1#@kotlin.collections.List<0:0>(0:0?){0§} + // Public signature: /Test1.x.|7048513426934671771[0] + // Public signature debug description: @kotlin.collections.List<0:0>(0:0?){0§} + override set(: D?): Unit + +} + +// CHECK: +// Mangled name: Test2 +// Public signature: /Test2|null[0] +class Test2 : IBase { + // CHECK: + // Mangled name: Test2{}j + // Public signature: /Test2.j|-6836075379230315579[0] + // Public signature debug description: {}j + var j: IBase + // CHECK JVM_IR: + // Mangled name: Test2#(){}IBase + // Public signature: /Test2.j.|-6883763672420899739[0] + // Public signature debug description: (){}IBase + // CHECK JS_IR NATIVE: + // Mangled name: Test2#(){} + // Public signature: /Test2.j.|5087577794943671660[0] + // Public signature debug description: (){} + get + // CHECK: + // Mangled name: Test2#(IBase){} + // Public signature: /Test2.j.|4329154110216130240[0] + // Public signature debug description: (IBase){} + set + + // CHECK: + // Mangled name: Test2#(IBase){} + // Public signature: /Test2.|4395202944622832808[0] + // Public signature debug description: (IBase){} + constructor(j: IBase) /* primary */ + + // CHECK: + // Mangled name: Test2#foo(kotlin.String;0:0){0§} + // Public signature: /Test2.foo|3497909443104319155[0] + // Public signature debug description: foo(kotlin.String;0:0){0§} + override fun foo(a: String, b: B): Unit + + // CHECK: + // Mangled name: Test2@0:0{0§}id + // Public signature: /Test2.id|6409895071901545951[0] + // Public signature debug description: @0:0{0§}id + override val C.id: Map? + // CHECK JVM_IR: + // Mangled name: Test2#@0:0(){0§}kotlin.collections.Map? + // Public signature: /Test2.id.|5038832815964071118[0] + // Public signature debug description: @0:0(){0§}kotlin.collections.Map? + // CHECK JS_IR NATIVE: + // Mangled name: Test2#@0:0(){0§} + // Public signature: /Test2.id.|-1537502770664138716[0] + // Public signature debug description: @0:0(){0§} + override get(): Map? + + // CHECK: + // Mangled name: Test2@kotlin.collections.List<0:0>{0§}x + // Public signature: /Test2.x|-197950632589282220[0] + // Public signature debug description: @kotlin.collections.List<0:0>{0§}x + override var List.x: D? + // CHECK JVM_IR: + // Mangled name: Test2#@kotlin.collections.List<0:0>(){0§}0:0? + // Public signature: /Test2.x.|1915131689713400313[0] + // Public signature debug description: @kotlin.collections.List<0:0>(){0§}0:0? + // CHECK JS_IR NATIVE: + // Mangled name: Test2#@kotlin.collections.List<0:0>(){0§} + // Public signature: /Test2.x.|-7897041295469127828[0] + // Public signature debug description: @kotlin.collections.List<0:0>(){0§} + override get(): D? + // CHECK: + // Mangled name: Test2#@kotlin.collections.List<0:0>(0:0?){0§} + // Public signature: /Test2.x.|7048513426934671771[0] + // Public signature debug description: @kotlin.collections.List<0:0>(0:0?){0§} + override set(: D?): Unit + +} + +// CHECK: +// Mangled name: IBase +// Public signature: /IBase|null[0] +interface IBase { + // CHECK: + // Mangled name: IBase#foo(1:0;0:0){0§} + // Public signature: /IBase.foo|406069289574534187[0] + // Public signature debug description: foo(1:0;0:0){0§} + abstract fun foo(a: A, b: B): Unit + + // CHECK: + // Mangled name: IBase@0:0{0§}id + // Public signature: /IBase.id|6409895071901545951[0] + // Public signature debug description: @0:0{0§}id + abstract val C.id: Map? + // CHECK JVM_IR: + // Mangled name: IBase#@0:0(){0§}kotlin.collections.Map<1:0,0:0>? + // Public signature: /IBase.id.|-1161899104741266586[0] + // Public signature debug description: @0:0(){0§}kotlin.collections.Map<1:0,0:0>? + // CHECK JS_IR NATIVE: + // Mangled name: IBase#@0:0(){0§} + // Public signature: /IBase.id.|-1537502770664138716[0] + // Public signature debug description: @0:0(){0§} + abstract get + + // CHECK: + // Mangled name: IBase@kotlin.collections.List<0:0>{0§}x + // Public signature: /IBase.x|-197950632589282220[0] + // Public signature debug description: @kotlin.collections.List<0:0>{0§}x + abstract var List.x: D? + // CHECK JVM_IR: + // Mangled name: IBase#@kotlin.collections.List<0:0>(){0§}0:0? + // Public signature: /IBase.x.|1915131689713400313[0] + // Public signature debug description: @kotlin.collections.List<0:0>(){0§}0:0? + // CHECK JS_IR NATIVE: + // Mangled name: IBase#@kotlin.collections.List<0:0>(){0§} + // Public signature: /IBase.x.|-7897041295469127828[0] + // Public signature debug description: @kotlin.collections.List<0:0>(){0§} + abstract get + // CHECK: + // Mangled name: IBase#@kotlin.collections.List<0:0>(0:0?){0§} + // Public signature: /IBase.x.|7048513426934671771[0] + // Public signature debug description: @kotlin.collections.List<0:0>(0:0?){0§} + abstract set + +} diff --git a/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.fir.sig.kt.txt b/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.fir.sig.kt.txt new file mode 100644 index 00000000000..77ebe81ece8 --- /dev/null +++ b/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.fir.sig.kt.txt @@ -0,0 +1,58 @@ +// CHECK: +// Mangled name: Test +// Public signature: /Test|null[0] +class Test : J { + // CHECK: + // Mangled name: Test{}j + // Public signature: /Test.j|-6836075379230315579[0] + // Public signature debug description: {}j + private val j: J + // CHECK JVM_IR: + // Mangled name: Test#(){}J + // Public signature: /Test.j.|-6114050685652754863[0] + // Public signature debug description: (){}J + private get + + // CHECK: + // Mangled name: Test#(J){} + // Public signature: /Test.|1083383516528472352[0] + // Public signature debug description: (J){} + constructor(j: J) /* primary */ + + // CHECK JVM_IR: + // Mangled name: Test#returnNotNull(){}kotlin.String{EnhancedNullability} + // Public signature: /Test.returnNotNull|-3682895453084642874[0] + // Public signature debug description: returnNotNull(){}kotlin.String{EnhancedNullability} + override fun returnNotNull(): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: Test#returnNullable(){}kotlin.String? + // Public signature: /Test.returnNullable|-8543835017469041188[0] + // Public signature debug description: returnNullable(){}kotlin.String? + override fun returnNullable(): String? + + // CHECK JVM_IR: + // Mangled name: Test#returnsFlexible(){}kotlin.String? + // Public signature: /Test.returnsFlexible|-5946143652599840920[0] + // Public signature debug description: returnsFlexible(){}kotlin.String? + override fun returnsFlexible(): String? + + // CHECK: + // Mangled name: Test#takeFlexible(kotlin.String?){} + // Public signature: /Test.takeFlexible|8434697244780181625[0] + // Public signature debug description: takeFlexible(kotlin.String?){} + override fun takeFlexible(x: String?): Unit + + // CHECK: + // Mangled name: Test#takeNotNull(kotlin.String{EnhancedNullability}){} + // Public signature: /Test.takeNotNull|2138033560695328162[0] + // Public signature debug description: takeNotNull(kotlin.String{EnhancedNullability}){} + override fun takeNotNull(x: @EnhancedNullability String): Unit + + // CHECK: + // Mangled name: Test#takeNullable(kotlin.String?){} + // Public signature: /Test.takeNullable|5724815424219841897[0] + // Public signature debug description: takeNullable(kotlin.String?){} + override fun takeNullable(x: String?): Unit + +} diff --git a/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.kt b/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.kt index c958050fec7..198eb165f74 100644 --- a/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.kt +++ b/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.kt @@ -1,6 +1,6 @@ // TARGET_BACKEND: JVM -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Fake overrides have divirging @EnhancedNullability in K1 and K2 // FILE: delegatedImplementationOfJavaInterface.kt diff --git a/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.sig.kt.txt b/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.sig.kt.txt new file mode 100644 index 00000000000..5b262501495 --- /dev/null +++ b/compiler/testData/ir/irText/classes/delegatedImplementationOfJavaInterface.sig.kt.txt @@ -0,0 +1,58 @@ +// CHECK: +// Mangled name: Test +// Public signature: /Test|null[0] +class Test : J { + // CHECK: + // Mangled name: Test{}j + // Public signature: /Test.j|-6836075379230315579[0] + // Public signature debug description: {}j + private val j: J + // CHECK JVM_IR: + // Mangled name: Test#(){}J + // Public signature: /Test.j.|-6114050685652754863[0] + // Public signature debug description: (){}J + private get + + // CHECK: + // Mangled name: Test#(J){} + // Public signature: /Test.|1083383516528472352[0] + // Public signature debug description: (J){} + constructor(j: J) /* primary */ + + // CHECK JVM_IR: + // Mangled name: Test#returnNotNull(){}kotlin.String{EnhancedNullability} + // Public signature: /Test.returnNotNull|-3682895453084642874[0] + // Public signature debug description: returnNotNull(){}kotlin.String{EnhancedNullability} + override fun returnNotNull(): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: Test#returnNullable(){}kotlin.String?{EnhancedNullability} + // Public signature: /Test.returnNullable|-404622903433277680[0] + // Public signature debug description: returnNullable(){}kotlin.String?{EnhancedNullability} + override fun returnNullable(): @EnhancedNullability String? + + // CHECK JVM_IR: + // Mangled name: Test#returnsFlexible(){}kotlin.String? + // Public signature: /Test.returnsFlexible|-5946143652599840920[0] + // Public signature debug description: returnsFlexible(){}kotlin.String? + override fun returnsFlexible(): String? + + // CHECK: + // Mangled name: Test#takeFlexible(kotlin.String?){} + // Public signature: /Test.takeFlexible|8434697244780181625[0] + // Public signature debug description: takeFlexible(kotlin.String?){} + override fun takeFlexible(x: String?): Unit + + // CHECK: + // Mangled name: Test#takeNotNull(kotlin.String{EnhancedNullability}){} + // Public signature: /Test.takeNotNull|2138033560695328162[0] + // Public signature debug description: takeNotNull(kotlin.String{EnhancedNullability}){} + override fun takeNotNull(x: @EnhancedNullability String): Unit + + // CHECK: + // Mangled name: Test#takeNullable(kotlin.String?{EnhancedNullability}){} + // Public signature: /Test.takeNullable|-558980523272297075[0] + // Public signature debug description: takeNullable(kotlin.String?{EnhancedNullability}){} + override fun takeNullable(x: @EnhancedNullability String?): Unit + +} diff --git a/compiler/testData/ir/irText/classes/kt45853.fir.sig.kt.txt b/compiler/testData/ir/irText/classes/kt45853.fir.sig.kt.txt new file mode 100644 index 00000000000..57cdc559b96 --- /dev/null +++ b/compiler/testData/ir/irText/classes/kt45853.fir.sig.kt.txt @@ -0,0 +1,52 @@ +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +abstract class A { + // CHECK: + // Mangled name: A#(){} + // Public signature: /A.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: A{}a + // Public signature: /A.a|-1200697420457237799[0] + // Public signature debug description: {}a + abstract val a: A? + // CHECK JVM_IR: + // Mangled name: A#(){}A? + // Public signature: /A.a.|-5866676359912206759[0] + // Public signature debug description: (){}A? + abstract get + +} + +// CHECK: +// Mangled name: B +// Public signature: /B|null[0] +class B : AX { + // CHECK: + // Mangled name: B#(){} + // Public signature: /B.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: B#getA(){}X? + // Public signature: /B.getA|-186252691497860920[0] + // Public signature debug description: getA(){}X? + override fun getA(): X? + + // CHECK: + // Mangled name: B{}a + // Public signature: /B.a|-1200697420457237799[0] + // Public signature debug description: {}a + /* fake */ override val a: AX? + // CHECK JVM_IR: + // Mangled name: B#(){}AX? + // Public signature: /B.a.|243290884802757470[0] + // Public signature debug description: (){}AX? + @Override + /* fake */ override get(): AX? + +} diff --git a/compiler/testData/ir/irText/classes/kt45853.kt b/compiler/testData/ir/irText/classes/kt45853.kt index f7b178dada9..82e040b54e1 100644 --- a/compiler/testData/ir/irText/classes/kt45853.kt +++ b/compiler/testData/ir/irText/classes/kt45853.kt @@ -3,7 +3,7 @@ // DUMP_EXTERNAL_CLASS: X // DUMP_EXTERNAL_CLASS: AX -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Fake overrides have divirging @EnhancedNullability in K1 and K2 // FILE: kt45853.kt diff --git a/compiler/testData/ir/irText/classes/kt45853.sig.kt.txt b/compiler/testData/ir/irText/classes/kt45853.sig.kt.txt new file mode 100644 index 00000000000..d02d96fc420 --- /dev/null +++ b/compiler/testData/ir/irText/classes/kt45853.sig.kt.txt @@ -0,0 +1,52 @@ +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +abstract class A { + // CHECK: + // Mangled name: A#(){} + // Public signature: /A.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: A{}a + // Public signature: /A.a|-1200697420457237799[0] + // Public signature debug description: {}a + abstract val a: A? + // CHECK JVM_IR: + // Mangled name: A#(){}A? + // Public signature: /A.a.|-5866676359912206759[0] + // Public signature debug description: (){}A? + abstract get + +} + +// CHECK: +// Mangled name: B +// Public signature: /B|null[0] +class B : AX { + // CHECK: + // Mangled name: B#(){} + // Public signature: /B.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: B#getA(){}X? + // Public signature: /B.getA|-186252691497860920[0] + // Public signature debug description: getA(){}X? + override fun getA(): X? + + // CHECK: + // Mangled name: B{}a + // Public signature: /B.a|-1200697420457237799[0] + // Public signature debug description: {}a + /* fake */ override val a: @EnhancedNullability AX? + // CHECK JVM_IR: + // Mangled name: B#(){}AX?{EnhancedNullability} + // Public signature: /B.a.|1682004550888840418[0] + // Public signature debug description: (){}AX?{EnhancedNullability} + @Override + /* fake */ override get(): @EnhancedNullability AX? + +} diff --git a/compiler/testData/ir/irText/classes/kt45934.fir.sig.kt.txt b/compiler/testData/ir/irText/classes/kt45934.fir.sig.kt.txt new file mode 100644 index 00000000000..5694a4e8155 --- /dev/null +++ b/compiler/testData/ir/irText/classes/kt45934.fir.sig.kt.txt @@ -0,0 +1,17 @@ +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C : I { + // CHECK: + // Mangled name: C#(J){} + // Public signature: /C.|1083383516528472352[0] + // Public signature debug description: (J){} + constructor(client: J) /* primary */ + + // CHECK JVM_IR: + // Mangled name: C#foo(){0§}kotlin.collections.MutableList<0:0?>? + // Public signature: /C.foo|1528742332167339732[0] + // Public signature debug description: foo(){0§}kotlin.collections.MutableList<0:0?>? + override fun foo(): MutableList? + +} diff --git a/compiler/testData/ir/irText/classes/kt45934.kt b/compiler/testData/ir/irText/classes/kt45934.kt index db68e5acf6d..6c95a05313e 100644 --- a/compiler/testData/ir/irText/classes/kt45934.kt +++ b/compiler/testData/ir/irText/classes/kt45934.kt @@ -1,7 +1,7 @@ // TARGET_BACKEND: JVM // SKIP_KT_DUMP -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ K2 generates an override for foo in C, K1 does not // FILE: kt45934.kt diff --git a/compiler/testData/ir/irText/classes/kt45934.sig.kt.txt b/compiler/testData/ir/irText/classes/kt45934.sig.kt.txt new file mode 100644 index 00000000000..ec33f0e75f9 --- /dev/null +++ b/compiler/testData/ir/irText/classes/kt45934.sig.kt.txt @@ -0,0 +1,11 @@ +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C : I { + // CHECK: + // Mangled name: C#(J){} + // Public signature: /C.|1083383516528472352[0] + // Public signature debug description: (J){} + constructor(client: J) /* primary */ + +} diff --git a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.kt b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.kt index 8548fb4a23b..b0f44d19f44 100644 --- a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.kt +++ b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.kt @@ -1,6 +1,3 @@ -// SKIP_SIGNATURE_DUMP -// ^ Difference in annotations generated by K1 and K2 - annotation class Ann interface IFoo { diff --git a/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.sig.kt.txt new file mode 100644 index 00000000000..60ae67a57fd --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/annotationsOnDelegatedMembers.sig.kt.txt @@ -0,0 +1,119 @@ +// CHECK: +// Mangled name: Ann +// Public signature: /Ann|null[0] +open annotation class Ann : Annotation { + // CHECK: + // Mangled name: Ann#(){} + // Public signature: /Ann.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: DFoo +// Public signature: /DFoo|null[0] +class DFoo : IFoo { + // CHECK: + // Mangled name: DFoo#(IFoo){} + // Public signature: /DFoo.|-657369904845510135[0] + // Public signature debug description: (IFoo){} + constructor(d: IFoo) /* primary */ + + // CHECK: + // Mangled name: DFoo#testExtFun@kotlin.String(){} + // Public signature: /DFoo.testExtFun|-4671785829303171989[0] + // Public signature debug description: testExtFun@kotlin.String(){} + @Ann + override fun String.testExtFun(): Unit + + // CHECK: + // Mangled name: DFoo#testFun(){} + // Public signature: /DFoo.testFun|6322333980269160703[0] + // Public signature debug description: testFun(){} + @Ann + override fun testFun(): Unit + + // CHECK: + // Mangled name: DFoo@kotlin.String{}testExtVal + // Public signature: /DFoo.testExtVal|-6269693357376137188[0] + // Public signature debug description: @kotlin.String{}testExtVal + override val String.testExtVal: String + // CHECK JVM_IR: + // Mangled name: DFoo#@kotlin.String(){}kotlin.String + // Public signature: /DFoo.testExtVal.|4035393032845602237[0] + // Public signature debug description: @kotlin.String(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: DFoo#@kotlin.String(){} + // Public signature: /DFoo.testExtVal.|8692242155954463066[0] + // Public signature debug description: @kotlin.String(){} + override get(): String + + // CHECK: + // Mangled name: DFoo{}testVal + // Public signature: /DFoo.testVal|2839078120601828782[0] + // Public signature debug description: {}testVal + override val testVal: String + // CHECK JVM_IR: + // Mangled name: DFoo#(){}kotlin.String + // Public signature: /DFoo.testVal.|-8940261368877498423[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: DFoo#(){} + // Public signature: /DFoo.testVal.|-3119877793352707332[0] + // Public signature debug description: (){} + override get(): String + +} + +// CHECK: +// Mangled name: IFoo +// Public signature: /IFoo|null[0] +interface IFoo { + // CHECK: + // Mangled name: IFoo#testExtFun@kotlin.String(){} + // Public signature: /IFoo.testExtFun|-4671785829303171989[0] + // Public signature debug description: testExtFun@kotlin.String(){} + @Ann + abstract fun String.testExtFun(): Unit + + // CHECK: + // Mangled name: IFoo#testFun(){} + // Public signature: /IFoo.testFun|6322333980269160703[0] + // Public signature debug description: testFun(){} + @Ann + abstract fun testFun(): Unit + + // CHECK: + // Mangled name: IFoo@kotlin.String{}testExtVal + // Public signature: /IFoo.testExtVal|-6269693357376137188[0] + // Public signature debug description: @kotlin.String{}testExtVal + @Ann + abstract val String.testExtVal: String + // CHECK JVM_IR: + // Mangled name: IFoo#@kotlin.String(){}kotlin.String + // Public signature: /IFoo.testExtVal.|4035393032845602237[0] + // Public signature debug description: @kotlin.String(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: IFoo#@kotlin.String(){} + // Public signature: /IFoo.testExtVal.|8692242155954463066[0] + // Public signature debug description: @kotlin.String(){} + abstract get + + // CHECK: + // Mangled name: IFoo{}testVal + // Public signature: /IFoo.testVal|2839078120601828782[0] + // Public signature debug description: {}testVal + @Ann + abstract val testVal: String + // CHECK JVM_IR: + // Mangled name: IFoo#(){}kotlin.String + // Public signature: /IFoo.testVal.|-8940261368877498423[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: IFoo#(){} + // Public signature: /IFoo.testVal.|-3119877793352707332[0] + // Public signature debug description: (){} + abstract get + +} diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.sig.kt.txt new file mode 100644 index 00000000000..ac0b290ad58 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.sig.kt.txt @@ -0,0 +1,252 @@ +// CHECK: +// Mangled name: TestAnn +// Public signature: /TestAnn|null[0] +open annotation class TestAnn : Annotation { + // CHECK: + // Mangled name: TestAnn{}x + // Public signature: /TestAnn.x|-8060530855978347579[0] + // Public signature debug description: {}x + val x: String + // CHECK JVM_IR: + // Mangled name: TestAnn#(){}kotlin.String + // Public signature: /TestAnn.x.|316111172223894646[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestAnn#(){} + // Public signature: /TestAnn.x.|1482705010654679335[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: TestAnn#(kotlin.String){} + // Public signature: /TestAnn.|1280618353163213788[0] + // Public signature debug description: (kotlin.String){} + constructor(x: String) /* primary */ + +} + +// CHECK: +// Mangled name: TestEnum +// Public signature: /TestEnum|null[0] +open enum class TestEnum : Enum { + // CHECK: + // Mangled name: TestEnum#(){} + // Public signature: /TestEnum.|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK: + // Mangled name: TestEnum.ENTRY1 + // Public signature: /TestEnum.ENTRY1|null[0] + @TestAnn(x = "ENTRY1") + ENTRY1 + + // CHECK: + // Mangled name: TestEnum.ENTRY2 + // Public signature: /TestEnum.ENTRY2|null[0] + + @TestAnn(x = "ENTRY2") + ENTRY2 + // CHECK: + // Mangled name: TestEnum.ENTRY2 + // Public signature: /TestEnum.ENTRY2.|null[0] + private enum entry class ENTRY2 : TestEnum { + // CHECK: + // Mangled name: TestEnum.ENTRY2{}x + // Public signature: /TestEnum.ENTRY2..x|-8060530855978347579[0] + // Public signature debug description: {}x + val x: Int + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#(){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..x.|4966956098150895696[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..x.|1482705010654679335[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#compareTo(TestEnum){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..compareTo|7559751212169934687[0] + // Public signature debug description: compareTo(TestEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#compareTo(TestEnum){} + // Public signature: /TestEnum.ENTRY2..compareTo|7350720606720122863[0] + // Public signature debug description: compareTo(TestEnum){} + /* fake */ override operator fun compareTo(other: TestEnum): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /TestEnum.ENTRY2..equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#equals(kotlin.Any?){} + // Public signature: /TestEnum.ENTRY2..equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#hashCode(){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#hashCode(){} + // Public signature: /TestEnum.ENTRY2..hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#toString(){}kotlin.String + // Public signature: /TestEnum.ENTRY2..toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#toString(){} + // Public signature: /TestEnum.ENTRY2..toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: TestEnum.ENTRY2{}name + // Public signature: /TestEnum.ENTRY2..name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#(){}kotlin.String + // Public signature: /TestEnum.ENTRY2..name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: TestEnum.ENTRY2{}ordinal + // Public signature: /TestEnum.ENTRY2..ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#(){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + + } + + // CHECK JVM_IR: + // Mangled name: TestEnum#valueOf#static(kotlin.String){}TestEnum + // Public signature: /TestEnum.valueOf|1811575739170804829[0] + // Public signature debug description: valueOf#static(kotlin.String){}TestEnum + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#valueOf#static(kotlin.String){} + // Public signature: /TestEnum.valueOf|-4683474617854611729[0] + // Public signature debug description: valueOf#static(kotlin.String){} + fun valueOf(value: String): TestEnum + + // CHECK JVM_IR: + // Mangled name: TestEnum#values#static(){}kotlin.Array + // Public signature: /TestEnum.values|-4299804782350326897[0] + // Public signature debug description: values#static(){}kotlin.Array + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#values#static(){} + // Public signature: /TestEnum.values|-8715569000920726747[0] + // Public signature debug description: values#static(){} + fun values(): Array + + // CHECK JVM_IR: + // Mangled name: TestEnum#compareTo(TestEnum){}kotlin.Int + // Public signature: /TestEnum.compareTo|7559751212169934687[0] + // Public signature debug description: compareTo(TestEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#compareTo(TestEnum){} + // Public signature: /TestEnum.compareTo|7350720606720122863[0] + // Public signature debug description: compareTo(TestEnum){} + /* fake */ override operator fun compareTo(other: TestEnum): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /TestEnum.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#equals(kotlin.Any?){} + // Public signature: /TestEnum.equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: TestEnum#hashCode(){}kotlin.Int + // Public signature: /TestEnum.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#hashCode(){} + // Public signature: /TestEnum.hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum#toString(){}kotlin.String + // Public signature: /TestEnum.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#toString(){} + // Public signature: /TestEnum.toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: TestEnum#static{}entries + // Public signature: /TestEnum.entries|-5134227801081826149[0] + // Public signature debug description: #static{}entries + val entries: EnumEntries + // CHECK JVM_IR: + // Mangled name: TestEnum##static(){}kotlin.enums.EnumEntries + // Public signature: /TestEnum.entries.|6962221716588245012[0] + // Public signature debug description: #static(){}kotlin.enums.EnumEntries + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum##static(){} + // Public signature: /TestEnum.entries.|-6068527377476727729[0] + // Public signature debug description: #static(){} + get(): EnumEntries + + // CHECK: + // Mangled name: TestEnum{}name + // Public signature: /TestEnum.name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: TestEnum#(){}kotlin.String + // Public signature: /TestEnum.name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#(){} + // Public signature: /TestEnum.name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: TestEnum{}ordinal + // Public signature: /TestEnum.ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: TestEnum#(){}kotlin.Int + // Public signature: /TestEnum.ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#(){} + // Public signature: /TestEnum.ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt index b07b7843724..a6ab9e26dc2 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.kt @@ -1,4 +1,4 @@ -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Difference in annotations generated by K1 and K2 annotation class TestAnn(val x: String) diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.sig.kt.txt new file mode 100644 index 00000000000..df2a7e458d1 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.sig.kt.txt @@ -0,0 +1,253 @@ +// CHECK: +// Mangled name: TestAnn +// Public signature: /TestAnn|null[0] +open annotation class TestAnn : Annotation { + // CHECK: + // Mangled name: TestAnn{}x + // Public signature: /TestAnn.x|-8060530855978347579[0] + // Public signature debug description: {}x + val x: String + // CHECK JVM_IR: + // Mangled name: TestAnn#(){}kotlin.String + // Public signature: /TestAnn.x.|316111172223894646[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestAnn#(){} + // Public signature: /TestAnn.x.|1482705010654679335[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: TestAnn#(kotlin.String){} + // Public signature: /TestAnn.|1280618353163213788[0] + // Public signature debug description: (kotlin.String){} + constructor(x: String) /* primary */ + +} + +// CHECK: +// Mangled name: TestEnum +// Public signature: /TestEnum|null[0] +open enum class TestEnum : Enum { + // CHECK: + // Mangled name: TestEnum#(){} + // Public signature: /TestEnum.|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK: + // Mangled name: TestEnum.ENTRY1 + // Public signature: /TestEnum.ENTRY1|null[0] + @TestAnn(x = "ENTRY1") + ENTRY1 + + // CHECK: + // Mangled name: TestEnum.ENTRY2 + // Public signature: /TestEnum.ENTRY2|null[0] + + @TestAnn(x = "ENTRY2") + ENTRY2 + // CHECK: + // Mangled name: TestEnum.ENTRY2 + // Public signature: /TestEnum.ENTRY2.|null[0] + @TestAnn(x = "ENTRY2") + private enum entry class ENTRY2 : TestEnum { + // CHECK: + // Mangled name: TestEnum.ENTRY2{}x + // Public signature: /TestEnum.ENTRY2..x|-8060530855978347579[0] + // Public signature debug description: {}x + val x: Int + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#(){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..x.|4966956098150895696[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..x.|1482705010654679335[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#compareTo(TestEnum){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..compareTo|7559751212169934687[0] + // Public signature debug description: compareTo(TestEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#compareTo(TestEnum){} + // Public signature: /TestEnum.ENTRY2..compareTo|7350720606720122863[0] + // Public signature debug description: compareTo(TestEnum){} + /* fake */ override operator fun compareTo(other: TestEnum): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /TestEnum.ENTRY2..equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#equals(kotlin.Any?){} + // Public signature: /TestEnum.ENTRY2..equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#hashCode(){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#hashCode(){} + // Public signature: /TestEnum.ENTRY2..hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#toString(){}kotlin.String + // Public signature: /TestEnum.ENTRY2..toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#toString(){} + // Public signature: /TestEnum.ENTRY2..toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: TestEnum.ENTRY2{}name + // Public signature: /TestEnum.ENTRY2..name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#(){}kotlin.String + // Public signature: /TestEnum.ENTRY2..name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: TestEnum.ENTRY2{}ordinal + // Public signature: /TestEnum.ENTRY2..ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: TestEnum.ENTRY2#(){}kotlin.Int + // Public signature: /TestEnum.ENTRY2..ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum.ENTRY2#(){} + // Public signature: /TestEnum.ENTRY2..ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + + } + + // CHECK JVM_IR: + // Mangled name: TestEnum#valueOf#static(kotlin.String){}TestEnum + // Public signature: /TestEnum.valueOf|1811575739170804829[0] + // Public signature debug description: valueOf#static(kotlin.String){}TestEnum + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#valueOf#static(kotlin.String){} + // Public signature: /TestEnum.valueOf|-4683474617854611729[0] + // Public signature debug description: valueOf#static(kotlin.String){} + fun valueOf(value: String): TestEnum + + // CHECK JVM_IR: + // Mangled name: TestEnum#values#static(){}kotlin.Array + // Public signature: /TestEnum.values|-4299804782350326897[0] + // Public signature debug description: values#static(){}kotlin.Array + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#values#static(){} + // Public signature: /TestEnum.values|-8715569000920726747[0] + // Public signature debug description: values#static(){} + fun values(): Array + + // CHECK JVM_IR: + // Mangled name: TestEnum#compareTo(TestEnum){}kotlin.Int + // Public signature: /TestEnum.compareTo|7559751212169934687[0] + // Public signature debug description: compareTo(TestEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#compareTo(TestEnum){} + // Public signature: /TestEnum.compareTo|7350720606720122863[0] + // Public signature debug description: compareTo(TestEnum){} + /* fake */ override operator fun compareTo(other: TestEnum): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /TestEnum.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#equals(kotlin.Any?){} + // Public signature: /TestEnum.equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: TestEnum#hashCode(){}kotlin.Int + // Public signature: /TestEnum.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#hashCode(){} + // Public signature: /TestEnum.hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: TestEnum#toString(){}kotlin.String + // Public signature: /TestEnum.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#toString(){} + // Public signature: /TestEnum.toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: TestEnum#static{}entries + // Public signature: /TestEnum.entries|-5134227801081826149[0] + // Public signature debug description: #static{}entries + val entries: EnumEntries + // CHECK JVM_IR: + // Mangled name: TestEnum##static(){}kotlin.enums.EnumEntries + // Public signature: /TestEnum.entries.|6962221716588245012[0] + // Public signature debug description: #static(){}kotlin.enums.EnumEntries + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum##static(){} + // Public signature: /TestEnum.entries.|-6068527377476727729[0] + // Public signature debug description: #static(){} + get(): EnumEntries + + // CHECK: + // Mangled name: TestEnum{}name + // Public signature: /TestEnum.name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: TestEnum#(){}kotlin.String + // Public signature: /TestEnum.name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#(){} + // Public signature: /TestEnum.name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: TestEnum{}ordinal + // Public signature: /TestEnum.ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: TestEnum#(){}kotlin.Int + // Public signature: /TestEnum.ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: TestEnum#(){} + // Public signature: /TestEnum.ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.fir.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.fir.sig.kt.txt new file mode 100644 index 00000000000..b8fb736690b --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.fir.sig.kt.txt @@ -0,0 +1,246 @@ +// CHECK: +// Mangled name: Anno +// Public signature: /Anno|null[0] +open annotation class Anno : Annotation { + // CHECK: + // Mangled name: Anno{}token + // Public signature: /Anno.token|-1474644848610526691[0] + // Public signature debug description: {}token + val token: String + // CHECK JVM_IR: + // Mangled name: Anno#(){}kotlin.String + // Public signature: /Anno.token.|-7990759666918264390[0] + // Public signature debug description: (){}kotlin.String + get + + // CHECK: + // Mangled name: Anno#(kotlin.String){} + // Public signature: /Anno.|1280618353163213788[0] + // Public signature debug description: (kotlin.String){} + constructor(token: String) /* primary */ + +} + +// CHECK: +// Mangled name: Annos +// Public signature: /Annos|null[0] +open annotation class Annos : Annotation { + // CHECK: + // Mangled name: Annos{}value + // Public signature: /Annos.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array + // CHECK JVM_IR: + // Mangled name: Annos#(){}kotlin.Array + // Public signature: /Annos.value.|-4069060984573284016[0] + // Public signature debug description: (){}kotlin.Array + get + + // CHECK: + // Mangled name: Annos#(kotlin.Array){} + // Public signature: /Annos.|1175794361085023797[0] + // Public signature debug description: (kotlin.Array){} + constructor(value: Array) /* primary */ + +} + +// CHECK: +// Mangled name: Classes +// Public signature: /Classes|null[0] +open annotation class Classes : Annotation { + // CHECK: + // Mangled name: Classes{}value + // Public signature: /Classes.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array> + // CHECK JVM_IR: + // Mangled name: Classes#(){}kotlin.Array> + // Public signature: /Classes.value.|7741303810693223775[0] + // Public signature debug description: (){}kotlin.Array> + get + + // CHECK: + // Mangled name: Classes#(kotlin.Array>){} + // Public signature: /Classes.|-7037593412282832873[0] + // Public signature debug description: (kotlin.Array>){} + constructor(value: Array>) /* primary */ + +} + +// CHECK: +// Mangled name: Enums +// Public signature: /Enums|null[0] +open annotation class Enums : Annotation { + // CHECK: + // Mangled name: Enums{}value + // Public signature: /Enums.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array + // CHECK JVM_IR: + // Mangled name: Enums#(){}kotlin.Array + // Public signature: /Enums.value.|6387785805560718811[0] + // Public signature debug description: (){}kotlin.Array + get + + // CHECK: + // Mangled name: Enums#(kotlin.Array){} + // Public signature: /Enums.|-3621344537085490519[0] + // Public signature debug description: (kotlin.Array){} + constructor(value: Array) /* primary */ + +} + +// CHECK: +// Mangled name: Ints +// Public signature: /Ints|null[0] +open annotation class Ints : Annotation { + // CHECK: + // Mangled name: Ints{}value + // Public signature: /Ints.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: IntArray + // CHECK JVM_IR: + // Mangled name: Ints#(){}kotlin.IntArray + // Public signature: /Ints.value.|-5427747971978269276[0] + // Public signature debug description: (){}kotlin.IntArray + get + + // CHECK: + // Mangled name: Ints#(kotlin.IntArray){} + // Public signature: /Ints.|6811679238332965682[0] + // Public signature debug description: (kotlin.IntArray){} + constructor(value: IntArray) /* primary */ + +} + +// CHECK: +// Mangled name: Strings +// Public signature: /Strings|null[0] +open annotation class Strings : Annotation { + // CHECK: + // Mangled name: Strings{}value + // Public signature: /Strings.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array + // CHECK JVM_IR: + // Mangled name: Strings#(){}kotlin.Array + // Public signature: /Strings.value.|-7769950459445256373[0] + // Public signature debug description: (){}kotlin.Array + get + + // CHECK: + // Mangled name: Strings#(kotlin.Array){} + // Public signature: /Strings.|5393043463829665764[0] + // Public signature debug description: (kotlin.Array){} + constructor(value: Array) /* primary */ + +} + +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C : A { + // CHECK: + // Mangled name: C#(){} + // Public signature: /C.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: C#test(){} + // Public signature: /C.test|6620506149988718649[0] + // Public signature debug description: test(){} + @Annos(value = Anno(token = "OK")) + @Strings(value = "OK") + @Ints(value = 42) + @Enums(value = E.EA) + @Classes(value = Double::class) + /* fake */ override fun test(): Unit + +} + +// CHECK: +// Mangled name: E +// Public signature: /E|null[0] +enum class E : Enum { + // CHECK: + // Mangled name: E#(){} + // Public signature: /E.|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK: + // Mangled name: E.EA + // Public signature: /E.EA|null[0] + EA + + // CHECK JVM_IR: + // Mangled name: E#valueOf#static(kotlin.String){}E + // Public signature: /E.valueOf|-1984843552149141556[0] + // Public signature debug description: valueOf#static(kotlin.String){}E + fun valueOf(value: String): E + + // CHECK JVM_IR: + // Mangled name: E#values#static(){}kotlin.Array + // Public signature: /E.values|4921695905454219855[0] + // Public signature debug description: values#static(){}kotlin.Array + fun values(): Array + + // CHECK JVM_IR: + // Mangled name: E#compareTo(E){}kotlin.Int + // Public signature: /E.compareTo|7895449182838894647[0] + // Public signature debug description: compareTo(E){}kotlin.Int + /* fake */ override operator fun compareTo(other: E): Int + + // CHECK JVM_IR: + // Mangled name: E#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /E.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: E#hashCode(){}kotlin.Int + // Public signature: /E.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: E#toString(){}kotlin.String + // Public signature: /E.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: E#static{}entries + // Public signature: /E.entries|-5134227801081826149[0] + // Public signature debug description: #static{}entries + val entries: EnumEntries + // CHECK JVM_IR: + // Mangled name: E##static(){}kotlin.enums.EnumEntries + // Public signature: /E.entries.|2481970109947815388[0] + // Public signature debug description: #static(){}kotlin.enums.EnumEntries + get(): EnumEntries + + // CHECK: + // Mangled name: E{}name + // Public signature: /E.name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: E#(){}kotlin.String + // Public signature: /E.name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + /* fake */ override get(): String + + // CHECK: + // Mangled name: E{}ordinal + // Public signature: /E.ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: E#(){}kotlin.Int + // Public signature: /E.ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.kt b/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.kt index 52e94500ac8..d17dd43ddcc 100644 --- a/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.kt +++ b/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.kt @@ -1,7 +1,7 @@ // SKIP_KT_DUMP // TARGET_BACKEND: JVM -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Different types in annotations generated by K1 and K2 // FILE: A.java diff --git a/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.sig.kt.txt new file mode 100644 index 00000000000..f98e27fdfed --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/javaAnnotationWithSingleArrayArgument.sig.kt.txt @@ -0,0 +1,246 @@ +// CHECK: +// Mangled name: Anno +// Public signature: /Anno|null[0] +open annotation class Anno : Annotation { + // CHECK: + // Mangled name: Anno{}token + // Public signature: /Anno.token|-1474644848610526691[0] + // Public signature debug description: {}token + val token: String + // CHECK JVM_IR: + // Mangled name: Anno#(){}kotlin.String + // Public signature: /Anno.token.|-7990759666918264390[0] + // Public signature debug description: (){}kotlin.String + get + + // CHECK: + // Mangled name: Anno#(kotlin.String){} + // Public signature: /Anno.|1280618353163213788[0] + // Public signature debug description: (kotlin.String){} + constructor(token: String) /* primary */ + +} + +// CHECK: +// Mangled name: Annos +// Public signature: /Annos|null[0] +open annotation class Annos : Annotation { + // CHECK: + // Mangled name: Annos{}value + // Public signature: /Annos.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array + // CHECK JVM_IR: + // Mangled name: Annos#(){}kotlin.Array + // Public signature: /Annos.value.|-4069060984573284016[0] + // Public signature debug description: (){}kotlin.Array + get + + // CHECK: + // Mangled name: Annos#(kotlin.Array){} + // Public signature: /Annos.|1175794361085023797[0] + // Public signature debug description: (kotlin.Array){} + constructor(value: Array) /* primary */ + +} + +// CHECK: +// Mangled name: Classes +// Public signature: /Classes|null[0] +open annotation class Classes : Annotation { + // CHECK: + // Mangled name: Classes{}value + // Public signature: /Classes.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array> + // CHECK JVM_IR: + // Mangled name: Classes#(){}kotlin.Array> + // Public signature: /Classes.value.|7741303810693223775[0] + // Public signature debug description: (){}kotlin.Array> + get + + // CHECK: + // Mangled name: Classes#(kotlin.Array>){} + // Public signature: /Classes.|-7037593412282832873[0] + // Public signature debug description: (kotlin.Array>){} + constructor(value: Array>) /* primary */ + +} + +// CHECK: +// Mangled name: Enums +// Public signature: /Enums|null[0] +open annotation class Enums : Annotation { + // CHECK: + // Mangled name: Enums{}value + // Public signature: /Enums.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array + // CHECK JVM_IR: + // Mangled name: Enums#(){}kotlin.Array + // Public signature: /Enums.value.|6387785805560718811[0] + // Public signature debug description: (){}kotlin.Array + get + + // CHECK: + // Mangled name: Enums#(kotlin.Array){} + // Public signature: /Enums.|-3621344537085490519[0] + // Public signature debug description: (kotlin.Array){} + constructor(value: Array) /* primary */ + +} + +// CHECK: +// Mangled name: Ints +// Public signature: /Ints|null[0] +open annotation class Ints : Annotation { + // CHECK: + // Mangled name: Ints{}value + // Public signature: /Ints.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: IntArray + // CHECK JVM_IR: + // Mangled name: Ints#(){}kotlin.IntArray + // Public signature: /Ints.value.|-5427747971978269276[0] + // Public signature debug description: (){}kotlin.IntArray + get + + // CHECK: + // Mangled name: Ints#(kotlin.IntArray){} + // Public signature: /Ints.|6811679238332965682[0] + // Public signature debug description: (kotlin.IntArray){} + constructor(value: IntArray) /* primary */ + +} + +// CHECK: +// Mangled name: Strings +// Public signature: /Strings|null[0] +open annotation class Strings : Annotation { + // CHECK: + // Mangled name: Strings{}value + // Public signature: /Strings.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: Array + // CHECK JVM_IR: + // Mangled name: Strings#(){}kotlin.Array + // Public signature: /Strings.value.|-7769950459445256373[0] + // Public signature debug description: (){}kotlin.Array + get + + // CHECK: + // Mangled name: Strings#(kotlin.Array){} + // Public signature: /Strings.|5393043463829665764[0] + // Public signature debug description: (kotlin.Array){} + constructor(value: Array) /* primary */ + +} + +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C : A { + // CHECK: + // Mangled name: C#(){} + // Public signature: /C.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: C#test(){} + // Public signature: /C.test|6620506149988718649[0] + // Public signature debug description: test(){} + @Annos(value = [Anno(token = "OK")]) + @Strings(value = ["OK"]) + @Ints(value = [42]) + @Enums(value = [E.EA]) + @Classes(value = [Double::class]) + /* fake */ override fun test(): Unit + +} + +// CHECK: +// Mangled name: E +// Public signature: /E|null[0] +enum class E : Enum { + // CHECK: + // Mangled name: E#(){} + // Public signature: /E.|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK: + // Mangled name: E.EA + // Public signature: /E.EA|null[0] + EA + + // CHECK JVM_IR: + // Mangled name: E#valueOf#static(kotlin.String){}E + // Public signature: /E.valueOf|-1984843552149141556[0] + // Public signature debug description: valueOf#static(kotlin.String){}E + fun valueOf(value: String): E + + // CHECK JVM_IR: + // Mangled name: E#values#static(){}kotlin.Array + // Public signature: /E.values|4921695905454219855[0] + // Public signature debug description: values#static(){}kotlin.Array + fun values(): Array + + // CHECK JVM_IR: + // Mangled name: E#compareTo(E){}kotlin.Int + // Public signature: /E.compareTo|7895449182838894647[0] + // Public signature debug description: compareTo(E){}kotlin.Int + /* fake */ override operator fun compareTo(other: E): Int + + // CHECK JVM_IR: + // Mangled name: E#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /E.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: E#hashCode(){}kotlin.Int + // Public signature: /E.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: E#toString(){}kotlin.String + // Public signature: /E.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: E#static{}entries + // Public signature: /E.entries|-5134227801081826149[0] + // Public signature debug description: #static{}entries + val entries: EnumEntries + // CHECK JVM_IR: + // Mangled name: E##static(){}kotlin.enums.EnumEntries + // Public signature: /E.entries.|2481970109947815388[0] + // Public signature debug description: #static(){}kotlin.enums.EnumEntries + get(): EnumEntries + + // CHECK: + // Mangled name: E{}name + // Public signature: /E.name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: E#(){}kotlin.String + // Public signature: /E.name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + /* fake */ override get(): String + + // CHECK: + // Mangled name: E{}ordinal + // Public signature: /E.ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: E#(){}kotlin.Int + // Public signature: /E.ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.fir.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.fir.sig.kt.txt new file mode 100644 index 00000000000..7aff2ed7513 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.fir.sig.kt.txt @@ -0,0 +1,33 @@ +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +open annotation class A : Annotation { + // CHECK: + // Mangled name: A{}xs + // Public signature: /A.xs|1063330853857063704[0] + // Public signature debug description: {}xs + val xs: Array + // CHECK JVM_IR: + // Mangled name: A#(){}kotlin.Array + // Public signature: /A.xs.|9188548163055185324[0] + // Public signature debug description: (){}kotlin.Array + // CHECK JS_IR NATIVE: + // Mangled name: A#(){} + // Public signature: /A.xs.|-6958094100501701183[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: A#(kotlin.Array...){} + // Public signature: /A.|-6780234697714860085[0] + // Public signature debug description: (kotlin.Array...){} + constructor(vararg xs: String) /* primary */ + +} + +// CHECK: +// Mangled name: #test(){} +// Public signature: /test|6620506149988718649[0] +// Public signature debug description: test(){} +@A(xs = ["a", "b"]) +fun test(): Unit diff --git a/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.kt b/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.kt index d23fb010dd7..7ee7447bf9e 100644 --- a/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.kt +++ b/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.kt @@ -1,5 +1,5 @@ -// SKIP_SIGNATURE_DUMP -// ^ KT-60136 +// SEPARATE_SIGNATURE_DUMP_FOR_K2 +// ^ KT-60136: Spread operator works incorrectly in K1, but correctly in K2. annotation class A(vararg val xs: String) diff --git a/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.sig.kt.txt b/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.sig.kt.txt new file mode 100644 index 00000000000..37a3b00368b --- /dev/null +++ b/compiler/testData/ir/irText/declarations/annotations/spreadOperatorInAnnotationArguments.sig.kt.txt @@ -0,0 +1,33 @@ +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +open annotation class A : Annotation { + // CHECK: + // Mangled name: A{}xs + // Public signature: /A.xs|1063330853857063704[0] + // Public signature debug description: {}xs + val xs: Array + // CHECK JVM_IR: + // Mangled name: A#(){}kotlin.Array + // Public signature: /A.xs.|9188548163055185324[0] + // Public signature debug description: (){}kotlin.Array + // CHECK JS_IR NATIVE: + // Mangled name: A#(){} + // Public signature: /A.xs.|-6958094100501701183[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: A#(kotlin.Array...){} + // Public signature: /A.|-6780234697714860085[0] + // Public signature debug description: (kotlin.Array...){} + constructor(vararg xs: String) /* primary */ + +} + +// CHECK: +// Mangled name: #test(){} +// Public signature: /test|6620506149988718649[0] +// Public signature debug description: test(){} +@A(xs = [["a"], ["b"]]) +fun test(): Unit diff --git a/compiler/testData/ir/irText/declarations/typeAlias.fir.sig.kt.txt b/compiler/testData/ir/irText/declarations/typeAlias.fir.sig.kt.txt new file mode 100644 index 00000000000..7297d646783 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/typeAlias.fir.sig.kt.txt @@ -0,0 +1,22 @@ +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C { + // CHECK: + // Mangled name: C#(){} + // Public signature: /C.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: #foo(){} +// Public signature: /foo|-1041209573719867811[0] +// Public signature debug description: foo(){} +fun foo(): Unit + +// CHECK: +// Mangled name: Test1 +// Public signature: /Test1|null[0] +typealias Test1 = String diff --git a/compiler/testData/ir/irText/declarations/typeAlias.kt b/compiler/testData/ir/irText/declarations/typeAlias.kt index 6916c462749..c691da950b9 100644 --- a/compiler/testData/ir/irText/declarations/typeAlias.kt +++ b/compiler/testData/ir/irText/declarations/typeAlias.kt @@ -1,4 +1,4 @@ -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ KT-45285 typealias Test1 = String diff --git a/compiler/testData/ir/irText/declarations/typeAlias.sig.kt.txt b/compiler/testData/ir/irText/declarations/typeAlias.sig.kt.txt new file mode 100644 index 00000000000..32cef4a2769 --- /dev/null +++ b/compiler/testData/ir/irText/declarations/typeAlias.sig.kt.txt @@ -0,0 +1,26 @@ +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C { + // CHECK: + // Mangled name: C#(){} + // Public signature: /C.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: C.TestNested + // Public signature: /C.TestNested|null[0] + typealias TestNested = String +} + +// CHECK: +// Mangled name: #foo(){} +// Public signature: /foo|-1041209573719867811[0] +// Public signature debug description: foo(){} +fun foo(): Unit + +// CHECK: +// Mangled name: Test1 +// Public signature: /Test1|null[0] +typealias Test1 = String diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.sig.kt.txt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.sig.kt.txt new file mode 100644 index 00000000000..35381669c5a --- /dev/null +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.sig.kt.txt @@ -0,0 +1,266 @@ +// CHECK: +// Mangled name: MyEnum +// Public signature: /MyEnum|null[0] +open enum class MyEnum : Enum { + // CHECK: + // Mangled name: MyEnum#(){} + // Public signature: /MyEnum.|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK: + // Mangled name: MyEnum.Z + // Public signature: /MyEnum.Z|null[0] + + Z + // CHECK: + // Mangled name: MyEnum.Z + // Public signature: /MyEnum.Z.|null[0] + private enum entry class Z : MyEnum { + // CHECK: + // Mangled name: MyEnum.Z{}counter + // Public signature: /MyEnum.Z..counter|3849500605769271673[0] + // Public signature debug description: {}counter + var counter: Int + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Int + // Public signature: /MyEnum.Z..counter.|6416265643848993228[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..counter.|6903507550118978958[0] + // Public signature debug description: (){} + get + // CHECK: + // Mangled name: MyEnum.Z#(kotlin.Int){} + // Public signature: /MyEnum.Z..counter.|-8124462411591632783[0] + // Public signature debug description: (kotlin.Int){} + set + + // CHECK: + // Mangled name: MyEnum.Z{}aLambda + // Public signature: /MyEnum.Z..aLambda|3337321219156655813[0] + // Public signature debug description: {}aLambda + val aLambda: Function0 + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Function0 + // Public signature: /MyEnum.Z..aLambda.|9058518221524596568[0] + // Public signature debug description: (){}kotlin.Function0 + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..aLambda.|8927671768328125269[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: MyEnum.Z{}anObject + // Public signature: /MyEnum.Z..anObject|409091113626572731[0] + // Public signature debug description: {}anObject + val anObject: + // CHECK JVM_IR: + // Mangled name (compatible mode: false): MyEnum.Z#(){}MyEnum.Z{}anObject. + // Mangled name (compatible mode: true): MyEnum.Z#(){}MyEnum.Z.anObject. + // Public signature: /MyEnum.Z..anObject.|1111532556475596471[0] + // Public signature debug description: (){}MyEnum.Z{}anObject. + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..anObject.|6468357437342963609[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#compareTo(MyEnum){}kotlin.Int + // Public signature: /MyEnum.Z..compareTo|2015858924903177055[0] + // Public signature debug description: compareTo(MyEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#compareTo(MyEnum){} + // Public signature: /MyEnum.Z..compareTo|-1404018836780573573[0] + // Public signature debug description: compareTo(MyEnum){} + /* fake */ override operator fun compareTo(other: MyEnum): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /MyEnum.Z..equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#equals(kotlin.Any?){} + // Public signature: /MyEnum.Z..equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#hashCode(){}kotlin.Int + // Public signature: /MyEnum.Z..hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#hashCode(){} + // Public signature: /MyEnum.Z..hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#toString(){}kotlin.String + // Public signature: /MyEnum.Z..toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#toString(){} + // Public signature: /MyEnum.Z..toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: MyEnum.Z#bar(){} + // Public signature: /MyEnum.Z..bar|496682602797471549[0] + // Public signature debug description: bar(){} + fun bar(): Unit + + // CHECK: + // Mangled name: MyEnum.Z#foo(){} + // Public signature: /MyEnum.Z..foo|-1041209573719867811[0] + // Public signature debug description: foo(){} + fun foo(): Unit + + // CHECK: + // Mangled name: MyEnum.Z{}name + // Public signature: /MyEnum.Z..name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.String + // Public signature: /MyEnum.Z..name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: MyEnum.Z{}ordinal + // Public signature: /MyEnum.Z..ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Int + // Public signature: /MyEnum.Z..ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + + } + + // CHECK JVM_IR: + // Mangled name: MyEnum#valueOf#static(kotlin.String){}MyEnum + // Public signature: /MyEnum.valueOf|4316550590519800984[0] + // Public signature debug description: valueOf#static(kotlin.String){}MyEnum + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#valueOf#static(kotlin.String){} + // Public signature: /MyEnum.valueOf|-4683474617854611729[0] + // Public signature debug description: valueOf#static(kotlin.String){} + fun valueOf(value: String): MyEnum + + // CHECK JVM_IR: + // Mangled name: MyEnum#values#static(){}kotlin.Array + // Public signature: /MyEnum.values|3097625172661156808[0] + // Public signature debug description: values#static(){}kotlin.Array + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#values#static(){} + // Public signature: /MyEnum.values|-8715569000920726747[0] + // Public signature debug description: values#static(){} + fun values(): Array + + // CHECK JVM_IR: + // Mangled name: MyEnum#compareTo(MyEnum){}kotlin.Int + // Public signature: /MyEnum.compareTo|2015858924903177055[0] + // Public signature debug description: compareTo(MyEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#compareTo(MyEnum){} + // Public signature: /MyEnum.compareTo|-1404018836780573573[0] + // Public signature debug description: compareTo(MyEnum){} + /* fake */ override operator fun compareTo(other: MyEnum): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /MyEnum.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#equals(kotlin.Any?){} + // Public signature: /MyEnum.equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: MyEnum#hashCode(){}kotlin.Int + // Public signature: /MyEnum.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#hashCode(){} + // Public signature: /MyEnum.hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum#toString(){}kotlin.String + // Public signature: /MyEnum.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#toString(){} + // Public signature: /MyEnum.toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: MyEnum#static{}entries + // Public signature: /MyEnum.entries|-5134227801081826149[0] + // Public signature debug description: #static{}entries + val entries: EnumEntries + // CHECK JVM_IR: + // Mangled name: MyEnum##static(){}kotlin.enums.EnumEntries + // Public signature: /MyEnum.entries.|-3922959509726908718[0] + // Public signature debug description: #static(){}kotlin.enums.EnumEntries + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum##static(){} + // Public signature: /MyEnum.entries.|-6068527377476727729[0] + // Public signature debug description: #static(){} + get(): EnumEntries + + // CHECK: + // Mangled name: MyEnum{}name + // Public signature: /MyEnum.name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: MyEnum#(){}kotlin.String + // Public signature: /MyEnum.name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#(){} + // Public signature: /MyEnum.name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: MyEnum{}ordinal + // Public signature: /MyEnum.ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: MyEnum#(){}kotlin.Int + // Public signature: /MyEnum.ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#(){} + // Public signature: /MyEnum.ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt index 871878585a5..6b45f2cd530 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.kt @@ -1,4 +1,4 @@ -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Types of properties of anonymous classes generated by K1 and K2 are different enum class MyEnum { diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.sig.kt.txt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.sig.kt.txt new file mode 100644 index 00000000000..0834b51a58b --- /dev/null +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.sig.kt.txt @@ -0,0 +1,265 @@ +// CHECK: +// Mangled name: MyEnum +// Public signature: /MyEnum|null[0] +open enum class MyEnum : Enum { + // CHECK: + // Mangled name: MyEnum#(){} + // Public signature: /MyEnum.|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK: + // Mangled name: MyEnum.Z + // Public signature: /MyEnum.Z|null[0] + + Z + // CHECK: + // Mangled name: MyEnum.Z + // Public signature: /MyEnum.Z.|null[0] + private enum entry class Z : MyEnum { + // CHECK: + // Mangled name: MyEnum.Z{}counter + // Public signature: /MyEnum.Z..counter|3849500605769271673[0] + // Public signature debug description: {}counter + var counter: Int + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Int + // Public signature: /MyEnum.Z..counter.|6416265643848993228[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..counter.|6903507550118978958[0] + // Public signature debug description: (){} + get + // CHECK: + // Mangled name: MyEnum.Z#(kotlin.Int){} + // Public signature: /MyEnum.Z..counter.|-8124462411591632783[0] + // Public signature debug description: (kotlin.Int){} + set + + // CHECK: + // Mangled name: MyEnum.Z{}aLambda + // Public signature: /MyEnum.Z..aLambda|3337321219156655813[0] + // Public signature debug description: {}aLambda + val aLambda: Function0 + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Function0 + // Public signature: /MyEnum.Z..aLambda.|9058518221524596568[0] + // Public signature debug description: (){}kotlin.Function0 + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..aLambda.|8927671768328125269[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: MyEnum.Z{}anObject + // Public signature: /MyEnum.Z..anObject|409091113626572731[0] + // Public signature debug description: {}anObject + val anObject: Any + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Any + // Public signature: /MyEnum.Z..anObject.|-6807306499596507825[0] + // Public signature debug description: (){}kotlin.Any + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..anObject.|6468357437342963609[0] + // Public signature debug description: (){} + get + + // CHECK: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..|-5645683436151566731[0] + // Public signature debug description: (){} + private constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#compareTo(MyEnum){}kotlin.Int + // Public signature: /MyEnum.Z..compareTo|2015858924903177055[0] + // Public signature debug description: compareTo(MyEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#compareTo(MyEnum){} + // Public signature: /MyEnum.Z..compareTo|-1404018836780573573[0] + // Public signature debug description: compareTo(MyEnum){} + /* fake */ override operator fun compareTo(other: MyEnum): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /MyEnum.Z..equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#equals(kotlin.Any?){} + // Public signature: /MyEnum.Z..equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#hashCode(){}kotlin.Int + // Public signature: /MyEnum.Z..hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#hashCode(){} + // Public signature: /MyEnum.Z..hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#toString(){}kotlin.String + // Public signature: /MyEnum.Z..toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#toString(){} + // Public signature: /MyEnum.Z..toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: MyEnum.Z#bar(){} + // Public signature: /MyEnum.Z..bar|496682602797471549[0] + // Public signature debug description: bar(){} + fun bar(): Unit + + // CHECK: + // Mangled name: MyEnum.Z#foo(){} + // Public signature: /MyEnum.Z..foo|-1041209573719867811[0] + // Public signature debug description: foo(){} + fun foo(): Unit + + // CHECK: + // Mangled name: MyEnum.Z{}name + // Public signature: /MyEnum.Z..name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.String + // Public signature: /MyEnum.Z..name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: MyEnum.Z{}ordinal + // Public signature: /MyEnum.Z..ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: MyEnum.Z#(){}kotlin.Int + // Public signature: /MyEnum.Z..ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum.Z#(){} + // Public signature: /MyEnum.Z..ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + + } + + // CHECK JVM_IR: + // Mangled name: MyEnum#valueOf#static(kotlin.String){}MyEnum + // Public signature: /MyEnum.valueOf|4316550590519800984[0] + // Public signature debug description: valueOf#static(kotlin.String){}MyEnum + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#valueOf#static(kotlin.String){} + // Public signature: /MyEnum.valueOf|-4683474617854611729[0] + // Public signature debug description: valueOf#static(kotlin.String){} + fun valueOf(value: String): MyEnum + + // CHECK JVM_IR: + // Mangled name: MyEnum#values#static(){}kotlin.Array + // Public signature: /MyEnum.values|3097625172661156808[0] + // Public signature debug description: values#static(){}kotlin.Array + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#values#static(){} + // Public signature: /MyEnum.values|-8715569000920726747[0] + // Public signature debug description: values#static(){} + fun values(): Array + + // CHECK JVM_IR: + // Mangled name: MyEnum#compareTo(MyEnum){}kotlin.Int + // Public signature: /MyEnum.compareTo|2015858924903177055[0] + // Public signature debug description: compareTo(MyEnum){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#compareTo(MyEnum){} + // Public signature: /MyEnum.compareTo|-1404018836780573573[0] + // Public signature debug description: compareTo(MyEnum){} + /* fake */ override operator fun compareTo(other: MyEnum): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /MyEnum.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#equals(kotlin.Any?){} + // Public signature: /MyEnum.equals|4638265728071529943[0] + // Public signature debug description: equals(kotlin.Any?){} + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: MyEnum#hashCode(){}kotlin.Int + // Public signature: /MyEnum.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#hashCode(){} + // Public signature: /MyEnum.hashCode|3409210261493131192[0] + // Public signature debug description: hashCode(){} + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: MyEnum#toString(){}kotlin.String + // Public signature: /MyEnum.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#toString(){} + // Public signature: /MyEnum.toString|-1522858123163872138[0] + // Public signature debug description: toString(){} + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: MyEnum#static{}entries + // Public signature: /MyEnum.entries|-5134227801081826149[0] + // Public signature debug description: #static{}entries + val entries: EnumEntries + // CHECK JVM_IR: + // Mangled name: MyEnum##static(){}kotlin.enums.EnumEntries + // Public signature: /MyEnum.entries.|-3922959509726908718[0] + // Public signature debug description: #static(){}kotlin.enums.EnumEntries + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum##static(){} + // Public signature: /MyEnum.entries.|-6068527377476727729[0] + // Public signature debug description: #static(){} + get(): EnumEntries + + // CHECK: + // Mangled name: MyEnum{}name + // Public signature: /MyEnum.name|4231860309499509769[0] + // Public signature debug description: {}name + /* fake */ override val name: String + // CHECK JVM_IR: + // Mangled name: MyEnum#(){}kotlin.String + // Public signature: /MyEnum.name.|-8006111524522882650[0] + // Public signature debug description: (){}kotlin.String + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#(){} + // Public signature: /MyEnum.name.|5879344792307730109[0] + // Public signature debug description: (){} + /* fake */ override get(): String + + // CHECK: + // Mangled name: MyEnum{}ordinal + // Public signature: /MyEnum.ordinal|1912745122988592376[0] + // Public signature debug description: {}ordinal + /* fake */ override val ordinal: Int + // CHECK JVM_IR: + // Mangled name: MyEnum#(){}kotlin.Int + // Public signature: /MyEnum.ordinal.|-6902664390061762634[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyEnum#(){} + // Public signature: /MyEnum.ordinal.|8409904226035914023[0] + // Public signature debug description: (){} + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt new file mode 100644 index 00000000000..1ab88d6fe9e --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.fir.sig.kt.txt @@ -0,0 +1,193 @@ +// CHECK: +// Mangled name: MyMap +// Public signature: /MyMap|null[0] +class MyMap : AbstractMutableMap { + // CHECK: + // Mangled name: MyMap#(){} + // Public signature: /MyMap.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: MyMap#clear(){} + // Public signature: /MyMap.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#clone(){}kotlin.Any? + // Public signature: /MyMap.clone|-7083896195458302612[0] + // Public signature debug description: clone(){}kotlin.Any? + protected_and_package /* fake */ override fun clone(): Any? + + // CHECK JVM_IR: + // Mangled name: MyMap#compute(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature: /MyMap.compute|8707373617613354757[0] + // Public signature debug description: compute(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + /* fake */ override fun compute(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#computeIfAbsent(1:0{EnhancedNullability};java.util.function.Function{EnhancedNullability}){}1:1{EnhancedNullability} + // Public signature: /MyMap.computeIfAbsent|6152183439273290645[0] + // Public signature debug description: computeIfAbsent(1:0{EnhancedNullability};java.util.function.Function{EnhancedNullability}){}1:1{EnhancedNullability} + /* fake */ override fun computeIfAbsent(p0: @EnhancedNullability K, p1: @EnhancedNullability Function): @EnhancedNullability V + + // CHECK JVM_IR: + // Mangled name: MyMap#computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Mangled name for the signature by IR: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Mangled name for the signature by Frontend: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature by IR: /MyMap.computeIfPresent|-2673672788318360066[0] + // Public signature by IR debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature by Frontend: /MyMap.computeIfPresent|-4313180944690406140[0] + // Public signature by Frontend debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + /* fake */ override fun computeIfPresent(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#containsKey(1:0?){}kotlin.Boolean + // Public signature: /MyMap.containsKey|5388260987070917879[0] + // Public signature debug description: containsKey(1:0?){}kotlin.Boolean + /* fake */ override fun containsKey(p0: K?): Boolean + + // CHECK JVM_IR: + // Mangled name: MyMap#containsValue(1:1?){}kotlin.Boolean + // Public signature: /MyMap.containsValue|6075307672600079396[0] + // Public signature debug description: containsValue(1:1?){}kotlin.Boolean + /* fake */ override fun containsValue(p0: V?): Boolean + + // CHECK JVM_IR: + // Mangled name: MyMap#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /MyMap.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(p0: Any?): Boolean + + // CHECK: + // Mangled name: MyMap#forEach(java.util.function.BiConsumer{EnhancedNullability}){} + // Public signature: /MyMap.forEach|-3078533954397018194[0] + // Public signature debug description: forEach(java.util.function.BiConsumer{EnhancedNullability}){} + /* fake */ override fun forEach(p0: @EnhancedNullability BiConsumer): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#get(1:0?){}1:1? + // Public signature: /MyMap.get|-6772263552617817959[0] + // Public signature debug description: get(1:0?){}1:1? + /* fake */ override operator fun get(p0: K?): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#hashCode(){}kotlin.Int + // Public signature: /MyMap.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: MyMap#isEmpty(){}kotlin.Boolean + // Public signature: /MyMap.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: MyMap#merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Mangled name for the signature by IR: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Mangled name for the signature by Frontend: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature by IR: /MyMap.merge|5136195963180492586[0] + // Public signature by IR debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + // Public signature by Frontend: /MyMap.merge|-7730033017111273031[0] + // Public signature by Frontend debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1? + /* fake */ override fun merge(p0: @EnhancedNullability K, p1: @EnhancedNullability (V & Any), p2: @EnhancedNullability BiFunction): V? + + // CHECK: + // Mangled name: MyMap#putAll(kotlin.collections.Map{EnhancedNullability}){} + // Mangled name for the signature by IR: putAll(kotlin.collections.Map{EnhancedNullability}){} + // Mangled name for the signature by Frontend: putAll(kotlin.collections.Map{EnhancedNullability}){} + // Public signature by IR: /MyMap.putAll|8252374948943605914[0] + // Public signature by IR debug description: putAll(kotlin.collections.Map{EnhancedNullability}){} + // Public signature by Frontend: /MyMap.putAll|2145725647041437129[0] + // Public signature by Frontend debug description: putAll(kotlin.collections.Map{EnhancedNullability}){} + /* fake */ override fun putAll(p0: @EnhancedNullability Map): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#putIfAbsent(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1? + // Public signature: /MyMap.putIfAbsent|-8436525025860060266[0] + // Public signature debug description: putIfAbsent(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1? + /* fake */ override fun putIfAbsent(p0: @EnhancedNullability K, p1: @EnhancedNullability V): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#remove(1:0?){}1:1? + // Public signature: /MyMap.remove|-6409265674850759324[0] + // Public signature debug description: remove(1:0?){}1:1? + /* fake */ override fun remove(p0: K?): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#replace(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1? + // Public signature: /MyMap.replace|5602916868878322979[0] + // Public signature debug description: replace(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1? + /* fake */ override fun replace(p0: @EnhancedNullability K, p1: @EnhancedNullability V): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#replace(1:0{EnhancedNullability};1:1{EnhancedNullability};1:1{EnhancedNullability}){}kotlin.Boolean + // Public signature: /MyMap.replace|-7414031042140179973[0] + // Public signature debug description: replace(1:0{EnhancedNullability};1:1{EnhancedNullability};1:1{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun replace(p0: @EnhancedNullability K, p1: @EnhancedNullability V, p2: @EnhancedNullability V): Boolean + + // CHECK: + // Mangled name: MyMap#replaceAll(java.util.function.BiFunction{EnhancedNullability}){} + // Public signature: /MyMap.replaceAll|8091434451270596303[0] + // Public signature debug description: replaceAll(java.util.function.BiFunction{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability BiFunction): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /MyMap.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: MyMap#put(1:0;1:1){}1:1? + // Public signature: /MyMap.put|8231545920718079981[0] + // Public signature debug description: put(1:0;1:1){}1:1? + override fun put(key: K, value: V): V? + + // CHECK: + // Mangled name: MyMap{}keys + // Public signature: /MyMap.keys|-1539062068328255324[0] + // Public signature debug description: {}keys + /* fake */ override val keys: MutableSet? + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.collections.MutableSet<1:0?>? + // Public signature: /MyMap.keys.|-1655820107680360252[0] + // Public signature debug description: (){}kotlin.collections.MutableSet<1:0?>? + /* fake */ override get(): MutableSet? + + // CHECK: + // Mangled name: MyMap{}size + // Public signature: /MyMap.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.Int + // Public signature: /MyMap.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + + // CHECK: + // Mangled name: MyMap{}values + // Public signature: /MyMap.values|-764749005844117249[0] + // Public signature debug description: {}values + /* fake */ override val values: MutableCollection? + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.collections.MutableCollection<1:1?>? + // Public signature: /MyMap.values.|-600458440523652989[0] + // Public signature debug description: (){}kotlin.collections.MutableCollection<1:1?>? + /* fake */ override get(): MutableCollection? + + // CHECK: + // Mangled name: MyMap{}entries + // Public signature: /MyMap.entries|-586096469347622282[0] + // Public signature debug description: {}entries + override val entries: MutableSet> + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.collections.MutableSet> + // Public signature: /MyMap.entries.|-6853624087387317257[0] + // Public signature debug description: (){}kotlin.collections.MutableSet> + override get(): MutableSet> + +} diff --git a/compiler/testData/ir/irText/firProblems/AbstractMutableMap.kt b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.kt index 3a107ad62ae..e2e791c43f4 100644 --- a/compiler/testData/ir/irText/firProblems/AbstractMutableMap.kt +++ b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.kt @@ -3,7 +3,7 @@ // JVM_TARGET: 1.8 // TARGET_BACKEND: JVM_IR -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Value parameters in fake overrides generated by K1 and K2 are different class MyMap : AbstractMutableMap() { diff --git a/compiler/testData/ir/irText/firProblems/AbstractMutableMap.sig.kt.txt b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.sig.kt.txt new file mode 100644 index 00000000000..83bc86698f2 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/AbstractMutableMap.sig.kt.txt @@ -0,0 +1,181 @@ +// CHECK: +// Mangled name: MyMap +// Public signature: /MyMap|null[0] +class MyMap : AbstractMutableMap { + // CHECK: + // Mangled name: MyMap#(){} + // Public signature: /MyMap.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: MyMap#clear(){} + // Public signature: /MyMap.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#clone(){}kotlin.Any? + // Public signature: /MyMap.clone|-7083896195458302612[0] + // Public signature debug description: clone(){}kotlin.Any? + protected_and_package /* fake */ override fun clone(): Any? + + // CHECK JVM_IR: + // Mangled name: MyMap#compute(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1?{EnhancedNullability} + // Public signature: /MyMap.compute|4714573429337571093[0] + // Public signature debug description: compute(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1?{EnhancedNullability} + /* fake */ override fun compute(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction): @EnhancedNullability V? + + // CHECK JVM_IR: + // Mangled name: MyMap#computeIfAbsent(1:0{EnhancedNullability};java.util.function.Function{EnhancedNullability}){}1:1{EnhancedNullability} + // Public signature: /MyMap.computeIfAbsent|6152183439273290645[0] + // Public signature debug description: computeIfAbsent(1:0{EnhancedNullability};java.util.function.Function{EnhancedNullability}){}1:1{EnhancedNullability} + /* fake */ override fun computeIfAbsent(p0: @EnhancedNullability K, p1: @EnhancedNullability Function): @EnhancedNullability V + + // CHECK JVM_IR: + // Mangled name: MyMap#computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1?{EnhancedNullability} + // Public signature: /MyMap.computeIfPresent|-5841525018102765873[0] + // Public signature debug description: computeIfPresent(1:0{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1?{EnhancedNullability} + /* fake */ override fun computeIfPresent(p0: @EnhancedNullability K, p1: @EnhancedNullability BiFunction): @EnhancedNullability V? + + // CHECK JVM_IR: + // Mangled name: MyMap#containsKey(1:0){}kotlin.Boolean + // Public signature: /MyMap.containsKey|-2697616884574929105[0] + // Public signature debug description: containsKey(1:0){}kotlin.Boolean + /* fake */ override fun containsKey(key: K): Boolean + + // CHECK JVM_IR: + // Mangled name: MyMap#containsValue(1:1){}kotlin.Boolean + // Public signature: /MyMap.containsValue|4814293423579408279[0] + // Public signature debug description: containsValue(1:1){}kotlin.Boolean + /* fake */ override fun containsValue(value: V): Boolean + + // CHECK JVM_IR: + // Mangled name: MyMap#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /MyMap.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK: + // Mangled name: MyMap#forEach(java.util.function.BiConsumer{EnhancedNullability}){} + // Public signature: /MyMap.forEach|-3078533954397018194[0] + // Public signature debug description: forEach(java.util.function.BiConsumer{EnhancedNullability}){} + /* fake */ override fun forEach(p0: @EnhancedNullability BiConsumer): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#get(1:0){}1:1? + // Public signature: /MyMap.get|-2177239518810968262[0] + // Public signature debug description: get(1:0){}1:1? + /* fake */ override operator fun get(key: K): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#hashCode(){}kotlin.Int + // Public signature: /MyMap.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: MyMap#isEmpty(){}kotlin.Boolean + // Public signature: /MyMap.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: MyMap#merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1?{EnhancedNullability} + // Public signature: /MyMap.merge|5784030730910430027[0] + // Public signature debug description: merge(1:0{EnhancedNullability};1:1{EnhancedNullability};java.util.function.BiFunction{EnhancedNullability}){}1:1?{EnhancedNullability} + /* fake */ override fun merge(p0: @EnhancedNullability K, p1: @EnhancedNullability V, p2: @EnhancedNullability BiFunction): @EnhancedNullability V? + + // CHECK: + // Mangled name: MyMap#putAll(kotlin.collections.Map){} + // Public signature: /MyMap.putAll|3806055228188180795[0] + // Public signature debug description: putAll(kotlin.collections.Map){} + /* fake */ override fun putAll(from: Map): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#putIfAbsent(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?{EnhancedNullability} + // Public signature: /MyMap.putIfAbsent|-6480034727897367684[0] + // Public signature debug description: putIfAbsent(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?{EnhancedNullability} + /* fake */ override fun putIfAbsent(p0: @EnhancedNullability K, p1: @EnhancedNullability V): @EnhancedNullability V? + + // CHECK JVM_IR: + // Mangled name: MyMap#remove(1:0){}1:1? + // Public signature: /MyMap.remove|-2166109024517733367[0] + // Public signature debug description: remove(1:0){}1:1? + /* fake */ override fun remove(key: K): V? + + // CHECK JVM_IR: + // Mangled name: MyMap#replace(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?{EnhancedNullability} + // Public signature: /MyMap.replace|2326634020395552533[0] + // Public signature debug description: replace(1:0{EnhancedNullability};1:1{EnhancedNullability}){}1:1?{EnhancedNullability} + /* fake */ override fun replace(p0: @EnhancedNullability K, p1: @EnhancedNullability V): @EnhancedNullability V? + + // CHECK JVM_IR: + // Mangled name: MyMap#replace(1:0{EnhancedNullability};1:1{EnhancedNullability};1:1{EnhancedNullability}){}kotlin.Boolean + // Public signature: /MyMap.replace|-7414031042140179973[0] + // Public signature debug description: replace(1:0{EnhancedNullability};1:1{EnhancedNullability};1:1{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun replace(p0: @EnhancedNullability K, p1: @EnhancedNullability V, p2: @EnhancedNullability V): Boolean + + // CHECK: + // Mangled name: MyMap#replaceAll(java.util.function.BiFunction{EnhancedNullability}){} + // Public signature: /MyMap.replaceAll|8091434451270596303[0] + // Public signature debug description: replaceAll(java.util.function.BiFunction{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability BiFunction): Unit + + // CHECK JVM_IR: + // Mangled name: MyMap#toString(){}kotlin.String + // Public signature: /MyMap.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + /* fake */ override fun toString(): String + + // CHECK JVM_IR: + // Mangled name: MyMap#put(1:0;1:1){}1:1? + // Public signature: /MyMap.put|8231545920718079981[0] + // Public signature debug description: put(1:0;1:1){}1:1? + override fun put(key: K, value: V): V? + + // CHECK: + // Mangled name: MyMap{}keys + // Public signature: /MyMap.keys|-1539062068328255324[0] + // Public signature debug description: {}keys + /* fake */ override val keys: MutableSet + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.collections.MutableSet<1:0> + // Public signature: /MyMap.keys.|7916886785914150473[0] + // Public signature debug description: (){}kotlin.collections.MutableSet<1:0> + /* fake */ override get(): MutableSet + + // CHECK: + // Mangled name: MyMap{}size + // Public signature: /MyMap.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.Int + // Public signature: /MyMap.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + + // CHECK: + // Mangled name: MyMap{}values + // Public signature: /MyMap.values|-764749005844117249[0] + // Public signature debug description: {}values + /* fake */ override val values: MutableCollection + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.collections.MutableCollection<1:1> + // Public signature: /MyMap.values.|2480674037943213638[0] + // Public signature debug description: (){}kotlin.collections.MutableCollection<1:1> + /* fake */ override get(): MutableCollection + + // CHECK: + // Mangled name: MyMap{}entries + // Public signature: /MyMap.entries|-586096469347622282[0] + // Public signature debug description: {}entries + override val entries: MutableSet> + // CHECK JVM_IR: + // Mangled name: MyMap#(){}kotlin.collections.MutableSet> + // Public signature: /MyMap.entries.|-6853624087387317257[0] + // Public signature debug description: (){}kotlin.collections.MutableSet> + override get(): MutableSet> + +} diff --git a/compiler/testData/ir/irText/firProblems/ArrayListOverrides.fir.sig.kt.txt b/compiler/testData/ir/irText/firProblems/ArrayListOverrides.fir.sig.kt.txt new file mode 100644 index 00000000000..599660d10ec --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/ArrayListOverrides.fir.sig.kt.txt @@ -0,0 +1,477 @@ +// CHECK: +// Mangled name: A1 +// Public signature: /A1|null[0] +class A1 : ArrayList { + // CHECK: + // Mangled name: A1#(){} + // Public signature: /A1.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: A1#add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.add|1013043421416614297[0] + // Public signature debug description: add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(p0: @EnhancedNullability String): Boolean + + // CHECK: + // Mangled name: A1#add(kotlin.Int;kotlin.String{EnhancedNullability}){} + // Public signature: /A1.add|-2609504073906581982[0] + // Public signature debug description: add(kotlin.Int;kotlin.String{EnhancedNullability}){} + /* fake */ override fun add(p0: Int, p1: @EnhancedNullability String): Unit + + // CHECK JVM_IR: + // Mangled name: A1#addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.addAll|3883602098922245867[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: @EnhancedNullability Collection): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.addAll|-1734069118163689030[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: Int, p1: @EnhancedNullability Collection): Boolean + + // CHECK: + // Mangled name: A1#clear(){} + // Public signature: /A1.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: A1#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /A1.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: A1#contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.contains|-1288346193708144028[0] + // Public signature debug description: contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun contains(p0: @EnhancedNullability String): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#containsAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A1.containsAll|1049727718390523309[0] + // Public signature debug description: containsAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun containsAll(p0: Collection): Boolean + + // CHECK: + // Mangled name: A1#ensureCapacity(kotlin.Int){} + // Public signature: /A1.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: A1#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /A1.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(p0: Any?): Boolean + + // CHECK: + // Mangled name: A1#forEach(java.util.function.Consumer?){} + // Public signature: /A1.forEach|-5141242812493329438[0] + // Public signature debug description: forEach(java.util.function.Consumer?){} + /* fake */ override fun forEach(p0: Consumer?): Unit + + // CHECK JVM_IR: + // Mangled name: A1#get(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A1.get|-5223165249102944743[0] + // Public signature debug description: get(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun get(p0: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A1#hashCode(){}kotlin.Int + // Public signature: /A1.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: A1#indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A1.indexOf|4663174940951508272[0] + // Public signature debug description: indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun indexOf(p0: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A1#isEmpty(){}kotlin.Boolean + // Public signature: /A1.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + // Public signature: /A1.iterator|1587384006376391028[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A1.lastIndexOf|546858614952815505[0] + // Public signature debug description: lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun lastIndexOf(p0: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A1#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A1.listIterator|-4142337689496060808[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A1.listIterator|-5700342405546747272[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(p0: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#parallelStream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A1.parallelStream|-4896737022635116901[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream + + // CHECK JVM_IR: + // Mangled name: A1#remove(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.remove|2256698784022402098[0] + // Public signature debug description: remove(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun remove(p0: @EnhancedNullability String): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#removeAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A1.removeAll|239019554007958597[0] + // Public signature debug description: removeAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun removeAll(p0: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A1.removeAt|-4284695263292850234[0] + // Public signature debug description: removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun removeAt(p0: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A1#removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.removeIf|-1670885194148112260[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate): Boolean + + // CHECK: + // Mangled name: A1#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /A1.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: A1#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + // Public signature: /A1.replaceAll|4357913002581764262[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability String>): Unit + + // CHECK JVM_IR: + // Mangled name: A1#retainAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A1.retainAll|8583629559312465774[0] + // Public signature debug description: retainAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun retainAll(p0: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + // Public signature: /A1.set|-410612784715293145[0] + // Public signature debug description: set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun set(p0: Int, p1: @EnhancedNullability String): @EnhancedNullability String + + // CHECK: + // Mangled name: A1#sort(java.util.Comparator?){} + // Public signature: /A1.sort|5087834210959411894[0] + // Public signature debug description: sort(java.util.Comparator?){} + /* fake */ override fun sort(p0: Comparator?): Unit + + // CHECK JVM_IR: + // Mangled name: A1#spliterator(){}java.util.Spliterator{EnhancedNullability} + // Public signature: /A1.spliterator|568936852624165869[0] + // Public signature debug description: spliterator(){}java.util.Spliterator{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator + + // CHECK JVM_IR: + // Mangled name: A1#stream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A1.stream|-795993718377355146[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream + + // CHECK JVM_IR: + // Mangled name: A1#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + // Public signature: /A1.subList|1834706356652401774[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + /* fake */ override fun subList(p0: Int, p1: Int): @EnhancedNullability MutableList<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#toArray(){}kotlin.Array? + // Public signature: /A1.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: A1#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /A1.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: A1#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /A1.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK: + // Mangled name: A1#trimToSize(){} + // Public signature: /A1.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK: + // Mangled name: A1{}size + // Public signature: /A1.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: A1#(){}kotlin.Int + // Public signature: /A1.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} + +// CHECK: +// Mangled name: A2 +// Public signature: /A2|null[0] +class A2 : ArrayList { + // CHECK: + // Mangled name: A2#(){} + // Public signature: /A2.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: A2#add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.add|1013043421416614297[0] + // Public signature debug description: add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(p0: @EnhancedNullability String): Boolean + + // CHECK: + // Mangled name: A2#add(kotlin.Int;kotlin.String{EnhancedNullability}){} + // Public signature: /A2.add|-2609504073906581982[0] + // Public signature debug description: add(kotlin.Int;kotlin.String{EnhancedNullability}){} + /* fake */ override fun add(p0: Int, p1: @EnhancedNullability String): Unit + + // CHECK JVM_IR: + // Mangled name: A2#addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.addAll|3883602098922245867[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: @EnhancedNullability Collection): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.addAll|-1734069118163689030[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: Int, p1: @EnhancedNullability Collection): Boolean + + // CHECK: + // Mangled name: A2#clear(){} + // Public signature: /A2.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: A2#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /A2.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: A2#contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.contains|-1288346193708144028[0] + // Public signature debug description: contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun contains(p0: @EnhancedNullability String): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#containsAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A2.containsAll|1049727718390523309[0] + // Public signature debug description: containsAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun containsAll(p0: Collection): Boolean + + // CHECK: + // Mangled name: A2#ensureCapacity(kotlin.Int){} + // Public signature: /A2.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: A2#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /A2.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(p0: Any?): Boolean + + // CHECK: + // Mangled name: A2#forEach(java.util.function.Consumer?){} + // Public signature: /A2.forEach|-5141242812493329438[0] + // Public signature debug description: forEach(java.util.function.Consumer?){} + /* fake */ override fun forEach(p0: Consumer?): Unit + + // CHECK JVM_IR: + // Mangled name: A2#get(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A2.get|-5223165249102944743[0] + // Public signature debug description: get(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun get(p0: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A2#hashCode(){}kotlin.Int + // Public signature: /A2.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: A2#indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A2.indexOf|4663174940951508272[0] + // Public signature debug description: indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun indexOf(p0: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A2#isEmpty(){}kotlin.Boolean + // Public signature: /A2.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + // Public signature: /A2.iterator|1587384006376391028[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A2.lastIndexOf|546858614952815505[0] + // Public signature debug description: lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun lastIndexOf(p0: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A2#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A2.listIterator|-4142337689496060808[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A2.listIterator|-5700342405546747272[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(p0: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#parallelStream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A2.parallelStream|-4896737022635116901[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream + + // CHECK JVM_IR: + // Mangled name: A2#removeAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A2.removeAll|239019554007958597[0] + // Public signature debug description: removeAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun removeAll(p0: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A2.removeAt|-4284695263292850234[0] + // Public signature debug description: removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun removeAt(p0: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A2#removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.removeIf|-1670885194148112260[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate): Boolean + + // CHECK: + // Mangled name: A2#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /A2.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: A2#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + // Public signature: /A2.replaceAll|4357913002581764262[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability String>): Unit + + // CHECK JVM_IR: + // Mangled name: A2#retainAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A2.retainAll|8583629559312465774[0] + // Public signature debug description: retainAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun retainAll(p0: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + // Public signature: /A2.set|-410612784715293145[0] + // Public signature debug description: set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun set(p0: Int, p1: @EnhancedNullability String): @EnhancedNullability String + + // CHECK: + // Mangled name: A2#sort(java.util.Comparator?){} + // Public signature: /A2.sort|5087834210959411894[0] + // Public signature debug description: sort(java.util.Comparator?){} + /* fake */ override fun sort(p0: Comparator?): Unit + + // CHECK JVM_IR: + // Mangled name: A2#spliterator(){}java.util.Spliterator{EnhancedNullability} + // Public signature: /A2.spliterator|568936852624165869[0] + // Public signature debug description: spliterator(){}java.util.Spliterator{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator + + // CHECK JVM_IR: + // Mangled name: A2#stream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A2.stream|-795993718377355146[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream + + // CHECK JVM_IR: + // Mangled name: A2#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + // Public signature: /A2.subList|1834706356652401774[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + /* fake */ override fun subList(p0: Int, p1: Int): @EnhancedNullability MutableList<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#toArray(){}kotlin.Array? + // Public signature: /A2.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: A2#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /A2.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: A2#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /A2.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK: + // Mangled name: A2#trimToSize(){} + // Public signature: /A2.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK JVM_IR: + // Mangled name: A2#remove(kotlin.String){}kotlin.Boolean + // Public signature: /A2.remove|-4681585628882047709[0] + // Public signature debug description: remove(kotlin.String){}kotlin.Boolean + override fun remove(x: String): Boolean + + // CHECK: + // Mangled name: A2{}size + // Public signature: /A2.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: A2#(){}kotlin.Int + // Public signature: /A2.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/firProblems/ArrayListOverrides.kt b/compiler/testData/ir/irText/firProblems/ArrayListOverrides.kt index 62893e47648..eb49bcdd547 100644 --- a/compiler/testData/ir/irText/firProblems/ArrayListOverrides.kt +++ b/compiler/testData/ir/irText/firProblems/ArrayListOverrides.kt @@ -2,7 +2,7 @@ // SKIP_KLIB_TEST // TARGET_BACKEND: JVM_IR -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Value parameters in fake overrides generated by K1 and K2 are different class A1 : java.util.ArrayList() diff --git a/compiler/testData/ir/irText/firProblems/ArrayListOverrides.sig.kt.txt b/compiler/testData/ir/irText/firProblems/ArrayListOverrides.sig.kt.txt new file mode 100644 index 00000000000..178da57baaa --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/ArrayListOverrides.sig.kt.txt @@ -0,0 +1,477 @@ +// CHECK: +// Mangled name: A1 +// Public signature: /A1|null[0] +class A1 : ArrayList { + // CHECK: + // Mangled name: A1#(){} + // Public signature: /A1.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: A1#add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.add|1013043421416614297[0] + // Public signature debug description: add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(element: @EnhancedNullability String): Boolean + + // CHECK: + // Mangled name: A1#add(kotlin.Int;kotlin.String{EnhancedNullability}){} + // Public signature: /A1.add|-2609504073906581982[0] + // Public signature debug description: add(kotlin.Int;kotlin.String{EnhancedNullability}){} + /* fake */ override fun add(index: Int, element: @EnhancedNullability String): Unit + + // CHECK JVM_IR: + // Mangled name: A1#addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.addAll|-895603574928921635[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(elements: @EnhancedNullability Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.addAll|-7321521126562575377[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(index: Int, elements: @EnhancedNullability Collection<@EnhancedNullability String>): Boolean + + // CHECK: + // Mangled name: A1#clear(){} + // Public signature: /A1.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: A1#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /A1.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: A1#contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.contains|-1288346193708144028[0] + // Public signature debug description: contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun contains(element: @EnhancedNullability String): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#containsAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A1.containsAll|3856626117350599597[0] + // Public signature debug description: containsAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun containsAll(elements: Collection<@EnhancedNullability String>): Boolean + + // CHECK: + // Mangled name: A1#ensureCapacity(kotlin.Int){} + // Public signature: /A1.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: A1#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.equals|4126616015386471185[0] + // Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun equals(other: @EnhancedNullability Any?): Boolean + + // CHECK: + // Mangled name: A1#forEach(java.util.function.Consumer?){} + // Public signature: /A1.forEach|-5141242812493329438[0] + // Public signature debug description: forEach(java.util.function.Consumer?){} + /* fake */ override fun forEach(p0: Consumer?): Unit + + // CHECK JVM_IR: + // Mangled name: A1#get(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A1.get|-5223165249102944743[0] + // Public signature debug description: get(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun get(index: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A1#hashCode(){}kotlin.Int + // Public signature: /A1.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: A1#indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A1.indexOf|4663174940951508272[0] + // Public signature debug description: indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun indexOf(element: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A1#isEmpty(){}kotlin.Boolean + // Public signature: /A1.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + // Public signature: /A1.iterator|1587384006376391028[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A1.lastIndexOf|546858614952815505[0] + // Public signature debug description: lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun lastIndexOf(element: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A1#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A1.listIterator|-4142337689496060808[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A1.listIterator|-5700342405546747272[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(index: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#parallelStream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A1.parallelStream|5674745598510225962[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#remove(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.remove|2256698784022402098[0] + // Public signature debug description: remove(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun remove(element: @EnhancedNullability String): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#removeAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A1.removeAll|239019554007958597[0] + // Public signature debug description: removeAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun removeAll(elements: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A1.removeAt|-4284695263292850234[0] + // Public signature debug description: removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override fun removeAt(p0: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A1#removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A1.removeIf|-1670885194148112260[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate): Boolean + + // CHECK: + // Mangled name: A1#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /A1.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: A1#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + // Public signature: /A1.replaceAll|4357913002581764262[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability String>): Unit + + // CHECK JVM_IR: + // Mangled name: A1#retainAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A1.retainAll|8583629559312465774[0] + // Public signature debug description: retainAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun retainAll(elements: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A1#set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + // Public signature: /A1.set|-410612784715293145[0] + // Public signature debug description: set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun set(index: Int, element: @EnhancedNullability String): @EnhancedNullability String + + // CHECK: + // Mangled name: A1#sort(java.util.Comparator?){} + // Public signature: /A1.sort|5087834210959411894[0] + // Public signature debug description: sort(java.util.Comparator?){} + /* fake */ override fun sort(p0: Comparator?): Unit + + // CHECK JVM_IR: + // Mangled name: A1#spliterator(){}java.util.Spliterator{EnhancedNullability} + // Public signature: /A1.spliterator|568936852624165869[0] + // Public signature debug description: spliterator(){}java.util.Spliterator{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator + + // CHECK JVM_IR: + // Mangled name: A1#stream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A1.stream|-5169222176134445645[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + // Public signature: /A1.subList|1834706356652401774[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + /* fake */ override fun subList(fromIndex: Int, toIndex: Int): @EnhancedNullability MutableList<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A1#toArray(){}kotlin.Array? + // Public signature: /A1.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: A1#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /A1.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: A1#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /A1.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK: + // Mangled name: A1#trimToSize(){} + // Public signature: /A1.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK: + // Mangled name: A1{}size + // Public signature: /A1.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: A1#(){}kotlin.Int + // Public signature: /A1.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} + +// CHECK: +// Mangled name: A2 +// Public signature: /A2|null[0] +class A2 : ArrayList { + // CHECK: + // Mangled name: A2#(){} + // Public signature: /A2.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: A2#add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.add|1013043421416614297[0] + // Public signature debug description: add(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(element: @EnhancedNullability String): Boolean + + // CHECK: + // Mangled name: A2#add(kotlin.Int;kotlin.String{EnhancedNullability}){} + // Public signature: /A2.add|-2609504073906581982[0] + // Public signature debug description: add(kotlin.Int;kotlin.String{EnhancedNullability}){} + /* fake */ override fun add(index: Int, element: @EnhancedNullability String): Unit + + // CHECK JVM_IR: + // Mangled name: A2#addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.addAll|-895603574928921635[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(elements: @EnhancedNullability Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.addAll|-7321521126562575377[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(index: Int, elements: @EnhancedNullability Collection<@EnhancedNullability String>): Boolean + + // CHECK: + // Mangled name: A2#clear(){} + // Public signature: /A2.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: A2#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /A2.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: A2#contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.contains|-1288346193708144028[0] + // Public signature debug description: contains(kotlin.String{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun contains(element: @EnhancedNullability String): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#containsAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A2.containsAll|3856626117350599597[0] + // Public signature debug description: containsAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun containsAll(elements: Collection<@EnhancedNullability String>): Boolean + + // CHECK: + // Mangled name: A2#ensureCapacity(kotlin.Int){} + // Public signature: /A2.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: A2#equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.equals|4126616015386471185[0] + // Public signature debug description: equals(kotlin.Any?{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun equals(other: @EnhancedNullability Any?): Boolean + + // CHECK: + // Mangled name: A2#forEach(java.util.function.Consumer?){} + // Public signature: /A2.forEach|-5141242812493329438[0] + // Public signature debug description: forEach(java.util.function.Consumer?){} + /* fake */ override fun forEach(p0: Consumer?): Unit + + // CHECK JVM_IR: + // Mangled name: A2#get(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A2.get|-5223165249102944743[0] + // Public signature debug description: get(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun get(index: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A2#hashCode(){}kotlin.Int + // Public signature: /A2.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: A2#indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A2.indexOf|4663174940951508272[0] + // Public signature debug description: indexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun indexOf(element: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A2#isEmpty(){}kotlin.Boolean + // Public signature: /A2.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + // Public signature: /A2.iterator|1587384006376391028[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + // Public signature: /A2.lastIndexOf|546858614952815505[0] + // Public signature debug description: lastIndexOf(kotlin.String{EnhancedNullability}){}kotlin.Int + /* fake */ override fun lastIndexOf(element: @EnhancedNullability String): Int + + // CHECK JVM_IR: + // Mangled name: A2#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A2.listIterator|-4142337689496060808[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + // Public signature: /A2.listIterator|-5700342405546747272[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability} + /* fake */ override fun listIterator(index: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#parallelStream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A2.parallelStream|5674745598510225962[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#removeAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A2.removeAll|239019554007958597[0] + // Public signature debug description: removeAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun removeAll(elements: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + // Public signature: /A2.removeAt|-4284695263292850234[0] + // Public signature debug description: removeAt(kotlin.Int){}kotlin.String{EnhancedNullability} + /* fake */ override fun removeAt(p0: Int): @EnhancedNullability String + + // CHECK JVM_IR: + // Mangled name: A2#removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + // Public signature: /A2.removeIf|-1670885194148112260[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate): Boolean + + // CHECK: + // Mangled name: A2#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /A2.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: A2#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + // Public signature: /A2.replaceAll|4357913002581764262[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability String>): Unit + + // CHECK JVM_IR: + // Mangled name: A2#retainAll(kotlin.collections.Collection){}kotlin.Boolean + // Public signature: /A2.retainAll|8583629559312465774[0] + // Public signature debug description: retainAll(kotlin.collections.Collection){}kotlin.Boolean + /* fake */ override fun retainAll(elements: Collection<@EnhancedNullability String>): Boolean + + // CHECK JVM_IR: + // Mangled name: A2#set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + // Public signature: /A2.set|-410612784715293145[0] + // Public signature debug description: set(kotlin.Int;kotlin.String{EnhancedNullability}){}kotlin.String{EnhancedNullability} + /* fake */ override operator fun set(index: Int, element: @EnhancedNullability String): @EnhancedNullability String + + // CHECK: + // Mangled name: A2#sort(java.util.Comparator?){} + // Public signature: /A2.sort|5087834210959411894[0] + // Public signature debug description: sort(java.util.Comparator?){} + /* fake */ override fun sort(p0: Comparator?): Unit + + // CHECK JVM_IR: + // Mangled name: A2#spliterator(){}java.util.Spliterator{EnhancedNullability} + // Public signature: /A2.spliterator|568936852624165869[0] + // Public signature debug description: spliterator(){}java.util.Spliterator{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator + + // CHECK JVM_IR: + // Mangled name: A2#stream(){}java.util.stream.Stream{EnhancedNullability} + // Public signature: /A2.stream|-5169222176134445645[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + // Public signature: /A2.subList|1834706356652401774[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability} + /* fake */ override fun subList(fromIndex: Int, toIndex: Int): @EnhancedNullability MutableList<@EnhancedNullability String> + + // CHECK JVM_IR: + // Mangled name: A2#toArray(){}kotlin.Array? + // Public signature: /A2.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: A2#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /A2.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: A2#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /A2.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK: + // Mangled name: A2#trimToSize(){} + // Public signature: /A2.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK JVM_IR: + // Mangled name: A2#remove(kotlin.String){}kotlin.Boolean + // Public signature: /A2.remove|-4681585628882047709[0] + // Public signature debug description: remove(kotlin.String){}kotlin.Boolean + override fun remove(x: String): Boolean + + // CHECK: + // Mangled name: A2{}size + // Public signature: /A2.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: A2#(){}kotlin.Int + // Public signature: /A2.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt index 2ffd7690312..1d71c3c6067 100644 --- a/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt +++ b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.kt @@ -1,7 +1,6 @@ // FIR_IDENTICAL // WITH_STDLIB // ISSUE: KT-60312 -// SKIP_SIGNATURE_DUMP fun main() { consumeVarargs(1, 2) diff --git a/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.sig.kt.txt b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.sig.kt.txt new file mode 100644 index 00000000000..685b8369361 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/IntArrayAsVararg.sig.kt.txt @@ -0,0 +1,19 @@ +// CHECK: +// Mangled name: #consumeVarargs(kotlin.IntArray...){} +// Public signature: /consumeVarargs|2702777436513705083[0] +// Public signature debug description: consumeVarargs(kotlin.IntArray...){} +fun consumeVarargs(vararg arr: Int): Unit + +// CHECK JVM_IR: +// Mangled name: #main(){} +// Mangled name for the signature by IR: main(){} +// Mangled name for the signature by Frontend: main(){}%IntArrayAsVararg.kt +// Public signature by IR: /main|-4284757841571462650[0] +// Public signature by IR debug description: main(){} +// Public signature by Frontend: /main|-2337641484263297417[0] +// Public signature by Frontend debug description: main(){}%IntArrayAsVararg.kt +// CHECK JS_IR NATIVE: +// Mangled name: #main(){} +// Public signature: /main|-4284757841571462650[0] +// Public signature debug description: main(){} +fun main(): Unit diff --git a/compiler/testData/ir/irText/firProblems/MultiList.fir.sig.kt.txt b/compiler/testData/ir/irText/firProblems/MultiList.fir.sig.kt.txt new file mode 100644 index 00000000000..06b161e67d6 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/MultiList.fir.sig.kt.txt @@ -0,0 +1,631 @@ +// CHECK: +// Mangled name: FinalList +// Public signature: /FinalList|null[0] +class FinalList : SomeList { + // CHECK: + // Mangled name: FinalList#(){} + // Public signature: /FinalList.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: FinalList#add(Some{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.add|-8984599614497554904[0] + // Public signature debug description: add(Some{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(p0: @EnhancedNullability Some): Boolean + + // CHECK: + // Mangled name: FinalList#add(kotlin.Int;Some{EnhancedNullability}){} + // Public signature: /FinalList.add|6103522216647968303[0] + // Public signature debug description: add(kotlin.Int;Some{EnhancedNullability}){} + /* fake */ override fun add(p0: Int, p1: @EnhancedNullability Some): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.addAll|-808020497122409848[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: @EnhancedNullability Collection>): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.addAll|-2436690291193212609[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: Int, p1: @EnhancedNullability Collection>): Boolean + + // CHECK: + // Mangled name: FinalList#clear(){} + // Public signature: /FinalList.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /FinalList.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: FinalList#contains(Some{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.contains|3096303196508390878[0] + // Public signature debug description: contains(Some{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun contains(p0: @EnhancedNullability Some): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#containsAll(kotlin.collections.Collection?>){}kotlin.Boolean + // Public signature: /FinalList.containsAll|5422538213063988463[0] + // Public signature debug description: containsAll(kotlin.collections.Collection?>){}kotlin.Boolean + /* fake */ override fun containsAll(p0: Collection?>): Boolean + + // CHECK: + // Mangled name: FinalList#ensureCapacity(kotlin.Int){} + // Public signature: /FinalList.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /FinalList.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(p0: Any?): Boolean + + // CHECK: + // Mangled name: FinalList#forEach(java.util.function.Consumer?>?){} + // Public signature: /FinalList.forEach|4696325404101105686[0] + // Public signature debug description: forEach(java.util.function.Consumer?>?){} + /* fake */ override fun forEach(p0: Consumer?>?): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#get(kotlin.Int){}Some{EnhancedNullability} + // Public signature: /FinalList.get|-1548509062534898774[0] + // Public signature debug description: get(kotlin.Int){}Some{EnhancedNullability} + /* fake */ override operator fun get(p0: Int): @EnhancedNullability Some + + // CHECK JVM_IR: + // Mangled name: FinalList#hashCode(){}kotlin.Int + // Public signature: /FinalList.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: FinalList#indexOf(Some{EnhancedNullability}){}kotlin.Int + // Public signature: /FinalList.indexOf|7750638587776299509[0] + // Public signature debug description: indexOf(Some{EnhancedNullability}){}kotlin.Int + /* fake */ override fun indexOf(p0: @EnhancedNullability Some): Int + + // CHECK JVM_IR: + // Mangled name: FinalList#isEmpty(){}kotlin.Boolean + // Public signature: /FinalList.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.iterator|8558402996726649403[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#lastIndexOf(Some{EnhancedNullability}){}kotlin.Int + // Public signature: /FinalList.lastIndexOf|5741372771241017733[0] + // Public signature debug description: lastIndexOf(Some{EnhancedNullability}){}kotlin.Int + /* fake */ override fun lastIndexOf(p0: @EnhancedNullability Some): Int + + // CHECK JVM_IR: + // Mangled name: FinalList#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.listIterator|8523841103372258778[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.listIterator|-1256207950105493440[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(p0: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.parallelStream|8044059385260403489[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#remove(Some{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.remove|1113376285786700007[0] + // Public signature debug description: remove(Some{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun remove(p0: @EnhancedNullability Some): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /FinalList.removeAll|8283758866692309032[0] + // Public signature debug description: removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun removeAll(p0: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#removeAt(kotlin.Int){}Some{EnhancedNullability} + // Public signature: /FinalList.removeAt|720917123303312228[0] + // Public signature debug description: removeAt(kotlin.Int){}Some{EnhancedNullability} + /* fake */ override operator fun removeAt(p0: Int): @EnhancedNullability Some + + // CHECK JVM_IR: + // Mangled name: FinalList#removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.removeIf|8503205219992947771[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate>): Boolean + + // CHECK: + // Mangled name: FinalList#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /FinalList.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: FinalList#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + // Public signature: /FinalList.replaceAll|-2438443123103518985[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability Some>): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /FinalList.retainAll|-7465258836476223838[0] + // Public signature debug description: retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun retainAll(p0: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#set(kotlin.Int;Some{EnhancedNullability}){}Some{EnhancedNullability} + // Public signature: /FinalList.set|-2357920566185129420[0] + // Public signature debug description: set(kotlin.Int;Some{EnhancedNullability}){}Some{EnhancedNullability} + /* fake */ override operator fun set(p0: Int, p1: @EnhancedNullability Some): @EnhancedNullability Some + + // CHECK: + // Mangled name: FinalList#sort(java.util.Comparator?>?){} + // Public signature: /FinalList.sort|788869724005081799[0] + // Public signature debug description: sort(java.util.Comparator?>?){} + /* fake */ override fun sort(p0: Comparator?>?): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#spliterator(){}java.util.Spliterator?>{EnhancedNullability} + // Public signature: /FinalList.spliterator|1821695929438060632[0] + // Public signature debug description: spliterator(){}java.util.Spliterator?>{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator?> + + // CHECK JVM_IR: + // Mangled name: FinalList#stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.stream|904818870795057646[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.subList|-454918096443177489[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun subList(p0: Int, p1: Int): @EnhancedNullability MutableList<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#toArray(){}kotlin.Array? + // Public signature: /FinalList.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: FinalList#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /FinalList.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: FinalList#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /FinalList.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK: + // Mangled name: FinalList#trimToSize(){} + // Public signature: /FinalList.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK: + // Mangled name: FinalList{}size + // Public signature: /FinalList.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: FinalList#(){}kotlin.Int + // Public signature: /FinalList.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} + +// CHECK: +// Mangled name: Some +// Public signature: /Some|null[0] +data class Some { + // CHECK: + // Mangled name: Some{}value + // Public signature: /Some.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: T + // CHECK JVM_IR: + // Mangled name: Some#(){}1:0 + // Public signature: /Some.value.|3167862337988859752[0] + // Public signature debug description: (){}1:0 + get + + // CHECK: + // Mangled name: Some#(1:0){} + // Public signature: /Some.|-8731461708390519279[0] + // Public signature debug description: (1:0){} + constructor(value: T) /* primary */ + + // CHECK JVM_IR: + // Mangled name: Some#component1(){}1:0 + // Public signature: /Some.component1|2393470133763651536[0] + // Public signature debug description: component1(){}1:0 + operator fun component1(): T + + // CHECK JVM_IR: + // Mangled name: Some#copy(1:0){}Some<1:0> + // Public signature: /Some.copy|-5113145417327178592[0] + // Public signature debug description: copy(1:0){}Some<1:0> + fun copy(value: T): Some + + // CHECK JVM_IR: + // Mangled name: Some#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /Some.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: Some#hashCode(){}kotlin.Int + // Public signature: /Some.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: Some#toString(){}kotlin.String + // Public signature: /Some.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + override fun toString(): String + +} + +// CHECK: +// Mangled name: SomeList +// Public signature: /SomeList|null[0] +open class SomeList : ArrayList>, MyList { + // CHECK: + // Mangled name: SomeList#(){} + // Public signature: /SomeList.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: SomeList#add(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.add|6625667564777432526[0] + // Public signature debug description: add(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(p0: @EnhancedNullability Some): Boolean + + // CHECK: + // Mangled name: SomeList#add(kotlin.Int;Some<1:0>{EnhancedNullability}){} + // Public signature: /SomeList.add|5894306454182126521[0] + // Public signature debug description: add(kotlin.Int;Some<1:0>{EnhancedNullability}){} + /* fake */ override fun add(p0: Int, p1: @EnhancedNullability Some): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.addAll|8841102520309421896[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: @EnhancedNullability Collection>): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.addAll|-2909110170632963426[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(p0: Int, p1: @EnhancedNullability Collection>): Boolean + + // CHECK: + // Mangled name: SomeList#clear(){} + // Public signature: /SomeList.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /SomeList.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: SomeList#contains(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.contains|8295010842646223621[0] + // Public signature debug description: contains(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override operator fun contains(p0: @EnhancedNullability Some): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#containsAll(kotlin.collections.Collection?>){}kotlin.Boolean + // Public signature: /SomeList.containsAll|5540597363096413063[0] + // Public signature debug description: containsAll(kotlin.collections.Collection?>){}kotlin.Boolean + /* fake */ override fun containsAll(p0: Collection?>): Boolean + + // CHECK: + // Mangled name: SomeList#ensureCapacity(kotlin.Int){} + // Public signature: /SomeList.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /SomeList.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(p0: Any?): Boolean + + // CHECK: + // Mangled name: SomeList#forEach(java.util.function.Consumer?>?){} + // Public signature: /SomeList.forEach|2335383423896980862[0] + // Public signature debug description: forEach(java.util.function.Consumer?>?){} + /* fake */ override fun forEach(p0: Consumer?>?): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#get(kotlin.Int){}Some<1:0>{EnhancedNullability} + // Public signature: /SomeList.get|-3046572306153092239[0] + // Public signature debug description: get(kotlin.Int){}Some<1:0>{EnhancedNullability} + /* fake */ override operator fun get(p0: Int): @EnhancedNullability Some + + // CHECK JVM_IR: + // Mangled name: SomeList#hashCode(){}kotlin.Int + // Public signature: /SomeList.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: SomeList#indexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int + // Public signature: /SomeList.indexOf|-8100421064396203855[0] + // Public signature debug description: indexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int + /* fake */ override fun indexOf(p0: @EnhancedNullability Some): Int + + // CHECK JVM_IR: + // Mangled name: SomeList#isEmpty(){}kotlin.Boolean + // Public signature: /SomeList.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.iterator|-7182993882396126574[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#lastIndexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int + // Public signature: /SomeList.lastIndexOf|1971452683190765047[0] + // Public signature debug description: lastIndexOf(Some<1:0>{EnhancedNullability}){}kotlin.Int + /* fake */ override fun lastIndexOf(p0: @EnhancedNullability Some): Int + + // CHECK JVM_IR: + // Mangled name: SomeList#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.listIterator|6618472108636157083[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.listIterator|-3795321970117438398[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(p0: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.parallelStream|-219890944175584912[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#remove(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.remove|8928393929585423329[0] + // Public signature debug description: remove(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun remove(p0: @EnhancedNullability Some): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /SomeList.removeAll|-739161647328472857[0] + // Public signature debug description: removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun removeAll(p0: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#removeAt(kotlin.Int){}Some<1:0>{EnhancedNullability} + // Public signature: /SomeList.removeAt|1618803614791995920[0] + // Public signature debug description: removeAt(kotlin.Int){}Some<1:0>{EnhancedNullability} + /* fake */ override operator fun removeAt(p0: Int): @EnhancedNullability Some + + // CHECK JVM_IR: + // Mangled name: SomeList#removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.removeIf|6220917503242239774[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate>): Boolean + + // CHECK: + // Mangled name: SomeList#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /SomeList.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: SomeList#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + // Public signature: /SomeList.replaceAll|8399474219653830736[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability Some>): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /SomeList.retainAll|776609542356793092[0] + // Public signature debug description: retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun retainAll(p0: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#set(kotlin.Int;Some<1:0>{EnhancedNullability}){}Some<1:0>{EnhancedNullability} + // Public signature: /SomeList.set|8710073253272248288[0] + // Public signature debug description: set(kotlin.Int;Some<1:0>{EnhancedNullability}){}Some<1:0>{EnhancedNullability} + /* fake */ override operator fun set(p0: Int, p1: @EnhancedNullability Some): @EnhancedNullability Some + + // CHECK: + // Mangled name: SomeList#sort(java.util.Comparator?>?){} + // Public signature: /SomeList.sort|2356904874097678822[0] + // Public signature debug description: sort(java.util.Comparator?>?){} + /* fake */ override fun sort(p0: Comparator?>?): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#spliterator(){}java.util.Spliterator?>{EnhancedNullability} + // Public signature: /SomeList.spliterator|4783176954583244560[0] + // Public signature debug description: spliterator(){}java.util.Spliterator?>{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator?> + + // CHECK JVM_IR: + // Mangled name: SomeList#stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.stream|-3224874826172988287[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.subList|2652767784817291661[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun subList(p0: Int, p1: Int): @EnhancedNullability MutableList<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#toArray(){}kotlin.Array? + // Public signature: /SomeList.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: SomeList#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /SomeList.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: SomeList#toString(){}kotlin.String{EnhancedNullability} + // Public signature: /SomeList.toString|7581629773206850948[0] + // Public signature debug description: toString(){}kotlin.String{EnhancedNullability} + /* fake */ override fun toString(): @EnhancedNullability String + + // CHECK: + // Mangled name: SomeList#trimToSize(){} + // Public signature: /SomeList.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK: + // Mangled name: SomeList{}size + // Public signature: /SomeList.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: SomeList#(){}kotlin.Int + // Public signature: /SomeList.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} + +// CHECK: +// Mangled name: MyList +// Public signature: /MyList|null[0] +interface MyList : List> { + // CHECK JVM_IR: + // Mangled name: MyList#contains(Some<1:0>){}kotlin.Boolean + // Public signature: /MyList.contains|-2920670572443692722[0] + // Public signature debug description: contains(Some<1:0>){}kotlin.Boolean + abstract /* fake */ override operator fun contains(element: Some): Boolean + + // CHECK JVM_IR: + // Mangled name: MyList#containsAll(kotlin.collections.Collection>){}kotlin.Boolean + // Public signature: /MyList.containsAll|4060484050930787658[0] + // Public signature debug description: containsAll(kotlin.collections.Collection>){}kotlin.Boolean + abstract /* fake */ override fun containsAll(elements: Collection>): Boolean + + // CHECK: + // Mangled name: MyList#forEach(java.util.function.Consumer?>?){} + // Public signature: /MyList.forEach|2335383423896980862[0] + // Public signature debug description: forEach(java.util.function.Consumer?>?){} + /* fake */ override fun forEach(p0: Consumer?>?): Unit + + // CHECK JVM_IR: + // Mangled name: MyList#get(kotlin.Int){}Some<1:0> + // Public signature: /MyList.get|7985278152358407752[0] + // Public signature debug description: get(kotlin.Int){}Some<1:0> + abstract /* fake */ override operator fun get(index: Int): Some + + // CHECK JVM_IR: + // Mangled name: MyList#indexOf(Some<1:0>){}kotlin.Int + // Public signature: /MyList.indexOf|4192413876446876489[0] + // Public signature debug description: indexOf(Some<1:0>){}kotlin.Int + abstract /* fake */ override fun indexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: MyList#isEmpty(){}kotlin.Boolean + // Public signature: /MyList.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + abstract /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: MyList#iterator(){}kotlin.collections.Iterator> + // Public signature: /MyList.iterator|4665016051664097318[0] + // Public signature debug description: iterator(){}kotlin.collections.Iterator> + abstract /* fake */ override operator fun iterator(): Iterator> + + // CHECK JVM_IR: + // Mangled name: MyList#lastIndexOf(Some<1:0>){}kotlin.Int + // Public signature: /MyList.lastIndexOf|-4798028145670003218[0] + // Public signature debug description: lastIndexOf(Some<1:0>){}kotlin.Int + abstract /* fake */ override fun lastIndexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: MyList#listIterator(){}kotlin.collections.ListIterator> + // Public signature: /MyList.listIterator|-2189861527048971515[0] + // Public signature debug description: listIterator(){}kotlin.collections.ListIterator> + abstract /* fake */ override fun listIterator(): ListIterator> + + // CHECK JVM_IR: + // Mangled name: MyList#listIterator(kotlin.Int){}kotlin.collections.ListIterator> + // Public signature: /MyList.listIterator|-7362392460123500224[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.ListIterator> + abstract /* fake */ override fun listIterator(index: Int): ListIterator> + + // CHECK JVM_IR: + // Mangled name: MyList#parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /MyList.parallelStream|-219890944175584912[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: MyList#spliterator(){}java.util.Spliterator?>{EnhancedNullability} + // Public signature: /MyList.spliterator|4783176954583244560[0] + // Public signature debug description: spliterator(){}java.util.Spliterator?>{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator?> + + // CHECK JVM_IR: + // Mangled name: MyList#stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /MyList.stream|-3224874826172988287[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: MyList#subList(kotlin.Int;kotlin.Int){}kotlin.collections.List> + // Public signature: /MyList.subList|-1812789993592301332[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.List> + abstract /* fake */ override fun subList(fromIndex: Int, toIndex: Int): List> + + // CHECK: + // Mangled name: MyList{}size + // Public signature: /MyList.size|-6253659984320132064[0] + // Public signature debug description: {}size + abstract /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: MyList#(){}kotlin.Int + // Public signature: /MyList.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + abstract /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/firProblems/MultiList.kt b/compiler/testData/ir/irText/firProblems/MultiList.kt index 3c525d2d7c7..efaed0aa900 100644 --- a/compiler/testData/ir/irText/firProblems/MultiList.kt +++ b/compiler/testData/ir/irText/firProblems/MultiList.kt @@ -1,7 +1,7 @@ // TARGET_BACKEND: JVM // FULL_JDK -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Value parameters in fake overrides generated by K1 and K2 are different import java.util.ArrayList diff --git a/compiler/testData/ir/irText/firProblems/MultiList.sig.kt.txt b/compiler/testData/ir/irText/firProblems/MultiList.sig.kt.txt new file mode 100644 index 00000000000..611605ee32a --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/MultiList.sig.kt.txt @@ -0,0 +1,631 @@ +// CHECK: +// Mangled name: FinalList +// Public signature: /FinalList|null[0] +class FinalList : SomeList { + // CHECK: + // Mangled name: FinalList#(){} + // Public signature: /FinalList.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: FinalList#add(Some{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.add|-8984599614497554904[0] + // Public signature debug description: add(Some{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(element: @EnhancedNullability Some): Boolean + + // CHECK: + // Mangled name: FinalList#add(kotlin.Int;Some{EnhancedNullability}){} + // Public signature: /FinalList.add|6103522216647968303[0] + // Public signature debug description: add(kotlin.Int;Some{EnhancedNullability}){} + /* fake */ override fun add(index: Int, element: @EnhancedNullability Some): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.addAll|6541999141588936174[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(elements: @EnhancedNullability Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.addAll|-5588261424194102008[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(index: Int, elements: @EnhancedNullability Collection<@EnhancedNullability Some>): Boolean + + // CHECK: + // Mangled name: FinalList#clear(){} + // Public signature: /FinalList.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /FinalList.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: FinalList#contains(Some){}kotlin.Boolean + // Public signature: /FinalList.contains|3306019531315598892[0] + // Public signature debug description: contains(Some){}kotlin.Boolean + /* fake */ override operator fun contains(element: Some): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#containsAll(kotlin.collections.Collection>){}kotlin.Boolean + // Public signature: /FinalList.containsAll|9064771870641374979[0] + // Public signature debug description: containsAll(kotlin.collections.Collection>){}kotlin.Boolean + /* fake */ override fun containsAll(elements: Collection>): Boolean + + // CHECK: + // Mangled name: FinalList#ensureCapacity(kotlin.Int){} + // Public signature: /FinalList.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /FinalList.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK: + // Mangled name: FinalList#forEach(java.util.function.Consumer?>?){} + // Public signature: /FinalList.forEach|4696325404101105686[0] + // Public signature debug description: forEach(java.util.function.Consumer?>?){} + /* fake */ override fun forEach(p0: Consumer?>?): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#get(kotlin.Int){}Some + // Public signature: /FinalList.get|5550525129583729061[0] + // Public signature debug description: get(kotlin.Int){}Some + /* fake */ override operator fun get(index: Int): Some + + // CHECK JVM_IR: + // Mangled name: FinalList#hashCode(){}kotlin.Int + // Public signature: /FinalList.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: FinalList#indexOf(Some){}kotlin.Int + // Public signature: /FinalList.indexOf|5440857764812757471[0] + // Public signature debug description: indexOf(Some){}kotlin.Int + /* fake */ override fun indexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: FinalList#isEmpty(){}kotlin.Boolean + // Public signature: /FinalList.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.iterator|8558402996726649403[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#lastIndexOf(Some){}kotlin.Int + // Public signature: /FinalList.lastIndexOf|-46333449251229155[0] + // Public signature debug description: lastIndexOf(Some){}kotlin.Int + /* fake */ override fun lastIndexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: FinalList#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.listIterator|8523841103372258778[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.listIterator|-1256207950105493440[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(index: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.parallelStream|8044059385260403489[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#remove(Some{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.remove|1113376285786700007[0] + // Public signature debug description: remove(Some{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun remove(element: @EnhancedNullability Some): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /FinalList.removeAll|8283758866692309032[0] + // Public signature debug description: removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun removeAll(elements: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#removeAt(kotlin.Int){}Some{EnhancedNullability} + // Public signature: /FinalList.removeAt|720917123303312228[0] + // Public signature debug description: removeAt(kotlin.Int){}Some{EnhancedNullability} + /* fake */ override fun removeAt(p0: Int): @EnhancedNullability Some + + // CHECK JVM_IR: + // Mangled name: FinalList#removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /FinalList.removeIf|8503205219992947771[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate>): Boolean + + // CHECK: + // Mangled name: FinalList#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /FinalList.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: FinalList#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + // Public signature: /FinalList.replaceAll|-2438443123103518985[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability Some>): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /FinalList.retainAll|-7465258836476223838[0] + // Public signature debug description: retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun retainAll(elements: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: FinalList#set(kotlin.Int;Some{EnhancedNullability}){}Some{EnhancedNullability} + // Public signature: /FinalList.set|-2357920566185129420[0] + // Public signature debug description: set(kotlin.Int;Some{EnhancedNullability}){}Some{EnhancedNullability} + /* fake */ override operator fun set(index: Int, element: @EnhancedNullability Some): @EnhancedNullability Some + + // CHECK: + // Mangled name: FinalList#sort(java.util.Comparator?>?){} + // Public signature: /FinalList.sort|788869724005081799[0] + // Public signature debug description: sort(java.util.Comparator?>?){} + /* fake */ override fun sort(p0: Comparator?>?): Unit + + // CHECK JVM_IR: + // Mangled name: FinalList#spliterator(){}java.util.Spliterator?>{EnhancedNullability} + // Public signature: /FinalList.spliterator|1821695929438060632[0] + // Public signature debug description: spliterator(){}java.util.Spliterator?>{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator?> + + // CHECK JVM_IR: + // Mangled name: FinalList#stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.stream|904818870795057646[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + // Public signature: /FinalList.subList|-454918096443177489[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun subList(fromIndex: Int, toIndex: Int): @EnhancedNullability MutableList<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: FinalList#toArray(){}kotlin.Array? + // Public signature: /FinalList.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: FinalList#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /FinalList.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: FinalList#toString(){}kotlin.String + // Public signature: /FinalList.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: FinalList#trimToSize(){} + // Public signature: /FinalList.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK: + // Mangled name: FinalList{}size + // Public signature: /FinalList.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: FinalList#(){}kotlin.Int + // Public signature: /FinalList.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} + +// CHECK: +// Mangled name: Some +// Public signature: /Some|null[0] +data class Some { + // CHECK: + // Mangled name: Some{}value + // Public signature: /Some.value|1987073854177347439[0] + // Public signature debug description: {}value + val value: T + // CHECK JVM_IR: + // Mangled name: Some#(){}1:0 + // Public signature: /Some.value.|3167862337988859752[0] + // Public signature debug description: (){}1:0 + get + + // CHECK: + // Mangled name: Some#(1:0){} + // Public signature: /Some.|-8731461708390519279[0] + // Public signature debug description: (1:0){} + constructor(value: T) /* primary */ + + // CHECK JVM_IR: + // Mangled name: Some#component1(){}1:0 + // Public signature: /Some.component1|2393470133763651536[0] + // Public signature debug description: component1(){}1:0 + operator fun component1(): T + + // CHECK JVM_IR: + // Mangled name: Some#copy(1:0){}Some<1:0> + // Public signature: /Some.copy|-5113145417327178592[0] + // Public signature debug description: copy(1:0){}Some<1:0> + fun copy(value: T): Some + + // CHECK JVM_IR: + // Mangled name: Some#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /Some.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + override operator fun equals(other: Any?): Boolean + + // CHECK JVM_IR: + // Mangled name: Some#hashCode(){}kotlin.Int + // Public signature: /Some.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: Some#toString(){}kotlin.String + // Public signature: /Some.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + override fun toString(): String + +} + +// CHECK: +// Mangled name: SomeList +// Public signature: /SomeList|null[0] +open class SomeList : ArrayList>, MyList { + // CHECK: + // Mangled name: SomeList#(){} + // Public signature: /SomeList.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK JVM_IR: + // Mangled name: SomeList#add(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.add|6625667564777432526[0] + // Public signature debug description: add(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun add(element: @EnhancedNullability Some): Boolean + + // CHECK: + // Mangled name: SomeList#add(kotlin.Int;Some<1:0>{EnhancedNullability}){} + // Public signature: /SomeList.add|5894306454182126521[0] + // Public signature debug description: add(kotlin.Int;Some<1:0>{EnhancedNullability}){} + /* fake */ override fun add(index: Int, element: @EnhancedNullability Some): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.addAll|7215816488194227173[0] + // Public signature debug description: addAll(kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(elements: @EnhancedNullability Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.addAll|-8771596815386290321[0] + // Public signature debug description: addAll(kotlin.Int;kotlin.collections.Collection{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun addAll(index: Int, elements: @EnhancedNullability Collection<@EnhancedNullability Some>): Boolean + + // CHECK: + // Mangled name: SomeList#clear(){} + // Public signature: /SomeList.clear|-6446868449915108923[0] + // Public signature debug description: clear(){} + /* fake */ override fun clear(): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#clone(){}kotlin.Any{EnhancedNullability} + // Public signature: /SomeList.clone|178802004086941196[0] + // Public signature debug description: clone(){}kotlin.Any{EnhancedNullability} + /* fake */ override fun clone(): @EnhancedNullability Any + + // CHECK JVM_IR: + // Mangled name: SomeList#contains(Some<1:0>){}kotlin.Boolean + // Public signature: /SomeList.contains|-2920670572443692722[0] + // Public signature debug description: contains(Some<1:0>){}kotlin.Boolean + /* fake */ override operator fun contains(element: Some): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#containsAll(kotlin.collections.Collection>){}kotlin.Boolean + // Public signature: /SomeList.containsAll|4060484050930787658[0] + // Public signature debug description: containsAll(kotlin.collections.Collection>){}kotlin.Boolean + /* fake */ override fun containsAll(elements: Collection>): Boolean + + // CHECK: + // Mangled name: SomeList#ensureCapacity(kotlin.Int){} + // Public signature: /SomeList.ensureCapacity|-7913402150632352615[0] + // Public signature debug description: ensureCapacity(kotlin.Int){} + /* fake */ override fun ensureCapacity(p0: Int): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#equals(kotlin.Any?){}kotlin.Boolean + // Public signature: /SomeList.equals|722809408929142791[0] + // Public signature debug description: equals(kotlin.Any?){}kotlin.Boolean + /* fake */ override operator fun equals(other: Any?): Boolean + + // CHECK: + // Mangled name: SomeList#forEach(java.util.function.Consumer?>?){} + // Public signature: /SomeList.forEach|2335383423896980862[0] + // Public signature debug description: forEach(java.util.function.Consumer?>?){} + /* fake */ override fun forEach(p0: Consumer?>?): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#get(kotlin.Int){}Some<1:0> + // Public signature: /SomeList.get|7985278152358407752[0] + // Public signature debug description: get(kotlin.Int){}Some<1:0> + /* fake */ override operator fun get(index: Int): Some + + // CHECK JVM_IR: + // Mangled name: SomeList#hashCode(){}kotlin.Int + // Public signature: /SomeList.hashCode|-8048879360829830756[0] + // Public signature debug description: hashCode(){}kotlin.Int + /* fake */ override fun hashCode(): Int + + // CHECK JVM_IR: + // Mangled name: SomeList#indexOf(Some<1:0>){}kotlin.Int + // Public signature: /SomeList.indexOf|4192413876446876489[0] + // Public signature debug description: indexOf(Some<1:0>){}kotlin.Int + /* fake */ override fun indexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: SomeList#isEmpty(){}kotlin.Boolean + // Public signature: /SomeList.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.iterator|-7182993882396126574[0] + // Public signature debug description: iterator(){}kotlin.collections.MutableIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override operator fun iterator(): @EnhancedNullability MutableIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#lastIndexOf(Some<1:0>){}kotlin.Int + // Public signature: /SomeList.lastIndexOf|-4798028145670003218[0] + // Public signature debug description: lastIndexOf(Some<1:0>){}kotlin.Int + /* fake */ override fun lastIndexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: SomeList#listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.listIterator|6618472108636157083[0] + // Public signature debug description: listIterator(){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.listIterator|-3795321970117438398[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.MutableListIterator{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun listIterator(index: Int): @EnhancedNullability MutableListIterator<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.parallelStream|-219890944175584912[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#remove(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.remove|8928393929585423329[0] + // Public signature debug description: remove(Some<1:0>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun remove(element: @EnhancedNullability Some): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /SomeList.removeAll|-739161647328472857[0] + // Public signature debug description: removeAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun removeAll(elements: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#removeAt(kotlin.Int){}Some<1:0>{EnhancedNullability} + // Public signature: /SomeList.removeAt|1618803614791995920[0] + // Public signature debug description: removeAt(kotlin.Int){}Some<1:0>{EnhancedNullability} + /* fake */ override fun removeAt(p0: Int): @EnhancedNullability Some + + // CHECK JVM_IR: + // Mangled name: SomeList#removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + // Public signature: /SomeList.removeIf|6220917503242239774[0] + // Public signature debug description: removeIf(java.util.function.Predicate{EnhancedNullability}>{EnhancedNullability}){}kotlin.Boolean + /* fake */ override fun removeIf(p0: @EnhancedNullability Predicate>): Boolean + + // CHECK: + // Mangled name: SomeList#removeRange(kotlin.Int;kotlin.Int){} + // Public signature: /SomeList.removeRange|7632320944993890593[0] + // Public signature debug description: removeRange(kotlin.Int;kotlin.Int){} + protected_and_package /* fake */ override fun removeRange(p0: Int, p1: Int): Unit + + // CHECK: + // Mangled name: SomeList#replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + // Public signature: /SomeList.replaceAll|8399474219653830736[0] + // Public signature debug description: replaceAll(java.util.function.UnaryOperator{EnhancedNullability}>{EnhancedNullability}){} + /* fake */ override fun replaceAll(p0: @EnhancedNullability UnaryOperator<@EnhancedNullability Some>): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + // Public signature: /SomeList.retainAll|776609542356793092[0] + // Public signature debug description: retainAll(kotlin.collections.Collection{EnhancedNullability}>){}kotlin.Boolean + /* fake */ override fun retainAll(elements: Collection<@EnhancedNullability Some>): Boolean + + // CHECK JVM_IR: + // Mangled name: SomeList#set(kotlin.Int;Some<1:0>{EnhancedNullability}){}Some<1:0>{EnhancedNullability} + // Public signature: /SomeList.set|8710073253272248288[0] + // Public signature debug description: set(kotlin.Int;Some<1:0>{EnhancedNullability}){}Some<1:0>{EnhancedNullability} + /* fake */ override operator fun set(index: Int, element: @EnhancedNullability Some): @EnhancedNullability Some + + // CHECK: + // Mangled name: SomeList#sort(java.util.Comparator?>?){} + // Public signature: /SomeList.sort|2356904874097678822[0] + // Public signature debug description: sort(java.util.Comparator?>?){} + /* fake */ override fun sort(p0: Comparator?>?): Unit + + // CHECK JVM_IR: + // Mangled name: SomeList#spliterator(){}java.util.Spliterator?>{EnhancedNullability} + // Public signature: /SomeList.spliterator|4783176954583244560[0] + // Public signature debug description: spliterator(){}java.util.Spliterator?>{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator?> + + // CHECK JVM_IR: + // Mangled name: SomeList#stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.stream|-3224874826172988287[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + // Public signature: /SomeList.subList|2652767784817291661[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.MutableList{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun subList(fromIndex: Int, toIndex: Int): @EnhancedNullability MutableList<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: SomeList#toArray(){}kotlin.Array? + // Public signature: /SomeList.toArray|-8468800257910341540[0] + // Public signature debug description: toArray(){}kotlin.Array? + /* fake */ override fun toArray(): Array? + + // CHECK JVM_IR: + // Mangled name: SomeList#toArray(kotlin.Array?){0§}kotlin.Array? + // Public signature: /SomeList.toArray|-7248906015406159030[0] + // Public signature debug description: toArray(kotlin.Array?){0§}kotlin.Array? + /* fake */ override fun toArray(p0: Array?): Array? + + // CHECK JVM_IR: + // Mangled name: SomeList#toString(){}kotlin.String + // Public signature: /SomeList.toString|6958853723545266802[0] + // Public signature debug description: toString(){}kotlin.String + /* fake */ override fun toString(): String + + // CHECK: + // Mangled name: SomeList#trimToSize(){} + // Public signature: /SomeList.trimToSize|-5937642362792008740[0] + // Public signature debug description: trimToSize(){} + /* fake */ override fun trimToSize(): Unit + + // CHECK: + // Mangled name: SomeList{}size + // Public signature: /SomeList.size|-6253659984320132064[0] + // Public signature debug description: {}size + /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: SomeList#(){}kotlin.Int + // Public signature: /SomeList.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + /* fake */ override get(): Int + +} + +// CHECK: +// Mangled name: MyList +// Public signature: /MyList|null[0] +interface MyList : List> { + // CHECK JVM_IR: + // Mangled name: MyList#contains(Some<1:0>){}kotlin.Boolean + // Public signature: /MyList.contains|-2920670572443692722[0] + // Public signature debug description: contains(Some<1:0>){}kotlin.Boolean + abstract /* fake */ override operator fun contains(element: Some): Boolean + + // CHECK JVM_IR: + // Mangled name: MyList#containsAll(kotlin.collections.Collection>){}kotlin.Boolean + // Public signature: /MyList.containsAll|4060484050930787658[0] + // Public signature debug description: containsAll(kotlin.collections.Collection>){}kotlin.Boolean + abstract /* fake */ override fun containsAll(elements: Collection>): Boolean + + // CHECK: + // Mangled name: MyList#forEach(java.util.function.Consumer?>?){} + // Public signature: /MyList.forEach|2335383423896980862[0] + // Public signature debug description: forEach(java.util.function.Consumer?>?){} + /* fake */ override fun forEach(p0: Consumer?>?): Unit + + // CHECK JVM_IR: + // Mangled name: MyList#get(kotlin.Int){}Some<1:0> + // Public signature: /MyList.get|7985278152358407752[0] + // Public signature debug description: get(kotlin.Int){}Some<1:0> + abstract /* fake */ override operator fun get(index: Int): Some + + // CHECK JVM_IR: + // Mangled name: MyList#indexOf(Some<1:0>){}kotlin.Int + // Public signature: /MyList.indexOf|4192413876446876489[0] + // Public signature debug description: indexOf(Some<1:0>){}kotlin.Int + abstract /* fake */ override fun indexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: MyList#isEmpty(){}kotlin.Boolean + // Public signature: /MyList.isEmpty|-626562167393617703[0] + // Public signature debug description: isEmpty(){}kotlin.Boolean + abstract /* fake */ override fun isEmpty(): Boolean + + // CHECK JVM_IR: + // Mangled name: MyList#iterator(){}kotlin.collections.Iterator> + // Public signature: /MyList.iterator|4665016051664097318[0] + // Public signature debug description: iterator(){}kotlin.collections.Iterator> + abstract /* fake */ override operator fun iterator(): Iterator> + + // CHECK JVM_IR: + // Mangled name: MyList#lastIndexOf(Some<1:0>){}kotlin.Int + // Public signature: /MyList.lastIndexOf|-4798028145670003218[0] + // Public signature debug description: lastIndexOf(Some<1:0>){}kotlin.Int + abstract /* fake */ override fun lastIndexOf(element: Some): Int + + // CHECK JVM_IR: + // Mangled name: MyList#listIterator(){}kotlin.collections.ListIterator> + // Public signature: /MyList.listIterator|-2189861527048971515[0] + // Public signature debug description: listIterator(){}kotlin.collections.ListIterator> + abstract /* fake */ override fun listIterator(): ListIterator> + + // CHECK JVM_IR: + // Mangled name: MyList#listIterator(kotlin.Int){}kotlin.collections.ListIterator> + // Public signature: /MyList.listIterator|-7362392460123500224[0] + // Public signature debug description: listIterator(kotlin.Int){}kotlin.collections.ListIterator> + abstract /* fake */ override fun listIterator(index: Int): ListIterator> + + // CHECK JVM_IR: + // Mangled name: MyList#parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /MyList.parallelStream|-219890944175584912[0] + // Public signature debug description: parallelStream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun parallelStream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: MyList#spliterator(){}java.util.Spliterator?>{EnhancedNullability} + // Public signature: /MyList.spliterator|4783176954583244560[0] + // Public signature debug description: spliterator(){}java.util.Spliterator?>{EnhancedNullability} + /* fake */ override fun spliterator(): @EnhancedNullability Spliterator?> + + // CHECK JVM_IR: + // Mangled name: MyList#stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + // Public signature: /MyList.stream|-3224874826172988287[0] + // Public signature debug description: stream(){}java.util.stream.Stream{EnhancedNullability}>{EnhancedNullability} + /* fake */ override fun stream(): @EnhancedNullability Stream<@EnhancedNullability Some> + + // CHECK JVM_IR: + // Mangled name: MyList#subList(kotlin.Int;kotlin.Int){}kotlin.collections.List> + // Public signature: /MyList.subList|-1812789993592301332[0] + // Public signature debug description: subList(kotlin.Int;kotlin.Int){}kotlin.collections.List> + abstract /* fake */ override fun subList(fromIndex: Int, toIndex: Int): List> + + // CHECK: + // Mangled name: MyList{}size + // Public signature: /MyList.size|-6253659984320132064[0] + // Public signature debug description: {}size + abstract /* fake */ override val size: Int + // CHECK JVM_IR: + // Mangled name: MyList#(){}kotlin.Int + // Public signature: /MyList.size.|-3941649985161900780[0] + // Public signature debug description: (){}kotlin.Int + abstract /* fake */ override get(): Int + +} diff --git a/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.kt b/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.kt index af926d86178..47899ade010 100644 --- a/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.kt +++ b/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.kt @@ -1,6 +1,5 @@ // FIR_IDENTICAL // WITH_REFLECT -// SKIP_SIGNATURE_DUMP var topLevelInt: Int = 0 diff --git a/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.sig.kt.txt b/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.sig.kt.txt new file mode 100644 index 00000000000..c97c5d4b483 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/delegatedSetterShouldBeSpecialized.sig.kt.txt @@ -0,0 +1,51 @@ +// CHECK: +// Mangled name: {}topLevelInt +// Public signature: /topLevelInt|-195133861434444271[0] +// Public signature debug description: {}topLevelInt +var topLevelInt: Int + // CHECK JVM_IR: + // Mangled name: #(){}kotlin.Int + // Public signature: /topLevelInt.|-3701121633294691078[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: #(){} + // Public signature: /topLevelInt.|-8146374746978443891[0] + // Public signature debug description: (){} + get + // CHECK: + // Mangled name: #(kotlin.Int){} + // Public signature: /topLevelInt.|-6405619490912020761[0] + // Public signature debug description: (kotlin.Int){} + set + +// CHECK: +// Mangled name: MyClass +// Public signature: /MyClass|null[0] +class MyClass { + // CHECK: + // Mangled name: MyClass{}delegatedToTopLevel + // Public signature: /MyClass.delegatedToTopLevel|469634053427021861[0] + // Public signature debug description: {}delegatedToTopLevel + var delegatedToTopLevel: Int /* by */ + // CHECK JVM_IR: + // Mangled name: MyClass#(){}kotlin.Int + // Public signature: /MyClass.delegatedToTopLevel.|348815270705246892[0] + // Public signature debug description: (){}kotlin.Int + // CHECK JS_IR NATIVE: + // Mangled name: MyClass#(){} + // Public signature: /MyClass.delegatedToTopLevel.|-11763650120820505[0] + // Public signature debug description: (){} + get(): Int + // CHECK: + // Mangled name: MyClass#(kotlin.Int){} + // Public signature: /MyClass.delegatedToTopLevel.|-8149849966678796267[0] + // Public signature debug description: (kotlin.Int){} + set(: Int): Unit + + // CHECK: + // Mangled name: MyClass#(){} + // Public signature: /MyClass.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} diff --git a/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.kt b/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.kt index c1e0cc3b9b0..2240067f146 100644 --- a/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.kt +++ b/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.kt @@ -1,7 +1,6 @@ // WITH_STDLIB // TARGET_BACKEND: JVM // ISSUE: KT-61443 -// SKIP_SIGNATURE_DUMP fun foo() = DelegatedB()() diff --git a/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.sig.kt.txt b/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.sig.kt.txt new file mode 100644 index 00000000000..e2f04dc870f --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/substitutionOverrideWithDelegate.sig.kt.txt @@ -0,0 +1,95 @@ +// CHECK: +// Mangled name: C +// Public signature: /C|null[0] +class C : B { + // CHECK: + // Mangled name: C#(){} + // Public signature: /C.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: C#invoke(){} + // Public signature: /C.invoke|-4663091332620260873[0] + // Public signature debug description: invoke(){} + /* fake */ override operator fun invoke(): Unit + + // CHECK: + // Mangled name: C#invoke(kotlin.String){} + // Public signature: /C.invoke|-8167496601803439348[0] + // Public signature debug description: invoke(kotlin.String){} + /* fake */ override operator fun invoke(value: String): Unit + +} + +// CHECK: +// Mangled name: DelegatedB +// Public signature: /DelegatedB|null[0] +open class DelegatedB : B { + // CHECK: + // Mangled name: DelegatedB#(){} + // Public signature: /DelegatedB.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + + // CHECK: + // Mangled name: DelegatedB#invoke(){} + // Public signature: /DelegatedB.invoke|-4663091332620260873[0] + // Public signature debug description: invoke(){} + override operator fun invoke(): Unit + + // CHECK: + // Mangled name: DelegatedB#invoke(kotlin.String){} + // Public signature: /DelegatedB.invoke|-8167496601803439348[0] + // Public signature debug description: invoke(kotlin.String){} + override operator fun invoke(value: String): Unit + +} + +// CHECK: +// Mangled name: A +// Public signature: /A|null[0] +interface A { + // CHECK: + // Mangled name: A#invoke(){} + // Public signature: /A.invoke|-4663091332620260873[0] + // Public signature debug description: invoke(){} + operator fun invoke(): Unit + + // CHECK: + // Mangled name: A#invoke(kotlin.String){} + // Public signature: /A.invoke|-8167496601803439348[0] + // Public signature debug description: invoke(kotlin.String){} + operator fun invoke(value: String): Unit + +} + +// CHECK: +// Mangled name: B +// Public signature: /B|null[0] +interface B : A { + // CHECK: + // Mangled name: B#invoke(){} + // Public signature: /B.invoke|-4663091332620260873[0] + // Public signature debug description: invoke(){} + /* fake */ override operator fun invoke(): Unit + + // CHECK: + // Mangled name: B#invoke(kotlin.String){} + // Public signature: /B.invoke|-8167496601803439348[0] + // Public signature debug description: invoke(kotlin.String){} + /* fake */ override operator fun invoke(value: String): Unit + +} + +// CHECK: +// Mangled name: #bar@A(kotlin.String){} +// Public signature: /bar|-6811345410593435832[0] +// Public signature debug description: bar@A(kotlin.String){} +fun A.bar(value: String): Unit + +// CHECK: +// Mangled name: #foo(){} +// Public signature: /foo|-1041209573719867811[0] +// Public signature debug description: foo(){} +fun foo(): Unit diff --git a/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt new file mode 100644 index 00000000000..0d4bfd87bc9 --- /dev/null +++ b/compiler/testData/ir/irText/types/rawTypeInSignature.fir.sig.kt.txt @@ -0,0 +1,113 @@ +// CHECK: +// Mangled name: GenericIn +// Public signature: /GenericIn|null[0] +class GenericIn { + // CHECK: + // Mangled name: GenericIn#(){} + // Public signature: /GenericIn.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: GenericInv +// Public signature: /GenericInv|null[0] +class GenericInv { + // CHECK: + // Mangled name: GenericInv#(){} + // Public signature: /GenericInv.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: GenericOut +// Public signature: /GenericOut|null[0] +class GenericOut { + // CHECK: + // Mangled name: GenericOut#(){} + // Public signature: /GenericOut.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: KRaw +// Public signature: /KRaw|null[0] +class KRaw : JRaw { + // CHECK: + // Mangled name: KRaw#(JRaw){} + // Public signature: /KRaw.|-9018601651041838198[0] + // Public signature debug description: (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 + + // CHECK JVM_IR: + // Mangled name: KRaw#returnsRawGenericInv(){}GenericInv + // Public signature: /KRaw.returnsRawGenericInv|8692532014882222304[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 + + // 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 + + // CHECK: + // Mangled name: KRaw#takesRawGenericIn(GenericIn){} + // Public signature: /KRaw.takesRawGenericIn|-2236627248339978838[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 + + // CHECK: + // Mangled name: KRaw#takesRawGenericOut(GenericOut){} + // Public signature: /KRaw.takesRawGenericOut|-5773421374790089688[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 + +} + +// 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 + +// 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 + +// 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 diff --git a/compiler/testData/ir/irText/types/rawTypeInSignature.kt b/compiler/testData/ir/irText/types/rawTypeInSignature.kt index 0c45e50b33f..805826a44a7 100644 --- a/compiler/testData/ir/irText/types/rawTypeInSignature.kt +++ b/compiler/testData/ir/irText/types/rawTypeInSignature.kt @@ -1,6 +1,6 @@ // TARGET_BACKEND: JVM -// SKIP_SIGNATURE_DUMP +// SEPARATE_SIGNATURE_DUMP_FOR_K2 // ^ Nullability is different for raw types in K1 and K2 // FILE: rawTypeInSignature.kt diff --git a/compiler/testData/ir/irText/types/rawTypeInSignature.sig.kt.txt b/compiler/testData/ir/irText/types/rawTypeInSignature.sig.kt.txt new file mode 100644 index 00000000000..bb8f1b7796b --- /dev/null +++ b/compiler/testData/ir/irText/types/rawTypeInSignature.sig.kt.txt @@ -0,0 +1,113 @@ +// CHECK: +// Mangled name: GenericIn +// Public signature: /GenericIn|null[0] +class GenericIn { + // CHECK: + // Mangled name: GenericIn#(){} + // Public signature: /GenericIn.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: GenericInv +// Public signature: /GenericInv|null[0] +class GenericInv { + // CHECK: + // Mangled name: GenericInv#(){} + // Public signature: /GenericInv.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: GenericOut +// Public signature: /GenericOut|null[0] +class GenericOut { + // CHECK: + // Mangled name: GenericOut#(){} + // Public signature: /GenericOut.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: KRaw +// Public signature: /KRaw|null[0] +class KRaw : JRaw { + // CHECK: + // Mangled name: KRaw#(JRaw){} + // Public signature: /KRaw.|-9018601651041838198[0] + // Public signature debug description: (JRaw){} + constructor(j: JRaw) /* primary */ + + // CHECK JVM_IR: + // Mangled name: KRaw#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|5636795900726870653[0] + // Public signature debug description: returnsRawGenericInv(){}GenericInv? + override fun returnsRawGenericInv(): GenericInv? + + // CHECK JVM_IR: + // Mangled name: KRaw#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|-6457317888193014337[0] + // Public signature debug description: returnsRawList(){}kotlin.collections.MutableList? + override fun returnsRawList(): MutableList? + + // CHECK: + // Mangled name: KRaw#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|-7043210737732405875[0] + // Public signature debug description: takesRawGenericInv(GenericInv?){} + override fun takesRawGenericInv(g: GenericInv?): Unit + + // CHECK: + // Mangled name: KRaw#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|-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|-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|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|6146268409340591089[0] +// Public signature debug description: testReturnsRawGenericOut(JRaw){}GenericOut? +fun testReturnsRawGenericOut(j: JRaw): GenericOut? diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrMangledNameAndSignatureDumpHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrMangledNameAndSignatureDumpHandler.kt index 70f77b0e1ad..fcb4cf69de5 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrMangledNameAndSignatureDumpHandler.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/backend/handlers/IrMangledNameAndSignatureDumpHandler.kt @@ -32,7 +32,8 @@ import org.jetbrains.kotlin.test.backend.codegenSuppressionChecker import org.jetbrains.kotlin.test.backend.ir.IrBackendInput import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.DUMP_SIGNATURES import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.MUTE_SIGNATURE_COMPARISON_K2 -import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.SKIP_SIGNATURE_DUMP +import org.jetbrains.kotlin.test.directives.CodegenTestDirectives.SEPARATE_SIGNATURE_DUMP_FOR_K2 +import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_IDENTICAL import org.jetbrains.kotlin.test.model.BackendKind import org.jetbrains.kotlin.test.model.FrontendKinds import org.jetbrains.kotlin.test.model.TestModule @@ -52,11 +53,14 @@ private const val CHECK_MARKER = "// CHECK" * Prints a mangled name and an [IdSignature] for each declaration and compares the result with * an expected output in a `*.sig.kt.txt` file located next to the test file. * - * Can be enabled by specifying the [DUMP_SIGNATURES] directive, and disabled with the [SKIP_SIGNATURE_DUMP] test directive. + * Can be enabled by specifying the [DUMP_SIGNATURES] directive. * * Other useful directives: * - [MUTE_SIGNATURE_COMPARISON_K2] can be used for muting the comparison result on the K2 frontend. The comparison will * still be performed, and if it succeeds, the test will fail with a message reminding you to unmute it. + * - [SEPARATE_SIGNATURE_DUMP_FOR_K2] acts like the inverse of [FIR_IDENTICAL], but it only affects signature dumps. Usually, signature + * dumps generated from K1 and K2 must be identical, but sometimes there are reasons to use separate dumps — in that case specify this + * directive. * * Since mangled names and signatures may be different depending on the backend, in order to reduce the number * of expectation files, this handler uses `// CHECK` blocks to compare the dump with an expectation in a smarter way than @@ -101,13 +105,23 @@ class IrMangledNameAndSignatureDumpHandler( const val DUMP_EXTENSION = "sig.kt.txt" } + private fun computeDumpExtension(): String { + return if (testServices.defaultsProvider.defaultFrontend == FrontendKinds.ClassicFrontend || + SEPARATE_SIGNATURE_DUMP_FOR_K2 !in testServices.moduleStructure.allDirectives + ) { + DUMP_EXTENSION + } else { + "fir.$DUMP_EXTENSION" + } + } + private val dumper = MultiModuleInfoDumper("// MODULE: %s") /** * The file that stores the expected signatures of the test file. */ private val expectedFile: File by lazy { - testServices.moduleStructure.originalTestDataFiles.first().withExtension(DUMP_EXTENSION) + testServices.moduleStructure.originalTestDataFiles.first().withExtension(computeDumpExtension()) } /** @@ -124,7 +138,7 @@ class IrMangledNameAndSignatureDumpHandler( } override fun processModule(module: TestModule, info: IrBackendInput) { - if (DUMP_SIGNATURES !in module.directives || SKIP_SIGNATURE_DUMP in module.directives) return + if (DUMP_SIGNATURES !in module.directives) return dumpModuleKotlinLike( module, diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt index 5a4e8240de9..76aa8134d1a 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/directives/CodegenTestDirectives.kt @@ -164,8 +164,13 @@ object CodegenTestDirectives : SimpleDirectivesContainer() { """.trimIndent() ) - val SKIP_SIGNATURE_DUMP by directive( - description = "Disables dumping signatures and mangled names of declarations to the ${IrMangledNameAndSignatureDumpHandler.DUMP_EXTENSION} file" + val SEPARATE_SIGNATURE_DUMP_FOR_K2 by directive( + description = """ + Usually the signature dump must not differ between K1 and K2. + There are rare cases, however, when there is legitimate difference (for example, if the set of fake overrides is different). + Please always document the usage of this directive and carefully verify that the difference between K1 and K2 does + not affect IR linkage. + """.trimIndent() ) val MUTE_SIGNATURE_COMPARISON_K2 by enumDirective(