diff options
Diffstat (limited to 'testes')
-rw-r--r-- | testes/locals.lua | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/testes/locals.lua b/testes/locals.lua index 2c67edbd..6aad5d25 100644 --- a/testes/locals.lua +++ b/testes/locals.lua | |||
@@ -335,6 +335,29 @@ do | |||
335 | end | 335 | end |
336 | 336 | ||
337 | 337 | ||
338 | do | ||
339 | -- bug in 5.4.3: previous condition (calls cannot be tail in the | ||
340 | -- scope of to-be-closed variables) must be valid for tbc variables | ||
341 | -- created by 'for' loops. | ||
342 | |||
343 | local closed = false | ||
344 | |||
345 | local function foo () | ||
346 | return function () return true end, 0, 0, | ||
347 | func2close(function () closed = true end) | ||
348 | end | ||
349 | |||
350 | local function tail() return closed end | ||
351 | |||
352 | local function foo1 () | ||
353 | for k in foo() do return tail() end | ||
354 | end | ||
355 | |||
356 | assert(foo1() == false) | ||
357 | assert(closed == true) | ||
358 | end | ||
359 | |||
360 | |||
338 | do print("testing errors in __close") | 361 | do print("testing errors in __close") |
339 | 362 | ||
340 | -- original error is in __close | 363 | -- original error is in __close |