diff options
| author | Li Jin <dragon-fly@qq.com> | 2024-03-19 02:22:56 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2024-03-19 02:22:56 +0800 |
| commit | afc86619d710a578dc3f2bfc2ee1d62913f9abe8 (patch) | |
| tree | 726ffe4d33bbaf8be411f73add51a1ffe734bc6f /spec/outputs/vararg.lua | |
| parent | 4f399a181dc773bcc1a86737522915c2c776fb2b (diff) | |
| download | yuescript-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.lua | 488 |
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 @@ | |||
| 1 | local join | 1 | local _anon_func_0 = function(a) |
| 2 | join = function(...) | 2 | a:func() |
| 3 | f_with((function() | 3 | return a |
| 4 | local _with_0 = a | 4 | end |
| 5 | _with_0:func() | 5 | local _anon_func_1 = function(a, ...) |
| 6 | return _with_0 | 6 | a:func(...) |
| 7 | end)()) | 7 | return a |
| 8 | f_with((function(...) | 8 | end |
| 9 | local _with_0 = a | 9 | local _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] | 17 | end |
| 18 | _len_0 = _len_0 + 1 | 18 | local _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](...) | 26 | end |
| 27 | _len_0 = _len_0 + 1 | 27 | local _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] | 36 | end |
| 37 | _accum_0[_len_0] = item | 37 | local _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 | 46 | end |
| 47 | local item = _list_0[_index_0] | 47 | local _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) | 73 | end |
| 69 | cls.__init(_self_0, ...) | 74 | local _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) | 100 | end |
| 96 | cls.__init(_self_0, ...) | 101 | local _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(...) | 107 | end |
| 103 | A = _class_0 | 108 | local _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 | 114 | end |
| 110 | _tbl_0[k] = v | 115 | local _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(...) | 122 | end |
| 118 | end | 123 | local _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] | 130 | end |
| 126 | _tbl_0[item] = true | 131 | local _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(...) | 135 | end |
| 136 | local _anon_func_13 = function(func, ...) | ||
| 137 | do | ||
| 143 | return func(...) | 138 | return func(...) |
| 144 | end)(...)) | 139 | end |
| 145 | f_while((function() | 140 | end |
| 146 | local _accum_0 = { } | 141 | local _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(...) | 149 | end |
| 155 | local _accum_0 = { } | 150 | local _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() | 158 | end |
| 164 | if false then | 159 | local _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(...) | 163 | end |
| 169 | if false then | 164 | local _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() | 168 | end |
| 174 | if not true then | 169 | local _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(...) | 173 | end |
| 179 | if not true then | 174 | local _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() | 178 | end |
| 184 | local _exp_0 = x | 179 | local _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)()) | 183 | end |
| 189 | f_switch((function(...) | 184 | local _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 | 188 | end |
| 194 | end)(...)) | 189 | local _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 | 194 | end |
| 200 | return nil | 195 | local _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(...) | 200 | end |
| 206 | end | 201 | local _anon_func_24 = function(select, print, ...) |
| 207 | return nil | 202 | do |
| 208 | end)(...)) | 203 | print(select("#", ...)) |
| 204 | return print(...) | ||
| 205 | end | ||
| 206 | end | ||
| 207 | local _anon_func_25 = function(print, ...) | ||
| 208 | do | ||
| 209 | return print(...) | ||
| 210 | end | ||
| 211 | end | ||
| 212 | local _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 | ||
| 219 | end | ||
| 220 | local _anon_func_27 = function(print, ...) | ||
| 221 | do | ||
| 222 | return print(...) | ||
| 223 | end | ||
| 224 | end | ||
| 225 | local _anon_func_28 = function(cond) | ||
| 226 | if cond then | ||
| 227 | return 3, 4, 5 | ||
| 228 | end | ||
| 229 | end | ||
| 230 | local _anon_func_29 = function(print, _arg_0, ...) | ||
| 231 | do | ||
| 232 | local tb = _arg_0 | ||
| 233 | return print(...) | ||
| 234 | end | ||
| 235 | end | ||
| 236 | local join | ||
| 237 | join = 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 | }) |
