From 06bf167924d04aaefe80d6e4ead40989a447ea34 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Fri, 17 May 2024 16:38:44 +0800 Subject: fix more cases in try-catch syntax. --- spec/outputs/5.1/attrib.lua | 4 +++- spec/outputs/5.1/try_catch.lua | 47 +++++++++++++++++++++++++++++------------- 2 files changed, 36 insertions(+), 15 deletions(-) (limited to 'spec/outputs/5.1') diff --git a/spec/outputs/5.1/attrib.lua b/spec/outputs/5.1/attrib.lua index 9cacd97..8361b24 100644 --- a/spec/outputs/5.1/attrib.lua +++ b/spec/outputs/5.1/attrib.lua @@ -199,7 +199,9 @@ do end }) local _close_2 = assert(getmetatable(_).__close) - return _anon_func_9(_, _close_2, error, pcall(print, "third")) + return _anon_func_9(_, _close_2, error, pcall(function() + return print("third") + end)) end)) end)) end diff --git a/spec/outputs/5.1/try_catch.lua b/spec/outputs/5.1/try_catch.lua index f63cd91..d4c80c1 100644 --- a/spec/outputs/5.1/try_catch.lua +++ b/spec/outputs/5.1/try_catch.lua @@ -1,9 +1,8 @@ -local _anon_func_0 = function(func, print) - print("trying") - return func(1, 2, 3) +local _anon_func_0 = function(tb) + return tb.func end local _anon_func_1 = function(tb) - return tb.func + return tb.func() end local _anon_func_2 = function(tb) return tb.func() @@ -12,16 +11,16 @@ local _anon_func_3 = function(tb) return tb.func() end local _anon_func_4 = function(tb) - return tb.func() + return tb:func(1, 2, 3) end local _anon_func_5 = function(tb) - return tb:func(1, 2, 3) + return tb.func(1) end local _anon_func_6 = function(tb) return tb.func(1) end -local _anon_func_7 = function(tb) - return tb.func(1) +local _anon_func_7 = function(a, b, c, tb) + return tb.f(a, b, c) end local f f = function() @@ -35,22 +34,28 @@ f = function() end, function(err) return print(err) end) - pcall(_anon_func_0, func, print) + pcall(function() + print("trying") + return func(1, 2, 3) + end) do local success, result = xpcall(function() return func(1, 2, 3) end, function(err) return print(err) end) - success, result = pcall(func, 1, 2, 3) + success, result = pcall(function() + return func(1, 2, 3) + end) end + local tb = { } + pcall(_anon_func_0, tb) pcall(_anon_func_1, tb) pcall(_anon_func_2, tb) pcall(_anon_func_3, tb) pcall(_anon_func_4, tb) pcall(_anon_func_5, tb) pcall(_anon_func_6, tb) - pcall(_anon_func_7, tb) if (xpcall(function() return func(1) end, function(err) @@ -67,7 +72,9 @@ f = function() end do do - local success, result = pcall(func, "abc", 123) + local success, result = pcall(function() + return func("abc", 123) + end) if success then print(result) end @@ -87,8 +94,20 @@ f = function() end end do - pcall(func, 1, 2, 3) - pcall(func, 1, 2, 3) + pcall(function() + return func(1, 2, 3) + end) + pcall(function() + return func(1, 2, 3) + end) + end + do + x(function() + local tb, a, b, c + f = function() + return pcall(_anon_func_7, a, b, c, tb) + end + end) end return nil end -- cgit v1.2.3-55-g6feb