diff options
author | Li Jin <dragon-fly@qq.com> | 2024-05-23 16:30:05 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2024-05-23 16:30:05 +0800 |
commit | 1890294226034d27165af016c8c93a484d978b49 (patch) | |
tree | 97f7f698aef1998ceb037080bd9f46b6f894e441 /spec/outputs/5.1/attrib.lua | |
parent | 06bf167924d04aaefe80d6e4ead40989a447ea34 (diff) | |
download | yuescript-1890294226034d27165af016c8c93a484d978b49.tar.gz yuescript-1890294226034d27165af016c8c93a484d978b49.tar.bz2 yuescript-1890294226034d27165af016c8c93a484d978b49.zip |
prevent more anonymous functions generating from `const`, `close` decl.
Diffstat (limited to 'spec/outputs/5.1/attrib.lua')
-rw-r--r-- | spec/outputs/5.1/attrib.lua | 115 |
1 files changed, 55 insertions, 60 deletions
diff --git a/spec/outputs/5.1/attrib.lua b/spec/outputs/5.1/attrib.lua index 8361b24..c48c72c 100644 --- a/spec/outputs/5.1/attrib.lua +++ b/spec/outputs/5.1/attrib.lua | |||
@@ -55,22 +55,16 @@ local _anon_func_0 = function(_close_1, error, f, _arg_0, ...) | |||
55 | end | 55 | end |
56 | end | 56 | end |
57 | end | 57 | end |
58 | local _anon_func_1 = function(io) | 58 | local _anon_func_1 = function() end |
59 | local _with_0 = io.open("file.txt") | ||
60 | _with_0:write("Hello") | ||
61 | return _with_0 | ||
62 | end | ||
63 | local _anon_func_2 = function() end | ||
64 | do | 59 | do |
65 | local v = (function() | 60 | local v |
66 | if flag then | 61 | if flag then |
67 | return func() | 62 | v = func() |
68 | else | 63 | else |
69 | return setmetatable({ }, { | 64 | v = setmetatable({ }, { |
70 | __close = function(self) end | 65 | __close = function(self) end |
71 | }) | 66 | }) |
72 | end | 67 | end |
73 | end)() | ||
74 | local _close_0 = assert(getmetatable(v).__close); | 68 | local _close_0 = assert(getmetatable(v).__close); |
75 | (function(_arg_0, ...) | 69 | (function(_arg_0, ...) |
76 | local _ok_0 = _arg_0 | 70 | local _ok_0 = _arg_0 |
@@ -81,12 +75,17 @@ do | |||
81 | return error(...) | 75 | return error(...) |
82 | end | 76 | end |
83 | end)(pcall(function() | 77 | end)(pcall(function() |
84 | local f = _anon_func_1(io) | 78 | local f |
79 | do | ||
80 | local _with_0 = io.open("file.txt") | ||
81 | _with_0:write("Hello") | ||
82 | f = _with_0 | ||
83 | end | ||
85 | local _close_1 = assert(getmetatable(f).__close) | 84 | local _close_1 = assert(getmetatable(f).__close) |
86 | return _anon_func_0(_close_1, error, f, pcall(_anon_func_2)) | 85 | return _anon_func_0(_close_1, error, f, pcall(_anon_func_1)) |
87 | end)) | 86 | end)) |
88 | end | 87 | end |
89 | local _anon_func_3 = function(_close_1, d, error, _arg_0, ...) | 88 | local _anon_func_2 = function(_close_1, d, error, _arg_0, ...) |
90 | do | 89 | do |
91 | local _ok_0 = _arg_0 | 90 | local _ok_0 = _arg_0 |
92 | _close_1(d) | 91 | _close_1(d) |
@@ -97,41 +96,25 @@ local _anon_func_3 = function(_close_1, d, error, _arg_0, ...) | |||
97 | end | 96 | end |
98 | end | 97 | end |
99 | end | 98 | end |
100 | local _anon_func_4 = function(x) | 99 | local _anon_func_3 = function(a, b) |
101 | if true then | ||
102 | if "abc" == x then | ||
103 | return 998 | ||
104 | end | ||
105 | end | ||
106 | end | ||
107 | local _anon_func_6 = function(a, b) | ||
108 | if a ~= nil then | 100 | if a ~= nil then |
109 | return a | 101 | return a |
110 | else | 102 | else |
111 | return b | 103 | return b |
112 | end | 104 | end |
113 | end | 105 | end |
114 | local _anon_func_5 = function(a, b) | 106 | local _anon_func_4 = function() end |
115 | if _anon_func_6(a, b) then | ||
116 | return { | ||
117 | value = value | ||
118 | } | ||
119 | end | ||
120 | end | ||
121 | local _anon_func_7 = function() end | ||
122 | do | 107 | do |
123 | local a = (function() | 108 | local a |
124 | if true then | 109 | if true then |
125 | return 1 | 110 | a = 1 |
126 | end | 111 | end |
127 | end)() | 112 | local b |
128 | local b = (function() | 113 | if not false then |
129 | if not false then | 114 | if x then |
130 | if x then | 115 | b = 1 |
131 | return 1 | ||
132 | end | ||
133 | end | 116 | end |
134 | end)() | 117 | end |
135 | local _close_0 = assert(getmetatable(b).__close); | 118 | local _close_0 = assert(getmetatable(b).__close); |
136 | (function(_arg_0, ...) | 119 | (function(_arg_0, ...) |
137 | local _ok_0 = _arg_0 | 120 | local _ok_0 = _arg_0 |
@@ -142,13 +125,24 @@ do | |||
142 | return error(...) | 125 | return error(...) |
143 | end | 126 | end |
144 | end)(pcall(function() | 127 | end)(pcall(function() |
145 | local c = _anon_func_4(x) | 128 | local c |
146 | local d = _anon_func_5(a, b) | 129 | if true then |
130 | local _exp_0 = x | ||
131 | if "abc" == _exp_0 then | ||
132 | c = 998 | ||
133 | end | ||
134 | end | ||
135 | local d | ||
136 | if _anon_func_3(a, b) then | ||
137 | d = { | ||
138 | value = value | ||
139 | } | ||
140 | end | ||
147 | local _close_1 = assert(getmetatable(d).__close) | 141 | local _close_1 = assert(getmetatable(d).__close) |
148 | return _anon_func_3(_close_1, d, error, pcall(_anon_func_7)) | 142 | return _anon_func_2(_close_1, d, error, pcall(_anon_func_4)) |
149 | end)) | 143 | end)) |
150 | end | 144 | end |
151 | local _anon_func_8 = function(_, _close_1, error, _arg_0, ...) | 145 | local _anon_func_5 = function(_, _close_1, error, _arg_0, ...) |
152 | do | 146 | do |
153 | local _ok_0 = _arg_0 | 147 | local _ok_0 = _arg_0 |
154 | _close_1(_) | 148 | _close_1(_) |
@@ -159,7 +153,7 @@ local _anon_func_8 = function(_, _close_1, error, _arg_0, ...) | |||
159 | end | 153 | end |
160 | end | 154 | end |
161 | end | 155 | end |
162 | local _anon_func_9 = function(_, _close_2, error, _arg_0, ...) | 156 | local _anon_func_6 = function(_, _close_2, error, _arg_0, ...) |
163 | do | 157 | do |
164 | local _ok_0 = _arg_0 | 158 | local _ok_0 = _arg_0 |
165 | _close_2(_) | 159 | _close_2(_) |
@@ -171,11 +165,12 @@ local _anon_func_9 = function(_, _close_2, error, _arg_0, ...) | |||
171 | end | 165 | end |
172 | end | 166 | end |
173 | do | 167 | do |
174 | local _ = (function() | 168 | local _ |
169 | do | ||
175 | local _with_0 = io.open("file.txt") | 170 | local _with_0 = io.open("file.txt") |
176 | _with_0:write("Hello") | 171 | _with_0:write("Hello") |
177 | return _with_0 | 172 | _ = _with_0 |
178 | end)() | 173 | end |
179 | local _close_0 = assert(getmetatable(_).__close); | 174 | local _close_0 = assert(getmetatable(_).__close); |
180 | (function(_arg_0, ...) | 175 | (function(_arg_0, ...) |
181 | local _ok_0 = _arg_0 | 176 | local _ok_0 = _arg_0 |
@@ -192,14 +187,14 @@ do | |||
192 | end | 187 | end |
193 | }) | 188 | }) |
194 | local _close_1 = assert(getmetatable(_).__close) | 189 | local _close_1 = assert(getmetatable(_).__close) |
195 | return _anon_func_8(_, _close_1, error, pcall(function() | 190 | return _anon_func_5(_, _close_1, error, pcall(function() |
196 | local _ = setmetatable({ }, { | 191 | local _ = setmetatable({ }, { |
197 | __close = function() | 192 | __close = function() |
198 | return print("first") | 193 | return print("first") |
199 | end | 194 | end |
200 | }) | 195 | }) |
201 | local _close_2 = assert(getmetatable(_).__close) | 196 | local _close_2 = assert(getmetatable(_).__close) |
202 | return _anon_func_9(_, _close_2, error, pcall(function() | 197 | return _anon_func_6(_, _close_2, error, pcall(function() |
203 | return print("third") | 198 | return print("third") |
204 | end)) | 199 | end)) |
205 | end)) | 200 | end)) |
@@ -216,7 +211,7 @@ def = function(item) | |||
216 | _defers[#_defers + 1] = item | 211 | _defers[#_defers + 1] = item |
217 | return _defers | 212 | return _defers |
218 | end | 213 | end |
219 | local _anon_func_10 = function(_, _close_1, error, _arg_0, ...) | 214 | local _anon_func_7 = function(_, _close_1, error, _arg_0, ...) |
220 | do | 215 | do |
221 | local _ok_0 = _arg_0 | 216 | local _ok_0 = _arg_0 |
222 | _close_1(_) | 217 | _close_1(_) |
@@ -227,7 +222,7 @@ local _anon_func_10 = function(_, _close_1, error, _arg_0, ...) | |||
227 | end | 222 | end |
228 | end | 223 | end |
229 | end | 224 | end |
230 | local _anon_func_11 = function(_, _close_2, error, _arg_0, ...) | 225 | local _anon_func_8 = function(_, _close_2, error, _arg_0, ...) |
231 | do | 226 | do |
232 | local _ok_0 = _arg_0 | 227 | local _ok_0 = _arg_0 |
233 | _close_2(_) | 228 | _close_2(_) |
@@ -238,7 +233,7 @@ local _anon_func_11 = function(_, _close_2, error, _arg_0, ...) | |||
238 | end | 233 | end |
239 | end | 234 | end |
240 | end | 235 | end |
241 | local _anon_func_12 = function() end | 236 | local _anon_func_9 = function() end |
242 | do | 237 | do |
243 | local _ = def(function() | 238 | local _ = def(function() |
244 | return print(3) | 239 | return print(3) |
@@ -257,12 +252,12 @@ do | |||
257 | return print(2) | 252 | return print(2) |
258 | end) | 253 | end) |
259 | local _close_1 = assert(getmetatable(_).__close) | 254 | local _close_1 = assert(getmetatable(_).__close) |
260 | return _anon_func_10(_, _close_1, error, pcall(function() | 255 | return _anon_func_7(_, _close_1, error, pcall(function() |
261 | local _ = def(function() | 256 | local _ = def(function() |
262 | return print(1) | 257 | return print(1) |
263 | end) | 258 | end) |
264 | local _close_2 = assert(getmetatable(_).__close) | 259 | local _close_2 = assert(getmetatable(_).__close) |
265 | return _anon_func_11(_, _close_2, error, pcall(_anon_func_12)) | 260 | return _anon_func_8(_, _close_2, error, pcall(_anon_func_9)) |
266 | end)) | 261 | end)) |
267 | end)) | 262 | end)) |
268 | end | 263 | end |