diff options
Diffstat (limited to 'spec/outputs/attrib.lua')
-rw-r--r-- | spec/outputs/attrib.lua | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/spec/outputs/attrib.lua b/spec/outputs/attrib.lua index aaff747..919b7e0 100644 --- a/spec/outputs/attrib.lua +++ b/spec/outputs/attrib.lua | |||
@@ -1,14 +1,35 @@ | |||
1 | local a <const>, b <const>, c <const>, d <const> = 1, 2, 3, 4 | ||
1 | do | 2 | do |
2 | local a <close>, b <close> = setmetatable({ }, { | 3 | local a, b = setmetatable({ }, { |
3 | __close = function(self) | 4 | __close = function(self) |
4 | return print("closed") | 5 | return print("closed") |
5 | end | 6 | end |
6 | }) | 7 | }) |
8 | local _close_0 <close> = a | ||
9 | local _close_1 <close> = b | ||
7 | local c <const>, d <const> = 123, 'abc' | 10 | local c <const>, d <const> = 123, 'abc' |
8 | close(a, b) | 11 | close(a, b) |
9 | const(c, d) | 12 | const(c, d) |
10 | end | 13 | end |
11 | do | 14 | do |
15 | local a <const> = f() | ||
16 | local b, c, d | ||
17 | do | ||
18 | local _obj_0, _obj_1 = f1() | ||
19 | b, c = _obj_0[1], _obj_0[2] | ||
20 | d = _obj_1[1] | ||
21 | end | ||
22 | end | ||
23 | do | ||
24 | local a, b, c, d | ||
25 | do | ||
26 | local _obj_0, _obj_1, _obj_2 = f() | ||
27 | a = _obj_0 | ||
28 | b, c = _obj_1[1], _obj_1[2] | ||
29 | d = _obj_2[1] | ||
30 | end | ||
31 | end | ||
32 | do | ||
12 | local v <close> = (function() | 33 | local v <close> = (function() |
13 | if flag then | 34 | if flag then |
14 | return func() | 35 | return func() |
@@ -66,7 +87,7 @@ do | |||
66 | return _with_0 | 87 | return _with_0 |
67 | end)() | 88 | end)() |
68 | local _ <close> = setmetatable({ }, { | 89 | local _ <close> = setmetatable({ }, { |
69 | __close = function(self) | 90 | __close = function() |
70 | return print("second") | 91 | return print("second") |
71 | end | 92 | end |
72 | }) | 93 | }) |
@@ -82,17 +103,19 @@ local _defers = setmetatable({ }, { | |||
82 | self[#self] = nil | 103 | self[#self] = nil |
83 | end | 104 | end |
84 | }) | 105 | }) |
106 | local def | ||
107 | def = function(item) | ||
108 | _defers[#_defers + 1] = item | ||
109 | return _defers | ||
110 | end | ||
85 | do | 111 | do |
86 | _defers[#_defers + 1] = function() | 112 | local _ <close> = def(function() |
87 | return print(3) | 113 | return print(3) |
88 | end | 114 | end) |
89 | local _ <close> = _defers | 115 | local _ <close> = def(function() |
90 | _defers[#_defers + 1] = function() | ||
91 | return print(2) | 116 | return print(2) |
92 | end | 117 | end) |
93 | local _ <close> = _defers | 118 | local _ <close> = def(function() |
94 | _defers[#_defers + 1] = function() | ||
95 | return print(1) | 119 | return print(1) |
96 | end | 120 | end) |
97 | local _ <close> = _defers | ||
98 | end | 121 | end |