aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2024-05-16 17:25:37 +0800
committerLi Jin <dragon-fly@qq.com>2024-05-16 17:25:37 +0800
commitfe317e2bdd9cb60b3c7cd347e21ce65cf90396e7 (patch)
treeed0b010b08f91fdb2bc9a4df18e8d638d47b1c7a /spec
parentc857b3b83c7485693bfcc2b65e9e6e95107396f4 (diff)
downloadyuescript-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.yue86
-rw-r--r--spec/outputs/5.1/try_catch.lua141
-rw-r--r--spec/outputs/try_catch.lua117
-rw-r--r--spec/outputs/unicode/try_catch.lua39
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 @@
1try 1f = ->
2 func 1, 2, 3 2 try
3catch err
4 print err
5
6try func 1, 2, 3
7catch err
8 print err
9
10try
11 print "trying"
12 func 1, 2, 3
13
14do
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
22try tb.func 11 try
23try tb.func! 12 print "trying"
24try tb.func() 13 func 1, 2, 3
25try (tb.func!)
26try (tb\func(1, 2, 3))
27 14
28try tb.func 1 15 do
29try tb.func(1) 16 success, result = try
17 func 1, 2, 3
18 catch err
19 print err
30 20
31if (try func 1 21 success, result = try func 1, 2, 3
32catch err
33 print err)
34 print "OK"
35 22
36if try (func 1) 23 try tb.func
37catch 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
41do 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
53do 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
59nil 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 @@
1xpcall(function() 1local _anon_func_0 = function(func, print)
2 return func(1, 2, 3)
3end, function(err)
4 return print(err)
5end)
6xpcall(function()
7 return func(1, 2, 3)
8end, function(err)
9 return print(err)
10end)
11pcall(function()
12 print("trying") 2 print("trying")
13 return func(1, 2, 3) 3 return func(1, 2, 3)
14end) 4end
15do 5local _anon_func_1 = function(tb)
16 local success, result = xpcall(function() 6 return tb.func
7end
8local _anon_func_2 = function(tb)
9 return tb.func()
10end
11local _anon_func_3 = function(tb)
12 return tb.func()
13end
14local _anon_func_4 = function(tb)
15 return tb.func()
16end
17local _anon_func_5 = function(tb)
18 return tb:func(1, 2, 3)
19end
20local _anon_func_6 = function(tb)
21 return tb.func(1)
22end
23local _anon_func_7 = function(tb)
24 return tb.func(1)
25end
26local f
27f = 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()
22end 34 return func(1, 2, 3)
23pcall(tb.func) 35 end, function(err)
24pcall(tb.func) 36 return print(err)
25pcall(tb.func) 37 end)
26pcall((tb.func)) 38 pcall(_anon_func_0, func, print)
27pcall(((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
33end)()), 1, 2, 3)
34pcall(tb.func, 1)
35pcall(tb.func, 1)
36if (xpcall(function()
37 return func(1)
38end, function(err)
39 return print(err)
40end)) then
41 print("OK")
42end
43if xpcall(function()
44 return func(1)
45end, function(err)
46 return print(err)
47end) then
48 print("OK")
49end
50do
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
70end 94end
71do
72pcall(func, 1, 2, 3)
73pcall(func, 1, 2, 3)
74end
75return 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 @@
1xpcall(func, function(err) 1local _anon_func_0 = function(func, print)
2 return print(err)
3end, 1, 2, 3)
4xpcall(func, function(err)
5 return print(err)
6end, 1, 2, 3)
7pcall(function()
8 print("trying") 2 print("trying")
9 return func(1, 2, 3) 3 return func(1, 2, 3)
10end) 4end
11do 5local _anon_func_1 = function(tb)
12 local success, result = xpcall(func, function(err) 6 return tb.func
7end
8local _anon_func_2 = function(tb)
9 return tb.func()
10end
11local _anon_func_3 = function(tb)
12 return tb.func()
13end
14local _anon_func_4 = function(tb)
15 return tb.func()
16end
17local _anon_func_5 = function(tb)
18 return tb:func(1, 2, 3)
19end
20local _anon_func_6 = function(tb)
21 return tb.func(1)
22end
23local _anon_func_7 = function(tb)
24 return tb.func(1)
25end
26local f
27f = 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)
16end 35 do
17pcall(tb.func) 36 local success, result = xpcall(func, function(err)
18pcall(tb.func) 37 return print(err)
19pcall(tb.func) 38 end, 1, 2, 3)
20pcall((tb.func)) 39 success, result = pcall(func, 1, 2, 3)
21pcall(((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
27end)()), 1, 2, 3)
28pcall(tb.func, 1)
29pcall(tb.func, 1)
30if (xpcall(func, function(err)
31 return print(err)
32end, 1)) then
33 print("OK")
34end
35if xpcall((func), function(err)
36 return print(err)
37end, 1) then
38 print("OK")
39end
40do
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
56end 80end
57do
58pcall(func, 1, 2, 3)
59pcall(func, 1, 2, 3)
60end
61return 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)
16end 16end
17pcall(_u8868["函数"]) 17pcall(function()
18pcall(_u8868["函数"]) 18 return _u8868["函数"]
19pcall(_u8868["函数"]) 19end)
20pcall((_u8868["函数"])) 20pcall(function()
21pcall(((function() 21 return _u8868["函数"]()
22 local _base_0 = _u8868 22end)
23 local _fn_0 = _base_0["函数"] 23pcall(function()
24 return _fn_0 and function(...) 24 return _u8868["函数"]()
25 return _fn_0(_base_0, ...) 25end)
26 end 26pcall(function()
27end)()), 1, 2, 3) 27 return _u8868["函数"]()
28pcall(_u8868["函数"], 1) 28end)
29pcall(_u8868["函数"], 1) 29pcall(function()
30 local _call_0 = _u8868
31 return _call_0["函数"](_call_0, 1, 2, 3)
32end)
33pcall(function()
34 return _u8868["函数"](1)
35end)
36pcall(function()
37 return _u8868["函数"](1)
38end)
30if (xpcall(_u51fd_u6570, function(_u9519_u8bef) 39if (xpcall(_u51fd_u6570, function(_u9519_u8bef)
31 return _u6253_u5370(_u9519_u8bef) 40 return _u6253_u5370(_u9519_u8bef)
32end, 1)) then 41end, 1)) then
@@ -55,7 +64,7 @@ do
55 end 64 end
56end 65end
57do 66do
58pcall(_u51fd_u6570, 1, 2, 3) 67 pcall(_u51fd_u6570, 1, 2, 3)
59pcall(_u51fd_u6570, 1, 2, 3) 68 pcall(_u51fd_u6570, 1, 2, 3)
60end 69end
61return nil 70return nil