Skip to content

Commit 7cd0fcc

Browse files
committed
update accumulator after expression
1 parent d4ed7c9 commit 7cd0fcc

File tree

7 files changed

+67
-67
lines changed

7 files changed

+67
-67
lines changed

moonscript/transform.lua

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,7 @@ do
12381238
wrap = function(self, node)
12391239
return build.block_exp({
12401240
build.assign_one(self.accum_name, build.table()),
1241-
build.assign_one(self.len_name, 0),
1241+
build.assign_one(self.len_name, 1),
12421242
node,
12431243
self.accum_name
12441244
})
@@ -1273,13 +1273,13 @@ do
12731273
val = self.value_name
12741274
end
12751275
local update = {
1276+
build.assign_one(self.accum_name:index(self.len_name), val),
12761277
{
12771278
"update",
12781279
self.len_name,
12791280
"+=",
12801281
1
1281-
},
1282-
build.assign_one(self.accum_name:index(self.len_name), val)
1282+
}
12831283
}
12841284
if skip_nil then
12851285
table.insert(body, build["if"]({

moonscript/transform.moon

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ class Accumulator
691691
wrap: (node) =>
692692
build.block_exp {
693693
build.assign_one @accum_name, build.table!
694-
build.assign_one @len_name, 0
694+
build.assign_one @len_name, 1
695695
node
696696
@accum_name
697697
}
@@ -715,8 +715,8 @@ class Accumulator
715715
@value_name
716716

717717
update = {
718-
{"update", @len_name, "+=", 1}
719718
build.assign_one @accum_name\index(@len_name), val
719+
{"update", @len_name, "+=", 1}
720720
}
721721

722722
if skip_nil

tests/outputs/bubbling.lua

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,38 +8,38 @@ local dont_bubble
88
dont_bubble = function()
99
return (function()
1010
local _accum_0 = { }
11-
local _len_0 = 0
11+
local _len_0 = 1
1212
for x in (function(...)
1313
return print(...)
1414
end)("hello") do
15-
_len_0 = _len_0 + 1
1615
_accum_0[_len_0] = x
16+
_len_0 = _len_0 + 1
1717
end
1818
return _accum_0
1919
end)()
2020
end
2121
local k = (function()
2222
local _accum_0 = { }
23-
local _len_0 = 0
23+
local _len_0 = 1
2424
for x in (function(...)
2525
return print(...)
2626
end)("hello") do
27-
_len_0 = _len_0 + 1
2827
_accum_0[_len_0] = x
28+
_len_0 = _len_0 + 1
2929
end
3030
return _accum_0
3131
end)()
3232
local j = (function()
3333
local _accum_0 = { }
34-
local _len_0 = 0
34+
local _len_0 = 1
3535
for i = 1, 10 do
3636
local _value_0
3737
_value_0 = function(...)
3838
return print(...)
3939
end
4040
if _value_0 ~= nil then
41-
_len_0 = _len_0 + 1
4241
_accum_0[_len_0] = _value_0
42+
_len_0 = _len_0 + 1
4343
end
4444
end
4545
return _accum_0
@@ -48,83 +48,83 @@ local m
4848
m = function(...)
4949
return (function(...)
5050
local _accum_0 = { }
51-
local _len_0 = 0
51+
local _len_0 = 1
5252
local _list_0 = {
5353
...
5454
}
5555
for _index_0 = 1, #_list_0 do
5656
local x = _list_0[_index_0]
5757
if f(...) > 4 then
58-
_len_0 = _len_0 + 1
5958
_accum_0[_len_0] = x
59+
_len_0 = _len_0 + 1
6060
end
6161
end
6262
return _accum_0
6363
end)(...)
6464
end
6565
local x = (function(...)
6666
local _accum_0 = { }
67-
local _len_0 = 0
67+
local _len_0 = 1
6868
local _list_0 = {
6969
...
7070
}
7171
for _index_0 = 1, #_list_0 do
7272
local i = _list_0[_index_0]
7373
local _value_0 = i
7474
if _value_0 ~= nil then
75-
_len_0 = _len_0 + 1
7675
_accum_0[_len_0] = _value_0
76+
_len_0 = _len_0 + 1
7777
end
7878
end
7979
return _accum_0
8080
end)(...)
8181
local y = (function(...)
8282
local _accum_0 = { }
83-
local _len_0 = 0
83+
local _len_0 = 1
8484
local _list_0 = {
8585
...
8686
}
8787
for _index_0 = 1, #_list_0 do
8888
x = _list_0[_index_0]
89-
_len_0 = _len_0 + 1
9089
_accum_0[_len_0] = x
90+
_len_0 = _len_0 + 1
9191
end
9292
return _accum_0
9393
end)(...)
9494
local z = (function(...)
9595
local _accum_0 = { }
96-
local _len_0 = 0
96+
local _len_0 = 1
9797
for x in hallo do
9898
if f(...) > 4 then
99-
_len_0 = _len_0 + 1
10099
_accum_0[_len_0] = x
100+
_len_0 = _len_0 + 1
101101
end
102102
end
103103
return _accum_0
104104
end)(...)
105105
local a = (function(...)
106106
local _accum_0 = { }
107-
local _len_0 = 0
107+
local _len_0 = 1
108108
for i = 1, 10 do
109109
local _value_0 = ...
110110
if _value_0 ~= nil then
111-
_len_0 = _len_0 + 1
112111
_accum_0[_len_0] = _value_0
112+
_len_0 = _len_0 + 1
113113
end
114114
end
115115
return _accum_0
116116
end)(...)
117117
local b = (function()
118118
local _accum_0 = { }
119-
local _len_0 = 0
119+
local _len_0 = 1
120120
for i = 1, 10 do
121121
local _value_0
122122
_value_0 = function()
123123
return print(...)
124124
end
125125
if _value_0 ~= nil then
126-
_len_0 = _len_0 + 1
127126
_accum_0[_len_0] = _value_0
127+
_len_0 = _len_0 + 1
128128
end
129129
end
130130
return _accum_0

tests/outputs/comprehension.lua

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,10 @@ return (function()
6868
x = _list_0[_index_0]
6969
local _key_0, _val_0 = unpack((function()
7070
local _accum_0 = { }
71-
local _len_0 = 0
71+
local _len_0 = 1
7272
for i, a in ipairs(x) do
73-
_len_0 = _len_0 + 1
7473
_accum_0[_len_0] = a * i
74+
_len_0 = _len_0 + 1
7575
end
7676
return _accum_0
7777
end)())

tests/outputs/lists.lua

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
local hi = (function()
22
local _accum_0 = { }
3-
local _len_0 = 0
3+
local _len_0 = 1
44
for _, x in ipairs({
55
1,
66
2,
77
3,
88
4
99
}) do
10-
_len_0 = _len_0 + 1
1110
_accum_0[_len_0] = x * 2
11+
_len_0 = _len_0 + 1
1212
end
1313
return _accum_0
1414
end)()
@@ -22,10 +22,10 @@ local items = {
2222
}
2323
local mm = (function()
2424
local _accum_0 = { }
25-
local _len_0 = 0
25+
local _len_0 = 1
2626
for self.x in ipairs(items) do
27-
_len_0 = _len_0 + 1
2827
_accum_0[_len_0] = self.x
28+
_len_0 = _len_0 + 1
2929
end
3030
return _accum_0
3131
end)()
@@ -36,7 +36,7 @@ for z in ipairs(items) do
3636
end
3737
local rad = (function()
3838
local _accum_0 = { }
39-
local _len_0 = 0
39+
local _len_0 = 1
4040
for a in ipairs({
4141
1,
4242
2,
@@ -46,10 +46,10 @@ local rad = (function()
4646
6
4747
}) do
4848
if good_number(a) then
49-
_len_0 = _len_0 + 1
5049
_accum_0[_len_0] = {
5150
a
5251
}
52+
_len_0 = _len_0 + 1
5353
end
5454
end
5555
return _accum_0
@@ -78,38 +78,38 @@ range = function(count)
7878
end
7979
dump((function()
8080
local _accum_0 = { }
81-
local _len_0 = 0
81+
local _len_0 = 1
8282
for x in range(10) do
83-
_len_0 = _len_0 + 1
8483
_accum_0[_len_0] = x
84+
_len_0 = _len_0 + 1
8585
end
8686
return _accum_0
8787
end)())
8888
dump((function()
8989
local _accum_0 = { }
90-
local _len_0 = 0
90+
local _len_0 = 1
9191
for x in range(5) do
9292
if x > 2 then
9393
for y in range(5) do
94-
_len_0 = _len_0 + 1
9594
_accum_0[_len_0] = {
9695
x,
9796
y
9897
}
98+
_len_0 = _len_0 + 1
9999
end
100100
end
101101
end
102102
return _accum_0
103103
end)())
104104
local things = (function()
105105
local _accum_0 = { }
106-
local _len_0 = 0
106+
local _len_0 = 1
107107
for x in range(10) do
108108
if x > 5 then
109109
for y in range(10) do
110110
if y > 7 then
111-
_len_0 = _len_0 + 1
112111
_accum_0[_len_0] = x + y
112+
_len_0 = _len_0 + 1
113113
end
114114
end
115115
end
@@ -139,10 +139,10 @@ for x in x do
139139
end
140140
local x = (function()
141141
local _accum_0 = { }
142-
local _len_0 = 0
142+
local _len_0 = 1
143143
for x in x do
144-
_len_0 = _len_0 + 1
145144
_accum_0[_len_0] = x
145+
_len_0 = _len_0 + 1
146146
end
147147
return _accum_0
148148
end)()
@@ -163,12 +163,12 @@ for x in ipairs({
163163
end
164164
local double = (function()
165165
local _accum_0 = { }
166-
local _len_0 = 0
166+
local _len_0 = 1
167167
local _list_0 = items
168168
for _index_0 = 1, #_list_0 do
169169
x = _list_0[_index_0]
170-
_len_0 = _len_0 + 1
171170
_accum_0[_len_0] = x * 2
171+
_len_0 = _len_0 + 1
172172
end
173173
return _accum_0
174174
end)()
@@ -179,28 +179,28 @@ for _index_0 = 1, #_list_0 do
179179
end
180180
local cut = (function()
181181
local _accum_0 = { }
182-
local _len_0 = 0
182+
local _len_0 = 1
183183
local _list_1 = items
184184
for _index_0 = 1, #_list_1 do
185185
x = _list_1[_index_0]
186186
if x > 3 then
187-
_len_0 = _len_0 + 1
188187
_accum_0[_len_0] = x
188+
_len_0 = _len_0 + 1
189189
end
190190
end
191191
return _accum_0
192192
end)()
193193
local hello = (function()
194194
local _accum_0 = { }
195-
local _len_0 = 0
195+
local _len_0 = 1
196196
local _list_1 = items
197197
for _index_0 = 1, #_list_1 do
198198
x = _list_1[_index_0]
199199
local _list_2 = items
200200
for _index_1 = 1, #_list_2 do
201201
local y = _list_2[_index_1]
202-
_len_0 = _len_0 + 1
203202
_accum_0[_len_0] = x + y
203+
_len_0 = _len_0 + 1
204204
end
205205
end
206206
return _accum_0
@@ -257,10 +257,10 @@ local normal
257257
normal = function(hello)
258258
return (function()
259259
local _accum_0 = { }
260-
local _len_0 = 0
260+
local _len_0 = 1
261261
for x in yeah do
262-
_len_0 = _len_0 + 1
263262
_accum_0[_len_0] = x
263+
_len_0 = _len_0 + 1
264264
end
265265
return _accum_0
266266
end)()
@@ -289,12 +289,12 @@ end
289289
return function()
290290
return (function()
291291
local _accum_0 = { }
292-
local _len_0 = 0
292+
local _len_0 = 1
293293
local _list_9 = things
294294
for _index_0 = 1, #_list_9 do
295295
x = _list_9[_index_0]
296-
_len_0 = _len_0 + 1
297296
_accum_0[_len_0] = x
297+
_len_0 = _len_0 + 1
298298
end
299299
return _accum_0
300300
end)()

0 commit comments

Comments
 (0)