Include package part name to top level closure names

#KT-4234 Fixed
 #KT-4496 Fixed
This commit is contained in:
Alexander Udalov
2014-09-19 19:27:22 +04:00
parent 7b374b9509
commit c30aa7db84
26 changed files with 93 additions and 74 deletions

View File

@@ -6,11 +6,13 @@ fun box(): String {
val l = L()
val javaClass = l.a.javaClass
val enclosingMethod = javaClass.getEnclosingConstructor()
if (enclosingMethod?.getName() != "_DefaultPackage\$box\$L") return "ctor: $enclosingMethod"
val enclosingMethod = javaClass.getEnclosingConstructor()!!.getName()
if (!enclosingMethod.startsWith("_DefaultPackage\$") || !enclosingMethod.endsWith("\$box\$L")) return "ctor: $enclosingMethod"
val enclosingClass = javaClass.getEnclosingClass()
if (!enclosingClass!!.getName().startsWith("_DefaultPackage\$box\$L")) return "enclosing class: $enclosingClass"
val enclosingClass = javaClass.getEnclosingClass()!!.getName()
if (!enclosingClass.startsWith("_DefaultPackage\$") || !enclosingClass.endsWith("\$box\$L")) return "enclosing class: $enclosingClass"
if (enclosingMethod != enclosingClass) return "$enclosingClass != $enclosingMethod"
val declaringClass = javaClass.getDeclaringClass()
if (declaringClass != null) return "anonymous function has a declaring class: $declaringClass"