aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/comprehension.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/outputs/comprehension.lua')
-rw-r--r--spec/outputs/comprehension.lua277
1 files changed, 277 insertions, 0 deletions
diff --git a/spec/outputs/comprehension.lua b/spec/outputs/comprehension.lua
new file mode 100644
index 0000000..9a7c478
--- /dev/null
+++ b/spec/outputs/comprehension.lua
@@ -0,0 +1,277 @@
1local items = {
2 1,
3 2,
4 3,
5 4,
6 5,
7 6
8}
9local out
10do
11 local _tbl_0 = { }
12 for k in items do
13 _tbl_0[k] = k * 2
14 end
15 out = _tbl_0
16end
17local x = {
18 hello = "world",
19 okay = 2323
20}
21local copy
22do
23 local _tbl_0 = { }
24 for k, v in pairs(x) do
25 if k ~= "okay" then
26 _tbl_0[k] = v
27 end
28 end
29 copy = _tbl_0
30end
31local _
32do
33 local _tbl_0 = { }
34 for x in yes do
35 local _key_0, _val_0 = unpack(x)
36 _tbl_0[_key_0] = _val_0
37 end
38 _ = _tbl_0
39end
40do
41 local _tbl_0 = { }
42 local _list_0 = yes
43 for _index_0 = 1, #_list_0 do
44 local x = _list_0[_index_0]
45 local _key_0, _val_0 = unpack(x)
46 _tbl_0[_key_0] = _val_0
47 end
48 _ = _tbl_0
49end
50do
51 local _tbl_0 = { }
52 for x in yes do
53 local _key_0, _val_0 = xxxx
54 _tbl_0[_key_0] = _val_0
55 end
56 _ = _tbl_0
57end
58do
59 local _tbl_0 = { }
60 local _list_0 = {
61 {
62 1,
63 2
64 },
65 {
66 3,
67 4
68 }
69 }
70 for _index_0 = 1, #_list_0 do
71 local x = _list_0[_index_0]
72 local _key_0, _val_0 = unpack((function()
73 local _accum_0 = { }
74 local _len_0 = 1
75 for i, a in ipairs(x) do
76 _accum_0[_len_0] = a * i
77 _len_0 = _len_0 + 1
78 end
79 return _accum_0
80 end)())
81 _tbl_0[_key_0] = _val_0
82 end
83 _ = _tbl_0
84end
85local n1
86do
87 local _accum_0 = { }
88 local _len_0 = 1
89 for i = 1, 10 do
90 _accum_0[_len_0] = i
91 _len_0 = _len_0 + 1
92 end
93 n1 = _accum_0
94end
95local n2
96do
97 local _accum_0 = { }
98 local _len_0 = 1
99 for i = 1, 10 do
100 if i % 2 == 1 then
101 _accum_0[_len_0] = i
102 _len_0 = _len_0 + 1
103 end
104 end
105 n2 = _accum_0
106end
107local aa
108do
109 local _accum_0 = { }
110 local _len_0 = 1
111 for x = 1, 10 do
112 for y = 5, 14 do
113 _accum_0[_len_0] = {
114 x,
115 y
116 }
117 _len_0 = _len_0 + 1
118 end
119 end
120 aa = _accum_0
121end
122local bb
123do
124 local _accum_0 = { }
125 local _len_0 = 1
126 for thing in y do
127 for i = 1, 10 do
128 _accum_0[_len_0] = y
129 _len_0 = _len_0 + 1
130 end
131 end
132 bb = _accum_0
133end
134local cc
135do
136 local _accum_0 = { }
137 local _len_0 = 1
138 for i = 1, 10 do
139 for thing in y do
140 _accum_0[_len_0] = y
141 _len_0 = _len_0 + 1
142 end
143 end
144 cc = _accum_0
145end
146local dd
147do
148 local _accum_0 = { }
149 local _len_0 = 1
150 for i = 1, 10 do
151 if cool then
152 for thing in y do
153 if x > 3 then
154 if c + 3 then
155 _accum_0[_len_0] = y
156 _len_0 = _len_0 + 1
157 end
158 end
159 end
160 end
161 end
162 dd = _accum_0
163end
164do
165 local _tbl_0 = { }
166 for i = 1, 10 do
167 _tbl_0["hello"] = "world"
168 end
169 _ = _tbl_0
170end
171local j
172do
173 local _accum_0 = { }
174 local _len_0 = 1
175 for _des_0 in things do
176 local a, b, c = _des_0[1], _des_0[2], _des_0[3]
177 _accum_0[_len_0] = a
178 _len_0 = _len_0 + 1
179 end
180 j = _accum_0
181end
182local k
183do
184 local _accum_0 = { }
185 local _len_0 = 1
186 local _list_0 = things
187 for _index_0 = 1, #_list_0 do
188 local _des_0 = _list_0[_index_0]
189 local a, b, c = _des_0[1], _des_0[2], _des_0[3]
190 _accum_0[_len_0] = a
191 _len_0 = _len_0 + 1
192 end
193 k = _accum_0
194end
195local i
196do
197 local _accum_0 = { }
198 local _len_0 = 1
199 local _list_0 = things
200 for _index_0 = 1, #_list_0 do
201 local _des_0 = _list_0[_index_0]
202 local hello, world = _des_0.hello, _des_0.world
203 _accum_0[_len_0] = hello
204 _len_0 = _len_0 + 1
205 end
206 i = _accum_0
207end
208local hj
209do
210 local _tbl_0 = { }
211 for _des_0 in things do
212 local a, b, c = _des_0[1], _des_0[2], _des_0[3]
213 _tbl_0[a] = c
214 end
215 hj = _tbl_0
216end
217local hk
218do
219 local _tbl_0 = { }
220 local _list_0 = things
221 for _index_0 = 1, #_list_0 do
222 local _des_0 = _list_0[_index_0]
223 local a, b, c = _des_0[1], _des_0[2], _des_0[3]
224 _tbl_0[a] = c
225 end
226 hk = _tbl_0
227end
228local hi
229do
230 local _tbl_0 = { }
231 local _list_0 = things
232 for _index_0 = 1, #_list_0 do
233 local _des_0 = _list_0[_index_0]
234 local hello, world = _des_0.hello, _des_0.world
235 _tbl_0[hello] = world
236 end
237 hi = _tbl_0
238end
239for _des_0 in things do
240 local a, b, c = _des_0[1], _des_0[2], _des_0[3]
241 ok(a, b, c)
242end
243do
244 local _accum_0 = { }
245 local _len_0 = 1
246 local _max_0 = 3 + 4
247 for _index_0 = 1 + 2, _max_0 < 0 and #items + _max_0 or _max_0 do
248 local item = items[_index_0]
249 _accum_0[_len_0] = item
250 _len_0 = _len_0 + 1
251 end
252 _ = _accum_0
253end
254do
255 local _accum_0 = { }
256 local _len_0 = 1
257 local _max_0 = 2 - thing[4]
258 for _index_0 = hello() * 4, _max_0 < 0 and #items + _max_0 or _max_0 do
259 local item = items[_index_0]
260 _accum_0[_len_0] = item
261 _len_0 = _len_0 + 1
262 end
263 _ = _accum_0
264end
265local list
266do
267 local _accum_0 = { }
268 local _len_0 = 1
269 for item in items do
270 if item ~= nil then
271 _accum_0[_len_0] = item:invoke(123)
272 end
273 _len_0 = _len_0 + 1
274 end
275 list = _accum_0
276end
277return nil