mirror of
https://github.com/leafo/moonscript.git
synced 2025-01-09 00:04:22 +00:00
don't create unecessary function with tblcomp and assign single
This commit is contained in:
parent
7735804508
commit
82f73842d8
@ -369,16 +369,8 @@ Statement = Transformer({
|
|||||||
block_body
|
block_body
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
elseif "comprehension" == _exp_0 then
|
elseif "comprehension" == _exp_0 or "tblcomprehension" == _exp_0 then
|
||||||
local a = Accumulator()
|
return build.assign_one(first_name, Value.transformers[first_value[1]](self, first_value))
|
||||||
local action
|
|
||||||
action = function(exp)
|
|
||||||
return a:mutate_body({
|
|
||||||
exp
|
|
||||||
})
|
|
||||||
end
|
|
||||||
node = self.transform.statement(first_value, action, node)
|
|
||||||
return build.assign_one(first_name, a:wrap(node))
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
local transformed
|
local transformed
|
||||||
|
@ -190,11 +190,9 @@ Statement = Transformer {
|
|||||||
{"do", block_body}
|
{"do", block_body}
|
||||||
}
|
}
|
||||||
|
|
||||||
when "comprehension"
|
when "comprehension", "tblcomprehension"
|
||||||
a = Accumulator!
|
return build.assign_one first_name,
|
||||||
action = (exp) -> a\mutate_body { exp }
|
Value.transformers[first_value[1]] @, first_value
|
||||||
node = @transform.statement first_value, action, node
|
|
||||||
return build.assign_one first_name, a\wrap node
|
|
||||||
|
|
||||||
-- bubble cascading assigns
|
-- bubble cascading assigns
|
||||||
transformed = if num_values == 1
|
transformed = if num_values == 1
|
||||||
|
@ -6,35 +6,38 @@ local items = {
|
|||||||
5,
|
5,
|
||||||
6
|
6
|
||||||
}
|
}
|
||||||
local out = (function()
|
local out
|
||||||
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
for k in items do
|
for k in items do
|
||||||
_tbl_0[k] = k * 2
|
_tbl_0[k] = k * 2
|
||||||
end
|
end
|
||||||
return _tbl_0
|
out = _tbl_0
|
||||||
end)()
|
end
|
||||||
local x = {
|
local x = {
|
||||||
hello = "world",
|
hello = "world",
|
||||||
okay = 2323
|
okay = 2323
|
||||||
}
|
}
|
||||||
local copy = (function()
|
local copy
|
||||||
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
for k, v in pairs(x) do
|
for k, v in pairs(x) do
|
||||||
if k ~= "okay" then
|
if k ~= "okay" then
|
||||||
_tbl_0[k] = v
|
_tbl_0[k] = v
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return _tbl_0
|
copy = _tbl_0
|
||||||
end)()
|
end
|
||||||
local _ = (function()
|
local _
|
||||||
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
for x in yes do
|
for x in yes do
|
||||||
local _key_0, _val_0 = unpack(x)
|
local _key_0, _val_0 = unpack(x)
|
||||||
_tbl_0[_key_0] = _val_0
|
_tbl_0[_key_0] = _val_0
|
||||||
end
|
end
|
||||||
return _tbl_0
|
_ = _tbl_0
|
||||||
end)()
|
end
|
||||||
_ = (function()
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
local _list_0 = yes
|
local _list_0 = yes
|
||||||
for _index_0 = 1, #_list_0 do
|
for _index_0 = 1, #_list_0 do
|
||||||
@ -42,17 +45,17 @@ _ = (function()
|
|||||||
local _key_0, _val_0 = unpack(x)
|
local _key_0, _val_0 = unpack(x)
|
||||||
_tbl_0[_key_0] = _val_0
|
_tbl_0[_key_0] = _val_0
|
||||||
end
|
end
|
||||||
return _tbl_0
|
_ = _tbl_0
|
||||||
end)()
|
end
|
||||||
_ = (function()
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
for x in yes do
|
for x in yes do
|
||||||
local _key_0, _val_0 = xxxx
|
local _key_0, _val_0 = xxxx
|
||||||
_tbl_0[_key_0] = _val_0
|
_tbl_0[_key_0] = _val_0
|
||||||
end
|
end
|
||||||
return _tbl_0
|
_ = _tbl_0
|
||||||
end)()
|
end
|
||||||
_ = (function()
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
local _list_0 = {
|
local _list_0 = {
|
||||||
{
|
{
|
||||||
@ -77,8 +80,8 @@ _ = (function()
|
|||||||
end)())
|
end)())
|
||||||
_tbl_0[_key_0] = _val_0
|
_tbl_0[_key_0] = _val_0
|
||||||
end
|
end
|
||||||
return _tbl_0
|
_ = _tbl_0
|
||||||
end)()
|
end
|
||||||
local n1
|
local n1
|
||||||
do
|
do
|
||||||
local _accum_0 = { }
|
local _accum_0 = { }
|
||||||
@ -158,11 +161,11 @@ do
|
|||||||
end
|
end
|
||||||
dd = _accum_0
|
dd = _accum_0
|
||||||
end
|
end
|
||||||
_ = (function()
|
do
|
||||||
local _tbl_0 = { }
|
local _tbl_0 = { }
|
||||||
for i = 1, 10 do
|
for i = 1, 10 do
|
||||||
_tbl_0["hello"] = "world"
|
_tbl_0["hello"] = "world"
|
||||||
end
|
end
|
||||||
return _tbl_0
|
_ = _tbl_0
|
||||||
end)()
|
end
|
||||||
return nil
|
return nil
|
Loading…
Reference in New Issue
Block a user