KT-11823 Generate proper argument for closure constructor for this as a free variable. Give some explanation for function that generates closure arguments as well as a clear name. Give explanation to some code in UsageTracker.isSingletonReceiver, augmented by a test case.

This commit is contained in:
Alexey Andreev
2016-04-21 14:57:39 +03:00
parent ab79deacbd
commit 1764000bf4
10 changed files with 98 additions and 11 deletions
@@ -0,0 +1,13 @@
package foo
object A {
val x = 23
val y = { x }
fun foo() = { x }
}
fun box(): String {
assertEquals(23, A.foo()())
assertEquals(23, A.y())
return "OK"
}
@@ -0,0 +1,13 @@
// See KT-11823
package foo
class Outer(val x: Int) {
inner class Inner() {
fun foo() = { x }
}
}
fun box(): String {
assertEquals(23, Outer(23).Inner().foo()())
return "OK"
}
@@ -0,0 +1,18 @@
// See KT-11823
package foo
class Outer(val x: Int) {
inner class Inner() {
fun foo(): Int {
class A {
fun bar() = x
}
return A().bar()
}
}
}
fun box(): String {
assertEquals(23, Outer(23).Inner().foo())
return "OK"
}