aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/vararg.lua
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2024-03-19 02:22:56 +0800
committerLi Jin <dragon-fly@qq.com>2024-03-19 02:22:56 +0800
commitafc86619d710a578dc3f2bfc2ee1d62913f9abe8 (patch)
tree726ffe4d33bbaf8be411f73add51a1ffe734bc6f /spec/outputs/vararg.lua
parent4f399a181dc773bcc1a86737522915c2c776fb2b (diff)
downloadyuescript-afc86619d710a578dc3f2bfc2ee1d62913f9abe8.tar.gz
yuescript-afc86619d710a578dc3f2bfc2ee1d62913f9abe8.tar.bz2
yuescript-afc86619d710a578dc3f2bfc2ee1d62913f9abe8.zip
try fixing issue #162.
Diffstat (limited to 'spec/outputs/vararg.lua')
-rw-r--r--spec/outputs/vararg.lua488
1 files changed, 259 insertions, 229 deletions
diff --git a/spec/outputs/vararg.lua b/spec/outputs/vararg.lua
index ea40da1..39becd4 100644
--- a/spec/outputs/vararg.lua
+++ b/spec/outputs/vararg.lua
@@ -1,211 +1,264 @@
1local join 1local _anon_func_0 = function(a)
2join = function(...) 2 a:func()
3 f_with((function() 3 return a
4 local _with_0 = a 4end
5 _with_0:func() 5local _anon_func_1 = function(a, ...)
6 return _with_0 6 a:func(...)
7 end)()) 7 return a
8 f_with((function(...) 8end
9 local _with_0 = a 9local _anon_func_2 = function(items)
10 _with_0:func(...) 10 local _accum_0 = { }
11 return _with_0 11 local _len_0 = 1
12 end)(...)) 12 for i = 1, 10 do
13 f_listcomp((function() 13 _accum_0[_len_0] = items[i]
14 local _accum_0 = { } 14 _len_0 = _len_0 + 1
15 local _len_0 = 1 15 end
16 for i = 1, 10 do 16 return _accum_0
17 _accum_0[_len_0] = items[i] 17end
18 _len_0 = _len_0 + 1 18local _anon_func_3 = function(items, ...)
19 end 19 local _accum_0 = { }
20 return _accum_0 20 local _len_0 = 1
21 end)()) 21 for i = 1, 10 do
22 f_listcomp((function(...) 22 _accum_0[_len_0] = items[i](...)
23 local _accum_0 = { } 23 _len_0 = _len_0 + 1
24 local _len_0 = 1 24 end
25 for i = 1, 10 do 25 return _accum_0
26 _accum_0[_len_0] = items[i](...) 26end
27 _len_0 = _len_0 + 1 27local _anon_func_4 = function(items)
28 end 28 local _accum_0 = { }
29 return _accum_0 29 local _len_0 = 1
30 end)(...)) 30 for _index_0 = 1, #items do
31 f_listcomp((function() 31 local item = items[_index_0]
32 local _accum_0 = { } 32 _accum_0[_len_0] = item
33 local _len_0 = 1 33 _len_0 = _len_0 + 1
34 local _list_0 = items 34 end
35 for _index_0 = 1, #_list_0 do 35 return _accum_0
36 local item = _list_0[_index_0] 36end
37 _accum_0[_len_0] = item 37local _anon_func_5 = function(items, ...)
38 _len_0 = _len_0 + 1 38 local _accum_0 = { }
39 end 39 local _len_0 = 1
40 return _accum_0 40 for _index_0 = 1, #items do
41 end)()) 41 local item = items[_index_0]
42 f_listcomp((function(...) 42 _accum_0[_len_0] = item(...)
43 local _accum_0 = { } 43 _len_0 = _len_0 + 1
44 local _len_0 = 1 44 end
45 local _list_0 = items 45 return _accum_0
46 for _index_0 = 1, #_list_0 do 46end
47 local item = _list_0[_index_0] 47local _anon_func_6 = function(setmetatable, func)
48 _accum_0[_len_0] = item(...) 48 local A
49 _len_0 = _len_0 + 1 49 do
50 local _class_0
51 local _base_0 = { }
52 if _base_0.__index == nil then
53 _base_0.__index = _base_0
50 end 54 end
51 return _accum_0 55 _class_0 = setmetatable({
52 end)(...)) 56 __init = function() end,
53 f_class((function() 57 __base = _base_0,
54 local A 58 __name = "A"
55 do 59 }, {
56 local _class_0 60 __index = _base_0,
57 local _base_0 = { } 61 __call = function(cls, ...)
58 if _base_0.__index == nil then 62 local _self_0 = setmetatable({ }, _base_0)
59 _base_0.__index = _base_0 63 cls.__init(_self_0, ...)
64 return _self_0
60 end 65 end
61 _class_0 = setmetatable({ 66 })
62 __init = function() end, 67 _base_0.__class = _class_0
63 __base = _base_0, 68 local self = _class_0;
64 __name = "A" 69 func()
65 }, { 70 A = _class_0
66 __index = _base_0, 71 return _class_0
67 __call = function(cls, ...) 72 end
68 local _self_0 = setmetatable({ }, _base_0) 73end
69 cls.__init(_self_0, ...) 74local _anon_func_7 = function(setmetatable, func, ...)
70 return _self_0 75 local A
71 end 76 do
72 }) 77 local _class_0
73 _base_0.__class = _class_0 78 local _base_0 = { }
74 local self = _class_0; 79 if _base_0.__index == nil then
75 func() 80 _base_0.__index = _base_0
76 A = _class_0
77 return _class_0
78 end 81 end
79 end)()) 82 _class_0 = setmetatable({
80 f_class((function(...) 83 __init = function() end,
81 local A 84 __base = _base_0,
82 do 85 __name = "A"
83 local _class_0 86 }, {
84 local _base_0 = { } 87 __index = _base_0,
85 if _base_0.__index == nil then 88 __call = function(cls, ...)
86 _base_0.__index = _base_0 89 local _self_0 = setmetatable({ }, _base_0)
90 cls.__init(_self_0, ...)
91 return _self_0
87 end 92 end
88 _class_0 = setmetatable({ 93 })
89 __init = function() end, 94 _base_0.__class = _class_0
90 __base = _base_0, 95 local self = _class_0;
91 __name = "A" 96 func(...)
92 }, { 97 A = _class_0
93 __index = _base_0, 98 return _class_0
94 __call = function(cls, ...) 99 end
95 local _self_0 = setmetatable({ }, _base_0) 100end
96 cls.__init(_self_0, ...) 101local _anon_func_8 = function(pairs, tb)
97 return _self_0 102 local _tbl_0 = { }
98 end 103 for k, v in pairs(tb) do
99 }) 104 _tbl_0[k] = v
100 _base_0.__class = _class_0 105 end
101 local self = _class_0; 106 return _tbl_0
102 func(...) 107end
103 A = _class_0 108local _anon_func_9 = function(pairs, tb, ...)
104 return _class_0 109 local _tbl_0 = { }
105 end 110 for k, v in pairs(tb) do
106 end)(...)) 111 _tbl_0[k] = v(...)
107 f_tblcomp((function() 112 end
108 local _tbl_0 = { } 113 return _tbl_0
109 for k, v in pairs(tb) do 114end
110 _tbl_0[k] = v 115local _anon_func_10 = function(items)
111 end 116 local _tbl_0 = { }
112 return _tbl_0 117 for _index_0 = 1, #items do
113 end)()) 118 local item = items[_index_0]
114 f_tblcomp((function(...) 119 _tbl_0[item] = true
115 local _tbl_0 = { } 120 end
116 for k, v in pairs(tb) do 121 return _tbl_0
117 _tbl_0[k] = v(...) 122end
118 end 123local _anon_func_11 = function(items, ...)
119 return _tbl_0 124 local _tbl_0 = { }
120 end)(...)) 125 for _index_0 = 1, #items do
121 f_tblcomp((function() 126 local item = items[_index_0]
122 local _tbl_0 = { } 127 _tbl_0[item(...)] = true
123 local _list_0 = items 128 end
124 for _index_0 = 1, #_list_0 do 129 return _tbl_0
125 local item = _list_0[_index_0] 130end
126 _tbl_0[item] = true 131local _anon_func_12 = function(func)
127 end 132 do
128 return _tbl_0
129 end)())
130 f_tblcomp((function(...)
131 local _tbl_0 = { }
132 local _list_0 = items
133 for _index_0 = 1, #_list_0 do
134 local item = _list_0[_index_0]
135 _tbl_0[item(...)] = true
136 end
137 return _tbl_0
138 end)(...))
139 f_do((function()
140 return func() 133 return func()
141 end)()) 134 end
142 f_do((function(...) 135end
136local _anon_func_13 = function(func, ...)
137 do
143 return func(...) 138 return func(...)
144 end)(...)) 139 end
145 f_while((function() 140end
146 local _accum_0 = { } 141local _anon_func_14 = function(func)
147 local _len_0 = 1 142 local _accum_0 = { }
148 while false do 143 local _len_0 = 1
149 _accum_0[_len_0] = func() 144 while false do
150 _len_0 = _len_0 + 1 145 _accum_0[_len_0] = func()
151 end 146 _len_0 = _len_0 + 1
152 return _accum_0 147 end
153 end)()) 148 return _accum_0
154 f_while((function(...) 149end
155 local _accum_0 = { } 150local _anon_func_15 = function(func, ...)
156 local _len_0 = 1 151 local _accum_0 = { }
157 while false do 152 local _len_0 = 1
158 _accum_0[_len_0] = func(...) 153 while false do
159 _len_0 = _len_0 + 1 154 _accum_0[_len_0] = func(...)
160 end 155 _len_0 = _len_0 + 1
161 return _accum_0 156 end
162 end)(...)) 157 return _accum_0
163 f_if((function() 158end
164 if false then 159local _anon_func_16 = function(func)
165 return func() 160 if false then
166 end 161 return func()
167 end)()) 162 end
168 f_if((function(...) 163end
169 if false then 164local _anon_func_17 = function(func, ...)
170 return func(...) 165 if false then
171 end 166 return func(...)
172 end)(...)) 167 end
173 f_unless((function() 168end
174 if not true then 169local _anon_func_18 = function(func)
175 return func() 170 if not true then
176 end 171 return func()
177 end)()) 172 end
178 f_unless((function(...) 173end
179 if not true then 174local _anon_func_19 = function(func, ...)
180 return func(...) 175 if not true then
181 end 176 return func(...)
182 end)(...)) 177 end
183 f_switch((function() 178end
184 local _exp_0 = x 179local _anon_func_20 = function(x, func)
185 if "abc" == _exp_0 then 180 if "abc" == x then
186 return func() 181 return func()
187 end 182 end
188 end)()) 183end
189 f_switch((function(...) 184local _anon_func_21 = function(x, func, ...)
190 local _exp_0 = x 185 if "abc" == x then
191 if "abc" == _exp_0 then 186 return func(...)
192 return func(...) 187 end
193 end 188end
194 end)(...)) 189local _anon_func_22 = function(func)
195 f_eop((function() 190 if func ~= nil then
196 local _obj_0 = func 191 return func()
197 if _obj_0 ~= nil then 192 end
198 return _obj_0() 193 return nil
199 end 194end
200 return nil 195local _anon_func_23 = function(func, ...)
201 end)()) 196 if func ~= nil then
202 f_eop((function(...) 197 return func(...)
203 local _obj_0 = func 198 end
204 if _obj_0 ~= nil then 199 return nil
205 return _obj_0(...) 200end
206 end 201local _anon_func_24 = function(select, print, ...)
207 return nil 202 do
208 end)(...)) 203 print(select("#", ...))
204 return print(...)
205 end
206end
207local _anon_func_25 = function(print, ...)
208 do
209 return print(...)
210 end
211end
212local _anon_func_26 = function(x, tb, tb2)
213 if 1 == x then
214 tb.x = 123
215 return tb
216 else
217 return tb2
218 end
219end
220local _anon_func_27 = function(print, ...)
221 do
222 return print(...)
223 end
224end
225local _anon_func_28 = function(cond)
226 if cond then
227 return 3, 4, 5
228 end
229end
230local _anon_func_29 = function(print, _arg_0, ...)
231 do
232 local tb = _arg_0
233 return print(...)
234 end
235end
236local join
237join = function(...)
238 f_with(_anon_func_0(a))
239 f_with(_anon_func_1(a, ...))
240 f_listcomp(_anon_func_2(items))
241 f_listcomp(_anon_func_3(items, ...))
242 f_listcomp(_anon_func_4(items))
243 f_listcomp(_anon_func_5(items, ...))
244 f_class(_anon_func_6(setmetatable, func))
245 f_class(_anon_func_7(setmetatable, func, ...))
246 f_tblcomp(_anon_func_8(pairs, tb))
247 f_tblcomp(_anon_func_9(pairs, tb, ...))
248 f_tblcomp(_anon_func_10(items))
249 f_tblcomp(_anon_func_11(items, ...))
250 f_do(_anon_func_12(func))
251 f_do(_anon_func_13(func, ...))
252 f_while(_anon_func_14(func))
253 f_while(_anon_func_15(func, ...))
254 f_if(_anon_func_16(func))
255 f_if(_anon_func_17(func, ...))
256 f_unless(_anon_func_18(func))
257 f_unless(_anon_func_19(func, ...))
258 f_switch(_anon_func_20(x, func))
259 f_switch(_anon_func_21(x, func, ...))
260 f_eop(_anon_func_22(func))
261 f_eop(_anon_func_23(func, ...))
209 f_colon((function() 262 f_colon((function()
210 local _base_0 = f() 263 local _base_0 = f()
211 local _fn_0 = _base_0.func 264 local _fn_0 = _base_0.func
@@ -240,40 +293,17 @@ join = function(...)
240 fn_many_args = function() 293 fn_many_args = function()
241 return 10, nil, 20, nil, 30 294 return 10, nil, 20, nil, 30
242 end 295 end
243 return (function(...) 296 return _anon_func_24(select, print, fn_many_args())
244 print(select("#", ...))
245 return print(...)
246 end)(fn_many_args())
247 end)(fn(true)) 297 end)(fn(true))
248 end 298 end
249 do 299 do
250 (function(...) 300 _anon_func_25(print, _anon_func_26(x, tb, tb2))
251 return print(...)
252 end)((function()
253 local _exp_0 = x
254 if 1 == _exp_0 then
255 local _with_0 = tb
256 _with_0.x = 123
257 return _with_0
258 else
259 return tb2
260 end
261 end)())
262 end 301 end
263 do 302 do
264 (function(...) 303 _anon_func_27(print, 1, 2, _anon_func_28(cond))
265 return print(...)
266 end)(1, 2, (function()
267 if cond then
268 return 3, 4, 5
269 end
270 end)())
271 end 304 end
272 do 305 do
273 (function(_arg_0, ...) 306 _anon_func_29(print, {
274 local tb = _arg_0
275 return print(...)
276 end)({
277 name = "abc", 307 name = "abc",
278 value = 123 308 value = 123
279 }) 309 })