diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt new file mode 100644 index 00000000000..4d7d52ee261 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.v1.txt @@ -0,0 +1,31 @@ +package custom.pkg { + // Signature: custom.pkg/A|null[0] + annotation class A constructor() : Annotation + // Signature: custom.pkg/Foo|null[0] + class Foo constructor() { + // Signature: custom.pkg/Foo.annotated|4796959806228949141[0] + @A val annotated: Int = 0 + // Signature: custom.pkg/Foo.annotatedAccessors|-2696733316289958808[0] + var annotatedAccessors: Int + // Signature: custom.pkg/Foo.annotatedAccessors.|1622120395968958718[0] + @A get + // Signature: custom.pkg/Foo.annotatedAccessors.|-2659697716788262479[0] + @A set + // Signature: custom.pkg/Foo.annotatedGetter|2662566077187940730[0] + val annotatedGetter: Int = 0 + // Signature: custom.pkg/Foo.annotatedGetter.|811214482955708703[0] + @A get + // Signature: custom.pkg/Foo.annotatedSetter|-2080041549422472915[0] + var annotatedSetter: Int + // Signature: custom.pkg/Foo.annotatedSetter.|4219770012469820688[0] + @A set + // Signature: custom.pkg/Foo.privateSetter|-7367207755766039228[0] + var privateSetter: Int + // Signature: custom.pkg/Foo.privateSetter.|-2122183718828263324[0] + private set + // Signature: custom.pkg/Foo.protectedSimple|8596646478392887235[0] + protected val protectedSimple: Int = 0 + // Signature: custom.pkg/Foo.simple|1899398506587500007[0] + val simple: Int = 0 + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt b/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt new file mode 100644 index 00000000000..379608bbdab --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Accessors.v2.txt @@ -0,0 +1,31 @@ +package custom.pkg { + // Signature: custom.pkg/A|null[0] + annotation class A constructor() : Annotation + // Signature: custom.pkg/Foo|null[0] + class Foo constructor() { + // Signature: custom.pkg/Foo.annotated|{}annotated[0] + @A val annotated: Int = 0 + // Signature: custom.pkg/Foo.annotatedAccessors|{}annotatedAccessors[0] + var annotatedAccessors: Int + // Signature: custom.pkg/Foo.annotatedAccessors.|(){}[0] + @A get + // Signature: custom.pkg/Foo.annotatedAccessors.|(kotlin.Int){}[0] + @A set + // Signature: custom.pkg/Foo.annotatedGetter|{}annotatedGetter[0] + val annotatedGetter: Int = 0 + // Signature: custom.pkg/Foo.annotatedGetter.|(){}[0] + @A get + // Signature: custom.pkg/Foo.annotatedSetter|{}annotatedSetter[0] + var annotatedSetter: Int + // Signature: custom.pkg/Foo.annotatedSetter.|(kotlin.Int){}[0] + @A set + // Signature: custom.pkg/Foo.privateSetter|{}privateSetter[0] + var privateSetter: Int + // Signature: custom.pkg/Foo.privateSetter.|(kotlin.Int){}[0] + private set + // Signature: custom.pkg/Foo.protectedSimple|{}protectedSimple[0] + protected val protectedSimple: Int = 0 + // Signature: custom.pkg/Foo.simple|{}simple[0] + val simple: Int = 0 + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt b/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt new file mode 100644 index 00000000000..a039a9ef1bf --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Classes.v1.txt @@ -0,0 +1,86 @@ +package { + // Signature: /A|null[0] + class A constructor() { + // Signature: /A.aVal|-4026160909590410018[0] + val aVal: Int = 0 + // Signature: /A.aVar|3814694652979924453[0] + var aVar: String + // Signature: /A.aFun|-596272525427331003[0] + fun aFun() + // Signature: /A.B|null[0] + inner class B constructor() { + // Signature: /A.B.bVal|47661200932476778[0] + val bVal: Int = 0 + // Signature: /A.B.bVar|1733087153451115465[0] + var bVar: String + // Signature: /A.B.bFun|4199274722730592230[0] + fun bFun() + // Signature: /A.B.C|null[0] + inner class C constructor() { + // Signature: /A.B.C.cVal|5776604707001436517[0] + val cVal: Int = 0 + // Signature: /A.B.C.cVar|-6552073779725328843[0] + var cVar: String + // Signature: /A.B.C.cFun|5963622644484500428[0] + fun cFun() + } + } + // Signature: /A.E|null[0] + class E constructor() { + // Signature: /A.E.eVal|3045358633348092364[0] + val eVal: Int = 0 + // Signature: /A.E.eVar|3111249734155596017[0] + var eVar: String + // Signature: /A.E.eFun|3495051381223408264[0] + fun eFun() + } + } + // Signature: /F|null[0] + data class F constructor(fVal: Int, fVar: String) { + // Signature: /F.fVal|6893318909478774212[0] + val fVal: Int + // Signature: /F.fVar|-2983039959624530436[0] + var fVar: String + // Signature: /F.component1|162597135895221648[0] + operator fun component1(): Int + // Signature: /F.component2|3796717572321500973[0] + operator fun component2(): String + // Signature: /F.copy|5893098757611139585[0] + fun copy(fVal: Int = ..., fVar: String = ...): F + // Signature: /F.equals|4638265728071529943[0] + override fun equals(other: Any?): Boolean + // Signature: /F.fFun|2647324645836040292[0] + fun fFun() + // Signature: /F.hashCode|3409210261493131192[0] + override fun hashCode(): Int + // Signature: /F.toString|-1522858123163872138[0] + override fun toString(): String + } + // Signature: /FinalImpl|null[0] + class FinalImpl constructor() : OpenImpl { + // Signature: /FinalImpl.iVal|-7454916029695635493[0] + override val iVal: Int = 0 + // Signature: /FinalImpl.iVar|5660235026806079480[0] + override var iVar: String + // Signature: /FinalImpl.iFun|-7944844664160120593[0] + override fun iFun() + } + // Signature: /Interface|null[0] + interface Interface { + // Signature: /Interface.iVal|-7454916029695635493[0] + val iVal: Int + // Signature: /Interface.iVar|5660235026806079480[0] + var iVar: String + // Signature: /Interface.iFun|-7944844664160120593[0] + fun iFun() + } + // Signature: /OpenImpl|null[0] + open class OpenImpl constructor() : Interface { + // Signature: /OpenImpl.iVal|-7454916029695635493[0] + override val iVal: Int = 0 + // Signature: /OpenImpl.iVar|5660235026806079480[0] + override var iVar: String + // Signature: /OpenImpl.iFun|-7944844664160120593[0] + override fun iFun() + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt b/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt new file mode 100644 index 00000000000..d15068af5f4 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Classes.v2.txt @@ -0,0 +1,86 @@ +package { + // Signature: /A|null[0] + class A constructor() { + // Signature: /A.aVal|{}aVal[0] + val aVal: Int = 0 + // Signature: /A.aVar|{}aVar[0] + var aVar: String + // Signature: /A.aFun|aFun(){}[0] + fun aFun() + // Signature: /A.B|null[0] + inner class B constructor() { + // Signature: /A.B.bVal|{}bVal[0] + val bVal: Int = 0 + // Signature: /A.B.bVar|{}bVar[0] + var bVar: String + // Signature: /A.B.bFun|bFun(){}[0] + fun bFun() + // Signature: /A.B.C|null[0] + inner class C constructor() { + // Signature: /A.B.C.cVal|{}cVal[0] + val cVal: Int = 0 + // Signature: /A.B.C.cVar|{}cVar[0] + var cVar: String + // Signature: /A.B.C.cFun|cFun(){}[0] + fun cFun() + } + } + // Signature: /A.E|null[0] + class E constructor() { + // Signature: /A.E.eVal|{}eVal[0] + val eVal: Int = 0 + // Signature: /A.E.eVar|{}eVar[0] + var eVar: String + // Signature: /A.E.eFun|eFun(){}[0] + fun eFun() + } + } + // Signature: /F|null[0] + data class F constructor(fVal: Int, fVar: String) { + // Signature: /F.fVal|{}fVal[0] + val fVal: Int + // Signature: /F.fVar|{}fVar[0] + var fVar: String + // Signature: /F.component1|component1(){}[0] + operator fun component1(): Int + // Signature: /F.component2|component2(){}[0] + operator fun component2(): String + // Signature: /F.copy|copy(kotlin.Int;kotlin.String){}[0] + fun copy(fVal: Int = ..., fVar: String = ...): F + // Signature: /F.equals|equals(kotlin.Any?){}[0] + override fun equals(other: Any?): Boolean + // Signature: /F.fFun|fFun(){}[0] + fun fFun() + // Signature: /F.hashCode|hashCode(){}[0] + override fun hashCode(): Int + // Signature: /F.toString|toString(){}[0] + override fun toString(): String + } + // Signature: /FinalImpl|null[0] + class FinalImpl constructor() : OpenImpl { + // Signature: /FinalImpl.iVal|{}iVal[0] + override val iVal: Int = 0 + // Signature: /FinalImpl.iVar|{}iVar[0] + override var iVar: String + // Signature: /FinalImpl.iFun|iFun(){}[0] + override fun iFun() + } + // Signature: /Interface|null[0] + interface Interface { + // Signature: /Interface.iVal|{}iVal[0] + val iVal: Int + // Signature: /Interface.iVar|{}iVar[0] + var iVar: String + // Signature: /Interface.iFun|iFun(){}[0] + fun iFun() + } + // Signature: /OpenImpl|null[0] + open class OpenImpl constructor() : Interface { + // Signature: /OpenImpl.iVal|{}iVal[0] + override val iVal: Int = 0 + // Signature: /OpenImpl.iVar|{}iVar[0] + override var iVar: String + // Signature: /OpenImpl.iFun|iFun(){}[0] + override fun iFun() + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt b/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt new file mode 100644 index 00000000000..77f11fd0c1f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Constructors.v1.txt @@ -0,0 +1,36 @@ +package { + // Signature: /A|null[0] + annotation class A constructor() : Annotation + // Signature: /Bar|null[0] + class Bar @A constructor(x: Int) + // Signature: /Baz|null[0] + class Baz private constructor(x: Int) + // Signature: /Foo|null[0] + class Foo constructor(x: Int) { + // Signature: /Foo.|-5645683436151566731[0] + constructor() + // Signature: /Foo.|575075696928934302[0] + constructor(x: Double) + // Signature: /Foo.|-648032236499795795[0] + constructor(x: Double, y: Int) + // Signature: /Foo.|1280618353163213788[0] + protected constructor(x: String) + // Signature: /Foo.|5452796351634795197[0] + @A constructor(x: Foo) + } + // Signature: /Qux|null[0] + class Qux protected constructor(x: Int) + // Signature: /Typed|null[0] + class Typed constructor(x: Int) { + // Signature: /Typed.|-5645683436151566731[0] + constructor() + // Signature: /Typed.|575075696928934302[0] + constructor(x: Double) + // Signature: /Typed.|-648032236499795795[0] + constructor(x: Double, y: Int) + // Signature: /Typed.|1280618353163213788[0] + protected constructor(x: String) + // Signature: /Typed.|5452796351634795197[0] + @A constructor(x: Foo) + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt b/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt new file mode 100644 index 00000000000..252c87c0c3d --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Constructors.v2.txt @@ -0,0 +1,36 @@ +package { + // Signature: /A|null[0] + annotation class A constructor() : Annotation + // Signature: /Bar|null[0] + class Bar @A constructor(x: Int) + // Signature: /Baz|null[0] + class Baz private constructor(x: Int) + // Signature: /Foo|null[0] + class Foo constructor(x: Int) { + // Signature: /Foo.|(){}[0] + constructor() + // Signature: /Foo.|(kotlin.Double){}[0] + constructor(x: Double) + // Signature: /Foo.|(kotlin.Double;kotlin.Int){}[0] + constructor(x: Double, y: Int) + // Signature: /Foo.|(kotlin.String){}[0] + protected constructor(x: String) + // Signature: /Foo.|(Foo){}[0] + @A constructor(x: Foo) + } + // Signature: /Qux|null[0] + class Qux protected constructor(x: Int) + // Signature: /Typed|null[0] + class Typed constructor(x: Int) { + // Signature: /Typed.|(){}[0] + constructor() + // Signature: /Typed.|(kotlin.Double){}[0] + constructor(x: Double) + // Signature: /Typed.|(kotlin.Double;kotlin.Int){}[0] + constructor(x: Double, y: Int) + // Signature: /Typed.|(kotlin.String){}[0] + protected constructor(x: String) + // Signature: /Typed.|(Foo){}[0] + @A constructor(x: Foo) + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt b/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt new file mode 100644 index 00000000000..ba76ba16304 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Enum.v1.txt @@ -0,0 +1,19 @@ +package { + // Signature: /E|null[0] + enum class E private constructor(x: Int = ...) : Enum { + // Signature: /E.A|null[0] + enum entry A + // Signature: /E.B|null[0] + enum entry B + // Signature: /E.C|null[0] + enum entry C + // Signature: /E.enumVal|-794670998786832931[0] + val enumVal: Int = 0 + // Signature: /E.enumVar|-3275598925785518996[0] + var enumVar: String + // Signature: /E.x|-8060530855978347579[0] + val x: Int + // Signature: /E.enumFun|7331595556228318192[0] + open fun enumFun(): Int + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt b/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt new file mode 100644 index 00000000000..e4a661ba361 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Enum.v2.txt @@ -0,0 +1,19 @@ +package { + // Signature: /E|null[0] + enum class E private constructor(x: Int = ...) : Enum { + // Signature: /E.A|null[0] + enum entry A + // Signature: /E.B|null[0] + enum entry B + // Signature: /E.C|null[0] + enum entry C + // Signature: /E.enumVal|{}enumVal[0] + val enumVal: Int = 0 + // Signature: /E.enumVar|{}enumVar[0] + var enumVar: String + // Signature: /E.x|{}x[0] + val x: Int + // Signature: /E.enumFun|enumFun(){}[0] + open fun enumFun(): Int + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt new file mode 100644 index 00000000000..fccbf0290f3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v1.txt @@ -0,0 +1,17 @@ +package { + // Signature: /Foo|null[0] + class Foo constructor() { + // Signature: /Foo.f1|3067719429478803475[0] + fun f1() + // Signature: /Foo.f2|998031826907343926[0] + infix fun f2(x: Int) + // Signature: /Foo.f3|-7352656899019660364[0] + suspend fun f3() + // Signature: /Foo.f4|-653369539400762817[0] + tailrec fun f4() + // Signature: /Foo.f5|136030160982396464[0] + fun f5(vararg x: Int) + // Signature: /Foo.plus|4955128566171430399[0] + operator fun plus(x: Int) + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt new file mode 100644 index 00000000000..2048a9d8773 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/FunctionModifiers.v2.txt @@ -0,0 +1,17 @@ +package { + // Signature: /Foo|null[0] + class Foo constructor() { + // Signature: /Foo.f1|f1(){}[0] + fun f1() + // Signature: /Foo.f2|f2(kotlin.Int){}[0] + infix fun f2(x: Int) + // Signature: /Foo.f3|f3(){}[0] + suspend fun f3() + // Signature: /Foo.f4|f4(){}[0] + tailrec fun f4() + // Signature: /Foo.f5|f5(kotlin.IntArray...){}[0] + fun f5(vararg x: Int) + // Signature: /Foo.plus|plus(kotlin.Int){}[0] + operator fun plus(x: Int) + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt b/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt new file mode 100644 index 00000000000..8d859c6855d --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/MethodModality.v1.txt @@ -0,0 +1,32 @@ +package { + // Signature: /AbstractClass|null[0] + abstract class AbstractClass constructor() : Interface { + // Signature: /AbstractClass.abstractFun|-8137574360252002020[0] + abstract fun abstractFun() + // Signature: /AbstractClass.interfaceFun|2213060701516703022[0] + override fun interfaceFun() + } + // Signature: /FinalClass|null[0] + class FinalClass constructor() : OpenClass { + // Signature: /FinalClass.openFun1|-6191809905018816441[0] + override fun openFun1() + // Signature: /FinalClass.openFun2|-6569900631812216745[0] + final override fun openFun2() + } + // Signature: /Interface|null[0] + interface Interface { + // Signature: /Interface.interfaceFun|2213060701516703022[0] + fun interfaceFun() + } + // Signature: /OpenClass|null[0] + open class OpenClass constructor() : AbstractClass { + // Signature: /OpenClass.abstractFun|-8137574360252002020[0] + override fun abstractFun() + // Signature: /OpenClass.finalFun|3657632771909858561[0] + fun finalFun() + // Signature: /OpenClass.openFun1|-6191809905018816441[0] + open fun openFun1() + // Signature: /OpenClass.openFun2|-6569900631812216745[0] + open fun openFun2() + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt b/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt new file mode 100644 index 00000000000..1bcbee424c2 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/MethodModality.v2.txt @@ -0,0 +1,32 @@ +package { + // Signature: /AbstractClass|null[0] + abstract class AbstractClass constructor() : Interface { + // Signature: /AbstractClass.abstractFun|abstractFun(){}[0] + abstract fun abstractFun() + // Signature: /AbstractClass.interfaceFun|interfaceFun(){}[0] + override fun interfaceFun() + } + // Signature: /FinalClass|null[0] + class FinalClass constructor() : OpenClass { + // Signature: /FinalClass.openFun1|openFun1(){}[0] + override fun openFun1() + // Signature: /FinalClass.openFun2|openFun2(){}[0] + final override fun openFun2() + } + // Signature: /Interface|null[0] + interface Interface { + // Signature: /Interface.interfaceFun|interfaceFun(){}[0] + fun interfaceFun() + } + // Signature: /OpenClass|null[0] + open class OpenClass constructor() : AbstractClass { + // Signature: /OpenClass.abstractFun|abstractFun(){}[0] + override fun abstractFun() + // Signature: /OpenClass.finalFun|finalFun(){}[0] + fun finalFun() + // Signature: /OpenClass.openFun1|openFun1(){}[0] + open fun openFun1() + // Signature: /OpenClass.openFun2|openFun2(){}[0] + open fun openFun2() + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.v1.txt b/native/native.tests/testData/klib/dump-metadata/Objects.v1.txt new file mode 100644 index 00000000000..075f0c3859f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Objects.v1.txt @@ -0,0 +1,28 @@ +package { + // Signature: /A|null[0] + object A { + // Signature: /A.a|-4432112437378250461[0] + fun a() + } + // Signature: /B|null[0] + class B constructor() { + // Signature: /B.Companion|null[0] + companion object { + // Signature: /B.Companion.b|4789657038926421504[0] + fun b() + } + // Signature: /B.C|null[0] + object C { + // Signature: /B.C.c|-2724918380551733646[0] + fun c() + } + } + // Signature: /D|null[0] + class D constructor() { + // Signature: /D.E|null[0] + companion object E { + // Signature: /D.E.e|-4971306249673273083[0] + fun e() + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/Objects.v2.txt b/native/native.tests/testData/klib/dump-metadata/Objects.v2.txt new file mode 100644 index 00000000000..9199864e38a --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/Objects.v2.txt @@ -0,0 +1,28 @@ +package { + // Signature: /A|null[0] + object A { + // Signature: /A.a|a(){}[0] + fun a() + } + // Signature: /B|null[0] + class B constructor() { + // Signature: /B.Companion|null[0] + companion object { + // Signature: /B.Companion.b|b(){}[0] + fun b() + } + // Signature: /B.C|null[0] + object C { + // Signature: /B.C.c|c(){}[0] + fun c() + } + } + // Signature: /D|null[0] + class D constructor() { + // Signature: /D.E|null[0] + companion object E { + // Signature: /D.E.e|e(){}[0] + fun e() + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt new file mode 100644 index 00000000000..77d4f4334fd --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v1.txt @@ -0,0 +1,40 @@ +package { + // Signature: /A|null[0] + annotation class A constructor() : Annotation + // Signature: /B|null[0] + annotation class B constructor() : Annotation + // Signature: /Foo|null[0] + class Foo constructor() + // Signature: /a|-4432112437378250461[0] + @A @B fun a() + // Signature: /e|8989066053884186758[0] + fun Foo.e() + // Signature: /f1|-1560136604489335247[0] + fun f1(x: Foo) + // Signature: /f2|8193757935438764272[0] + fun f2(x: Foo, y: Foo): Int + // Signature: /i1|-6444280688669682335[0] + inline fun i1(block: () -> Foo) + // Signature: /i2|-6849364972861294160[0] + inline fun i2(noinline block: () -> Foo) + // Signature: /i3|-3309425284353652160[0] + inline fun i3(crossinline block: () -> Foo) + // Signature: /i4|-6304681376176934836[0] + fun i4(block: (Foo) -> Int) + // Signature: /i5|-3051198308501003303[0] + fun i5(block: (Foo, Foo) -> Int) + // Signature: /i6|6453956519947412951[0] + fun i6(block: Foo.() -> Int) + // Signature: /i7|-2413842829876213778[0] + fun i7(block: Foo.(Foo) -> Int) + // Signature: /t1|4730456697336757969[0] + fun t1(x: Foo) + // Signature: /t2|-90499170678395935[0] + fun t2(x: T) + // Signature: /t3|7012475377071720756[0] + fun t3(x: T, y: F) + // Signature: /t4|-3843581059144476593[0] + inline fun t4(x: T) + // Signature: /t5|236307131019209421[0] + fun t5(x: T) +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt new file mode 100644 index 00000000000..0ea009f88a1 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelFunctions.v2.txt @@ -0,0 +1,40 @@ +package { + // Signature: /A|null[0] + annotation class A constructor() : Annotation + // Signature: /B|null[0] + annotation class B constructor() : Annotation + // Signature: /Foo|null[0] + class Foo constructor() + // Signature: /a|a(){}[0] + @A @B fun a() + // Signature: /e|e@Foo(){}[0] + fun Foo.e() + // Signature: /f1|f1(Foo){}[0] + fun f1(x: Foo) + // Signature: /f2|f2(Foo;Foo){}[0] + fun f2(x: Foo, y: Foo): Int + // Signature: /i1|i1(kotlin.Function0){}[0] + inline fun i1(block: () -> Foo) + // Signature: /i2|i2(kotlin.Function0){}[0] + inline fun i2(noinline block: () -> Foo) + // Signature: /i3|i3(kotlin.Function0){}[0] + inline fun i3(crossinline block: () -> Foo) + // Signature: /i4|i4(kotlin.Function1){}[0] + fun i4(block: (Foo) -> Int) + // Signature: /i5|i5(kotlin.Function2){}[0] + fun i5(block: (Foo, Foo) -> Int) + // Signature: /i6|i6(kotlin.Function1){}[0] + fun i6(block: Foo.() -> Int) + // Signature: /i7|i7(kotlin.Function2){}[0] + fun i7(block: Foo.(Foo) -> Int) + // Signature: /t1|t1(Foo){0§}[0] + fun t1(x: Foo) + // Signature: /t2|t2(0:0){0§}[0] + fun t2(x: T) + // Signature: /t3|t3(0:0;0:1){0§;1§}[0] + fun t3(x: T, y: F) + // Signature: /t4|t4(0:0){0§}[0] + inline fun t4(x: T) + // Signature: /t5|t5(0:0){0§}[0] + fun t5(x: T) +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt new file mode 100644 index 00000000000..2d2db23efc2 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v1.txt @@ -0,0 +1,12 @@ +package custom.pkg { + // Signature: custom.pkg/MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: custom.pkg/v1|7393439784805956893[0] + val v1: Int = 1 + // Signature: custom.pkg/v2|-7674839086071973207[0] + val v2: String = "hello" + // Signature: custom.pkg/v3|1020778405567015018[0] + val v3: (String) -> Int + // Signature: custom.pkg/v4|8662652590067501092[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt new file mode 100644 index 00000000000..3cde36d98b6 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesCustomPackage.v2.txt @@ -0,0 +1,12 @@ +package custom.pkg { + // Signature: custom.pkg/MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: custom.pkg/v1|{}v1[0] + val v1: Int = 1 + // Signature: custom.pkg/v2|{}v2[0] + val v2: String = "hello" + // Signature: custom.pkg/v3|{}v3[0] + val v3: (String) -> Int + // Signature: custom.pkg/v4|{}v4[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt new file mode 100644 index 00000000000..fa61f0d6ba6 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v1.txt @@ -0,0 +1,12 @@ +package { + // Signature: /MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: /v1|7393439784805956893[0] + val v1: Int = 1 + // Signature: /v2|-7674839086071973207[0] + val v2: String = "hello" + // Signature: /v3|1020778405567015018[0] + val v3: (String) -> Int + // Signature: /v4|8662652590067501092[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt new file mode 100644 index 00000000000..94966b3e87c --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesRootPackage.v2.txt @@ -0,0 +1,12 @@ +package { + // Signature: /MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: /v1|{}v1[0] + val v1: Int = 1 + // Signature: /v2|{}v2[0] + val v2: String = "hello" + // Signature: /v3|{}v3[0] + val v3: (String) -> Int + // Signature: /v4|{}v4[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt new file mode 100644 index 00000000000..1266fe7e39a --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v1.txt @@ -0,0 +1,16 @@ +package custom.pkg { + // Signature: custom.pkg/Bar|null[0] + object Bar + // Signature: custom.pkg/Foo|null[0] + class Foo constructor() + // Signature: custom.pkg/MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: custom.pkg/v1|7393439784805956893[0] + val v1: Int = 1 + // Signature: custom.pkg/v2|-7674839086071973207[0] + val v2: String = "hello" + // Signature: custom.pkg/v3|1020778405567015018[0] + val v3: (String) -> Int + // Signature: custom.pkg/v4|8662652590067501092[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt new file mode 100644 index 00000000000..89285f50240 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesCustomPackage.v2.txt @@ -0,0 +1,16 @@ +package custom.pkg { + // Signature: custom.pkg/Bar|null[0] + object Bar + // Signature: custom.pkg/Foo|null[0] + class Foo constructor() + // Signature: custom.pkg/MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: custom.pkg/v1|{}v1[0] + val v1: Int = 1 + // Signature: custom.pkg/v2|{}v2[0] + val v2: String = "hello" + // Signature: custom.pkg/v3|{}v3[0] + val v3: (String) -> Int + // Signature: custom.pkg/v4|{}v4[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt new file mode 100644 index 00000000000..c436423b794 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v1.txt @@ -0,0 +1,16 @@ +package { + // Signature: /Bar|null[0] + object Bar + // Signature: /Foo|null[0] + class Foo constructor() + // Signature: /MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: /v1|7393439784805956893[0] + val v1: Int = 1 + // Signature: /v2|-7674839086071973207[0] + val v2: String = "hello" + // Signature: /v3|1020778405567015018[0] + val v3: (String) -> Int + // Signature: /v4|8662652590067501092[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt new file mode 100644 index 00000000000..7bb21573bf3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/TopLevelPropertiesWithClassesRootPackage.v2.txt @@ -0,0 +1,16 @@ +package { + // Signature: /Bar|null[0] + object Bar + // Signature: /Foo|null[0] + class Foo constructor() + // Signature: /MyTransformer|null[0] + typealias MyTransformer = (String) -> Int + // Signature: /v1|{}v1[0] + val v1: Int = 1 + // Signature: /v2|{}v2[0] + val v2: String = "hello" + // Signature: /v3|{}v3[0] + val v3: (String) -> Int + // Signature: /v4|{}v4[0] + val v4: MyTransformer /* = (String) -> Int */ +} diff --git a/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt new file mode 100644 index 00000000000..ad3402d20e3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/annotations.v1.txt @@ -0,0 +1,61 @@ +package test { + // Signature: test/AnnoBackingField|null[0] + annotation class AnnoBackingField constructor() : Annotation + // Signature: test/AnnoClass|null[0] + annotation class AnnoClass constructor() : Annotation + // Signature: test/AnnoClassTypeParameter|null[0] + @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoClassTypeParameter constructor() : Annotation + // Signature: test/AnnoClassUsageTypeParameter|null[0] + @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoClassUsageTypeParameter constructor() : Annotation + // Signature: test/AnnoConstructor|null[0] + annotation class AnnoConstructor constructor() : Annotation + // Signature: test/AnnoConstructorParameter|null[0] + annotation class AnnoConstructorParameter constructor() : Annotation + // Signature: test/AnnoDelegatedField|null[0] + annotation class AnnoDelegatedField constructor() : Annotation + // Signature: test/AnnoFunction|null[0] + annotation class AnnoFunction constructor() : Annotation + // Signature: test/AnnoFunctionExtensionReceiver|null[0] + annotation class AnnoFunctionExtensionReceiver constructor() : Annotation + // Signature: test/AnnoFunctionParam|null[0] + annotation class AnnoFunctionParam constructor() : Annotation + // Signature: test/AnnoFunctionTypeParameter|null[0] + @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation + // Signature: test/AnnoGetter|null[0] + annotation class AnnoGetter constructor() : Annotation + // Signature: test/AnnoProperty|null[0] + annotation class AnnoProperty constructor() : Annotation + // Signature: test/AnnoPropertyExtensionReceiver|null[0] + annotation class AnnoPropertyExtensionReceiver constructor() : Annotation + // Signature: test/AnnoSetParam|null[0] + annotation class AnnoSetParam constructor() : Annotation + // Signature: test/AnnoSetParam2|null[0] + annotation class AnnoSetParam2 constructor() : Annotation + // Signature: test/AnnoSetter|null[0] + annotation class AnnoSetter constructor() : Annotation + // Signature: test/AnnoSetter2|null[0] + annotation class AnnoSetter2 constructor() : Annotation + // Signature: test/B|null[0] + class B<@AnnoClassTypeParameter T> constructor() + // Signature: test/Foo|null[0] + @AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) { + // Signature: test/Foo.immutableProp|-821319779095389209[0] + @delegate:AnnoDelegatedField val immutableProp: Int + // Signature: test/Foo.mutableProp|1472686943295008822[0] + var mutableProp: Int + // Signature: test/Foo.mutableProp.|-3965758569411010277[0] + @AnnoSetter2 set + // Signature: test/Foo.prop|3598315380056892812[0] + @AnnoProperty @field:AnnoBackingField var prop: Int + // Signature: test/Foo.prop.|-5734736374948136327[0] + @AnnoGetter get + // Signature: test/Foo.prop.|3724820243841906450[0] + @AnnoSetter set + } + // Signature: test/extProp|-6867325556440293248[0] + @AnnoPropertyExtensionReceiver val Foo.extProp: Int + // Signature: test/extfun|-4862331552047794615[0] + @AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) + // Signature: test/f|-1335249788552583475[0] + fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>) +} diff --git a/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt new file mode 100644 index 00000000000..d4087a678e0 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/annotations.v2.txt @@ -0,0 +1,61 @@ +package test { + // Signature: test/AnnoBackingField|null[0] + annotation class AnnoBackingField constructor() : Annotation + // Signature: test/AnnoClass|null[0] + annotation class AnnoClass constructor() : Annotation + // Signature: test/AnnoClassTypeParameter|null[0] + @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoClassTypeParameter constructor() : Annotation + // Signature: test/AnnoClassUsageTypeParameter|null[0] + @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoClassUsageTypeParameter constructor() : Annotation + // Signature: test/AnnoConstructor|null[0] + annotation class AnnoConstructor constructor() : Annotation + // Signature: test/AnnoConstructorParameter|null[0] + annotation class AnnoConstructorParameter constructor() : Annotation + // Signature: test/AnnoDelegatedField|null[0] + annotation class AnnoDelegatedField constructor() : Annotation + // Signature: test/AnnoFunction|null[0] + annotation class AnnoFunction constructor() : Annotation + // Signature: test/AnnoFunctionExtensionReceiver|null[0] + annotation class AnnoFunctionExtensionReceiver constructor() : Annotation + // Signature: test/AnnoFunctionParam|null[0] + annotation class AnnoFunctionParam constructor() : Annotation + // Signature: test/AnnoFunctionTypeParameter|null[0] + @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class AnnoFunctionTypeParameter constructor() : Annotation + // Signature: test/AnnoGetter|null[0] + annotation class AnnoGetter constructor() : Annotation + // Signature: test/AnnoProperty|null[0] + annotation class AnnoProperty constructor() : Annotation + // Signature: test/AnnoPropertyExtensionReceiver|null[0] + annotation class AnnoPropertyExtensionReceiver constructor() : Annotation + // Signature: test/AnnoSetParam|null[0] + annotation class AnnoSetParam constructor() : Annotation + // Signature: test/AnnoSetParam2|null[0] + annotation class AnnoSetParam2 constructor() : Annotation + // Signature: test/AnnoSetter|null[0] + annotation class AnnoSetter constructor() : Annotation + // Signature: test/AnnoSetter2|null[0] + annotation class AnnoSetter2 constructor() : Annotation + // Signature: test/B|null[0] + class B<@AnnoClassTypeParameter T> constructor() + // Signature: test/Foo|null[0] + @AnnoClass class Foo @AnnoConstructor constructor(@AnnoConstructorParameter i: Int) { + // Signature: test/Foo.immutableProp|{}immutableProp[0] + @delegate:AnnoDelegatedField val immutableProp: Int + // Signature: test/Foo.mutableProp|{}mutableProp[0] + var mutableProp: Int + // Signature: test/Foo.mutableProp.|(kotlin.Int){}[0] + @AnnoSetter2 set + // Signature: test/Foo.prop|{}prop[0] + @AnnoProperty @field:AnnoBackingField var prop: Int + // Signature: test/Foo.prop.|(){}[0] + @AnnoGetter get + // Signature: test/Foo.prop.|(kotlin.Int){}[0] + @AnnoSetter set + } + // Signature: test/extProp|@test.Foo{}extProp[0] + @AnnoPropertyExtensionReceiver val Foo.extProp: Int + // Signature: test/extfun|extfun@test.Foo(kotlin.Int){}[0] + @AnnoFunction fun @receiver:AnnoFunctionExtensionReceiver Foo.extfun(@AnnoFunctionParam x: Int) + // Signature: test/f|f(test.B){0§}[0] + fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>) +} diff --git a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt new file mode 100644 index 00000000000..e545d1ca181 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v1.txt @@ -0,0 +1,45 @@ +package test { + // Signature: test/AnnoBackingField|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoBackingField constructor() : Annotation + // Signature: test/AnnoClass|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoClass constructor() : Annotation + // Signature: test/AnnoConstructor|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructor constructor() : Annotation + // Signature: test/AnnoConstructorParameter|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructorParameter constructor() : Annotation + // Signature: test/AnnoDelegatedField|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoDelegatedField constructor() : Annotation + // Signature: test/AnnoFunction|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunction constructor() : Annotation + // Signature: test/AnnoFunctionExtensionReceiver|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionExtensionReceiver constructor() : Annotation + // Signature: test/AnnoFunctionParam|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionParam constructor() : Annotation + // Signature: test/AnnoGetter|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoGetter constructor() : Annotation + // Signature: test/AnnoProperty|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoProperty constructor() : Annotation + // Signature: test/AnnoPropertyExtensionReceiver|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoPropertyExtensionReceiver constructor() : Annotation + // Signature: test/AnnoSetParam|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam constructor() : Annotation + // Signature: test/AnnoSetParam2|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam2 constructor() : Annotation + // Signature: test/AnnoSetter|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter constructor() : Annotation + // Signature: test/AnnoSetter2|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter2 constructor() : Annotation + // Signature: test/Foo|null[0] + class Foo constructor(i: Int) { + // Signature: test/Foo.immutableProp|-821319779095389209[0] + val immutableProp: Int + // Signature: test/Foo.mutableProp|1472686943295008822[0] + var mutableProp: Int + // Signature: test/Foo.prop|3598315380056892812[0] + var prop: Int + } + // Signature: test/extProp|-6867325556440293248[0] + val Foo.extProp: Int + // Signature: test/extfun|-4862331552047794615[0] + fun Foo.extfun(x: Int) +} diff --git a/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt new file mode 100644 index 00000000000..73e9bb44a53 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/annotations_source_retention.v2.txt @@ -0,0 +1,45 @@ +package test { + // Signature: test/AnnoBackingField|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoBackingField constructor() : Annotation + // Signature: test/AnnoClass|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoClass constructor() : Annotation + // Signature: test/AnnoConstructor|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructor constructor() : Annotation + // Signature: test/AnnoConstructorParameter|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoConstructorParameter constructor() : Annotation + // Signature: test/AnnoDelegatedField|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoDelegatedField constructor() : Annotation + // Signature: test/AnnoFunction|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunction constructor() : Annotation + // Signature: test/AnnoFunctionExtensionReceiver|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionExtensionReceiver constructor() : Annotation + // Signature: test/AnnoFunctionParam|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoFunctionParam constructor() : Annotation + // Signature: test/AnnoGetter|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoGetter constructor() : Annotation + // Signature: test/AnnoProperty|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoProperty constructor() : Annotation + // Signature: test/AnnoPropertyExtensionReceiver|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoPropertyExtensionReceiver constructor() : Annotation + // Signature: test/AnnoSetParam|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam constructor() : Annotation + // Signature: test/AnnoSetParam2|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetParam2 constructor() : Annotation + // Signature: test/AnnoSetter|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter constructor() : Annotation + // Signature: test/AnnoSetter2|null[0] + @Retention(value = AnnotationRetention.SOURCE) annotation class AnnoSetter2 constructor() : Annotation + // Signature: test/Foo|null[0] + class Foo constructor(i: Int) { + // Signature: test/Foo.immutableProp|{}immutableProp[0] + val immutableProp: Int + // Signature: test/Foo.mutableProp|{}mutableProp[0] + var mutableProp: Int + // Signature: test/Foo.prop|{}prop[0] + var prop: Int + } + // Signature: test/extProp|@test.Foo{}extProp[0] + val Foo.extProp: Int + // Signature: test/extfun|extfun@test.Foo(kotlin.Int){}[0] + fun Foo.extfun(x: Int) +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt new file mode 100644 index 00000000000..f4b4a267b56 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v1.txt @@ -0,0 +1,22 @@ +package test { + // Signature: test/Anno|null[0] + annotation class Anno constructor(value: String = ..., x: Int = ...) : Annotation { + // Signature: test/Anno.value|1987073854177347439[0] + val value: String + // Signature: test/Anno.x|-8060530855978347579[0] + val x: Int + } + // Signature: test/Bnno|null[0] + annotation class Bnno constructor() : Annotation + // Signature: test/Eee|null[0] + enum class Eee private constructor() : Enum { + // Signature: test/Eee.Entry1|null[0] + @Anno enum entry Entry1 + // Signature: test/Eee.Entry2|null[0] + enum entry Entry2 + // Signature: test/Eee.Entry3|null[0] + @Anno(value = "3") @Bnno enum entry Entry3 + // Signature: test/Eee.Entry4|null[0] + @Anno(value = "4", x = 4) enum entry Entry4 + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt new file mode 100644 index 00000000000..4d75d92e65f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotatedEnumEntry.v2.txt @@ -0,0 +1,22 @@ +package test { + // Signature: test/Anno|null[0] + annotation class Anno constructor(value: String = ..., x: Int = ...) : Annotation { + // Signature: test/Anno.value|{}value[0] + val value: String + // Signature: test/Anno.x|{}x[0] + val x: Int + } + // Signature: test/Bnno|null[0] + annotation class Bnno constructor() : Annotation + // Signature: test/Eee|null[0] + enum class Eee private constructor() : Enum { + // Signature: test/Eee.Entry1|null[0] + @Anno enum entry Entry1 + // Signature: test/Eee.Entry2|null[0] + enum entry Entry2 + // Signature: test/Eee.Entry3|null[0] + @Anno(value = "3") @Bnno enum entry Entry3 + // Signature: test/Eee.Entry4|null[0] + @Anno(value = "4", x = 4) enum entry Entry4 + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt new file mode 100644 index 00000000000..5c2b7318fd2 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v1.txt @@ -0,0 +1,18 @@ +package test { + // Signature: test/AnnotationArray|null[0] + annotation class AnnotationArray constructor(annotationArray: Array) : Annotation { + // Signature: test/AnnotationArray.annotationArray|8313552415425816993[0] + val annotationArray: Array + } + // Signature: test/C1|null[0] + @JustAnnotation(annotation = Empty) @AnnotationArray(annotationArray = {}) class C1 constructor() + // Signature: test/C2|null[0] + @AnnotationArray(annotationArray = {JustAnnotation(annotation = Empty), JustAnnotation(annotation = Empty)}) class C2 constructor() + // Signature: test/Empty|null[0] + annotation class Empty constructor() : Annotation + // Signature: test/JustAnnotation|null[0] + annotation class JustAnnotation constructor(annotation: Empty) : Annotation { + // Signature: test/JustAnnotation.annotation|-5849805091355678126[0] + val annotation: Empty + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt new file mode 100644 index 00000000000..bf8248b68ca --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/annotation.v2.txt @@ -0,0 +1,18 @@ +package test { + // Signature: test/AnnotationArray|null[0] + annotation class AnnotationArray constructor(annotationArray: Array) : Annotation { + // Signature: test/AnnotationArray.annotationArray|{}annotationArray[0] + val annotationArray: Array + } + // Signature: test/C1|null[0] + @JustAnnotation(annotation = Empty) @AnnotationArray(annotationArray = {}) class C1 constructor() + // Signature: test/C2|null[0] + @AnnotationArray(annotationArray = {JustAnnotation(annotation = Empty), JustAnnotation(annotation = Empty)}) class C2 constructor() + // Signature: test/Empty|null[0] + annotation class Empty constructor() : Annotation + // Signature: test/JustAnnotation|null[0] + annotation class JustAnnotation constructor(annotation: Empty) : Annotation { + // Signature: test/JustAnnotation.annotation|{}annotation[0] + val annotation: Empty + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt new file mode 100644 index 00000000000..28a9850b63b --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v1.txt @@ -0,0 +1,25 @@ +package test { + // Signature: test/C1|null[0] + @JustEnum(weapon = Weapon.SCISSORS) @EnumArray(enumArray = {}) class C1 constructor() + // Signature: test/C2|null[0] + @EnumArray(enumArray = {Weapon.PAPER, Weapon.ROCK}) class C2 constructor() + // Signature: test/EnumArray|null[0] + annotation class EnumArray constructor(enumArray: Array) : Annotation { + // Signature: test/EnumArray.enumArray|-1032102509447694281[0] + val enumArray: Array + } + // Signature: test/JustEnum|null[0] + annotation class JustEnum constructor(weapon: Weapon) : Annotation { + // Signature: test/JustEnum.weapon|187372160426561863[0] + val weapon: Weapon + } + // Signature: test/Weapon|null[0] + enum class Weapon private constructor() : Enum { + // Signature: test/Weapon.ROCK|null[0] + enum entry ROCK + // Signature: test/Weapon.PAPER|null[0] + enum entry PAPER + // Signature: test/Weapon.SCISSORS|null[0] + enum entry SCISSORS + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt new file mode 100644 index 00000000000..24007e554cb --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/enum.v2.txt @@ -0,0 +1,25 @@ +package test { + // Signature: test/C1|null[0] + @JustEnum(weapon = Weapon.SCISSORS) @EnumArray(enumArray = {}) class C1 constructor() + // Signature: test/C2|null[0] + @EnumArray(enumArray = {Weapon.PAPER, Weapon.ROCK}) class C2 constructor() + // Signature: test/EnumArray|null[0] + annotation class EnumArray constructor(enumArray: Array) : Annotation { + // Signature: test/EnumArray.enumArray|{}enumArray[0] + val enumArray: Array + } + // Signature: test/JustEnum|null[0] + annotation class JustEnum constructor(weapon: Weapon) : Annotation { + // Signature: test/JustEnum.weapon|{}weapon[0] + val weapon: Weapon + } + // Signature: test/Weapon|null[0] + enum class Weapon private constructor() : Enum { + // Signature: test/Weapon.ROCK|null[0] + enum entry ROCK + // Signature: test/Weapon.PAPER|null[0] + enum entry PAPER + // Signature: test/Weapon.SCISSORS|null[0] + enum entry SCISSORS + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt new file mode 100644 index 00000000000..4496c7578f0 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v1.txt @@ -0,0 +1,25 @@ +package test { + // Signature: test/C1|null[0] + @PrimitiveArrays(booleanArray = {true, false, true}, byteArray = {-7.toByte(), 7.toByte()}, charArray = {\u0025 ('%'), \u007A ('z')}, doubleArray = {-3.14.toDouble()}, floatArray = {2.72.toFloat(), 0.0.toFloat()}, intArray = {239017, -1}, longArray = {123456789123456789.toLong()}, shortArray = {239.toShort()}) class C1 constructor() + // Signature: test/C2|null[0] + @PrimitiveArrays(booleanArray = {}, byteArray = {}, charArray = {}, doubleArray = {}, floatArray = {}, intArray = {}, longArray = {}, shortArray = {}) class C2 constructor() + // Signature: test/PrimitiveArrays|null[0] + annotation class PrimitiveArrays constructor(byteArray: ByteArray, charArray: CharArray, shortArray: ShortArray, intArray: IntArray, longArray: LongArray, floatArray: FloatArray, doubleArray: DoubleArray, booleanArray: BooleanArray) : Annotation { + // Signature: test/PrimitiveArrays.booleanArray|7605527965651232515[0] + val booleanArray: BooleanArray + // Signature: test/PrimitiveArrays.byteArray|-2314777124899298189[0] + val byteArray: ByteArray + // Signature: test/PrimitiveArrays.charArray|-5349931751208968301[0] + val charArray: CharArray + // Signature: test/PrimitiveArrays.doubleArray|-3027997348205759511[0] + val doubleArray: DoubleArray + // Signature: test/PrimitiveArrays.floatArray|-863616440006860352[0] + val floatArray: FloatArray + // Signature: test/PrimitiveArrays.intArray|-5845507301569286943[0] + val intArray: IntArray + // Signature: test/PrimitiveArrays.longArray|-261136028309834719[0] + val longArray: LongArray + // Signature: test/PrimitiveArrays.shortArray|3516401755230006906[0] + val shortArray: ShortArray + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt new file mode 100644 index 00000000000..856ad8351f3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitiveArrays.v2.txt @@ -0,0 +1,25 @@ +package test { + // Signature: test/C1|null[0] + @PrimitiveArrays(booleanArray = {true, false, true}, byteArray = {-7.toByte(), 7.toByte()}, charArray = {\u0025 ('%'), \u007A ('z')}, doubleArray = {-3.14.toDouble()}, floatArray = {2.72.toFloat(), 0.0.toFloat()}, intArray = {239017, -1}, longArray = {123456789123456789.toLong()}, shortArray = {239.toShort()}) class C1 constructor() + // Signature: test/C2|null[0] + @PrimitiveArrays(booleanArray = {}, byteArray = {}, charArray = {}, doubleArray = {}, floatArray = {}, intArray = {}, longArray = {}, shortArray = {}) class C2 constructor() + // Signature: test/PrimitiveArrays|null[0] + annotation class PrimitiveArrays constructor(byteArray: ByteArray, charArray: CharArray, shortArray: ShortArray, intArray: IntArray, longArray: LongArray, floatArray: FloatArray, doubleArray: DoubleArray, booleanArray: BooleanArray) : Annotation { + // Signature: test/PrimitiveArrays.booleanArray|{}booleanArray[0] + val booleanArray: BooleanArray + // Signature: test/PrimitiveArrays.byteArray|{}byteArray[0] + val byteArray: ByteArray + // Signature: test/PrimitiveArrays.charArray|{}charArray[0] + val charArray: CharArray + // Signature: test/PrimitiveArrays.doubleArray|{}doubleArray[0] + val doubleArray: DoubleArray + // Signature: test/PrimitiveArrays.floatArray|{}floatArray[0] + val floatArray: FloatArray + // Signature: test/PrimitiveArrays.intArray|{}intArray[0] + val intArray: IntArray + // Signature: test/PrimitiveArrays.longArray|{}longArray[0] + val longArray: LongArray + // Signature: test/PrimitiveArrays.shortArray|{}shortArray[0] + val shortArray: ShortArray + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt new file mode 100644 index 00000000000..065dac96534 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v1.txt @@ -0,0 +1,23 @@ +package test { + // Signature: test/C|null[0] + @Primitives(boolean = true, byte = 7.toByte(), char = \u0025 ('%'), double = -3.14.toDouble(), float = 2.72.toFloat(), int = 239017, long = 123456789123456789.toLong(), short = 239.toShort()) class C constructor() + // Signature: test/Primitives|null[0] + annotation class Primitives constructor(byte: Byte, char: Char, short: Short, int: Int, long: Long, float: Float, double: Double, boolean: Boolean) : Annotation { + // Signature: test/Primitives.boolean|-4261332457766342551[0] + val boolean: Boolean + // Signature: test/Primitives.byte|-96849965763790584[0] + val byte: Byte + // Signature: test/Primitives.char|-1670337955414892634[0] + val char: Char + // Signature: test/Primitives.double|2356391280675975773[0] + val double: Double + // Signature: test/Primitives.float|3027698144133593704[0] + val float: Float + // Signature: test/Primitives.int|4038882325283937173[0] + val int: Int + // Signature: test/Primitives.long|-3528812958611327186[0] + val long: Long + // Signature: test/Primitives.short|2683753303457941763[0] + val short: Short + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt new file mode 100644 index 00000000000..7c452b84219 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/primitives.v2.txt @@ -0,0 +1,23 @@ +package test { + // Signature: test/C|null[0] + @Primitives(boolean = true, byte = 7.toByte(), char = \u0025 ('%'), double = -3.14.toDouble(), float = 2.72.toFloat(), int = 239017, long = 123456789123456789.toLong(), short = 239.toShort()) class C constructor() + // Signature: test/Primitives|null[0] + annotation class Primitives constructor(byte: Byte, char: Char, short: Short, int: Int, long: Long, float: Float, double: Double, boolean: Boolean) : Annotation { + // Signature: test/Primitives.boolean|{}boolean[0] + val boolean: Boolean + // Signature: test/Primitives.byte|{}byte[0] + val byte: Byte + // Signature: test/Primitives.char|{}char[0] + val char: Char + // Signature: test/Primitives.double|{}double[0] + val double: Double + // Signature: test/Primitives.float|{}float[0] + val float: Float + // Signature: test/Primitives.int|{}int[0] + val int: Int + // Signature: test/Primitives.long|{}long[0] + val long: Long + // Signature: test/Primitives.short|{}short[0] + val short: Short + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt new file mode 100644 index 00000000000..0a0bcffa3c8 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v1.txt @@ -0,0 +1,16 @@ +package test { + // Signature: test/C1|null[0] + @JustString(string = "kotlin") @StringArray(stringArray = {}) class C1 constructor() + // Signature: test/C2|null[0] + @StringArray(stringArray = {"java", ""}) class C2 constructor() + // Signature: test/JustString|null[0] + annotation class JustString constructor(string: String) : Annotation { + // Signature: test/JustString.string|-528183805128847417[0] + val string: String + } + // Signature: test/StringArray|null[0] + annotation class StringArray constructor(stringArray: Array) : Annotation { + // Signature: test/StringArray.stringArray|3224078221487065108[0] + val stringArray: Array + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt new file mode 100644 index 00000000000..bed4a2750ad --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/string.v2.txt @@ -0,0 +1,16 @@ +package test { + // Signature: test/C1|null[0] + @JustString(string = "kotlin") @StringArray(stringArray = {}) class C1 constructor() + // Signature: test/C2|null[0] + @StringArray(stringArray = {"java", ""}) class C2 constructor() + // Signature: test/JustString|null[0] + annotation class JustString constructor(string: String) : Annotation { + // Signature: test/JustString.string|{}string[0] + val string: String + } + // Signature: test/StringArray|null[0] + annotation class StringArray constructor(stringArray: Array) : Annotation { + // Signature: test/StringArray.stringArray|{}stringArray[0] + val stringArray: Array + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt new file mode 100644 index 00000000000..90c611ea4a8 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v1.txt @@ -0,0 +1,18 @@ +package test { + // Signature: test/My|null[0] + enum class My private constructor() : Enum { + // Signature: test/My.ALPHA|null[0] + enum entry ALPHA + // Signature: test/My.BETA|null[0] + enum entry BETA + // Signature: test/My.OMEGA|null[0] + enum entry OMEGA + } + // Signature: test/ann|null[0] + annotation class ann constructor(vararg m: My) : Annotation { + // Signature: test/ann.m|1584387991504031144[0] + val m: Array + } + // Signature: test/annotated|null[0] + @ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt new file mode 100644 index 00000000000..4ca956f6fb2 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationArguments/varargs.v2.txt @@ -0,0 +1,18 @@ +package test { + // Signature: test/My|null[0] + enum class My private constructor() : Enum { + // Signature: test/My.ALPHA|null[0] + enum entry ALPHA + // Signature: test/My.BETA|null[0] + enum entry BETA + // Signature: test/My.OMEGA|null[0] + enum entry OMEGA + } + // Signature: test/ann|null[0] + annotation class ann constructor(vararg m: My) : Annotation { + // Signature: test/ann.m|{}m[0] + val m: Array + } + // Signature: test/annotated|null[0] + @ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt new file mode 100644 index 00000000000..5b06866da62 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v1.txt @@ -0,0 +1,30 @@ +package test { + // Signature: test/C1|null[0] + @anno(x = "top level class") class C1 @anno(x = "constructor") constructor() { + // Signature: test/C1.p3|-373830470709388280[0] + @anno(x = "member property") val p3: Nothing? + // Signature: test/C1.v4|-38532081724949562[0] + @anno(x = "member extension property") val Int.v4: Int + // Signature: test/C1.f3|-21944318592270529[0] + @anno(x = "member function") fun f3(@anno(x = "member function parameter") p: Int) + // Signature: test/C1.f4|229292746020934047[0] + @anno(x = "member extension function") fun String.f4() + // Signature: test/C1.C2|null[0] + @anno(x = "nested class") class C2 constructor() + // Signature: test/C1.Companion|null[0] + @anno(x = "companion object") companion object + } + // Signature: test/anno|null[0] + annotation class anno constructor(x: String) : Annotation { + // Signature: test/anno.x|-8060530855978347579[0] + val x: String + } + // Signature: test/f1|7367719253560189071[0] + @anno(x = "top level function") fun f1(@anno(x = "top level function parameter") p: Int) + // Signature: test/f2|6524047282310410984[0] + @anno(x = "extension function") fun Long.f2(@anno(x = "extension function parameter") p: Int) + // Signature: test/p1|7711764890799440087[0] + @anno(x = "top level property") val p1: Nothing? + // Signature: test/p2|8934898181461715514[0] + @anno(x = "extension property") val Double.p2: Double +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt new file mode 100644 index 00000000000..3b90f77f4a8 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/annotationTargets.v2.txt @@ -0,0 +1,30 @@ +package test { + // Signature: test/C1|null[0] + @anno(x = "top level class") class C1 @anno(x = "constructor") constructor() { + // Signature: test/C1.p3|{}p3[0] + @anno(x = "member property") val p3: Nothing? + // Signature: test/C1.v4|@kotlin.Int{}v4[0] + @anno(x = "member extension property") val Int.v4: Int + // Signature: test/C1.f3|f3(kotlin.Int){}[0] + @anno(x = "member function") fun f3(@anno(x = "member function parameter") p: Int) + // Signature: test/C1.f4|f4@kotlin.String(){}[0] + @anno(x = "member extension function") fun String.f4() + // Signature: test/C1.C2|null[0] + @anno(x = "nested class") class C2 constructor() + // Signature: test/C1.Companion|null[0] + @anno(x = "companion object") companion object + } + // Signature: test/anno|null[0] + annotation class anno constructor(x: String) : Annotation { + // Signature: test/anno.x|{}x[0] + val x: String + } + // Signature: test/f1|f1(kotlin.Int){}[0] + @anno(x = "top level function") fun f1(@anno(x = "top level function parameter") p: Int) + // Signature: test/f2|f2@kotlin.Long(kotlin.Int){}[0] + @anno(x = "extension function") fun Long.f2(@anno(x = "extension function parameter") p: Int) + // Signature: test/p1|{}p1[0] + @anno(x = "top level property") val p1: Nothing? + // Signature: test/p2|@kotlin.Double{}p2[0] + @anno(x = "extension property") val Double.p2: Double +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt new file mode 100644 index 00000000000..ca5ee82f551 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v1.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation + // Signature: test/Enum|null[0] + enum class Enum private constructor() : Enum { + // Signature: test/Enum.ENTRY|null[0] + @A enum entry ENTRY + } + // Signature: test/Klass|null[0] + @A class Klass @A constructor() + // Signature: test/function|5623997416410866984[0] + @A fun <@A T> function(@A param: Unit) + // Signature: test/property|4634558160746314112[0] + @A val property: Unit +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt new file mode 100644 index 00000000000..fb33a8fd613 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/binaryRetainedAnnotation.v2.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation + // Signature: test/Enum|null[0] + enum class Enum private constructor() : Enum { + // Signature: test/Enum.ENTRY|null[0] + @A enum entry ENTRY + } + // Signature: test/Klass|null[0] + @A class Klass @A constructor() + // Signature: test/function|function(kotlin.Unit){0§}[0] + @A fun <@A T> function(@A param: Unit) + // Signature: test/property|{}property[0] + @A val property: Unit +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt new file mode 100644 index 00000000000..fd6467ed3cd --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v1.txt @@ -0,0 +1,58 @@ +package test { + // Signature: test/Class|null[0] + class Class constructor() { + // Signature: test/Class.arrayConst|-5420156590449024299[0] + val arrayConst: Any = {1.toByte(), 2.toByte()} + // Signature: test/Class.booleanConst|-4426657168193867786[0] + val booleanConst: Boolean = true + // Signature: test/Class.byteConst|-838020094916250484[0] + val byteConst: Byte = 10.toByte() + // Signature: test/Class.charConst|-3386388106267045546[0] + val charConst: Char = \u0041 ('A') + // Signature: test/Class.doubleConst|-3410345003879286930[0] + val doubleConst: Double = 3.0.toDouble() + // Signature: test/Class.enumConst|1893601016514874327[0] + val enumConst: Weapon? = Weapon.ROCK + // Signature: test/Class.floatConst|-7988261885828380685[0] + val floatConst: Float = 2.0.toFloat() + // Signature: test/Class.intConst|-4862245503535493206[0] + val intConst: Int = 30 + // Signature: test/Class.longConst|-6740116794455248124[0] + val longConst: Long = 40.toLong() + // Signature: test/Class.shortConst|4526352702631103302[0] + val shortConst: Short = 20.toShort() + // Signature: test/Class.stringConst|7958415035753538639[0] + val stringConst: String = "abcd" + } + // Signature: test/Weapon|null[0] + enum class Weapon private constructor() : Enum { + // Signature: test/Weapon.ROCK|null[0] + enum entry ROCK + // Signature: test/Weapon.PAPER|null[0] + enum entry PAPER + // Signature: test/Weapon.SCISSORS|null[0] + enum entry SCISSORS + } + // Signature: test/arrayConst|-5420156590449024299[0] + val arrayConst: Any = {1.toByte(), 2.toByte()} + // Signature: test/booleanConst|-4426657168193867786[0] + val booleanConst: Boolean = true + // Signature: test/byteConst|-838020094916250484[0] + val byteConst: Byte = 10.toByte() + // Signature: test/charConst|-3386388106267045546[0] + val charConst: Char = \u0041 ('A') + // Signature: test/doubleConst|-3410345003879286930[0] + val doubleConst: Double = 3.0.toDouble() + // Signature: test/enumConst|1893601016514874327[0] + val enumConst: Weapon? = Weapon.ROCK + // Signature: test/floatConst|-7988261885828380685[0] + val floatConst: Float = 2.0.toFloat() + // Signature: test/intConst|-4862245503535493206[0] + val intConst: Int = 30 + // Signature: test/longConst|-6740116794455248124[0] + val longConst: Long = 40.toLong() + // Signature: test/shortConst|4526352702631103302[0] + val shortConst: Short = 20.toShort() + // Signature: test/stringConst|7958415035753538639[0] + val stringConst: String = "abcd" +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt new file mode 100644 index 00000000000..d51c9f7af74 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/compileTimeConstants.v2.txt @@ -0,0 +1,58 @@ +package test { + // Signature: test/Class|null[0] + class Class constructor() { + // Signature: test/Class.arrayConst|{}arrayConst[0] + val arrayConst: Any = {1.toByte(), 2.toByte()} + // Signature: test/Class.booleanConst|{}booleanConst[0] + val booleanConst: Boolean = true + // Signature: test/Class.byteConst|{}byteConst[0] + val byteConst: Byte = 10.toByte() + // Signature: test/Class.charConst|{}charConst[0] + val charConst: Char = \u0041 ('A') + // Signature: test/Class.doubleConst|{}doubleConst[0] + val doubleConst: Double = 3.0.toDouble() + // Signature: test/Class.enumConst|{}enumConst[0] + val enumConst: Weapon? = Weapon.ROCK + // Signature: test/Class.floatConst|{}floatConst[0] + val floatConst: Float = 2.0.toFloat() + // Signature: test/Class.intConst|{}intConst[0] + val intConst: Int = 30 + // Signature: test/Class.longConst|{}longConst[0] + val longConst: Long = 40.toLong() + // Signature: test/Class.shortConst|{}shortConst[0] + val shortConst: Short = 20.toShort() + // Signature: test/Class.stringConst|{}stringConst[0] + val stringConst: String = "abcd" + } + // Signature: test/Weapon|null[0] + enum class Weapon private constructor() : Enum { + // Signature: test/Weapon.ROCK|null[0] + enum entry ROCK + // Signature: test/Weapon.PAPER|null[0] + enum entry PAPER + // Signature: test/Weapon.SCISSORS|null[0] + enum entry SCISSORS + } + // Signature: test/arrayConst|{}arrayConst[0] + val arrayConst: Any = {1.toByte(), 2.toByte()} + // Signature: test/booleanConst|{}booleanConst[0] + val booleanConst: Boolean = true + // Signature: test/byteConst|{}byteConst[0] + val byteConst: Byte = 10.toByte() + // Signature: test/charConst|{}charConst[0] + val charConst: Char = \u0041 ('A') + // Signature: test/doubleConst|{}doubleConst[0] + val doubleConst: Double = 3.0.toDouble() + // Signature: test/enumConst|{}enumConst[0] + val enumConst: Weapon? = Weapon.ROCK + // Signature: test/floatConst|{}floatConst[0] + val floatConst: Float = 2.0.toFloat() + // Signature: test/intConst|{}intConst[0] + val intConst: Int = 30 + // Signature: test/longConst|{}longConst[0] + val longConst: Long = 40.toLong() + // Signature: test/shortConst|{}shortConst[0] + val shortConst: Short = 20.toShort() + // Signature: test/stringConst|{}stringConst[0] + val stringConst: String = "abcd" +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt new file mode 100644 index 00000000000..c39adbfc18d --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v1.txt @@ -0,0 +1,46 @@ +package test { + // Signature: test/ClassA|null[0] + class ClassA constructor() { + // Signature: test/ClassA.classB|null[0] + class classB constructor() { + // Signature: test/ClassA.classB.memberFromB|-3679144108801549793[0] + fun memberFromB(): Int + // Signature: test/ClassA.classB.BC|null[0] + class BC constructor() { + // Signature: test/ClassA.classB.BC.memberFromBB|-923442573915205545[0] + val memberFromBB: Int = 150 + } + // Signature: test/ClassA.classB.BO|null[0] + object BO { + // Signature: test/ClassA.classB.BO.memberFromBO|217425991890338881[0] + val memberFromBO: Int = 175 + } + } + // Signature: test/ClassA.classC|null[0] + inner class classC constructor() { + // Signature: test/ClassA.classC.memberFromC|-1068553291605578391[0] + val memberFromC: Int = 200 + } + } + // Signature: test/E|null[0] + class E constructor() { + // Signature: test/E.Companion|null[0] + companion object { + // Signature: test/E.Companion.stat|5548368031485153544[0] + val stat: Int = 250 + // Signature: test/E.Companion.D|null[0] + class D constructor() { + // Signature: test/E.Companion.D.memberFromD|-58066615210301050[0] + val memberFromD: Int = 275 + } + } + } + // Signature: test/F|null[0] + class F constructor() { + // Signature: test/F.ObjA|null[0] + object ObjA { + // Signature: test/F.ObjA.memberFromObjA|-203378438521009523[0] + val memberFromObjA: Int = 300 + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt new file mode 100644 index 00000000000..889a7b75248 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/nestedClassesAndObjects.v2.txt @@ -0,0 +1,46 @@ +package test { + // Signature: test/ClassA|null[0] + class ClassA constructor() { + // Signature: test/ClassA.classB|null[0] + class classB constructor() { + // Signature: test/ClassA.classB.memberFromB|memberFromB(){}[0] + fun memberFromB(): Int + // Signature: test/ClassA.classB.BC|null[0] + class BC constructor() { + // Signature: test/ClassA.classB.BC.memberFromBB|{}memberFromBB[0] + val memberFromBB: Int = 150 + } + // Signature: test/ClassA.classB.BO|null[0] + object BO { + // Signature: test/ClassA.classB.BO.memberFromBO|{}memberFromBO[0] + val memberFromBO: Int = 175 + } + } + // Signature: test/ClassA.classC|null[0] + inner class classC constructor() { + // Signature: test/ClassA.classC.memberFromC|{}memberFromC[0] + val memberFromC: Int = 200 + } + } + // Signature: test/E|null[0] + class E constructor() { + // Signature: test/E.Companion|null[0] + companion object { + // Signature: test/E.Companion.stat|{}stat[0] + val stat: Int = 250 + // Signature: test/E.Companion.D|null[0] + class D constructor() { + // Signature: test/E.Companion.D.memberFromD|{}memberFromD[0] + val memberFromD: Int = 275 + } + } + } + // Signature: test/F|null[0] + class F constructor() { + // Signature: test/F.ObjA|null[0] + object ObjA { + // Signature: test/F.ObjA.memberFromObjA|{}memberFromObjA[0] + val memberFromObjA: Int = 300 + } + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt new file mode 100644 index 00000000000..eada29c4c4f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v1.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/Anno|null[0] + annotation class Anno constructor(value: String) : Annotation { + // Signature: test/Anno.value|1987073854177347439[0] + val value: String + } + // Signature: test/v1|7393439784805956893[0] + @Anno(value = "property") val v1: String = "" + // Signature: test/v2|-7674839086071973207[0] + var v2: String + // Signature: test/v2.|-1626959823585604055[0] + @Anno(value = "getter") get + // Signature: test/v2.|-3541921589822523570[0] + @Anno(value = "setter") set +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt new file mode 100644 index 00000000000..906faa9a940 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/propertyAccessorAnnotations.v2.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/Anno|null[0] + annotation class Anno constructor(value: String) : Annotation { + // Signature: test/Anno.value|{}value[0] + val value: String + } + // Signature: test/v1|{}v1[0] + @Anno(value = "property") val v1: String = "" + // Signature: test/v2|{}v2[0] + var v2: String + // Signature: test/v2.|(){}[0] + @Anno(value = "getter") get + // Signature: test/v2.|(kotlin.String){}[0] + @Anno(value = "setter") set +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt new file mode 100644 index 00000000000..94896fc5493 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v1.txt @@ -0,0 +1,13 @@ +package test { + // Signature: test/Class|null[0] + class Class constructor() { + // Signature: test/Class.member|-5369299060503369718[0] + fun member(): Nothing? + } + // Signature: test/extension|-6620817981111883314[0] + fun T.extension(): T? + // Signature: test/function|894692402108510399[0] + fun function(int: Int, string: String = ...): Class + // Signature: test/property|4634558160746314112[0] + val property: Unit +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt new file mode 100644 index 00000000000..a49f6f4cf7c --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/simple.v2.txt @@ -0,0 +1,13 @@ +package test { + // Signature: test/Class|null[0] + class Class constructor() { + // Signature: test/Class.member|member(){}[0] + fun member(): Nothing? + } + // Signature: test/extension|extension@0:0(){0§}[0] + fun T.extension(): T? + // Signature: test/function|function(kotlin.Int;kotlin.String){}[0] + fun function(int: Int, string: String = ...): Class + // Signature: test/property|{}property[0] + val property: Unit +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt new file mode 100644 index 00000000000..ff5a918a980 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v1.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation + // Signature: test/Enum|null[0] + enum class Enum private constructor() : Enum { + // Signature: test/Enum.ENTRY|null[0] + enum entry ENTRY + } + // Signature: test/Klass|null[0] + class Klass constructor() + // Signature: test/function|5623997416410866984[0] + fun function(param: Unit) + // Signature: test/property|4634558160746314112[0] + val property: Unit +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt new file mode 100644 index 00000000000..d9e1cf3c6ab --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/sourceRetainedAnnotation.v2.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.CLASS, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER}) annotation class A constructor() : Annotation + // Signature: test/Enum|null[0] + enum class Enum private constructor() : Enum { + // Signature: test/Enum.ENTRY|null[0] + enum entry ENTRY + } + // Signature: test/Klass|null[0] + class Klass constructor() + // Signature: test/function|function(kotlin.Unit){0§}[0] + fun function(param: Unit) + // Signature: test/property|{}property[0] + val property: Unit +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt new file mode 100644 index 00000000000..286cc2aaa06 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v1.txt @@ -0,0 +1,11 @@ +package { + // Signature: /Foo|null[0] + @Deprecated(message = "O/{id}") class Foo constructor() + // Signature: /Obj|null[0] + object Obj { + // Signature: /Obj.O|-6675131087042329948[0] + const val O: String = "O" + // Signature: /Obj.concat|4194001668264387881[0] + val concat: String = "OK" + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt new file mode 100644 index 00000000000..0d13cff7975 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/stringConcatenation.v2.txt @@ -0,0 +1,11 @@ +package { + // Signature: /Foo|null[0] + @Deprecated(message = "O/{id}") class Foo constructor() + // Signature: /Obj|null[0] + object Obj { + // Signature: /Obj.O|{}O[0] + const val O: String = "O" + // Signature: /Obj.concat|{}concat[0] + val concat: String = "OK" + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt new file mode 100644 index 00000000000..75b30962813 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v1.txt @@ -0,0 +1,9 @@ +package test { + // Signature: test/Ann|null[0] + @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class Ann constructor(value: String) : Annotation { + // Signature: test/Ann.value|1987073854177347439[0] + val value: String + } + // Signature: test/foo|-7822584347064313243[0] + inline fun foo() +} diff --git a/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt new file mode 100644 index 00000000000..ff22ed972d3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/builtinsSerializer/typeParameterAnnotation.v2.txt @@ -0,0 +1,9 @@ +package test { + // Signature: test/Ann|null[0] + @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE_PARAMETER}) annotation class Ann constructor(value: String) : Annotation { + // Signature: test/Ann.value|{}value[0] + val value: String + } + // Signature: test/foo|foo(){0§}[0] + inline fun foo() +} diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.v1.txt b/native/native.tests/testData/klib/dump-metadata/data_class.v1.txt new file mode 100644 index 00000000000..b81860654ac --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/data_class.v1.txt @@ -0,0 +1,32 @@ +package test { + // Signature: test/DataClass|null[0] + data class DataClass constructor(intProp: Int, stringProp: String) { + // Signature: test/DataClass.intProp|-1954141164874420124[0] + val intProp: Int + // Signature: test/DataClass.nonConstructorProp|-7591717016192191275[0] + val nonConstructorProp: Int = 0 + // Signature: test/DataClass.stringProp|36744939140285916[0] + val stringProp: String + // Signature: test/DataClass.component1|162597135895221648[0] + operator fun component1(): Int + // Signature: test/DataClass.component2|3796717572321500973[0] + operator fun component2(): String + // Signature: test/DataClass.copy|5893098757611139585[0] + fun copy(intProp: Int = ..., stringProp: String = ...): DataClass + // Signature: test/DataClass.equals|4638265728071529943[0] + override fun equals(other: Any?): Boolean + // Signature: test/DataClass.hashCode|3409210261493131192[0] + override fun hashCode(): Int + // Signature: test/DataClass.toString|-1522858123163872138[0] + override fun toString(): String + } + // Signature: test/DataObject|null[0] + data object DataObject { + // Signature: test/DataObject.equals|4638265728071529943[0] + override fun equals(other: Any?): Boolean + // Signature: test/DataObject.hashCode|3409210261493131192[0] + override fun hashCode(): Int + // Signature: test/DataObject.toString|-1522858123163872138[0] + override fun toString(): String + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/data_class.v2.txt b/native/native.tests/testData/klib/dump-metadata/data_class.v2.txt new file mode 100644 index 00000000000..ff92744d1cd --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/data_class.v2.txt @@ -0,0 +1,32 @@ +package test { + // Signature: test/DataClass|null[0] + data class DataClass constructor(intProp: Int, stringProp: String) { + // Signature: test/DataClass.intProp|{}intProp[0] + val intProp: Int + // Signature: test/DataClass.nonConstructorProp|{}nonConstructorProp[0] + val nonConstructorProp: Int = 0 + // Signature: test/DataClass.stringProp|{}stringProp[0] + val stringProp: String + // Signature: test/DataClass.component1|component1(){}[0] + operator fun component1(): Int + // Signature: test/DataClass.component2|component2(){}[0] + operator fun component2(): String + // Signature: test/DataClass.copy|copy(kotlin.Int;kotlin.String){}[0] + fun copy(intProp: Int = ..., stringProp: String = ...): DataClass + // Signature: test/DataClass.equals|equals(kotlin.Any?){}[0] + override fun equals(other: Any?): Boolean + // Signature: test/DataClass.hashCode|hashCode(){}[0] + override fun hashCode(): Int + // Signature: test/DataClass.toString|toString(){}[0] + override fun toString(): String + } + // Signature: test/DataObject|null[0] + data object DataObject { + // Signature: test/DataObject.equals|equals(kotlin.Any?){}[0] + override fun equals(other: Any?): Boolean + // Signature: test/DataObject.hashCode|hashCode(){}[0] + override fun hashCode(): Int + // Signature: test/DataObject.toString|toString(){}[0] + override fun toString(): String + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt new file mode 100644 index 00000000000..ecc0c29859f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v1.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + class A constructor() { + // Signature: test/A.x|-8060530855978347579[0] + @field:Ann var x: Int + // Signature: test/A.y|3625903257357557171[0] + @delegate:Ann var y: Int + } + // Signature: test/Ann|null[0] + annotation class Ann constructor() : Annotation + // Signature: test/x|-8060530855978347579[0] + @field:Ann var x: Int + // Signature: test/y|3625903257357557171[0] + @delegate:Ann var y: Int +} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt new file mode 100644 index 00000000000..f5085309ac3 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/klib/fieldAnnotations.v2.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + class A constructor() { + // Signature: test/A.x|{}x[0] + @field:Ann var x: Int + // Signature: test/A.y|{}y[0] + @delegate:Ann var y: Int + } + // Signature: test/Ann|null[0] + annotation class Ann constructor() : Annotation + // Signature: test/x|{}x[0] + @field:Ann var x: Int + // Signature: test/y|{}y[0] + @delegate:Ann var y: Int +} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt new file mode 100644 index 00000000000..911d230485f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v1.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + class A constructor() { + // Signature: test/A.bar|6925958872823381534[0] + @Ann val @receiver:Ann Int.bar: Int + // Signature: test/A.foo|-5711085108413366035[0] + @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int + } + // Signature: test/Ann|null[0] + annotation class Ann constructor() : Annotation + // Signature: test/bar|6925958872823381534[0] + @Ann val @receiver:Ann Int.bar: Int + // Signature: test/foo|-5711085108413366035[0] + @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int +} diff --git a/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt new file mode 100644 index 00000000000..ab7bcfcf69c --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/klib/receiverAnnotations.v2.txt @@ -0,0 +1,15 @@ +package test { + // Signature: test/A|null[0] + class A constructor() { + // Signature: test/A.bar|@kotlin.Int{}bar[0] + @Ann val @receiver:Ann Int.bar: Int + // Signature: test/A.foo|foo@kotlin.Int(kotlin.Int){}[0] + @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int + } + // Signature: test/Ann|null[0] + annotation class Ann constructor() : Annotation + // Signature: test/bar|@kotlin.Int{}bar[0] + @Ann val @receiver:Ann Int.bar: Int + // Signature: test/foo|foo@kotlin.Int(kotlin.Int){}[0] + @Ann fun @receiver:Ann Int.foo(@Ann arg: Int): Int +} diff --git a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt new file mode 100644 index 00000000000..1f01c19cd62 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v1.txt @@ -0,0 +1,6 @@ +package test { + // Signature: test/C|null[0] + class C constructor() + // Signature: test/builder|-5741056786925655007[0] + fun C.builder(c: C.() -> Unit) +} diff --git a/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt new file mode 100644 index 00000000000..861e452f57c --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/kt55464_serializeTypeAnnotation.v2.txt @@ -0,0 +1,6 @@ +package test { + // Signature: test/C|null[0] + class C constructor() + // Signature: test/builder|builder@test.C(kotlin.Function1){}[0] + fun C.builder(c: C.() -> Unit) +} diff --git a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt new file mode 100644 index 00000000000..0c6187e44b8 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v1.txt @@ -0,0 +1,6 @@ +package test { + // Signature: test/Annotation|null[0] + annotation class Annotation constructor() : Annotation + // Signature: test/foo|-104159190164110731[0] + fun foo(@Annotation arg: Int) +} diff --git a/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt new file mode 100644 index 00000000000..71b81cb49ce --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/kt56018_value_parameters_annotations.v2.txt @@ -0,0 +1,6 @@ +package test { + // Signature: test/Annotation|null[0] + annotation class Annotation constructor() : Annotation + // Signature: test/foo|foo(kotlin.Int){}[0] + fun foo(@Annotation arg: Int) +} diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt new file mode 100644 index 00000000000..a08a65a424f --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.v1.txt @@ -0,0 +1,31 @@ +package test { + // Signature: test/A|null[0] + abstract class A constructor() { + // Signature: test/A.a|-1200697420457237799[0] + abstract val a: Int + // Signature: test/A.b|772347207915745207[0] + abstract var b: Int + // Signature: test/A.b.|393614520529327556[0] + protected set + // Signature: test/A.c|-4416962153448040627[0] + val c: Int + // Signature: test/A.d|5174763769109925331[0] + val d: Int + // Signature: test/A.e|-5812214850253973038[0] + var e: Int + // Signature: test/A.f|4026638760133205152[0] + var f: Int + // Signature: test/A.f.|3759249595734875908[0] + private set + // Signature: test/A.g|417398068120208694[0] + open val g: Int + // Signature: test/A.h|1569348114433471852[0] + open val h: Int + // Signature: test/A.k|2162811783424158931[0] + open var k: Int + // Signature: test/A.l|3307215303229595169[0] + open var l: Int + // Signature: test/A.l.|2538976218320322727[0] + protected set + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt b/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt new file mode 100644 index 00000000000..becfcb7471e --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/property_accessors.v2.txt @@ -0,0 +1,31 @@ +package test { + // Signature: test/A|null[0] + abstract class A constructor() { + // Signature: test/A.a|{}a[0] + abstract val a: Int + // Signature: test/A.b|{}b[0] + abstract var b: Int + // Signature: test/A.b.|(kotlin.Int){}[0] + protected set + // Signature: test/A.c|{}c[0] + val c: Int + // Signature: test/A.d|{}d[0] + val d: Int + // Signature: test/A.e|{}e[0] + var e: Int + // Signature: test/A.f|{}f[0] + var f: Int + // Signature: test/A.f.|(kotlin.Int){}[0] + private set + // Signature: test/A.g|{}g[0] + open val g: Int + // Signature: test/A.h|{}h[0] + open val h: Int + // Signature: test/A.k|{}k[0] + open var k: Int + // Signature: test/A.l|{}l[0] + open var l: Int + // Signature: test/A.l.|(kotlin.Int){}[0] + protected set + } +} diff --git a/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt b/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt new file mode 100644 index 00000000000..29626563a38 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/type_annotations.v1.txt @@ -0,0 +1,14 @@ +package test { + // Signature: test/AnnoBinary|null[0] + @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoBinary constructor() : Annotation + // Signature: test/AnnoRuntime|null[0] + @Retention(value = AnnotationRetention.RUNTIME) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoRuntime constructor() : Annotation + // Signature: test/AnnoSource|null[0] + @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoSource constructor() : Annotation + // Signature: test/withBinaryAnnotation|-5614294297255841421[0] + fun withBinaryAnnotation(id: @AnnoBinary Int) + // Signature: test/withRuntimeAnnotation|-6394651783725815393[0] + fun withRuntimeAnnotation(id: @AnnoRuntime Int) + // Signature: test/withSourceAnnotation|-44362520776994771[0] + fun withSourceAnnotation(id: Int) +} diff --git a/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt b/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt new file mode 100644 index 00000000000..da207a21d19 --- /dev/null +++ b/native/native.tests/testData/klib/dump-metadata/type_annotations.v2.txt @@ -0,0 +1,14 @@ +package test { + // Signature: test/AnnoBinary|null[0] + @Retention(value = AnnotationRetention.BINARY) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoBinary constructor() : Annotation + // Signature: test/AnnoRuntime|null[0] + @Retention(value = AnnotationRetention.RUNTIME) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoRuntime constructor() : Annotation + // Signature: test/AnnoSource|null[0] + @Retention(value = AnnotationRetention.SOURCE) @Target(allowedTargets = {AnnotationTarget.TYPE}) annotation class AnnoSource constructor() : Annotation + // Signature: test/withBinaryAnnotation|withBinaryAnnotation(kotlin.Int){}[0] + fun withBinaryAnnotation(id: @AnnoBinary Int) + // Signature: test/withRuntimeAnnotation|withRuntimeAnnotation(kotlin.Int){}[0] + fun withRuntimeAnnotation(id: @AnnoRuntime Int) + // Signature: test/withSourceAnnotation|withSourceAnnotation(kotlin.Int){}[0] + fun withSourceAnnotation(id: Int) +} diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropKT39120Test.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropKT39120Test.kt index 0d2ab0be384..5480bbba8f7 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropKT39120Test.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropKT39120Test.kt @@ -39,7 +39,7 @@ abstract class AbstractNativeCInteropKT39120Test : AbstractNativeCInteropBaseTes val includeFrameworkArgs = TestCompilerArgs("-compiler-option", "-F${testDataDir.canonicalPath}") val klib1: KLIB = cinteropToLibrary(targets, def1File, buildDir, includeFrameworkArgs).assertSuccess().resultingArtifact - val metadata1 = klib1.dumpMetadata(kotlinNativeClassLoader.classLoader) + val metadata1 = klib1.dumpMetadata(kotlinNativeClassLoader.classLoader, false, null) val expectedFiltered1Output = golden1File.readText() val actualFiltered1Output = filterContentsOutput(metadata1, " pod.Version|POD|class Pod") @@ -47,7 +47,7 @@ abstract class AbstractNativeCInteropKT39120Test : AbstractNativeCInteropBaseTes val cinterop2ExtraArgs = TestCompilerArgs("-l", klib1.klibFile.canonicalPath, "-compiler-option", "-fmodules") val klib2: KLIB = cinteropToLibrary(targets, def2File, buildDir, includeFrameworkArgs + cinterop2ExtraArgs).assertSuccess().resultingArtifact - val metadata2 = klib2.dumpMetadata(kotlinNativeClassLoader.classLoader) + val metadata2 = klib2.dumpMetadata(kotlinNativeClassLoader.classLoader, false, null) val expectedFiltered2Output = golden2File.readText() val actualFiltered2Output = filterContentsOutput(metadata2, " pod.Version|POD|class Pod") diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropTest.kt index 0c21c367790..f6692039fc4 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeCInteropTest.kt @@ -103,7 +103,7 @@ abstract class AbstractNativeCInteropTest : AbstractNativeCInteropBaseTest() { "Test failed. CInterop compilation result was: $testCompilationResult" } } else { - val metadata = testCompilationResult.assertSuccess().resultingArtifact.dumpMetadata(kotlinNativeClassLoader.classLoader) + val metadata = testCompilationResult.assertSuccess().resultingArtifact.dumpMetadata(kotlinNativeClassLoader.classLoader, false, null) .let { if (ignoreExperimentalForeignApi) { it.replace("@ExperimentalForeignApi ", "") diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt index 70e64e295d0..71451c844a0 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/AbstractNativeKlibDumpMetadataTest.kt @@ -17,7 +17,9 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.settings.KotlinNativeCla import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Timeouts import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile import org.jetbrains.kotlin.konan.test.blackbox.support.util.dumpMetadata +import org.jetbrains.kotlin.library.KotlinIrSignatureVersion import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEqualsToFile +import org.jetbrains.kotlin.test.utils.withSuffixAndExtension import org.junit.jupiter.api.Tag import java.io.File @@ -33,12 +35,23 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() { val testCompilationResult: TestCompilationResult.Success = compileToLibrary(testCase) val kotlinNativeClassLoader = testRunSettings.get() - val metadata = testCompilationResult.assertSuccess().resultingArtifact.dumpMetadata(kotlinNativeClassLoader.classLoader) - val metadataFiltered = filterOutput(metadata) - assertEqualsToFile( - File("${testPathFull.canonicalPath.substringBeforeLast(".")}.txt"), - StringUtilRt.convertLineSeparators(metadataFiltered) - ) + val klib: KLIB = testCompilationResult.assertSuccess().resultingArtifact + + (KotlinIrSignatureVersion.CURRENTLY_SUPPORTED_VERSIONS + null).forEach { signatureVersion: KotlinIrSignatureVersion? -> + val metadataDump = klib.dumpMetadata( + kotlinNativeClassLoader.classLoader, + printSignatures = signatureVersion != null, + signatureVersion + ) + val filteredMetadataDump = StringUtilRt.convertLineSeparators(filterMetadataDump(metadataDump)) + + val goldenDataFile = testPathFull.withSuffixAndExtension( + suffix = signatureVersion?.let { ".v${it.number}" } ?: "", + extension = "txt" + ) + + assertEqualsToFile(goldenDataFile, filteredMetadataDump) + } } private fun generateTestCaseWithSingleSource(source: File, extraArgs: List): TestCase { @@ -60,7 +73,7 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() { } // Remove intermediate "}\n\npackage ABC {\n" parts. - private fun filterOutput(contents: String): String { + private fun filterMetadataDump(contents: String): String { var packageLineMet = false return contents.lineSequence() .dropWhile { line -> line.isBlank() } diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt index f0fd86b123f..e8ff349adb4 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/test/blackbox/support/util/TestCompilationArtifacts.kt @@ -20,12 +20,16 @@ private fun invokeKlibTool(kotlinNativeClassLoader: ClassLoader, klibFile: File, } -internal fun TestCompilationArtifact.KLIB.dumpMetadata(kotlinNativeClassLoader: ClassLoader): String = invokeKlibTool( +internal fun TestCompilationArtifact.KLIB.dumpMetadata( + kotlinNativeClassLoader: ClassLoader, + printSignatures: Boolean, + signatureVersion: KotlinIrSignatureVersion? +): String = invokeKlibTool( kotlinNativeClassLoader = kotlinNativeClassLoader, klibFile = klibFile, functionName = "dumpMetadata", - /* printSignatures= */ false, - /* signatureVersion= */ null + /* printSignatures= */ printSignatures, + /* signatureVersion= */ signatureVersion?.let { getSignatureVersionForIsolatedClassLoader(kotlinNativeClassLoader, signatureVersion) } ) internal fun TestCompilationArtifact.KLIB.dumpIr(