[KLIB tool] Run tests for 'dump-metadata' with & without signatures

This commit is contained in:
Dmitriy Dolovov
2023-10-23 22:47:53 +02:00
committed by Space Team
parent aa9b901926
commit 88a297b022
78 changed files with 1888 additions and 13 deletions
@@ -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.<get-annotatedAccessors>|1622120395968958718[0]
@A get
// Signature: custom.pkg/Foo.annotatedAccessors.<set-annotatedAccessors>|-2659697716788262479[0]
@A set
// Signature: custom.pkg/Foo.annotatedGetter|2662566077187940730[0]
val annotatedGetter: Int = 0
// Signature: custom.pkg/Foo.annotatedGetter.<get-annotatedGetter>|811214482955708703[0]
@A get
// Signature: custom.pkg/Foo.annotatedSetter|-2080041549422472915[0]
var annotatedSetter: Int
// Signature: custom.pkg/Foo.annotatedSetter.<set-annotatedSetter>|4219770012469820688[0]
@A set
// Signature: custom.pkg/Foo.privateSetter|-7367207755766039228[0]
var privateSetter: Int
// Signature: custom.pkg/Foo.privateSetter.<set-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
}
}
@@ -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.<get-annotatedAccessors>|<get-annotatedAccessors>(){}[0]
@A get
// Signature: custom.pkg/Foo.annotatedAccessors.<set-annotatedAccessors>|<set-annotatedAccessors>(kotlin.Int){}[0]
@A set
// Signature: custom.pkg/Foo.annotatedGetter|{}annotatedGetter[0]
val annotatedGetter: Int = 0
// Signature: custom.pkg/Foo.annotatedGetter.<get-annotatedGetter>|<get-annotatedGetter>(){}[0]
@A get
// Signature: custom.pkg/Foo.annotatedSetter|{}annotatedSetter[0]
var annotatedSetter: Int
// Signature: custom.pkg/Foo.annotatedSetter.<set-annotatedSetter>|<set-annotatedSetter>(kotlin.Int){}[0]
@A set
// Signature: custom.pkg/Foo.privateSetter|{}privateSetter[0]
var privateSetter: Int
// Signature: custom.pkg/Foo.privateSetter.<set-privateSetter>|<set-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
}
}
@@ -0,0 +1,86 @@
package <root> {
// 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()
}
}
@@ -0,0 +1,86 @@
package <root> {
// 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()
}
}
@@ -0,0 +1,36 @@
package <root> {
// 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.<init>|-5645683436151566731[0]
constructor()
// Signature: /Foo.<init>|575075696928934302[0]
constructor(x: Double)
// Signature: /Foo.<init>|-648032236499795795[0]
constructor(x: Double, y: Int)
// Signature: /Foo.<init>|1280618353163213788[0]
protected constructor(x: String)
// Signature: /Foo.<init>|5452796351634795197[0]
@A constructor(x: Foo)
}
// Signature: /Qux|null[0]
class Qux protected constructor(x: Int)
// Signature: /Typed|null[0]
class Typed<T> constructor(x: Int) {
// Signature: /Typed.<init>|-5645683436151566731[0]
constructor()
// Signature: /Typed.<init>|575075696928934302[0]
constructor(x: Double)
// Signature: /Typed.<init>|-648032236499795795[0]
constructor(x: Double, y: Int)
// Signature: /Typed.<init>|1280618353163213788[0]
protected constructor(x: String)
// Signature: /Typed.<init>|5452796351634795197[0]
@A constructor(x: Foo)
}
}
@@ -0,0 +1,36 @@
package <root> {
// 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.<init>|<init>(){}[0]
constructor()
// Signature: /Foo.<init>|<init>(kotlin.Double){}[0]
constructor(x: Double)
// Signature: /Foo.<init>|<init>(kotlin.Double;kotlin.Int){}[0]
constructor(x: Double, y: Int)
// Signature: /Foo.<init>|<init>(kotlin.String){}[0]
protected constructor(x: String)
// Signature: /Foo.<init>|<init>(Foo){}[0]
@A constructor(x: Foo)
}
// Signature: /Qux|null[0]
class Qux protected constructor(x: Int)
// Signature: /Typed|null[0]
class Typed<T> constructor(x: Int) {
// Signature: /Typed.<init>|<init>(){}[0]
constructor()
// Signature: /Typed.<init>|<init>(kotlin.Double){}[0]
constructor(x: Double)
// Signature: /Typed.<init>|<init>(kotlin.Double;kotlin.Int){}[0]
constructor(x: Double, y: Int)
// Signature: /Typed.<init>|<init>(kotlin.String){}[0]
protected constructor(x: String)
// Signature: /Typed.<init>|<init>(Foo){}[0]
@A constructor(x: Foo)
}
}
@@ -0,0 +1,19 @@
package <root> {
// Signature: /E|null[0]
enum class E private constructor(x: Int = ...) : Enum<E> {
// 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
}
}
@@ -0,0 +1,19 @@
package <root> {
// Signature: /E|null[0]
enum class E private constructor(x: Int = ...) : Enum<E> {
// 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
}
}
@@ -0,0 +1,17 @@
package <root> {
// 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)
}
}
@@ -0,0 +1,17 @@
package <root> {
// 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)
}
}
@@ -0,0 +1,32 @@
package <root> {
// 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()
}
}
@@ -0,0 +1,32 @@
package <root> {
// 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()
}
}
@@ -0,0 +1,28 @@
package <root> {
// 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()
}
}
}
@@ -0,0 +1,28 @@
package <root> {
// 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()
}
}
}
@@ -0,0 +1,40 @@
package <root> {
// 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 <T> t1(x: Foo)
// Signature: /t2|-90499170678395935[0]
fun <T> t2(x: T)
// Signature: /t3|7012475377071720756[0]
fun <T, F> t3(x: T, y: F)
// Signature: /t4|-3843581059144476593[0]
inline fun <reified T> t4(x: T)
// Signature: /t5|236307131019209421[0]
fun <T : Number> t5(x: T)
}
@@ -0,0 +1,40 @@
package <root> {
// 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<Foo>){}[0]
inline fun i1(block: () -> Foo)
// Signature: /i2|i2(kotlin.Function0<Foo>){}[0]
inline fun i2(noinline block: () -> Foo)
// Signature: /i3|i3(kotlin.Function0<Foo>){}[0]
inline fun i3(crossinline block: () -> Foo)
// Signature: /i4|i4(kotlin.Function1<Foo,kotlin.Int>){}[0]
fun i4(block: (Foo) -> Int)
// Signature: /i5|i5(kotlin.Function2<Foo,Foo,kotlin.Int>){}[0]
fun i5(block: (Foo, Foo) -> Int)
// Signature: /i6|i6(kotlin.Function1<Foo,kotlin.Int>){}[0]
fun i6(block: Foo.() -> Int)
// Signature: /i7|i7(kotlin.Function2<Foo,Foo,kotlin.Int>){}[0]
fun i7(block: Foo.(Foo) -> Int)
// Signature: /t1|t1(Foo){0§<kotlin.Any?>}[0]
fun <T> t1(x: Foo)
// Signature: /t2|t2(0:0){0§<kotlin.Any?>}[0]
fun <T> t2(x: T)
// Signature: /t3|t3(0:0;0:1){0§<kotlin.Any?>;1§<kotlin.Any?>}[0]
fun <T, F> t3(x: T, y: F)
// Signature: /t4|t4(0:0){0§<kotlin.Any?>}[0]
inline fun <reified T> t4(x: T)
// Signature: /t5|t5(0:0){0§<kotlin.Number>}[0]
fun <T : Number> t5(x: T)
}
@@ -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 */
}
@@ -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 */
}
@@ -0,0 +1,12 @@
package <root> {
// 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 */
}
@@ -0,0 +1,12 @@
package <root> {
// 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 */
}
@@ -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 */
}
@@ -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 */
}
@@ -0,0 +1,16 @@
package <root> {
// 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 */
}
@@ -0,0 +1,16 @@
package <root> {
// 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 */
}
@@ -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.<set-mutableProp>|-3965758569411010277[0]
@AnnoSetter2 set
// Signature: test/Foo.prop|3598315380056892812[0]
@AnnoProperty @field:AnnoBackingField var prop: Int
// Signature: test/Foo.prop.<get-prop>|-5734736374948136327[0]
@AnnoGetter get
// Signature: test/Foo.prop.<set-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>)
}
@@ -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.<set-mutableProp>|<set-mutableProp>(kotlin.Int){}[0]
@AnnoSetter2 set
// Signature: test/Foo.prop|{}prop[0]
@AnnoProperty @field:AnnoBackingField var prop: Int
// Signature: test/Foo.prop.<get-prop>|<get-prop>(){}[0]
@AnnoGetter get
// Signature: test/Foo.prop.<set-prop>|<set-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<kotlin.Int>){0§<kotlin.Any?>}[0]
fun <@AnnoFunctionTypeParameter T> f(x: B<@AnnoClassUsageTypeParameter Int>)
}
@@ -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)
}
@@ -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)
}
@@ -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<Eee> {
// 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
}
}
@@ -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<Eee> {
// 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
}
}
@@ -0,0 +1,18 @@
package test {
// Signature: test/AnnotationArray|null[0]
annotation class AnnotationArray constructor(annotationArray: Array<JustAnnotation>) : Annotation {
// Signature: test/AnnotationArray.annotationArray|8313552415425816993[0]
val annotationArray: Array<JustAnnotation>
}
// 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
}
}
@@ -0,0 +1,18 @@
package test {
// Signature: test/AnnotationArray|null[0]
annotation class AnnotationArray constructor(annotationArray: Array<JustAnnotation>) : Annotation {
// Signature: test/AnnotationArray.annotationArray|{}annotationArray[0]
val annotationArray: Array<JustAnnotation>
}
// 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
}
}
@@ -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<Weapon>) : Annotation {
// Signature: test/EnumArray.enumArray|-1032102509447694281[0]
val enumArray: Array<Weapon>
}
// 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<Weapon> {
// 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
}
}
@@ -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<Weapon>) : Annotation {
// Signature: test/EnumArray.enumArray|{}enumArray[0]
val enumArray: Array<Weapon>
}
// 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<Weapon> {
// 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
}
}
@@ -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
}
}
@@ -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
}
}
@@ -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
}
}
@@ -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
}
}
@@ -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<String>) : Annotation {
// Signature: test/StringArray.stringArray|3224078221487065108[0]
val stringArray: Array<String>
}
}
@@ -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<String>) : Annotation {
// Signature: test/StringArray.stringArray|{}stringArray[0]
val stringArray: Array<String>
}
}
@@ -0,0 +1,18 @@
package test {
// Signature: test/My|null[0]
enum class My private constructor() : Enum<My> {
// 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<out My>
}
// Signature: test/annotated|null[0]
@ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation
}
@@ -0,0 +1,18 @@
package test {
// Signature: test/My|null[0]
enum class My private constructor() : Enum<My> {
// 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<out My>
}
// Signature: test/annotated|null[0]
@ann(m = {My.ALPHA, My.BETA}) annotation class annotated constructor() : Annotation
}
@@ -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
}
@@ -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
}
@@ -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<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
}
@@ -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<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§<kotlin.Any?>}[0]
@A fun <@A T> function(@A param: Unit)
// Signature: test/property|{}property[0]
@A val property: Unit
}
@@ -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<Weapon> {
// 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"
}
@@ -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<Weapon> {
// 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"
}
@@ -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
}
}
}
@@ -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
}
}
}
@@ -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.<get-v2>|-1626959823585604055[0]
@Anno(value = "getter") get
// Signature: test/v2.<set-v2>|-3541921589822523570[0]
@Anno(value = "setter") set
}
@@ -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.<get-v2>|<get-v2>(){}[0]
@Anno(value = "getter") get
// Signature: test/v2.<set-v2>|<set-v2>(kotlin.String){}[0]
@Anno(value = "setter") set
}
@@ -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> T.extension(): T?
// Signature: test/function|894692402108510399[0]
fun function(int: Int, string: String = ...): Class
// Signature: test/property|4634558160746314112[0]
val property: Unit
}
@@ -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§<kotlin.Any?>}[0]
fun <T> 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
}
@@ -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<Enum> {
// Signature: test/Enum.ENTRY|null[0]
enum entry ENTRY
}
// Signature: test/Klass|null[0]
class Klass constructor()
// Signature: test/function|5623997416410866984[0]
fun <T> function(param: Unit)
// Signature: test/property|4634558160746314112[0]
val property: Unit
}
@@ -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<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§<kotlin.Any?>}[0]
fun <T> function(param: Unit)
// Signature: test/property|{}property[0]
val property: Unit
}
@@ -0,0 +1,11 @@
package <root> {
// 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"
}
}
@@ -0,0 +1,11 @@
package <root> {
// 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"
}
}
@@ -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 <reified @Ann(value = "abc") T> foo()
}
@@ -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§<kotlin.Any?>}[0]
inline fun <reified @Ann(value = "abc") T> foo()
}
@@ -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
}
}
@@ -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
}
}
@@ -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
}
@@ -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
}
@@ -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
}
@@ -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
}
@@ -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)
}
@@ -0,0 +1,6 @@
package test {
// Signature: test/C|null[0]
class C constructor()
// Signature: test/builder|builder@test.C(kotlin.Function1<test.C,kotlin.Unit>){}[0]
fun C.builder(c: C.() -> Unit)
}
@@ -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)
}
@@ -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)
}
@@ -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.<set-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.<set-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.<set-l>|2538976218320322727[0]
protected set
}
}
@@ -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.<set-b>|<set-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.<set-f>|<set-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.<set-l>|<set-l>(kotlin.Int){}[0]
protected set
}
}
@@ -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)
}
@@ -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)
}
@@ -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")
@@ -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 ", "")
@@ -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<out KLIB> = compileToLibrary(testCase)
val kotlinNativeClassLoader = testRunSettings.get<KotlinNativeClassLoader>()
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<String>): 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() }
@@ -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(