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-0.23.6.tar.gz yuescript-0.23.6.tar.bz2 yuescript-0.23.6.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 |