diff options
| author | Li Jin <dragon-fly@qq.com> | 2024-05-17 16:38:44 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2024-05-17 16:38:44 +0800 |
| commit | 06bf167924d04aaefe80d6e4ead40989a447ea34 (patch) | |
| tree | ccd2c3b62797d378ee7cc1872440483d328980ca /spec/outputs/try_catch.lua | |
| parent | fe317e2bdd9cb60b3c7cd347e21ce65cf90396e7 (diff) | |
| download | yuescript-06bf167924d04aaefe80d6e4ead40989a447ea34.tar.gz yuescript-06bf167924d04aaefe80d6e4ead40989a447ea34.tar.bz2 yuescript-06bf167924d04aaefe80d6e4ead40989a447ea34.zip | |
fix more cases in try-catch syntax.v0.23.6
Diffstat (limited to 'spec/outputs/try_catch.lua')
| -rw-r--r-- | spec/outputs/try_catch.lua | 89 |
1 files changed, 61 insertions, 28 deletions
diff --git a/spec/outputs/try_catch.lua b/spec/outputs/try_catch.lua index 3c3dd3c..d4c80c1 100644 --- a/spec/outputs/try_catch.lua +++ b/spec/outputs/try_catch.lua | |||
| @@ -1,9 +1,8 @@ | |||
| 1 | local _anon_func_0 = function(func, print) | 1 | local _anon_func_0 = function(tb) |
| 2 | print("trying") | 2 | return tb.func |
| 3 | return func(1, 2, 3) | ||
| 4 | end | 3 | end |
| 5 | local _anon_func_1 = function(tb) | 4 | local _anon_func_1 = function(tb) |
| 6 | return tb.func | 5 | return tb.func() |
| 7 | end | 6 | end |
| 8 | local _anon_func_2 = function(tb) | 7 | local _anon_func_2 = function(tb) |
| 9 | return tb.func() | 8 | return tb.func() |
| @@ -12,69 +11,103 @@ local _anon_func_3 = function(tb) | |||
| 12 | return tb.func() | 11 | return tb.func() |
| 13 | end | 12 | end |
| 14 | local _anon_func_4 = function(tb) | 13 | local _anon_func_4 = function(tb) |
| 15 | return tb.func() | 14 | return tb:func(1, 2, 3) |
| 16 | end | 15 | end |
| 17 | local _anon_func_5 = function(tb) | 16 | local _anon_func_5 = function(tb) |
| 18 | return tb:func(1, 2, 3) | 17 | return tb.func(1) |
| 19 | end | 18 | end |
| 20 | local _anon_func_6 = function(tb) | 19 | local _anon_func_6 = function(tb) |
| 21 | return tb.func(1) | 20 | return tb.func(1) |
| 22 | end | 21 | end |
| 23 | local _anon_func_7 = function(tb) | 22 | local _anon_func_7 = function(a, b, c, tb) |
| 24 | return tb.func(1) | 23 | return tb.f(a, b, c) |
| 25 | end | 24 | end |
| 26 | local f | 25 | local f |
| 27 | f = function() | 26 | f = function() |
| 28 | xpcall(func, function(err) | 27 | xpcall(function() |
| 28 | return func(1, 2, 3) | ||
| 29 | end, function(err) | ||
| 29 | return print(err) | 30 | return print(err) |
| 30 | end, 1, 2, 3) | 31 | end) |
| 31 | xpcall(func, function(err) | 32 | xpcall(function() |
| 33 | return func(1, 2, 3) | ||
| 34 | end, function(err) | ||
| 32 | return print(err) | 35 | return print(err) |
| 33 | end, 1, 2, 3) | 36 | end) |
| 34 | pcall(_anon_func_0, func, print) | 37 | pcall(function() |
| 38 | print("trying") | ||
| 39 | return func(1, 2, 3) | ||
| 40 | end) | ||
| 35 | do | 41 | do |
| 36 | local success, result = xpcall(func, function(err) | 42 | local success, result = xpcall(function() |
| 43 | return func(1, 2, 3) | ||
| 44 | end, function(err) | ||
| 37 | return print(err) | 45 | return print(err) |
| 38 | end, 1, 2, 3) | 46 | end) |
| 39 | success, result = pcall(func, 1, 2, 3) | 47 | success, result = pcall(function() |
| 48 | return func(1, 2, 3) | ||
| 49 | end) | ||
| 40 | end | 50 | end |
| 51 | local tb = { } | ||
| 52 | pcall(_anon_func_0, tb) | ||
| 41 | pcall(_anon_func_1, tb) | 53 | pcall(_anon_func_1, tb) |
| 42 | pcall(_anon_func_2, tb) | 54 | pcall(_anon_func_2, tb) |
| 43 | pcall(_anon_func_3, tb) | 55 | pcall(_anon_func_3, tb) |
| 44 | pcall(_anon_func_4, tb) | 56 | pcall(_anon_func_4, tb) |
| 45 | pcall(_anon_func_5, tb) | 57 | pcall(_anon_func_5, tb) |
| 46 | pcall(_anon_func_6, tb) | 58 | pcall(_anon_func_6, tb) |
| 47 | pcall(_anon_func_7, tb) | 59 | if (xpcall(function() |
| 48 | if (xpcall(func, function(err) | 60 | return func(1) |
| 61 | end, function(err) | ||
| 49 | return print(err) | 62 | return print(err) |
| 50 | end, 1)) then | 63 | end)) then |
| 51 | print("OK") | 64 | print("OK") |
| 52 | end | 65 | end |
| 53 | if xpcall((func), function(err) | 66 | if xpcall(function() |
| 67 | return func(1) | ||
| 68 | end, function(err) | ||
| 54 | return print(err) | 69 | return print(err) |
| 55 | end, 1) then | 70 | end) then |
| 56 | print("OK") | 71 | print("OK") |
| 57 | end | 72 | end |
| 58 | do | 73 | do |
| 59 | do | 74 | do |
| 60 | local success, result = pcall(func, "abc", 123) | 75 | local success, result = pcall(function() |
| 76 | return func("abc", 123) | ||
| 77 | end) | ||
| 61 | if success then | 78 | if success then |
| 62 | print(result) | 79 | print(result) |
| 63 | end | 80 | end |
| 64 | end | 81 | end |
| 65 | local success, result = xpcall(func, function(err) | 82 | local success, result = xpcall(function() |
| 83 | return func("abc", 123) | ||
| 84 | end, function(err) | ||
| 66 | return print(err) | 85 | return print(err) |
| 67 | end, "abc", 123) | 86 | end) |
| 68 | success, result = xpcall(func, function(err) | 87 | success, result = xpcall(function() |
| 88 | return func("abc", 123) | ||
| 89 | end, function(err) | ||
| 69 | return print(err) | 90 | return print(err) |
| 70 | end, "abc", 123) | 91 | end) |
| 71 | if success then | 92 | if success then |
| 72 | print(result) | 93 | print(result) |
| 73 | end | 94 | end |
| 74 | end | 95 | end |
| 75 | do | 96 | do |
| 76 | pcall(func, 1, 2, 3) | 97 | pcall(function() |
| 77 | pcall(func, 1, 2, 3) | 98 | return func(1, 2, 3) |
| 99 | end) | ||
| 100 | pcall(function() | ||
| 101 | return func(1, 2, 3) | ||
| 102 | end) | ||
| 103 | end | ||
| 104 | do | ||
| 105 | x(function() | ||
| 106 | local tb, a, b, c | ||
| 107 | f = function() | ||
| 108 | return pcall(_anon_func_7, a, b, c, tb) | ||
| 109 | end | ||
| 110 | end) | ||
| 78 | end | 111 | end |
| 79 | return nil | 112 | return nil |
| 80 | end | 113 | end |
