[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
This commit is contained in:
Sergej Jaskiewicz
2024-01-12 18:39:39 +01:00
committed by Space Team
parent d2cf4548f6
commit da9f0e7af8
48 changed files with 5200 additions and 28 deletions
@@ -1,6 +1,3 @@
// SKIP_SIGNATURE_DUMP
// ^ Difference in annotations generated by K1 and K2
annotation class Ann
interface IFoo {
@@ -0,0 +1,119 @@
// CHECK:
// Mangled name: Ann
// Public signature: /Ann|null[0]
open annotation class Ann : Annotation {
// CHECK:
// Mangled name: Ann#<init>(){}
// Public signature: /Ann.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
}
// CHECK:
// Mangled name: DFoo
// Public signature: /DFoo|null[0]
class DFoo : IFoo {
// CHECK:
// Mangled name: DFoo#<init>(IFoo){}
// Public signature: /DFoo.<init>|-657369904845510135[0]
// Public signature debug description: <init>(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#<get-testExtVal>@kotlin.String(){}kotlin.String
// Public signature: /DFoo.testExtVal.<get-testExtVal>|4035393032845602237[0]
// Public signature debug description: <get-testExtVal>@kotlin.String(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: DFoo#<get-testExtVal>@kotlin.String(){}
// Public signature: /DFoo.testExtVal.<get-testExtVal>|8692242155954463066[0]
// Public signature debug description: <get-testExtVal>@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#<get-testVal>(){}kotlin.String
// Public signature: /DFoo.testVal.<get-testVal>|-8940261368877498423[0]
// Public signature debug description: <get-testVal>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: DFoo#<get-testVal>(){}
// Public signature: /DFoo.testVal.<get-testVal>|-3119877793352707332[0]
// Public signature debug description: <get-testVal>(){}
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#<get-testExtVal>@kotlin.String(){}kotlin.String
// Public signature: /IFoo.testExtVal.<get-testExtVal>|4035393032845602237[0]
// Public signature debug description: <get-testExtVal>@kotlin.String(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: IFoo#<get-testExtVal>@kotlin.String(){}
// Public signature: /IFoo.testExtVal.<get-testExtVal>|8692242155954463066[0]
// Public signature debug description: <get-testExtVal>@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#<get-testVal>(){}kotlin.String
// Public signature: /IFoo.testVal.<get-testVal>|-8940261368877498423[0]
// Public signature debug description: <get-testVal>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: IFoo#<get-testVal>(){}
// Public signature: /IFoo.testVal.<get-testVal>|-3119877793352707332[0]
// Public signature debug description: <get-testVal>(){}
abstract get
}
@@ -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#<get-x>(){}kotlin.String
// Public signature: /TestAnn.x.<get-x>|316111172223894646[0]
// Public signature debug description: <get-x>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestAnn#<get-x>(){}
// Public signature: /TestAnn.x.<get-x>|1482705010654679335[0]
// Public signature debug description: <get-x>(){}
get
// CHECK:
// Mangled name: TestAnn#<init>(kotlin.String){}
// Public signature: /TestAnn.<init>|1280618353163213788[0]
// Public signature debug description: <init>(kotlin.String){}
constructor(x: String) /* primary */
}
// CHECK:
// Mangled name: TestEnum
// Public signature: /TestEnum|null[0]
open enum class TestEnum : Enum<TestEnum> {
// CHECK:
// Mangled name: TestEnum#<init>(){}
// Public signature: /TestEnum.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
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.<EEC>|null[0]
private enum entry class ENTRY2 : TestEnum {
// CHECK:
// Mangled name: TestEnum.ENTRY2{}x
// Public signature: /TestEnum.ENTRY2.<EEC>.x|-8060530855978347579[0]
// Public signature debug description: {}x
val x: Int
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#<get-x>(){}kotlin.Int
// Public signature: /TestEnum.ENTRY2.<EEC>.x.<get-x>|4966956098150895696[0]
// Public signature debug description: <get-x>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#<get-x>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.x.<get-x>|1482705010654679335[0]
// Public signature debug description: <get-x>(){}
get
// CHECK:
// Mangled name: TestEnum.ENTRY2#<init>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
private constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#compareTo(TestEnum){}kotlin.Int
// Public signature: /TestEnum.ENTRY2.<EEC>.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.<EEC>.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.<EEC>.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.<EEC>.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.<EEC>.hashCode|-8048879360829830756[0]
// Public signature debug description: hashCode(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#hashCode(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.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.<EEC>.toString|6958853723545266802[0]
// Public signature debug description: toString(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#toString(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.toString|-1522858123163872138[0]
// Public signature debug description: toString(){}
/* fake */ override fun toString(): String
// CHECK:
// Mangled name: TestEnum.ENTRY2{}name
// Public signature: /TestEnum.ENTRY2.<EEC>.name|4231860309499509769[0]
// Public signature debug description: {}name
/* fake */ override val name: String
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#<get-name>(){}kotlin.String
// Public signature: /TestEnum.ENTRY2.<EEC>.name.<get-name>|-8006111524522882650[0]
// Public signature debug description: <get-name>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#<get-name>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.name.<get-name>|5879344792307730109[0]
// Public signature debug description: <get-name>(){}
/* fake */ override get(): String
// CHECK:
// Mangled name: TestEnum.ENTRY2{}ordinal
// Public signature: /TestEnum.ENTRY2.<EEC>.ordinal|1912745122988592376[0]
// Public signature debug description: {}ordinal
/* fake */ override val ordinal: Int
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#<get-ordinal>(){}kotlin.Int
// Public signature: /TestEnum.ENTRY2.<EEC>.ordinal.<get-ordinal>|-6902664390061762634[0]
// Public signature debug description: <get-ordinal>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#<get-ordinal>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.ordinal.<get-ordinal>|8409904226035914023[0]
// Public signature debug description: <get-ordinal>(){}
/* 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<TestEnum>
// Public signature: /TestEnum.values|-4299804782350326897[0]
// Public signature debug description: values#static(){}kotlin.Array<TestEnum>
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#values#static(){}
// Public signature: /TestEnum.values|-8715569000920726747[0]
// Public signature debug description: values#static(){}
fun values(): Array<TestEnum>
// 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<TestEnum>
// CHECK JVM_IR:
// Mangled name: TestEnum#<get-entries>#static(){}kotlin.enums.EnumEntries<TestEnum>
// Public signature: /TestEnum.entries.<get-entries>|6962221716588245012[0]
// Public signature debug description: <get-entries>#static(){}kotlin.enums.EnumEntries<TestEnum>
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#<get-entries>#static(){}
// Public signature: /TestEnum.entries.<get-entries>|-6068527377476727729[0]
// Public signature debug description: <get-entries>#static(){}
get(): EnumEntries<TestEnum>
// 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#<get-name>(){}kotlin.String
// Public signature: /TestEnum.name.<get-name>|-8006111524522882650[0]
// Public signature debug description: <get-name>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#<get-name>(){}
// Public signature: /TestEnum.name.<get-name>|5879344792307730109[0]
// Public signature debug description: <get-name>(){}
/* 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#<get-ordinal>(){}kotlin.Int
// Public signature: /TestEnum.ordinal.<get-ordinal>|-6902664390061762634[0]
// Public signature debug description: <get-ordinal>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#<get-ordinal>(){}
// Public signature: /TestEnum.ordinal.<get-ordinal>|8409904226035914023[0]
// Public signature debug description: <get-ordinal>(){}
/* fake */ override get(): Int
}
@@ -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)
@@ -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#<get-x>(){}kotlin.String
// Public signature: /TestAnn.x.<get-x>|316111172223894646[0]
// Public signature debug description: <get-x>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestAnn#<get-x>(){}
// Public signature: /TestAnn.x.<get-x>|1482705010654679335[0]
// Public signature debug description: <get-x>(){}
get
// CHECK:
// Mangled name: TestAnn#<init>(kotlin.String){}
// Public signature: /TestAnn.<init>|1280618353163213788[0]
// Public signature debug description: <init>(kotlin.String){}
constructor(x: String) /* primary */
}
// CHECK:
// Mangled name: TestEnum
// Public signature: /TestEnum|null[0]
open enum class TestEnum : Enum<TestEnum> {
// CHECK:
// Mangled name: TestEnum#<init>(){}
// Public signature: /TestEnum.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
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.<EEC>|null[0]
@TestAnn(x = "ENTRY2")
private enum entry class ENTRY2 : TestEnum {
// CHECK:
// Mangled name: TestEnum.ENTRY2{}x
// Public signature: /TestEnum.ENTRY2.<EEC>.x|-8060530855978347579[0]
// Public signature debug description: {}x
val x: Int
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#<get-x>(){}kotlin.Int
// Public signature: /TestEnum.ENTRY2.<EEC>.x.<get-x>|4966956098150895696[0]
// Public signature debug description: <get-x>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#<get-x>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.x.<get-x>|1482705010654679335[0]
// Public signature debug description: <get-x>(){}
get
// CHECK:
// Mangled name: TestEnum.ENTRY2#<init>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
private constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#compareTo(TestEnum){}kotlin.Int
// Public signature: /TestEnum.ENTRY2.<EEC>.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.<EEC>.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.<EEC>.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.<EEC>.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.<EEC>.hashCode|-8048879360829830756[0]
// Public signature debug description: hashCode(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#hashCode(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.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.<EEC>.toString|6958853723545266802[0]
// Public signature debug description: toString(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#toString(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.toString|-1522858123163872138[0]
// Public signature debug description: toString(){}
/* fake */ override fun toString(): String
// CHECK:
// Mangled name: TestEnum.ENTRY2{}name
// Public signature: /TestEnum.ENTRY2.<EEC>.name|4231860309499509769[0]
// Public signature debug description: {}name
/* fake */ override val name: String
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#<get-name>(){}kotlin.String
// Public signature: /TestEnum.ENTRY2.<EEC>.name.<get-name>|-8006111524522882650[0]
// Public signature debug description: <get-name>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#<get-name>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.name.<get-name>|5879344792307730109[0]
// Public signature debug description: <get-name>(){}
/* fake */ override get(): String
// CHECK:
// Mangled name: TestEnum.ENTRY2{}ordinal
// Public signature: /TestEnum.ENTRY2.<EEC>.ordinal|1912745122988592376[0]
// Public signature debug description: {}ordinal
/* fake */ override val ordinal: Int
// CHECK JVM_IR:
// Mangled name: TestEnum.ENTRY2#<get-ordinal>(){}kotlin.Int
// Public signature: /TestEnum.ENTRY2.<EEC>.ordinal.<get-ordinal>|-6902664390061762634[0]
// Public signature debug description: <get-ordinal>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum.ENTRY2#<get-ordinal>(){}
// Public signature: /TestEnum.ENTRY2.<EEC>.ordinal.<get-ordinal>|8409904226035914023[0]
// Public signature debug description: <get-ordinal>(){}
/* 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<TestEnum>
// Public signature: /TestEnum.values|-4299804782350326897[0]
// Public signature debug description: values#static(){}kotlin.Array<TestEnum>
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#values#static(){}
// Public signature: /TestEnum.values|-8715569000920726747[0]
// Public signature debug description: values#static(){}
fun values(): Array<TestEnum>
// 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<TestEnum>
// CHECK JVM_IR:
// Mangled name: TestEnum#<get-entries>#static(){}kotlin.enums.EnumEntries<TestEnum>
// Public signature: /TestEnum.entries.<get-entries>|6962221716588245012[0]
// Public signature debug description: <get-entries>#static(){}kotlin.enums.EnumEntries<TestEnum>
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#<get-entries>#static(){}
// Public signature: /TestEnum.entries.<get-entries>|-6068527377476727729[0]
// Public signature debug description: <get-entries>#static(){}
get(): EnumEntries<TestEnum>
// 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#<get-name>(){}kotlin.String
// Public signature: /TestEnum.name.<get-name>|-8006111524522882650[0]
// Public signature debug description: <get-name>(){}kotlin.String
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#<get-name>(){}
// Public signature: /TestEnum.name.<get-name>|5879344792307730109[0]
// Public signature debug description: <get-name>(){}
/* 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#<get-ordinal>(){}kotlin.Int
// Public signature: /TestEnum.ordinal.<get-ordinal>|-6902664390061762634[0]
// Public signature debug description: <get-ordinal>(){}kotlin.Int
// CHECK JS_IR NATIVE:
// Mangled name: TestEnum#<get-ordinal>(){}
// Public signature: /TestEnum.ordinal.<get-ordinal>|8409904226035914023[0]
// Public signature debug description: <get-ordinal>(){}
/* fake */ override get(): Int
}
@@ -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#<get-token>(){}kotlin.String
// Public signature: /Anno.token.<get-token>|-7990759666918264390[0]
// Public signature debug description: <get-token>(){}kotlin.String
get
// CHECK:
// Mangled name: Anno#<init>(kotlin.String){}
// Public signature: /Anno.<init>|1280618353163213788[0]
// Public signature debug description: <init>(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<Anno>
// CHECK JVM_IR:
// Mangled name: Annos#<get-value>(){}kotlin.Array<Anno>
// Public signature: /Annos.value.<get-value>|-4069060984573284016[0]
// Public signature debug description: <get-value>(){}kotlin.Array<Anno>
get
// CHECK:
// Mangled name: Annos#<init>(kotlin.Array<Anno>){}
// Public signature: /Annos.<init>|1175794361085023797[0]
// Public signature debug description: <init>(kotlin.Array<Anno>){}
constructor(value: Array<Anno>) /* 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<KClass<*>>
// CHECK JVM_IR:
// Mangled name: Classes#<get-value>(){}kotlin.Array<kotlin.reflect.KClass<*>>
// Public signature: /Classes.value.<get-value>|7741303810693223775[0]
// Public signature debug description: <get-value>(){}kotlin.Array<kotlin.reflect.KClass<*>>
get
// CHECK:
// Mangled name: Classes#<init>(kotlin.Array<kotlin.reflect.KClass<*>>){}
// Public signature: /Classes.<init>|-7037593412282832873[0]
// Public signature debug description: <init>(kotlin.Array<kotlin.reflect.KClass<*>>){}
constructor(value: Array<KClass<*>>) /* 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<E>
// CHECK JVM_IR:
// Mangled name: Enums#<get-value>(){}kotlin.Array<E>
// Public signature: /Enums.value.<get-value>|6387785805560718811[0]
// Public signature debug description: <get-value>(){}kotlin.Array<E>
get
// CHECK:
// Mangled name: Enums#<init>(kotlin.Array<E>){}
// Public signature: /Enums.<init>|-3621344537085490519[0]
// Public signature debug description: <init>(kotlin.Array<E>){}
constructor(value: Array<E>) /* 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#<get-value>(){}kotlin.IntArray
// Public signature: /Ints.value.<get-value>|-5427747971978269276[0]
// Public signature debug description: <get-value>(){}kotlin.IntArray
get
// CHECK:
// Mangled name: Ints#<init>(kotlin.IntArray){}
// Public signature: /Ints.<init>|6811679238332965682[0]
// Public signature debug description: <init>(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<String>
// CHECK JVM_IR:
// Mangled name: Strings#<get-value>(){}kotlin.Array<kotlin.String>
// Public signature: /Strings.value.<get-value>|-7769950459445256373[0]
// Public signature debug description: <get-value>(){}kotlin.Array<kotlin.String>
get
// CHECK:
// Mangled name: Strings#<init>(kotlin.Array<kotlin.String>){}
// Public signature: /Strings.<init>|5393043463829665764[0]
// Public signature debug description: <init>(kotlin.Array<kotlin.String>){}
constructor(value: Array<String>) /* primary */
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : A {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
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<E> {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
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<E>
// Public signature: /E.values|4921695905454219855[0]
// Public signature debug description: values#static(){}kotlin.Array<E>
fun values(): Array<E>
// 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<E>
// CHECK JVM_IR:
// Mangled name: E#<get-entries>#static(){}kotlin.enums.EnumEntries<E>
// Public signature: /E.entries.<get-entries>|2481970109947815388[0]
// Public signature debug description: <get-entries>#static(){}kotlin.enums.EnumEntries<E>
get(): EnumEntries<E>
// 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#<get-name>(){}kotlin.String
// Public signature: /E.name.<get-name>|-8006111524522882650[0]
// Public signature debug description: <get-name>(){}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#<get-ordinal>(){}kotlin.Int
// Public signature: /E.ordinal.<get-ordinal>|-6902664390061762634[0]
// Public signature debug description: <get-ordinal>(){}kotlin.Int
/* fake */ override get(): Int
}
@@ -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
@@ -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#<get-token>(){}kotlin.String
// Public signature: /Anno.token.<get-token>|-7990759666918264390[0]
// Public signature debug description: <get-token>(){}kotlin.String
get
// CHECK:
// Mangled name: Anno#<init>(kotlin.String){}
// Public signature: /Anno.<init>|1280618353163213788[0]
// Public signature debug description: <init>(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<Anno>
// CHECK JVM_IR:
// Mangled name: Annos#<get-value>(){}kotlin.Array<Anno>
// Public signature: /Annos.value.<get-value>|-4069060984573284016[0]
// Public signature debug description: <get-value>(){}kotlin.Array<Anno>
get
// CHECK:
// Mangled name: Annos#<init>(kotlin.Array<Anno>){}
// Public signature: /Annos.<init>|1175794361085023797[0]
// Public signature debug description: <init>(kotlin.Array<Anno>){}
constructor(value: Array<Anno>) /* 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<KClass<*>>
// CHECK JVM_IR:
// Mangled name: Classes#<get-value>(){}kotlin.Array<kotlin.reflect.KClass<*>>
// Public signature: /Classes.value.<get-value>|7741303810693223775[0]
// Public signature debug description: <get-value>(){}kotlin.Array<kotlin.reflect.KClass<*>>
get
// CHECK:
// Mangled name: Classes#<init>(kotlin.Array<kotlin.reflect.KClass<*>>){}
// Public signature: /Classes.<init>|-7037593412282832873[0]
// Public signature debug description: <init>(kotlin.Array<kotlin.reflect.KClass<*>>){}
constructor(value: Array<KClass<*>>) /* 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<E>
// CHECK JVM_IR:
// Mangled name: Enums#<get-value>(){}kotlin.Array<E>
// Public signature: /Enums.value.<get-value>|6387785805560718811[0]
// Public signature debug description: <get-value>(){}kotlin.Array<E>
get
// CHECK:
// Mangled name: Enums#<init>(kotlin.Array<E>){}
// Public signature: /Enums.<init>|-3621344537085490519[0]
// Public signature debug description: <init>(kotlin.Array<E>){}
constructor(value: Array<E>) /* 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#<get-value>(){}kotlin.IntArray
// Public signature: /Ints.value.<get-value>|-5427747971978269276[0]
// Public signature debug description: <get-value>(){}kotlin.IntArray
get
// CHECK:
// Mangled name: Ints#<init>(kotlin.IntArray){}
// Public signature: /Ints.<init>|6811679238332965682[0]
// Public signature debug description: <init>(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<String>
// CHECK JVM_IR:
// Mangled name: Strings#<get-value>(){}kotlin.Array<kotlin.String>
// Public signature: /Strings.value.<get-value>|-7769950459445256373[0]
// Public signature debug description: <get-value>(){}kotlin.Array<kotlin.String>
get
// CHECK:
// Mangled name: Strings#<init>(kotlin.Array<kotlin.String>){}
// Public signature: /Strings.<init>|5393043463829665764[0]
// Public signature debug description: <init>(kotlin.Array<kotlin.String>){}
constructor(value: Array<String>) /* primary */
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : A {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
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<E> {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
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<E>
// Public signature: /E.values|4921695905454219855[0]
// Public signature debug description: values#static(){}kotlin.Array<E>
fun values(): Array<E>
// 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<E>
// CHECK JVM_IR:
// Mangled name: E#<get-entries>#static(){}kotlin.enums.EnumEntries<E>
// Public signature: /E.entries.<get-entries>|2481970109947815388[0]
// Public signature debug description: <get-entries>#static(){}kotlin.enums.EnumEntries<E>
get(): EnumEntries<E>
// 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#<get-name>(){}kotlin.String
// Public signature: /E.name.<get-name>|-8006111524522882650[0]
// Public signature debug description: <get-name>(){}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#<get-ordinal>(){}kotlin.Int
// Public signature: /E.ordinal.<get-ordinal>|-6902664390061762634[0]
// Public signature debug description: <get-ordinal>(){}kotlin.Int
/* fake */ override get(): Int
}
@@ -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<out String>
// CHECK JVM_IR:
// Mangled name: A#<get-xs>(){}kotlin.Array<out|kotlin.String>
// Public signature: /A.xs.<get-xs>|9188548163055185324[0]
// Public signature debug description: <get-xs>(){}kotlin.Array<out|kotlin.String>
// CHECK JS_IR NATIVE:
// Mangled name: A#<get-xs>(){}
// Public signature: /A.xs.<get-xs>|-6958094100501701183[0]
// Public signature debug description: <get-xs>(){}
get
// CHECK:
// Mangled name: A#<init>(kotlin.Array<out|kotlin.String>...){}
// Public signature: /A.<init>|-6780234697714860085[0]
// Public signature debug description: <init>(kotlin.Array<out|kotlin.String>...){}
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
@@ -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)
@@ -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<out String>
// CHECK JVM_IR:
// Mangled name: A#<get-xs>(){}kotlin.Array<out|kotlin.String>
// Public signature: /A.xs.<get-xs>|9188548163055185324[0]
// Public signature debug description: <get-xs>(){}kotlin.Array<out|kotlin.String>
// CHECK JS_IR NATIVE:
// Mangled name: A#<get-xs>(){}
// Public signature: /A.xs.<get-xs>|-6958094100501701183[0]
// Public signature debug description: <get-xs>(){}
get
// CHECK:
// Mangled name: A#<init>(kotlin.Array<out|kotlin.String>...){}
// Public signature: /A.<init>|-6780234697714860085[0]
// Public signature debug description: <init>(kotlin.Array<out|kotlin.String>...){}
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