Serialize descriptors for local/anonymous classes on JVM
Reflection needs this information to work for local classes and anonymous objects
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
// CLASS_NAME_SUFFIX: A$foo$Local
|
||||
|
||||
class A {
|
||||
annotation class Ann(val info: String)
|
||||
|
||||
fun foo() {
|
||||
[Ann("class")] class Local {
|
||||
Ann("fun") fun foo(): Local = this
|
||||
Ann("val") val x = foo()
|
||||
|
||||
Ann("inner") inner class Inner
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
A.Ann(info = "class": kotlin.String) local final class `A$foo$Local`
|
||||
|
||||
public constructor `A$foo$Local`()
|
||||
A.Ann(info = "val": kotlin.String) internal final val x: `A$foo$Local`
|
||||
A.Ann(info = "fun": kotlin.String) internal final fun foo(): `A$foo$Local`
|
||||
|
||||
A.Ann(info = "inner": kotlin.String) local final inner class Inner {
|
||||
public constructor Inner()
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
// CLASS_NAME_SUFFIX: $main$1
|
||||
|
||||
fun main() = object : Runnable {
|
||||
override fun run() { }
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
local final class `_DefaultPackage$anonymousObject$*$main$1` : java.lang.Runnable
|
||||
|
||||
public constructor `_DefaultPackage$anonymousObject$*$main$1`()
|
||||
public open override /*1*/ fun run(): kotlin.Unit
|
||||
@@ -0,0 +1,22 @@
|
||||
// CLASS_NAME_SUFFIX: Deepest
|
||||
|
||||
fun main() {
|
||||
class Local {
|
||||
inner class Inner {
|
||||
val prop = object {
|
||||
fun foo() {
|
||||
fun bar() {
|
||||
class DeepLocal {
|
||||
inner class Deepest {
|
||||
fun local(): Local = Local()
|
||||
fun inner(): Inner = Inner()
|
||||
fun deep(): DeepLocal = DeepLocal()
|
||||
fun deepest(): Deepest? = Deepest()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
local final inner class Deepest
|
||||
|
||||
public constructor Deepest()
|
||||
internal final fun deep(): `_DefaultPackage$deepInnerChain$*$main$Local$Inner$prop$1$foo$1$DeepLocal`
|
||||
internal final fun deepest(): `_DefaultPackage$deepInnerChain$*$main$Local$Inner$prop$1$foo$1$DeepLocal`.Deepest?
|
||||
internal final fun inner(): `_DefaultPackage$deepInnerChain$*$main$Local`.Inner
|
||||
internal final fun local(): `_DefaultPackage$deepInnerChain$*$main$Local`
|
||||
@@ -0,0 +1,10 @@
|
||||
// CLASS_NAME_SUFFIX: main$Local$Inner
|
||||
|
||||
fun main() {
|
||||
class Local {
|
||||
inner class Inner {
|
||||
fun local(l: Local) {}
|
||||
fun inner(i: Inner) {}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
local final inner class Inner
|
||||
|
||||
public constructor Inner()
|
||||
internal final fun inner(/*0*/ i: `_DefaultPackage$innerOfLocal$*$main$Local`.Inner): kotlin.Unit
|
||||
internal final fun local(/*0*/ l: `_DefaultPackage$innerOfLocal$*$main$Local`): kotlin.Unit
|
||||
@@ -0,0 +1,13 @@
|
||||
// CLASS_NAME_SUFFIX: $main$Local
|
||||
|
||||
fun main() {
|
||||
open class Local {
|
||||
fun param(l: Local) {}
|
||||
|
||||
val returnType: Local = this
|
||||
|
||||
fun Local.receiver() = this
|
||||
|
||||
fun <T : Local, U : T> generic(t: T): U = null!!
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
local open class `_DefaultPackage$localClassInSignature$*$main$Local`
|
||||
|
||||
public constructor `_DefaultPackage$localClassInSignature$*$main$Local`()
|
||||
internal final val returnType: `_DefaultPackage$localClassInSignature$*$main$Local`
|
||||
internal final fun </*0*/ T : `_DefaultPackage$localClassInSignature$*$main$Local`, /*1*/ U : T> generic(/*0*/ t: T): U
|
||||
internal final fun param(/*0*/ l: `_DefaultPackage$localClassInSignature$*$main$Local`): kotlin.Unit
|
||||
internal final fun `_DefaultPackage$localClassInSignature$*$main$Local`.receiver(): `_DefaultPackage$localClassInSignature$*$main$Local`
|
||||
@@ -0,0 +1,7 @@
|
||||
// CLASS_NAME_SUFFIX: A$foo$Local
|
||||
|
||||
class A {
|
||||
fun foo() {
|
||||
class Local
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
local final class `A$foo$Local`
|
||||
|
||||
public constructor `A$foo$Local`()
|
||||
@@ -0,0 +1,5 @@
|
||||
// CLASS_NAME_SUFFIX: $main$Local
|
||||
|
||||
fun main() {
|
||||
class Local
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
local final class `_DefaultPackage$simpleInTopLevelFunction$*$main$Local`
|
||||
|
||||
public constructor `_DefaultPackage$simpleInTopLevelFunction$*$main$Local`()
|
||||
Reference in New Issue
Block a user