aboutsummaryrefslogtreecommitdiff
path: root/spec
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
parent4f399a181dc773bcc1a86737522915c2c776fb2b (diff)
downloadyuescript-afc86619d710a578dc3f2bfc2ee1d62913f9abe8.tar.gz
yuescript-afc86619d710a578dc3f2bfc2ee1d62913f9abe8.tar.bz2
yuescript-afc86619d710a578dc3f2bfc2ee1d62913f9abe8.zip
try fixing issue #162.
Diffstat (limited to 'spec')
-rw-r--r--spec/inputs/attrib.yue2
-rw-r--r--spec/inputs/unicode/multiline_chain.yue6
-rw-r--r--spec/outputs/5.1/attrib.lua183
-rw-r--r--spec/outputs/assign.lua9
-rw-r--r--spec/outputs/attrib.lua1
-rw-r--r--spec/outputs/unicode/assign.lua9
-rw-r--r--spec/outputs/unicode/macro.lua26
-rw-r--r--spec/outputs/unicode/multiline_chain.lua35
-rw-r--r--spec/outputs/unicode/syntax.lua13
-rw-r--r--spec/outputs/unicode/vararg.lua488
-rw-r--r--spec/outputs/vararg.lua488
11 files changed, 682 insertions, 578 deletions
diff --git a/spec/inputs/attrib.yue b/spec/inputs/attrib.yue
index 36aca99..f66f0db 100644
--- a/spec/inputs/attrib.yue
+++ b/spec/inputs/attrib.yue
@@ -41,6 +41,8 @@ do
41 41
42 close _ = <close>: -> print "first" 42 close _ = <close>: -> print "first"
43 43
44 print "third"
45
44_defers = setmetatable {}, __close: => 46_defers = setmetatable {}, __close: =>
45 @[#@]! 47 @[#@]!
46 @[#@] = nil 48 @[#@] = nil
diff --git a/spec/inputs/unicode/multiline_chain.yue b/spec/inputs/unicode/multiline_chain.yue
index 403f93b..6e8551c 100644
--- a/spec/inputs/unicode/multiline_chain.yue
+++ b/spec/inputs/unicode/multiline_chain.yue
@@ -21,8 +21,10 @@
21 21
22表bb = 22表bb =
23 键1: 变量a 23 键1: 变量a
24 \变量b 123 24 \变量b 123,
25 .变量c! 25 :字段A
26 .变量c 1, 2, 3
27 :字段B
26 键2: 28 键2:
27 键w1: 变量a! 29 键w1: 变量a!
28 .变量b 30 .变量b
diff --git a/spec/outputs/5.1/attrib.lua b/spec/outputs/5.1/attrib.lua
index 70e7e24..e28dca4 100644
--- a/spec/outputs/5.1/attrib.lua
+++ b/spec/outputs/5.1/attrib.lua
@@ -50,6 +50,22 @@ do
50 a, b = _obj_0[1], _obj_0[2] 50 a, b = _obj_0[1], _obj_0[2]
51 end 51 end
52end 52end
53local _anon_func_0 = function(f, error, _close_1, _arg_0, ...)
54 do
55 local _ok_0 = _arg_0
56 _close_1(f)
57 if _ok_0 then
58 return ...
59 else
60 return error(...)
61 end
62 end
63end
64local _anon_func_1 = function(io)
65 local _with_0 = io.open("file.txt")
66 _with_0:write("Hello")
67 return _with_0
68end
53do 69do
54 local v = (function() 70 local v = (function()
55 if flag then 71 if flag then
@@ -70,23 +86,43 @@ do
70 return error(...) 86 return error(...)
71 end 87 end
72 end)(pcall(function(...) 88 end)(pcall(function(...)
73 local f = (function() 89 local f = _anon_func_1(io)
74 local _with_0 = io.open("file.txt")
75 _with_0:write("Hello")
76 return _with_0
77 end)()
78 local _close_1 = assert(getmetatable(f).__close) 90 local _close_1 = assert(getmetatable(f).__close)
79 return (function(_arg_0, ...) 91 return _anon_func_0(f, error, _close_1, pcall(function(...) end, ...))
80 local _ok_0 = _arg_0
81 _close_1(f)
82 if _ok_0 then
83 return ...
84 else
85 return error(...)
86 end
87 end)(pcall(function(...) end, ...))
88 end, ...)) 92 end, ...))
89end 93end
94local _anon_func_2 = function(d, error, _close_1, _arg_0, ...)
95 do
96 local _ok_0 = _arg_0
97 _close_1(d)
98 if _ok_0 then
99 return ...
100 else
101 return error(...)
102 end
103 end
104end
105local _anon_func_3 = function(x)
106 if true then
107 if "abc" == x then
108 return 998
109 end
110 end
111end
112local _anon_func_5 = function(a, b)
113 if a ~= nil then
114 return a
115 else
116 return b
117 end
118end
119local _anon_func_4 = function(a, b)
120 if _anon_func_5(a, b) then
121 return {
122 value = value
123 }
124 end
125end
90do 126do
91 local a = (function() 127 local a = (function()
92 if true then 128 if true then
@@ -110,39 +146,34 @@ do
110 return error(...) 146 return error(...)
111 end 147 end
112 end)(pcall(function(...) 148 end)(pcall(function(...)
113 local c = (function() 149 local c = _anon_func_3(x)
114 if true then 150 local d = _anon_func_4(a, b)
115 local _exp_0 = x
116 if "abc" == _exp_0 then
117 return 998
118 end
119 end
120 end)()
121 local d = (function()
122 if (function()
123 if a ~= nil then
124 return a
125 else
126 return b
127 end
128 end)() then
129 return {
130 value = value
131 }
132 end
133 end)()
134 local _close_1 = assert(getmetatable(d).__close) 151 local _close_1 = assert(getmetatable(d).__close)
135 return (function(_arg_0, ...) 152 return _anon_func_2(d, error, _close_1, pcall(function(...) end, ...))
136 local _ok_0 = _arg_0
137 _close_1(d)
138 if _ok_0 then
139 return ...
140 else
141 return error(...)
142 end
143 end)(pcall(function(...) end, ...))
144 end, ...)) 153 end, ...))
145end 154end
155local _anon_func_6 = function(_, error, _close_1, _arg_0, ...)
156 do
157 local _ok_0 = _arg_0
158 _close_1(_)
159 if _ok_0 then
160 return ...
161 else
162 return error(...)
163 end
164 end
165end
166local _anon_func_7 = function(_, _close_2, error, _arg_0, ...)
167 do
168 local _ok_0 = _arg_0
169 _close_2(_)
170 if _ok_0 then
171 return ...
172 else
173 return error(...)
174 end
175 end
176end
146do 177do
147 local _ = (function() 178 local _ = (function()
148 local _with_0 = io.open("file.txt") 179 local _with_0 = io.open("file.txt")
@@ -165,30 +196,16 @@ do
165 end 196 end
166 }) 197 })
167 local _close_1 = assert(getmetatable(_).__close) 198 local _close_1 = assert(getmetatable(_).__close)
168 return (function(_arg_0, ...) 199 return _anon_func_6(_, error, _close_1, pcall(function(...)
169 local _ok_0 = _arg_0
170 _close_1(_)
171 if _ok_0 then
172 return ...
173 else
174 return error(...)
175 end
176 end)(pcall(function(...)
177 local _ = setmetatable({ }, { 200 local _ = setmetatable({ }, {
178 __close = function() 201 __close = function()
179 return print("first") 202 return print("first")
180 end 203 end
181 }) 204 })
182 local _close_2 = assert(getmetatable(_).__close) 205 local _close_2 = assert(getmetatable(_).__close)
183 return (function(_arg_0, ...) 206 return _anon_func_7(_, _close_2, error, pcall(function(...)
184 local _ok_0 = _arg_0 207 return print("third")
185 _close_2(_) 208 end, ...))
186 if _ok_0 then
187 return ...
188 else
189 return error(...)
190 end
191 end)(pcall(function(...) end, ...))
192 end, ...)) 209 end, ...))
193 end, ...)) 210 end, ...))
194end 211end
@@ -203,6 +220,28 @@ def = function(item)
203 _defers[#_defers + 1] = item 220 _defers[#_defers + 1] = item
204 return _defers 221 return _defers
205end 222end
223local _anon_func_8 = function(_, error, _close_1, _arg_0, ...)
224 do
225 local _ok_0 = _arg_0
226 _close_1(_)
227 if _ok_0 then
228 return ...
229 else
230 return error(...)
231 end
232 end
233end
234local _anon_func_9 = function(_, _close_2, error, _arg_0, ...)
235 do
236 local _ok_0 = _arg_0
237 _close_2(_)
238 if _ok_0 then
239 return ...
240 else
241 return error(...)
242 end
243 end
244end
206do 245do
207 local _ = def(function() 246 local _ = def(function()
208 return print(3) 247 return print(3)
@@ -221,28 +260,12 @@ do
221 return print(2) 260 return print(2)
222 end) 261 end)
223 local _close_1 = assert(getmetatable(_).__close) 262 local _close_1 = assert(getmetatable(_).__close)
224 return (function(_arg_0, ...) 263 return _anon_func_8(_, error, _close_1, pcall(function(...)
225 local _ok_0 = _arg_0
226 _close_1(_)
227 if _ok_0 then
228 return ...
229 else
230 return error(...)
231 end
232 end)(pcall(function(...)
233 local _ = def(function() 264 local _ = def(function()
234 return print(1) 265 return print(1)
235 end) 266 end)
236 local _close_2 = assert(getmetatable(_).__close) 267 local _close_2 = assert(getmetatable(_).__close)
237 return (function(_arg_0, ...) 268 return _anon_func_9(_, _close_2, error, pcall(function(...) end, ...))
238 local _ok_0 = _arg_0
239 _close_2(_)
240 if _ok_0 then
241 return ...
242 else
243 return error(...)
244 end
245 end)(pcall(function(...) end, ...))
246 end, ...)) 269 end, ...))
247 end, ...)) 270 end, ...))
248end 271end
diff --git a/spec/outputs/assign.lua b/spec/outputs/assign.lua
index 228e859..8bf7b35 100644
--- a/spec/outputs/assign.lua
+++ b/spec/outputs/assign.lua
@@ -42,11 +42,14 @@ do
42 end 42 end
43 end 43 end
44end 44end
45return _(function() 45local _anon_func_0 = function(print)
46 setmetatable(a, (function() 46 do
47 print(123) 47 print(123)
48 return { } 48 return { }
49 end)()) 49 end
50end
51return _(function()
52 setmetatable(a, _anon_func_0(print))
50 do 53 do
51 local a, b 54 local a, b
52 if "a" == c then 55 if "a" == c then
diff --git a/spec/outputs/attrib.lua b/spec/outputs/attrib.lua
index 181555f..07fc165 100644
--- a/spec/outputs/attrib.lua
+++ b/spec/outputs/attrib.lua
@@ -106,6 +106,7 @@ do
106 return print("first") 106 return print("first")
107 end 107 end
108 }) 108 })
109 print("third")
109end 110end
110local _defers = setmetatable({ }, { 111local _defers = setmetatable({ }, {
111 __close = function(self) 112 __close = function(self)
diff --git a/spec/outputs/unicode/assign.lua b/spec/outputs/unicode/assign.lua
index b530093..290b248 100644
--- a/spec/outputs/unicode/assign.lua
+++ b/spec/outputs/unicode/assign.lua
@@ -42,11 +42,14 @@ do
42 end 42 end
43 end 43 end
44end 44end
45return __u65e0_u6548_u53d8_u91cf(function() 45local _anon_func_0 = function(_u6253_u5370)
46 setmetatable(a_u53d8_u91cf, (function() 46 do
47 _u6253_u5370(123) 47 _u6253_u5370(123)
48 return { } 48 return { }
49 end)()) 49 end
50end
51return __u65e0_u6548_u53d8_u91cf(function()
52 setmetatable(a_u53d8_u91cf, _anon_func_0(_u6253_u5370))
50 do 53 do
51 local _u5143_u7d20a, _u5143_u7d20b 54 local _u5143_u7d20a, _u5143_u7d20b
52 do 55 do
diff --git a/spec/outputs/unicode/macro.lua b/spec/outputs/unicode/macro.lua
index 2ae5dce..88f6de7 100644
--- a/spec/outputs/unicode/macro.lua
+++ b/spec/outputs/unicode/macro.lua
@@ -211,11 +211,11 @@ local _call_1 = (_({
211 -2, 211 -2,
212 3 212 3
213})) 213}))
214_call_1 = _call_1["链"](_call_1, _call_1, _call_1, _call_1, _call_1, _call_1, _call_1, _call_1) 214_call_1 = _call_1["链"](_call_1)
215_call_1 = _call_1["映射"](_call_1, _call_1, _call_1, _call_1, function(self) 215_call_1 = _call_1["映射"](_call_1, function(self)
216 return self * 2 216 return self * 2
217end) 217end)
218_call_1 = _call_1["过滤"](_call_1, _call_1, function(self) 218_call_1 = _call_1["过滤"](_call_1, function(self)
219 return self > 3 219 return self > 3
220end) 220end)
221local _u7ed3_u679ca = _call_1["取值"](_call_1) 221local _u7ed3_u679ca = _call_1["取值"](_call_1)
@@ -227,25 +227,25 @@ local _call_2 = (_({
227 -2, 227 -2,
228 3 228 3
229})) 229}))
230_call_2 = _call_2["链"](_call_2, _call_2, _call_2, _call_2, _call_2, _call_2, _call_2, _call_2) 230_call_2 = _call_2["链"](_call_2)
231_call_2 = _call_2["映射"](_call_2, _call_2, _call_2, _call_2, function(self) 231_call_2 = _call_2["映射"](_call_2, function(self)
232 return self * 2 232 return self * 2
233end) 233end)
234_call_2 = _call_2["过滤"](_call_2, _call_2, function(self) 234_call_2 = _call_2["过滤"](_call_2, function(self)
235 return self > 3 235 return self > 3
236end) 236end)
237_call_2["每一个"](_call_2, function(self) 237_call_2["每一个"](_call_2, function(self)
238 return _u6253_u5370(self) 238 return _u6253_u5370(self)
239end) 239end)
240local _call_3 = _u539f_u70b9["变换"]["根节点"]["游戏对象"] 240local _call_3 = _u539f_u70b9["变换"]["根节点"]["游戏对象"]
241_call_3 = _call_3["父节点"](_call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3) 241_call_3 = _call_3["父节点"](_call_3)
242_call_3 = _call_3["后代"](_call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3) 242_call_3 = _call_3["后代"](_call_3)
243_call_3 = _call_3["选择启用"](_call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3) 243_call_3 = _call_3["选择启用"](_call_3)
244_call_3 = _call_3["选择可见"](_call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3, _call_3) 244_call_3 = _call_3["选择可见"](_call_3)
245_call_3 = _call_3["标签等于"](_call_3, _call_3, _call_3, _call_3, "fx") 245_call_3 = _call_3["标签等于"](_call_3, "fx")
246_call_3 = _call_3["其中"](_call_3, _call_3, function(x) 246_call_3 = _call_3["其中"](_call_3, function(x)
247 local _call_4 = x["名称"] 247 local _call_4 = x["名称"]
248 return _call_4["结尾为"](_call_4, _call_4, "(克隆)") 248 return _call_4["结尾为"](_call_4, "(克隆)")
249end) 249end)
250_u7ed3_u679c = _call_3["摧毁"](_call_3) 250_u7ed3_u679c = _call_3["摧毁"](_call_3)
251do 251do
diff --git a/spec/outputs/unicode/multiline_chain.lua b/spec/outputs/unicode/multiline_chain.lua
index 90fdf0b..f45e71f 100644
--- a/spec/outputs/unicode/multiline_chain.lua
+++ b/spec/outputs/unicode/multiline_chain.lua
@@ -24,7 +24,11 @@ end)(), {
24local _u8868bb = { 24local _u8868bb = {
25 ["键1"] = (function() 25 ["键1"] = (function()
26 local _call_1 = _u53d8_u91cfa 26 local _call_1 = _u53d8_u91cfa
27 return _call_1["变量b"](_call_1, 123)["变量c"]() 27 return (_call_1["变量b"](_call_1, 123, {
28 ["字段A"] = _u5b57_u6bb5A
29 }))["变量c"](1, 2, 3, {
30 ["字段B"] = _u5b57_u6bb5B
31 })
28 end)(), 32 end)(),
29 ["键2"] = { 33 ["键2"] = {
30 ["键w1"] = (function() 34 ["键w1"] = (function()
@@ -54,37 +58,40 @@ _u51fd_u6570 = function()
54 end 58 end
55 return _accum_0 59 return _accum_0
56end 60end
61local _anon_func_0 = function(_u53d8_u91cfa)
62 do
63 local _call_1 = _u53d8_u91cfa
64 return (_call_1["变量b"](_call_1, 123))["变量c"]("abc")
65 end
66end
57local _u51fd_u65701 67local _u51fd_u65701
58_u51fd_u65701 = function() 68_u51fd_u65701 = function()
59 return _u53d8_u91cfx, (function() 69 return _u53d8_u91cfx, _anon_func_0(_u53d8_u91cfa)
60 local _call_1 = _u53d8_u91cfa
61 return _call_1["变量b"](_call_1, 123)["变量c"]("abc")
62 end)()
63end 70end
64local _call_1 = _u539f_u59cb["转换"].root.gameObject 71local _call_1 = _u539f_u59cb["转换"].root.gameObject
65local _call_2 = _call_1["父节点"](_call_1) 72local _call_2 = _call_1["父节点"](_call_1)
66local _call_3 = _call_2["后代节点"](_call_2) 73local _call_3 = _call_2["后代节点"](_call_2)
67local _call_4 = _call_3["选择启用"](_call_3) 74local _call_4 = _call_3["选择启用"](_call_3)
68local _call_5 = _call_4["选择可见"](_call_4) 75local _call_5 = _call_4["选择可见"](_call_4)
69local _call_6 = _call_5["标签相等"](_call_5, "fx") 76local _call_6 = (_call_5["标签相等"](_call_5, "fx"))
70local _call_7 = _call_6["筛选"](_call_6, function(_u5143_u7d20) 77local _call_7 = (_call_6["筛选"](_call_6, function(_u5143_u7d20)
71 if _u5143_u7d20["是否目标"](_u5143_u7d20, _u5143_u7d20) then 78 if _u5143_u7d20["是否目标"](_u5143_u7d20) then
72 return false 79 return false
73 end 80 end
74 local _call_7 = _u5143_u7d20["名称"] 81 local _call_7 = _u5143_u7d20["名称"]
75 return _call_7["结束于"](_call_7, _call_7, "(Clone)") 82 return _call_7["结束于"](_call_7, "(Clone)")
76end) 83end))
77local _u7ed3_u679c = _call_7["销毁"](_call_7) 84local _u7ed3_u679c = _call_7["销毁"](_call_7)
78local _call_8 = _u539f_u70b9["变换"]["根节点"]["游戏对象"] 85local _call_8 = _u539f_u70b9["变换"]["根节点"]["游戏对象"]
79local _call_9 = _call_8["父节点"](_call_8) 86local _call_9 = _call_8["父节点"](_call_8)
80local _call_10 = _call_9["后代节点"](_call_9) 87local _call_10 = _call_9["后代节点"](_call_9)
81local _call_11 = _call_10["选择启用"](_call_10) 88local _call_11 = _call_10["选择启用"](_call_10)
82local _call_12 = _call_11["选择可见"](_call_11) 89local _call_12 = _call_11["选择可见"](_call_11)
83local _call_13 = _call_12["标签相等"](_call_12, "fx") 90local _call_13 = (_call_12["标签相等"](_call_12, "fx"))
84local _call_14 = _call_13["筛选"](_call_13, function(_u5143_u7d20) 91local _call_14 = (_call_13["筛选"](_call_13, function(_u5143_u7d20)
85 local _call_14 = _u5143_u7d20["名称"] 92 local _call_14 = _u5143_u7d20["名称"]
86 return _call_14["结束于"](_call_14, _call_14, "(Clone)") 93 return _call_14["结束于"](_call_14, "(Clone)")
87end) 94end))
88_call_14["销毁"](_call_14) 95_call_14["销毁"](_call_14)
89do 96do
90 local _with_0 = _u9879_u76ee 97 local _with_0 = _u9879_u76ee
diff --git a/spec/outputs/unicode/syntax.lua b/spec/outputs/unicode/syntax.lua
index 664fa46..f086db6 100644
--- a/spec/outputs/unicode/syntax.lua
+++ b/spec/outputs/unicode/syntax.lua
@@ -282,13 +282,16 @@ _ = 5 + _u4ec0_u4e48(_u65e0_u804a)
282_u4ec0_u4e48(_u65e0_u804a + 5) 282_u4ec0_u4e48(_u65e0_u804a + 5)
283_ = 5 - _u4ec0_u4e48(_u65e0_u804a) 283_ = 5 - _u4ec0_u4e48(_u65e0_u804a)
284_u4ec0_u4e48(_u65e0_u804a - 5) 284_u4ec0_u4e48(_u65e0_u804a - 5)
285_u53d8_u91cfx = _u4f60_u597d - _u4e16_u754c - _u67d0_u7269; 285_u53d8_u91cfx = _u4f60_u597d - _u4e16_u754c - _u67d0_u7269
286local _anon_func_0 = function(_u4ec0_u4e48)
287 do
288 local _call_8 = _u4ec0_u4e48
289 return _call_8["酷"](_call_8, 100)
290 end
291end
286(function(_u67d0_u7269) 292(function(_u67d0_u7269)
287 if _u67d0_u7269 == nil then 293 if _u67d0_u7269 == nil then
288 _u67d0_u7269 = _u4e0e((function() 294 _u67d0_u7269 = _u4e0e(_anon_func_0(_u4ec0_u4e48))
289 local _call_8 = _u4ec0_u4e48
290 return _call_8["酷"](_call_8, 100)
291 end)())
292 end 295 end
293 return _u6253_u5370(_u67d0_u7269) 296 return _u6253_u5370(_u67d0_u7269)
294end)() 297end)()
diff --git a/spec/outputs/unicode/vararg.lua b/spec/outputs/unicode/vararg.lua
index 41d1bfd..39fbf0c 100644
--- a/spec/outputs/unicode/vararg.lua
+++ b/spec/outputs/unicode/vararg.lua
@@ -1,211 +1,264 @@
1local _u8fde_u63a5 1local _anon_func_0 = function(_u53d8_u91cfa)
2_u8fde_u63a5 = function(...) 2 _u53d8_u91cfa["函数"](_u53d8_u91cfa)
3 _u5e26_u6709((function() 3 return _u53d8_u91cfa
4 local _with_0 = _u53d8_u91cfa 4end
5 _with_0["函数"](_with_0) 5local _anon_func_1 = function(_u53d8_u91cfa, ...)
6 return _with_0 6 _u53d8_u91cfa["函数"](_u53d8_u91cfa, ...)
7 end)()) 7 return _u53d8_u91cfa
8 _u5e26_u6709((function(...) 8end
9 local _with_0 = _u53d8_u91cfa 9local _anon_func_2 = function(_u9879_u76ee)
10 _with_0["函数"](_with_0, ...) 10 local _accum_0 = { }
11 return _with_0 11 local _len_0 = 1
12 end)(...)) 12 for i = 1, 10 do
13 _u5217_u8868_u751f_u6210((function() 13 _accum_0[_len_0] = _u9879_u76ee[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] = _u9879_u76ee[i] 17end
18 _len_0 = _len_0 + 1 18local _anon_func_3 = function(_u9879_u76ee, ...)
19 end 19 local _accum_0 = { }
20 return _accum_0 20 local _len_0 = 1
21 end)()) 21 for i = 1, 10 do
22 _u5217_u8868_u751f_u6210((function(...) 22 _accum_0[_len_0] = _u9879_u76ee[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] = _u9879_u76ee[i](...) 26end
27 _len_0 = _len_0 + 1 27local _anon_func_4 = function(_u9879_u76ee)
28 end 28 local _accum_0 = { }
29 return _accum_0 29 local _len_0 = 1
30 end)(...)) 30 for _index_0 = 1, #_u9879_u76ee do
31 _u5217_u8868_u751f_u6210((function() 31 local _u7269_u54c1 = _u9879_u76ee[_index_0]
32 local _accum_0 = { } 32 _accum_0[_len_0] = _u7269_u54c1
33 local _len_0 = 1 33 _len_0 = _len_0 + 1
34 local _list_0 = _u9879_u76ee 34 end
35 for _index_0 = 1, #_list_0 do 35 return _accum_0
36 local _u7269_u54c1 = _list_0[_index_0] 36end
37 _accum_0[_len_0] = _u7269_u54c1 37local _anon_func_5 = function(_u9879_u76ee, ...)
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, #_u9879_u76ee do
41 end)()) 41 local _u7269_u54c1 = _u9879_u76ee[_index_0]
42 _u5217_u8868_u751f_u6210((function(...) 42 _accum_0[_len_0] = _u7269_u54c1(...)
43 local _accum_0 = { } 43 _len_0 = _len_0 + 1
44 local _len_0 = 1 44 end
45 local _list_0 = _u9879_u76ee 45 return _accum_0
46 for _index_0 = 1, #_list_0 do 46end
47 local _u7269_u54c1 = _list_0[_index_0] 47local _anon_func_6 = function(setmetatable, _u51fd_u6570)
48 _accum_0[_len_0] = _u7269_u54c1(...) 48 local _u53d8_u91cfA
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 _u7c7b_u751f_u6210((function() 57 __base = _base_0,
54 local _u53d8_u91cfA 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 _u51fd_u6570()
65 }, { 70 _u53d8_u91cfA = _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, _u51fd_u6570, ...)
70 return _self_0 75 local _u53d8_u91cfA
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 _u51fd_u6570() 80 _base_0.__index = _base_0
76 _u53d8_u91cfA = _class_0
77 return _class_0
78 end 81 end
79 end)()) 82 _class_0 = setmetatable({
80 _u7c7b_u751f_u6210((function(...) 83 __init = function() end,
81 local _u53d8_u91cfA 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 _u51fd_u6570(...)
92 }, { 97 _u53d8_u91cfA = _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, _u8868)
97 return _self_0 102 local _tbl_0 = { }
98 end 103 for _u952e, _u503c in pairs(_u8868) do
99 }) 104 _tbl_0[_u952e] = _u503c
100 _base_0.__class = _class_0 105 end
101 local self = _class_0; 106 return _tbl_0
102 _u51fd_u6570(...) 107end
103 _u53d8_u91cfA = _class_0 108local _anon_func_9 = function(pairs, _u8868, ...)
104 return _class_0 109 local _tbl_0 = { }
105 end 110 for _u952e, _u503c in pairs(_u8868) do
106 end)(...)) 111 _tbl_0[_u952e] = _u503c(...)
107 _u8868_u751f_u6210((function() 112 end
108 local _tbl_0 = { } 113 return _tbl_0
109 for _u952e, _u503c in pairs(_u8868) do 114end
110 _tbl_0[_u952e] = _u503c 115local _anon_func_10 = function(_u9879_u76ee)
111 end 116 local _tbl_0 = { }
112 return _tbl_0 117 for _index_0 = 1, #_u9879_u76ee do
113 end)()) 118 local _u7269_u54c1 = _u9879_u76ee[_index_0]
114 _u8868_u751f_u6210((function(...) 119 _tbl_0[_u7269_u54c1] = true
115 local _tbl_0 = { } 120 end
116 for _u952e, _u503c in pairs(_u8868) do 121 return _tbl_0
117 _tbl_0[_u952e] = _u503c(...) 122end
118 end 123local _anon_func_11 = function(_u9879_u76ee, ...)
119 return _tbl_0 124 local _tbl_0 = { }
120 end)(...)) 125 for _index_0 = 1, #_u9879_u76ee do
121 _u8868_u751f_u6210((function() 126 local _u7269_u54c1 = _u9879_u76ee[_index_0]
122 local _tbl_0 = { } 127 _tbl_0[_u7269_u54c1(...)] = true
123 local _list_0 = _u9879_u76ee 128 end
124 for _index_0 = 1, #_list_0 do 129 return _tbl_0
125 local _u7269_u54c1 = _list_0[_index_0] 130end
126 _tbl_0[_u7269_u54c1] = true 131local _anon_func_12 = function(_u51fd_u6570)
127 end 132 do
128 return _tbl_0
129 end)())
130 _u8868_u751f_u6210((function(...)
131 local _tbl_0 = { }
132 local _list_0 = _u9879_u76ee
133 for _index_0 = 1, #_list_0 do
134 local _u7269_u54c1 = _list_0[_index_0]
135 _tbl_0[_u7269_u54c1(...)] = true
136 end
137 return _tbl_0
138 end)(...))
139 _u505a_u64cd_u4f5c((function()
140 return _u51fd_u6570() 133 return _u51fd_u6570()
141 end)()) 134 end
142 _u505a_u64cd_u4f5c((function(...) 135end
136local _anon_func_13 = function(_u51fd_u6570, ...)
137 do
143 return _u51fd_u6570(...) 138 return _u51fd_u6570(...)
144 end)(...)) 139 end
145 _u5f53_u64cd_u4f5c((function() 140end
146 local _accum_0 = { } 141local _anon_func_14 = function(_u51fd_u6570)
147 local _len_0 = 1 142 local _accum_0 = { }
148 while false do 143 local _len_0 = 1
149 _accum_0[_len_0] = _u51fd_u6570() 144 while false do
150 _len_0 = _len_0 + 1 145 _accum_0[_len_0] = _u51fd_u6570()
151 end 146 _len_0 = _len_0 + 1
152 return _accum_0 147 end
153 end)()) 148 return _accum_0
154 _u5f53_u64cd_u4f5c((function(...) 149end
155 local _accum_0 = { } 150local _anon_func_15 = function(_u51fd_u6570, ...)
156 local _len_0 = 1 151 local _accum_0 = { }
157 while false do 152 local _len_0 = 1
158 _accum_0[_len_0] = _u51fd_u6570(...) 153 while false do
159 _len_0 = _len_0 + 1 154 _accum_0[_len_0] = _u51fd_u6570(...)
160 end 155 _len_0 = _len_0 + 1
161 return _accum_0 156 end
162 end)(...)) 157 return _accum_0
163 _u5982_u679c_u64cd_u4f5c((function() 158end
164 if false then 159local _anon_func_16 = function(_u51fd_u6570)
165 return _u51fd_u6570() 160 if false then
166 end 161 return _u51fd_u6570()
167 end)()) 162 end
168 _u5982_u679c_u64cd_u4f5c((function(...) 163end
169 if false then 164local _anon_func_17 = function(_u51fd_u6570, ...)
170 return _u51fd_u6570(...) 165 if false then
171 end 166 return _u51fd_u6570(...)
172 end)(...)) 167 end
173 _u9664_u975e_u64cd_u4f5c((function() 168end
174 if not true then 169local _anon_func_18 = function(_u51fd_u6570)
175 return _u51fd_u6570() 170 if not true then
176 end 171 return _u51fd_u6570()
177 end)()) 172 end
178 _u9664_u975e_u64cd_u4f5c((function(...) 173end
179 if not true then 174local _anon_func_19 = function(_u51fd_u6570, ...)
180 return _u51fd_u6570(...) 175 if not true then
181 end 176 return _u51fd_u6570(...)
182 end)(...)) 177 end
183 _u5207_u6362_u64cd_u4f5c((function() 178end
184 local _exp_0 = _u53d8_u91cfx 179local _anon_func_20 = function(_u53d8_u91cfx, _u51fd_u6570)
185 if "abc" == _exp_0 then 180 if "abc" == _u53d8_u91cfx then
186 return _u51fd_u6570() 181 return _u51fd_u6570()
187 end 182 end
188 end)()) 183end
189 _u5207_u6362_u64cd_u4f5c((function(...) 184local _anon_func_21 = function(_u53d8_u91cfx, _u51fd_u6570, ...)
190 local _exp_0 = _u53d8_u91cfx 185 if "abc" == _u53d8_u91cfx then
191 if "abc" == _exp_0 then 186 return _u51fd_u6570(...)
192 return _u51fd_u6570(...) 187 end
193 end 188end
194 end)(...)) 189local _anon_func_22 = function(_u51fd_u6570)
195 _u8868_u8fbe_u5f0f_u64cd_u4f5c((function() 190 if _u51fd_u6570 ~= nil then
196 local _obj_0 = _u51fd_u6570 191 return _u51fd_u6570()
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(_u51fd_u6570, ...)
201 end)()) 196 if _u51fd_u6570 ~= nil then
202 _u8868_u8fbe_u5f0f_u64cd_u4f5c((function(...) 197 return _u51fd_u6570(...)
203 local _obj_0 = _u51fd_u6570 198 end
204 if _obj_0 ~= nil then 199 return nil
205 return _obj_0(...) 200end
206 end 201local _anon_func_24 = function(select, _u6253_u5370, ...)
207 return nil 202 do
208 end)(...)) 203 _u6253_u5370(select("#", ...))
204 return _u6253_u5370(...)
205 end
206end
207local _anon_func_25 = function(_u6253_u5370, ...)
208 do
209 return _u6253_u5370(...)
210 end
211end
212local _anon_func_26 = function(_u53d8_u91cfx, _u8868, _u88682)
213 if 1 == _u53d8_u91cfx then
214 _u8868["变量x"] = 123
215 return _u8868
216 else
217 return _u88682
218 end
219end
220local _anon_func_27 = function(_u6253_u5370, ...)
221 do
222 return _u6253_u5370(...)
223 end
224end
225local _anon_func_28 = function(_u6761_u4ef6)
226 if _u6761_u4ef6 then
227 return 3, 4, 5
228 end
229end
230local _anon_func_29 = function(_u6253_u5370, _arg_0, ...)
231 do
232 local _u8868 = _arg_0
233 return _u6253_u5370(...)
234 end
235end
236local _u8fde_u63a5
237_u8fde_u63a5 = function(...)
238 _u5e26_u6709(_anon_func_0(_u53d8_u91cfa))
239 _u5e26_u6709(_anon_func_1(_u53d8_u91cfa, ...))
240 _u5217_u8868_u751f_u6210(_anon_func_2(_u9879_u76ee))
241 _u5217_u8868_u751f_u6210(_anon_func_3(_u9879_u76ee, ...))
242 _u5217_u8868_u751f_u6210(_anon_func_4(_u9879_u76ee))
243 _u5217_u8868_u751f_u6210(_anon_func_5(_u9879_u76ee, ...))
244 _u7c7b_u751f_u6210(_anon_func_6(setmetatable, _u51fd_u6570))
245 _u7c7b_u751f_u6210(_anon_func_7(setmetatable, _u51fd_u6570, ...))
246 _u8868_u751f_u6210(_anon_func_8(pairs, _u8868))
247 _u8868_u751f_u6210(_anon_func_9(pairs, _u8868, ...))
248 _u8868_u751f_u6210(_anon_func_10(_u9879_u76ee))
249 _u8868_u751f_u6210(_anon_func_11(_u9879_u76ee, ...))
250 _u505a_u64cd_u4f5c(_anon_func_12(_u51fd_u6570))
251 _u505a_u64cd_u4f5c(_anon_func_13(_u51fd_u6570, ...))
252 _u5f53_u64cd_u4f5c(_anon_func_14(_u51fd_u6570))
253 _u5f53_u64cd_u4f5c(_anon_func_15(_u51fd_u6570, ...))
254 _u5982_u679c_u64cd_u4f5c(_anon_func_16(_u51fd_u6570))
255 _u5982_u679c_u64cd_u4f5c(_anon_func_17(_u51fd_u6570, ...))
256 _u9664_u975e_u64cd_u4f5c(_anon_func_18(_u51fd_u6570))
257 _u9664_u975e_u64cd_u4f5c(_anon_func_19(_u51fd_u6570, ...))
258 _u5207_u6362_u64cd_u4f5c(_anon_func_20(_u53d8_u91cfx, _u51fd_u6570))
259 _u5207_u6362_u64cd_u4f5c(_anon_func_21(_u53d8_u91cfx, _u51fd_u6570, ...))
260 _u8868_u8fbe_u5f0f_u64cd_u4f5c(_anon_func_22(_u51fd_u6570))
261 _u8868_u8fbe_u5f0f_u64cd_u4f5c(_anon_func_23(_u51fd_u6570, ...))
209 _u5192_u53f7((function() 262 _u5192_u53f7((function()
210 local _base_0 = f() 263 local _base_0 = f()
211 local _fn_0 = _base_0["函数"] 264 local _fn_0 = _base_0["函数"]
@@ -240,40 +293,17 @@ _u8fde_u63a5 = function(...)
240 _u591a_u53c2_u6570_u51fd_u6570 = function() 293 _u591a_u53c2_u6570_u51fd_u6570 = 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, _u6253_u5370, _u591a_u53c2_u6570_u51fd_u6570())
244 _u6253_u5370(select("#", ...))
245 return _u6253_u5370(...)
246 end)(_u591a_u53c2_u6570_u51fd_u6570())
247 end)(_u51fd_u6570_u540d(true)) 297 end)(_u51fd_u6570_u540d(true))
248 end 298 end
249 do 299 do
250 (function(...) 300 _anon_func_25(_u6253_u5370, _anon_func_26(_u53d8_u91cfx, _u8868, _u88682))
251 return _u6253_u5370(...)
252 end)((function()
253 local _exp_0 = _u53d8_u91cfx
254 if 1 == _exp_0 then
255 local _with_0 = _u8868
256 _with_0["变量x"] = 123
257 return _with_0
258 else
259 return _u88682
260 end
261 end)())
262 end 301 end
263 do 302 do
264 (function(...) 303 _anon_func_27(_u6253_u5370, 1, 2, _anon_func_28(_u6761_u4ef6))
265 return _u6253_u5370(...)
266 end)(1, 2, (function()
267 if _u6761_u4ef6 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(_u6253_u5370, {
274 local _u8868 = _arg_0
275 return _u6253_u5370(...)
276 end)({
277 ["名字"] = "abc", 307 ["名字"] = "abc",
278 ["值"] = 123 308 ["值"] = 123
279 }) 309 })
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 })