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:
+15
@@ -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()
|
||||
}
|
||||
Reference in New Issue
Block a user