feat: add closure test for shadowing closed-over variable with local
Add a new test case `shadow_closure_with_local.wren` that verifies a closed-over variable can be shadowed by a local variable in an inner scope within the same closure. The test ensures that the outer closure variable retains its value outside the inner scope after the shadowing local goes out of scope. Also remove an incomplete TODO comment from `reuse_closure_slot.wren` and add a detailed TODO comment in `wren_compiler.c` discussing the design trade-off between treating capitalized names as globals versus implicit `this` calls when walking the scope chain.
This commit is contained in:
@@ -15,4 +15,3 @@
|
||||
}
|
||||
|
||||
// TODO: Maximum number of closed-over variables (directly and/or indirect).
|
||||
// TODO: Shadow variable used in closure.
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
var foo = "closure"
|
||||
new Fn {
|
||||
{
|
||||
IO.print(foo) // expect: closure
|
||||
var foo = "shadow"
|
||||
IO.print(foo) // expect: shadow
|
||||
}
|
||||
IO.print(foo) // expect: closure
|
||||
}.call
|
||||
}
|
||||
Reference in New Issue
Block a user