Recapture shared variables when calling local class constructor

When a local function or class A creates an instance of a local class B
capturing an outer variable 'x', it should use ref for 'x', but not the
value of 'x'.
This commit is contained in:
Dmitry Petrov
2017-10-13 12:59:16 +03:00
parent 7a156e4407
commit cbef372e69
8 changed files with 127 additions and 5 deletions
@@ -0,0 +1,15 @@
fun box(): String {
var x = ""
class CapturesX {
override fun toString() = x
}
fun outerFun1(): CapturesX {
fun localFun() = CapturesX()
return localFun()
}
x = "OK"
return outerFun1().toString()
}