reorganize destructure tests

This commit is contained in:
leaf corcoran 2013-06-06 19:33:08 -07:00
parent 9ac382fc49
commit e1c2829d0e
2 changed files with 204 additions and 164 deletions

View File

@ -1,28 +1,31 @@
{a, b} = hello do
{a, b} = hello
{{a}, b, {c}} = hello {{a}, b, {c}} = hello
{ :hello, :world } = value { :hello, :world } = value
{ yes: no, thing } = world do
{ yes: no, thing } = world
{:a,:b,:c,:d} = yeah {:a,:b,:c,:d} = yeah
{a} = one, two {a} = one, two
{b}, c = one {b}, c = one
{d}, e = one, two {d}, e = one, two
x, {y} = one, two x, {y} = one, two
xx, yy = 1, 2 xx, yy = 1, 2
{yy, xx} = {xx, yy} {yy, xx} = {xx, yy}
{a, :b, c, :d, e, :f, g} = tbl {a, :b, c, :d, e, :f, g} = tbl
--- ---
futurists = do
futurists =
sculptor: "Umberto Boccioni" sculptor: "Umberto Boccioni"
painter: "Vladimir Burliuk" painter: "Vladimir Burliuk"
poet: poet:
@ -32,51 +35,52 @@ futurists =
"Bellagio, Italy 22021" "Bellagio, Italy 22021"
} }
{poet: {:name, address: {street, city}}} = futurists {poet: {:name, address: {street, city}}} = futurists
print name, street, city
-- --
{ @world } = x do
{ a.b, c.y, func!.z } = x { @world } = x
{ a.b, c.y, func!.z } = x
{ world: @world } = x { world: @world } = x
-- --
thing = {{1,2}, {3,4}} do
thing = {{1,2}, {3,4}}
for {x,y} in *thing for {x,y} in *thing
print x,y print x,y
-- --
with {a,b} = thing do
with {a,b} = thing
print a, b print a, b
-- --
thing = nil do
if {a} = thing thing = nil
if {a} = thing
print a print a
else else
print "nothing" print "nothing"
thang = {1,2} thang = {1,2}
if {a,b} = thang if {a,b} = thang
print a,b print a,b
if {a,b} = thing if {a,b} = thing
print a,b print a,b
elseif {c,d} = thang elseif {c,d} = thang
print c,d print c,d
else else
print "NO" print "NO"
-- --
do do

View File

@ -1,60 +1,68 @@
local a, b
do do
local a, b
do
local _obj_0 = hello local _obj_0 = hello
a, b = _obj_0[1], _obj_0[2] a, b = _obj_0[1], _obj_0[2]
end end
local c local c
do do
local _obj_0 = hello local _obj_0 = hello
a, b, c = _obj_0[1][1], _obj_0[2], _obj_0[3][1] a, b, c = _obj_0[1][1], _obj_0[2], _obj_0[3][1]
end end
local hello, world local hello, world
do do
local _obj_0 = value local _obj_0 = value
hello, world = _obj_0.hello, _obj_0.world hello, world = _obj_0.hello, _obj_0.world
end
end end
local no, thing
no, thing = world.yes, world[1]
local d
do do
local no, thing
do
local _obj_0 = world
no, thing = _obj_0.yes, _obj_0[1]
end
local a, b, c, d
do
local _obj_0 = yeah local _obj_0 = yeah
a, b, c, d = _obj_0.a, _obj_0.b, _obj_0.c, _obj_0.d a, b, c, d = _obj_0.a, _obj_0.b, _obj_0.c, _obj_0.d
end end
do do
local _obj_0 = one local _obj_0 = one
a = _obj_0[1] a = _obj_0[1]
end end
local _ = two local _ = two
do do
local _obj_0 = one local _obj_0 = one
b = _obj_0[1] b = _obj_0[1]
end end
c = nil c = nil
do do
local _obj_0 = one local _obj_0 = one
d = _obj_0[1] d = _obj_0[1]
end end
local e = two local e = two
local x = one local x = one
local y local y
do do
local _obj_0 = two local _obj_0 = two
y = _obj_0[1] y = _obj_0[1]
end end
local xx, yy = 1, 2 local xx, yy = 1, 2
do do
local _obj_0 = { local _obj_0 = {
xx, xx,
yy yy
} }
yy, xx = _obj_0[1], _obj_0[2] yy, xx = _obj_0[1], _obj_0[2]
end end
local f, g local f, g
do do
local _obj_0 = tbl local _obj_0 = tbl
a, b, c, d, e, f, g = _obj_0[1], _obj_0.b, _obj_0[2], _obj_0.d, _obj_0[3], _obj_0.f, _obj_0[4] a, b, c, d, e, f, g = _obj_0[1], _obj_0.b, _obj_0[2], _obj_0.d, _obj_0[3], _obj_0.f, _obj_0[4]
end
end end
local futurists = { do
local futurists = {
sculptor = "Umberto Boccioni", sculptor = "Umberto Boccioni",
painter = "Vladimir Burliuk", painter = "Vladimir Burliuk",
poet = { poet = {
@ -64,14 +72,26 @@ local futurists = {
"Bellagio, Italy 22021" "Bellagio, Italy 22021"
} }
} }
} }
local name, street, city local name, street, city
name, street, city = futurists.poet.name, futurists.poet.address[1], futurists.poet.address[2] name, street, city = futurists.poet.name, futurists.poet.address[1], futurists.poet.address[2]
print(name, street, city) end
self.world = x[1] do
a.b, c.y, func().z = x[1], x[2], x[3] do
self.world = x.world local _obj_0 = x
thing = { self.world = _obj_0[1]
end
do
local _obj_0 = x
a.b, c.y, func().z = _obj_0[1], _obj_0[2], _obj_0[3]
end
do
local _obj_0 = x
self.world = _obj_0.world
end
end
do
local thing = {
{ {
1, 1,
2 2
@ -80,48 +100,58 @@ thing = {
3, 3,
4 4
} }
} }
local _list_0 = thing local _list_0 = thing
for _index_0 = 1, #_list_0 do for _index_0 = 1, #_list_0 do
local _des_0 = _list_0[_index_0] local _des_0 = _list_0[_index_0]
local x, y
x, y = _des_0[1], _des_0[2] x, y = _des_0[1], _des_0[2]
print(x, y) print(x, y)
end
end end
do do
do
local _with_0 = thing local _with_0 = thing
local a, b
a, b = _with_0[1], _with_0[2] a, b = _with_0[1], _with_0[2]
print(a, b) print(a, b)
end
end end
thing = nil
do do
local thing = nil
do
local _des_0 = thing local _des_0 = thing
if _des_0 then if _des_0 then
local a
a = _des_0[1] a = _des_0[1]
print(a) print(a)
else else
print("nothing") print("nothing")
end end
end end
local thang = { local thang = {
1, 1,
2 2
} }
do do
local _des_0 = thang local _des_0 = thang
if _des_0 then if _des_0 then
local a, b
a, b = _des_0[1], _des_0[2] a, b = _des_0[1], _des_0[2]
print(a, b) print(a, b)
end end
end end
do do
local _des_0 = thing local _des_0 = thing
if _des_0 then if _des_0 then
local a, b
a, b = _des_0[1], _des_0[2] a, b = _des_0[1], _des_0[2]
print(a, b) print(a, b)
else else
do do
local _des_1 = thang local _des_1 = thang
if _des_1 then if _des_1 then
local c, d
c, d = _des_1[1], _des_1[2] c, d = _des_1[1], _des_1[2]
print(c, d) print(c, d)
else else
@ -129,23 +159,29 @@ do
end end
end end
end end
end
end end
do do
local z = "yeah" local z = "yeah"
local a, b, c
a, b, c = z[1], z[2], z[3] a, b, c = z[1], z[2], z[3]
end end
do do
local a, b, c
do do
local _obj_0 = z local _obj_0 = z
a, b, c = _obj_0[1], _obj_0[2], _obj_0[3] a, b, c = _obj_0[1], _obj_0[2], _obj_0[3]
end end
end end
local _
_ = function(z) _ = function(z)
local a, b, c
a, b, c = z[1], z[2], z[3] a, b, c = z[1], z[2], z[3]
end end
do do
local z = "oo" local z = "oo"
return function(k) return function(k)
local a, b, c
a, b, c = z[1], z[2], z[3] a, b, c = z[1], z[2], z[3]
end end
end end