diff options
author | Li Jin <dragon-fly@qq.com> | 2024-05-16 17:25:37 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2024-05-16 17:25:37 +0800 |
commit | fe317e2bdd9cb60b3c7cd347e21ce65cf90396e7 (patch) | |
tree | ed0b010b08f91fdb2bc9a4df18e8d638d47b1c7a /spec | |
parent | c857b3b83c7485693bfcc2b65e9e6e95107396f4 (diff) | |
download | yuescript-fe317e2bdd9cb60b3c7cd347e21ce65cf90396e7.tar.gz yuescript-fe317e2bdd9cb60b3c7cd347e21ce65cf90396e7.tar.bz2 yuescript-fe317e2bdd9cb60b3c7cd347e21ce65cf90396e7.zip |
fix ambiguous issue in try-catch syntax.v0.23.4
Diffstat (limited to 'spec')
-rw-r--r-- | spec/inputs/try_catch.yue | 86 | ||||
-rw-r--r-- | spec/outputs/5.1/try_catch.lua | 141 | ||||
-rw-r--r-- | spec/outputs/try_catch.lua | 117 | ||||
-rw-r--r-- | spec/outputs/unicode/try_catch.lua | 39 |
4 files changed, 215 insertions, 168 deletions
diff --git a/spec/inputs/try_catch.yue b/spec/inputs/try_catch.yue index ccb3f52..419eef4 100644 --- a/spec/inputs/try_catch.yue +++ b/spec/inputs/try_catch.yue | |||
@@ -1,60 +1,60 @@ | |||
1 | try | 1 | f = -> |
2 | func 1, 2, 3 | 2 | try |
3 | catch err | ||
4 | print err | ||
5 | |||
6 | try func 1, 2, 3 | ||
7 | catch err | ||
8 | print err | ||
9 | |||
10 | try | ||
11 | print "trying" | ||
12 | func 1, 2, 3 | ||
13 | |||
14 | do | ||
15 | success, result = try | ||
16 | func 1, 2, 3 | 3 | func 1, 2, 3 |
17 | catch err | 4 | catch err |
18 | print err | 5 | print err |
19 | 6 | ||
20 | success, result = try func 1, 2, 3 | 7 | try func 1, 2, 3 |
8 | catch err | ||
9 | print err | ||
21 | 10 | ||
22 | try tb.func | 11 | try |
23 | try tb.func! | 12 | print "trying" |
24 | try tb.func() | 13 | func 1, 2, 3 |
25 | try (tb.func!) | ||
26 | try (tb\func(1, 2, 3)) | ||
27 | 14 | ||
28 | try tb.func 1 | 15 | do |
29 | try tb.func(1) | 16 | success, result = try |
17 | func 1, 2, 3 | ||
18 | catch err | ||
19 | print err | ||
30 | 20 | ||
31 | if (try func 1 | 21 | success, result = try func 1, 2, 3 |
32 | catch err | ||
33 | print err) | ||
34 | print "OK" | ||
35 | 22 | ||
36 | if try (func 1) | 23 | try tb.func |
37 | catch err | 24 | try tb.func! |
38 | print err | 25 | try tb.func() |
39 | print "OK" | 26 | try (tb.func!) |
27 | try (tb\func(1, 2, 3)) | ||
40 | 28 | ||
41 | do | 29 | try tb.func 1 |
42 | if success, result := try func "abc", 123 | 30 | try tb.func(1) |
43 | print result | ||
44 | 31 | ||
45 | success, result = try func "abc", 123 | 32 | if (try func 1 |
46 | catch err | 33 | catch err |
47 | print err | 34 | print err) |
35 | print "OK" | ||
48 | 36 | ||
49 | print result if success, result := try func "abc", 123 | 37 | if try (func 1) |
50 | catch err | 38 | catch err |
51 | print err | 39 | print err |
40 | print "OK" | ||
52 | 41 | ||
53 | do | 42 | do |
54 | try | 43 | if success, result := try func "abc", 123 |
55 | func 1, 2, 3 | 44 | print result |
56 | 45 | ||
57 | try func 1, 2, 3 | 46 | success, result = try func "abc", 123 |
47 | catch err | ||
48 | print err | ||
49 | |||
50 | print result if success, result := try func "abc", 123 | ||
51 | catch err | ||
52 | print err | ||
53 | |||
54 | do | ||
55 | try | ||
56 | func 1, 2, 3 | ||
58 | 57 | ||
59 | nil | 58 | try func 1, 2, 3 |
60 | 59 | ||
60 | nil | ||
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 @@ | |||
1 | xpcall(function() | 1 | local _anon_func_0 = function(func, print) |
2 | return func(1, 2, 3) | ||
3 | end, function(err) | ||
4 | return print(err) | ||
5 | end) | ||
6 | xpcall(function() | ||
7 | return func(1, 2, 3) | ||
8 | end, function(err) | ||
9 | return print(err) | ||
10 | end) | ||
11 | pcall(function() | ||
12 | print("trying") | 2 | print("trying") |
13 | return func(1, 2, 3) | 3 | return func(1, 2, 3) |
14 | end) | 4 | end |
15 | do | 5 | local _anon_func_1 = function(tb) |
16 | local success, result = xpcall(function() | 6 | return tb.func |
7 | end | ||
8 | local _anon_func_2 = function(tb) | ||
9 | return tb.func() | ||
10 | end | ||
11 | local _anon_func_3 = function(tb) | ||
12 | return tb.func() | ||
13 | end | ||
14 | local _anon_func_4 = function(tb) | ||
15 | return tb.func() | ||
16 | end | ||
17 | local _anon_func_5 = function(tb) | ||
18 | return tb:func(1, 2, 3) | ||
19 | end | ||
20 | local _anon_func_6 = function(tb) | ||
21 | return tb.func(1) | ||
22 | end | ||
23 | local _anon_func_7 = function(tb) | ||
24 | return tb.func(1) | ||
25 | end | ||
26 | local f | ||
27 | f = function() | ||
28 | xpcall(function() | ||
17 | return func(1, 2, 3) | 29 | return func(1, 2, 3) |
18 | end, function(err) | 30 | end, function(err) |
19 | return print(err) | 31 | return print(err) |
20 | end) | 32 | end) |
21 | success, result = pcall(func, 1, 2, 3) | 33 | xpcall(function() |
22 | end | 34 | return func(1, 2, 3) |
23 | pcall(tb.func) | 35 | end, function(err) |
24 | pcall(tb.func) | 36 | return print(err) |
25 | pcall(tb.func) | 37 | end) |
26 | pcall((tb.func)) | 38 | pcall(_anon_func_0, func, print) |
27 | pcall(((function() | ||
28 | local _base_0 = tb | ||
29 | local _fn_0 = _base_0.func | ||
30 | return _fn_0 and function(...) | ||
31 | return _fn_0(_base_0, ...) | ||
32 | end | ||
33 | end)()), 1, 2, 3) | ||
34 | pcall(tb.func, 1) | ||
35 | pcall(tb.func, 1) | ||
36 | if (xpcall(function() | ||
37 | return func(1) | ||
38 | end, function(err) | ||
39 | return print(err) | ||
40 | end)) then | ||
41 | print("OK") | ||
42 | end | ||
43 | if xpcall(function() | ||
44 | return func(1) | ||
45 | end, function(err) | ||
46 | return print(err) | ||
47 | end) then | ||
48 | print("OK") | ||
49 | end | ||
50 | do | ||
51 | do | 39 | do |
52 | local success, result = pcall(func, "abc", 123) | 40 | local success, result = xpcall(function() |
53 | if success then | 41 | return func(1, 2, 3) |
54 | print(result) | 42 | end, function(err) |
55 | end | 43 | return print(err) |
44 | end) | ||
45 | success, result = pcall(func, 1, 2, 3) | ||
56 | end | 46 | end |
57 | local success, result = xpcall(function() | 47 | pcall(_anon_func_1, tb) |
58 | return func("abc", 123) | 48 | pcall(_anon_func_2, tb) |
49 | pcall(_anon_func_3, tb) | ||
50 | pcall(_anon_func_4, tb) | ||
51 | pcall(_anon_func_5, tb) | ||
52 | pcall(_anon_func_6, tb) | ||
53 | pcall(_anon_func_7, tb) | ||
54 | if (xpcall(function() | ||
55 | return func(1) | ||
59 | end, function(err) | 56 | end, function(err) |
60 | return print(err) | 57 | return print(err) |
61 | end) | 58 | end)) then |
62 | success, result = xpcall(function() | 59 | print("OK") |
63 | return func("abc", 123) | 60 | end |
61 | if xpcall(function() | ||
62 | return func(1) | ||
64 | end, function(err) | 63 | end, function(err) |
65 | return print(err) | 64 | return print(err) |
66 | end) | 65 | end) then |
67 | if success then | 66 | print("OK") |
68 | print(result) | ||
69 | end | 67 | end |
68 | do | ||
69 | do | ||
70 | local success, result = pcall(func, "abc", 123) | ||
71 | if success then | ||
72 | print(result) | ||
73 | end | ||
74 | end | ||
75 | local success, result = xpcall(function() | ||
76 | return func("abc", 123) | ||
77 | end, function(err) | ||
78 | return print(err) | ||
79 | end) | ||
80 | success, result = xpcall(function() | ||
81 | return func("abc", 123) | ||
82 | end, function(err) | ||
83 | return print(err) | ||
84 | end) | ||
85 | if success then | ||
86 | print(result) | ||
87 | end | ||
88 | end | ||
89 | do | ||
90 | pcall(func, 1, 2, 3) | ||
91 | pcall(func, 1, 2, 3) | ||
92 | end | ||
93 | return nil | ||
70 | end | 94 | end |
71 | do | ||
72 | pcall(func, 1, 2, 3) | ||
73 | pcall(func, 1, 2, 3) | ||
74 | end | ||
75 | 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 @@ | |||
1 | xpcall(func, function(err) | 1 | local _anon_func_0 = function(func, print) |
2 | return print(err) | ||
3 | end, 1, 2, 3) | ||
4 | xpcall(func, function(err) | ||
5 | return print(err) | ||
6 | end, 1, 2, 3) | ||
7 | pcall(function() | ||
8 | print("trying") | 2 | print("trying") |
9 | return func(1, 2, 3) | 3 | return func(1, 2, 3) |
10 | end) | 4 | end |
11 | do | 5 | local _anon_func_1 = function(tb) |
12 | local success, result = xpcall(func, function(err) | 6 | return tb.func |
7 | end | ||
8 | local _anon_func_2 = function(tb) | ||
9 | return tb.func() | ||
10 | end | ||
11 | local _anon_func_3 = function(tb) | ||
12 | return tb.func() | ||
13 | end | ||
14 | local _anon_func_4 = function(tb) | ||
15 | return tb.func() | ||
16 | end | ||
17 | local _anon_func_5 = function(tb) | ||
18 | return tb:func(1, 2, 3) | ||
19 | end | ||
20 | local _anon_func_6 = function(tb) | ||
21 | return tb.func(1) | ||
22 | end | ||
23 | local _anon_func_7 = function(tb) | ||
24 | return tb.func(1) | ||
25 | end | ||
26 | local f | ||
27 | f = function() | ||
28 | xpcall(func, function(err) | ||
29 | return print(err) | ||
30 | end, 1, 2, 3) | ||
31 | xpcall(func, function(err) | ||
13 | return print(err) | 32 | return print(err) |
14 | end, 1, 2, 3) | 33 | end, 1, 2, 3) |
15 | success, result = pcall(func, 1, 2, 3) | 34 | pcall(_anon_func_0, func, print) |
16 | end | 35 | do |
17 | pcall(tb.func) | 36 | local success, result = xpcall(func, function(err) |
18 | pcall(tb.func) | 37 | return print(err) |
19 | pcall(tb.func) | 38 | end, 1, 2, 3) |
20 | pcall((tb.func)) | 39 | success, result = pcall(func, 1, 2, 3) |
21 | pcall(((function() | 40 | end |
22 | local _base_0 = tb | 41 | pcall(_anon_func_1, tb) |
23 | local _fn_0 = _base_0.func | 42 | pcall(_anon_func_2, tb) |
24 | return _fn_0 and function(...) | 43 | pcall(_anon_func_3, tb) |
25 | return _fn_0(_base_0, ...) | 44 | pcall(_anon_func_4, tb) |
45 | pcall(_anon_func_5, tb) | ||
46 | pcall(_anon_func_6, tb) | ||
47 | pcall(_anon_func_7, tb) | ||
48 | if (xpcall(func, function(err) | ||
49 | return print(err) | ||
50 | end, 1)) then | ||
51 | print("OK") | ||
52 | end | ||
53 | if xpcall((func), function(err) | ||
54 | return print(err) | ||
55 | end, 1) then | ||
56 | print("OK") | ||
26 | end | 57 | end |
27 | end)()), 1, 2, 3) | ||
28 | pcall(tb.func, 1) | ||
29 | pcall(tb.func, 1) | ||
30 | if (xpcall(func, function(err) | ||
31 | return print(err) | ||
32 | end, 1)) then | ||
33 | print("OK") | ||
34 | end | ||
35 | if xpcall((func), function(err) | ||
36 | return print(err) | ||
37 | end, 1) then | ||
38 | print("OK") | ||
39 | end | ||
40 | do | ||
41 | do | 58 | do |
42 | local success, result = pcall(func, "abc", 123) | 59 | do |
60 | local success, result = pcall(func, "abc", 123) | ||
61 | if success then | ||
62 | print(result) | ||
63 | end | ||
64 | end | ||
65 | local success, result = xpcall(func, function(err) | ||
66 | return print(err) | ||
67 | end, "abc", 123) | ||
68 | success, result = xpcall(func, function(err) | ||
69 | return print(err) | ||
70 | end, "abc", 123) | ||
43 | if success then | 71 | if success then |
44 | print(result) | 72 | print(result) |
45 | end | 73 | end |
46 | end | 74 | end |
47 | local success, result = xpcall(func, function(err) | 75 | do |
48 | return print(err) | 76 | pcall(func, 1, 2, 3) |
49 | end, "abc", 123) | 77 | pcall(func, 1, 2, 3) |
50 | success, result = xpcall(func, function(err) | ||
51 | return print(err) | ||
52 | end, "abc", 123) | ||
53 | if success then | ||
54 | print(result) | ||
55 | end | 78 | end |
79 | return nil | ||
56 | end | 80 | end |
57 | do | ||
58 | pcall(func, 1, 2, 3) | ||
59 | pcall(func, 1, 2, 3) | ||
60 | end | ||
61 | 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 | |||
14 | end, 1, 2, 3) | 14 | end, 1, 2, 3) |
15 | _u6210_u529f, _u7ed3_u679c = pcall(_u51fd_u6570, 1, 2, 3) | 15 | _u6210_u529f, _u7ed3_u679c = pcall(_u51fd_u6570, 1, 2, 3) |
16 | end | 16 | end |
17 | pcall(_u8868["函数"]) | 17 | pcall(function() |
18 | pcall(_u8868["函数"]) | 18 | return _u8868["函数"] |
19 | pcall(_u8868["函数"]) | 19 | end) |
20 | pcall((_u8868["函数"])) | 20 | pcall(function() |
21 | pcall(((function() | 21 | return _u8868["函数"]() |
22 | local _base_0 = _u8868 | 22 | end) |
23 | local _fn_0 = _base_0["函数"] | 23 | pcall(function() |
24 | return _fn_0 and function(...) | 24 | return _u8868["函数"]() |
25 | return _fn_0(_base_0, ...) | 25 | end) |
26 | end | 26 | pcall(function() |
27 | end)()), 1, 2, 3) | 27 | return _u8868["函数"]() |
28 | pcall(_u8868["函数"], 1) | 28 | end) |
29 | pcall(_u8868["函数"], 1) | 29 | pcall(function() |
30 | local _call_0 = _u8868 | ||
31 | return _call_0["函数"](_call_0, 1, 2, 3) | ||
32 | end) | ||
33 | pcall(function() | ||
34 | return _u8868["函数"](1) | ||
35 | end) | ||
36 | pcall(function() | ||
37 | return _u8868["函数"](1) | ||
38 | end) | ||
30 | if (xpcall(_u51fd_u6570, function(_u9519_u8bef) | 39 | if (xpcall(_u51fd_u6570, function(_u9519_u8bef) |
31 | return _u6253_u5370(_u9519_u8bef) | 40 | return _u6253_u5370(_u9519_u8bef) |
32 | end, 1)) then | 41 | end, 1)) then |
@@ -55,7 +64,7 @@ do | |||
55 | end | 64 | end |
56 | end | 65 | end |
57 | do | 66 | do |
58 | pcall(_u51fd_u6570, 1, 2, 3) | 67 | pcall(_u51fd_u6570, 1, 2, 3) |
59 | pcall(_u51fd_u6570, 1, 2, 3) | 68 | pcall(_u51fd_u6570, 1, 2, 3) |
60 | end | 69 | end |
61 | return nil | 70 | return nil |