Files
kotlin-fork/compiler/testData/codegen/boxWithStdlib/reflection/enclosing/lambda/lambdaInObjectLiteralSuperCall.kt
T
Alexander Udalov baea660a0b Rewrite hack in codegen for lambdas in anonymous object super calls
Synthetic ClassDescriptor created in codegen for lambdas and such should have
correct container, because it'll be used in generation of InnerClasses
2015-01-16 21:48:57 +03:00

22 lines
750 B
Kotlin

open class C(val a: Any)
fun box(): String {
val l = object : C({}) {
}
val javaClass = l.a.javaClass
if (javaClass.getEnclosingConstructor() != null) return "ctor should be null"
val enclosingMethod = javaClass.getEnclosingMethod()!!.getName()
if (enclosingMethod != "box") return "method: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || enclosingClass != l.javaClass.getEnclosingClass()!!.getName())
return "enclosing class: $enclosingClass"
val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"
return "OK"
}