From fe317e2bdd9cb60b3c7cd347e21ce65cf90396e7 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Thu, 16 May 2024 17:25:37 +0800 Subject: fix ambiguous issue in try-catch syntax. --- spec/outputs/5.1/try_catch.lua | 141 +++++++++++++++++++++---------------- spec/outputs/try_catch.lua | 117 +++++++++++++++++------------- spec/outputs/unicode/try_catch.lua | 39 ++++++---- 3 files changed, 172 insertions(+), 125 deletions(-) (limited to 'spec/outputs') diff --git a/spec/outputs/5.1/try_catch.lua b/spec/outputs/5.1/try_catch.lua index 9972dca..f63cd91 100644 --- a/spec/outputs/5.1/try_catch.lua +++ b/spec/outputs/5.1/try_catch.lua @@ -1,75 +1,94 @@ -xpcall(function() - return func(1, 2, 3) -end, function(err) - return print(err) -end) -xpcall(function() - return func(1, 2, 3) -end, function(err) - return print(err) -end) -pcall(function() +local _anon_func_0 = function(func, print) print("trying") return func(1, 2, 3) -end) -do - local success, result = xpcall(function() +end +local _anon_func_1 = function(tb) + return tb.func +end +local _anon_func_2 = function(tb) + return tb.func() +end +local _anon_func_3 = function(tb) + return tb.func() +end +local _anon_func_4 = function(tb) + return tb.func() +end +local _anon_func_5 = function(tb) + return tb:func(1, 2, 3) +end +local _anon_func_6 = function(tb) + return tb.func(1) +end +local _anon_func_7 = function(tb) + return tb.func(1) +end +local f +f = function() + xpcall(function() return func(1, 2, 3) end, function(err) return print(err) end) - success, result = pcall(func, 1, 2, 3) -end -pcall(tb.func) -pcall(tb.func) -pcall(tb.func) -pcall((tb.func)) -pcall(((function() - local _base_0 = tb - local _fn_0 = _base_0.func - return _fn_0 and function(...) - return _fn_0(_base_0, ...) - end -end)()), 1, 2, 3) -pcall(tb.func, 1) -pcall(tb.func, 1) -if (xpcall(function() - return func(1) -end, function(err) - return print(err) -end)) then - print("OK") -end -if xpcall(function() - return func(1) -end, function(err) - return print(err) -end) then - print("OK") -end -do + xpcall(function() + return func(1, 2, 3) + end, function(err) + return print(err) + end) + pcall(_anon_func_0, func, print) do - local success, result = pcall(func, "abc", 123) - if success then - print(result) - end + local success, result = xpcall(function() + return func(1, 2, 3) + end, function(err) + return print(err) + end) + success, result = pcall(func, 1, 2, 3) end - local success, result = xpcall(function() - return func("abc", 123) + 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) return print(err) - end) - success, result = xpcall(function() - return func("abc", 123) + end)) then + print("OK") + end + if xpcall(function() + return func(1) end, function(err) return print(err) - end) - if success then - print(result) + end) then + print("OK") end + do + do + local success, result = pcall(func, "abc", 123) + if success then + print(result) + end + end + local success, result = xpcall(function() + return func("abc", 123) + end, function(err) + return print(err) + end) + success, result = xpcall(function() + return func("abc", 123) + end, function(err) + return print(err) + end) + if success then + print(result) + end + end + do + pcall(func, 1, 2, 3) + pcall(func, 1, 2, 3) + end + return nil end -do -pcall(func, 1, 2, 3) -pcall(func, 1, 2, 3) -end -return nil diff --git a/spec/outputs/try_catch.lua b/spec/outputs/try_catch.lua index de52c6c..3c3dd3c 100644 --- a/spec/outputs/try_catch.lua +++ b/spec/outputs/try_catch.lua @@ -1,61 +1,80 @@ -xpcall(func, function(err) - return print(err) -end, 1, 2, 3) -xpcall(func, function(err) - return print(err) -end, 1, 2, 3) -pcall(function() +local _anon_func_0 = function(func, print) print("trying") return func(1, 2, 3) -end) -do - local success, result = xpcall(func, function(err) +end +local _anon_func_1 = function(tb) + return tb.func +end +local _anon_func_2 = function(tb) + return tb.func() +end +local _anon_func_3 = function(tb) + return tb.func() +end +local _anon_func_4 = function(tb) + return tb.func() +end +local _anon_func_5 = function(tb) + return tb:func(1, 2, 3) +end +local _anon_func_6 = function(tb) + return tb.func(1) +end +local _anon_func_7 = function(tb) + return tb.func(1) +end +local f +f = function() + xpcall(func, function(err) + return print(err) + end, 1, 2, 3) + xpcall(func, function(err) return print(err) end, 1, 2, 3) - success, result = pcall(func, 1, 2, 3) -end -pcall(tb.func) -pcall(tb.func) -pcall(tb.func) -pcall((tb.func)) -pcall(((function() - local _base_0 = tb - local _fn_0 = _base_0.func - return _fn_0 and function(...) - return _fn_0(_base_0, ...) + pcall(_anon_func_0, func, print) + do + local success, result = xpcall(func, function(err) + return print(err) + end, 1, 2, 3) + success, result = pcall(func, 1, 2, 3) + end + 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(func, function(err) + return print(err) + end, 1)) then + print("OK") + end + if xpcall((func), function(err) + return print(err) + end, 1) then + print("OK") end -end)()), 1, 2, 3) -pcall(tb.func, 1) -pcall(tb.func, 1) -if (xpcall(func, function(err) - return print(err) -end, 1)) then - print("OK") -end -if xpcall((func), function(err) - return print(err) -end, 1) then - print("OK") -end -do do - local success, result = pcall(func, "abc", 123) + do + local success, result = pcall(func, "abc", 123) + if success then + print(result) + end + end + local success, result = xpcall(func, function(err) + return print(err) + end, "abc", 123) + success, result = xpcall(func, function(err) + return print(err) + end, "abc", 123) if success then print(result) end end - local success, result = xpcall(func, function(err) - return print(err) - end, "abc", 123) - success, result = xpcall(func, function(err) - return print(err) - end, "abc", 123) - if success then - print(result) + do + pcall(func, 1, 2, 3) + pcall(func, 1, 2, 3) end + return nil end -do -pcall(func, 1, 2, 3) -pcall(func, 1, 2, 3) -end -return nil diff --git a/spec/outputs/unicode/try_catch.lua b/spec/outputs/unicode/try_catch.lua index fde63d6..7d95f9b 100644 --- a/spec/outputs/unicode/try_catch.lua +++ b/spec/outputs/unicode/try_catch.lua @@ -14,19 +14,28 @@ do end, 1, 2, 3) _u6210_u529f, _u7ed3_u679c = pcall(_u51fd_u6570, 1, 2, 3) end -pcall(_u8868["函数"]) -pcall(_u8868["函数"]) -pcall(_u8868["函数"]) -pcall((_u8868["函数"])) -pcall(((function() - local _base_0 = _u8868 - local _fn_0 = _base_0["函数"] - return _fn_0 and function(...) - return _fn_0(_base_0, ...) - end -end)()), 1, 2, 3) -pcall(_u8868["函数"], 1) -pcall(_u8868["函数"], 1) +pcall(function() + return _u8868["函数"] +end) +pcall(function() + return _u8868["函数"]() +end) +pcall(function() + return _u8868["函数"]() +end) +pcall(function() + return _u8868["函数"]() +end) +pcall(function() + local _call_0 = _u8868 + return _call_0["函数"](_call_0, 1, 2, 3) +end) +pcall(function() + return _u8868["函数"](1) +end) +pcall(function() + return _u8868["函数"](1) +end) if (xpcall(_u51fd_u6570, function(_u9519_u8bef) return _u6253_u5370(_u9519_u8bef) end, 1)) then @@ -55,7 +64,7 @@ do end end do -pcall(_u51fd_u6570, 1, 2, 3) -pcall(_u51fd_u6570, 1, 2, 3) + pcall(_u51fd_u6570, 1, 2, 3) + pcall(_u51fd_u6570, 1, 2, 3) end return nil -- cgit v1.2.3-55-g6feb