aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2023-08-08 18:12:06 +0800
committerLi Jin <dragon-fly@qq.com>2023-08-08 18:12:16 +0800
commit60774555568dbc64866d088cb51e45f9434c0f89 (patch)
treef38b9eb54e1b647e9d222dcba0e5ff3716016424 /spec
parent878111166eb4cfe4ddbc05f60e797ee16356e71a (diff)
downloadyuescript-60774555568dbc64866d088cb51e45f9434c0f89.tar.gz
yuescript-60774555568dbc64866d088cb51e45f9434c0f89.tar.bz2
yuescript-60774555568dbc64866d088cb51e45f9434c0f89.zip
make vararg assignment work with line decorator.
Diffstat (limited to 'spec')
-rw-r--r--spec/inputs/vararg.yue22
-rw-r--r--spec/outputs/vararg.lua45
2 files changed, 67 insertions, 0 deletions
diff --git a/spec/inputs/vararg.yue b/spec/inputs/vararg.yue
index c7b8ebf..466a4a6 100644
--- a/spec/inputs/vararg.yue
+++ b/spec/inputs/vararg.yue
@@ -52,5 +52,27 @@ join = (...) ->
52 f_colon f!\func 52 f_colon f!\func
53 f_colon f(...)\func 53 f_colon f(...)\func
54 54
55 _ = ->
56 list = {1, 2, 3, 4, 5}
57 fn = (ok) ->
58 ok, table.unpack list
59 ok, ... = fn true
60 print ok, ...
61
62 fn_many_args = ->
63 10, nil, 20, nil, 30
64
65 ... = fn_many_args!
66 print select "#", ...
67 print ...
68
69 do
70 ... = 1, 2 if true
71 print ...
72
73 do
74 a, ... = 1, 2 unless true
75 print a, select '#', ...
76
55 nil 77 nil
56 78
diff --git a/spec/outputs/vararg.lua b/spec/outputs/vararg.lua
index 56e2011..6cfaccb 100644
--- a/spec/outputs/vararg.lua
+++ b/spec/outputs/vararg.lua
@@ -220,5 +220,50 @@ join = function(...)
220 return _fn_0(_base_0, ...) 220 return _fn_0(_base_0, ...)
221 end 221 end
222 end)(...)) 222 end)(...))
223 local _
224 _ = function()
225 local list = {
226 1,
227 2,
228 3,
229 4,
230 5
231 }
232 local fn
233 fn = function(ok)
234 return ok, table.unpack(list)
235 end
236 return (function(_arg_0, ...)
237 local ok = _arg_0
238 print(ok, ...)
239 local fn_many_args
240 fn_many_args = function()
241 return 10, nil, 20, nil, 30
242 end
243 return (function(...)
244 print(select("#", ...))
245 return print(...)
246 end)(fn_many_args())
247 end)(fn(true))
248 end
249 do
250 (function(...)
251 return print(...)
252 end)((function()
253 if true then
254 return 1, 2
255 end
256 end)())
257 end
258 do
259 (function(_arg_0, ...)
260 local a = _arg_0
261 return print(a, select('#', ...))
262 end)((function()
263 if not true then
264 return 1, 2
265 end
266 end)())
267 end
223 return nil 268 return nil
224end 269end