aboutsummaryrefslogtreecommitdiff
path: root/testes/locals.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testes/locals.lua19
1 files changed, 19 insertions, 0 deletions
diff --git a/testes/locals.lua b/testes/locals.lua
index 6cd10547..e9718341 100644
--- a/testes/locals.lua
+++ b/testes/locals.lua
@@ -1179,6 +1179,25 @@ if rawget(_G, "T") then
1179end 1179end
1180 1180
1181 1181
1182do
1183 -- detail in scopes of variables in the loop of 'repeat-until'
1184 local res = {}
1185 local function foo (a)
1186 repeat
1187 local x
1188 local i <close> = setmetatable({}, {__close = function ()
1189 res[#res + 1] = debug.getlocal(2, 2) -- get 'x'
1190 res[#res + 1] = debug.getlocal(2, 3) -- get 'i'
1191 a = true
1192 end})
1193 until a
1194 end
1195 foo(false)
1196 -- loop variables still in scope when closing 'i', both when 'repeat'
1197 -- repeats and when 'repeat' stops.
1198 assert(res[1] == "x" and res[2] == "i" and res[3] == "x" and res[4] == "i")
1199end
1200
1182 1201
1183-- to-be-closed variables in generic for loops 1202-- to-be-closed variables in generic for loops
1184do 1203do