diff options
Diffstat (limited to '')
-rw-r--r-- | spec/inputs/class.yue | 15 | ||||
-rw-r--r-- | spec/outputs/class.lua | 60 |
2 files changed, 75 insertions, 0 deletions
diff --git a/spec/inputs/class.yue b/spec/inputs/class.yue index 49537c2..3c73ebc 100644 --- a/spec/inputs/class.yue +++ b/spec/inputs/class.yue | |||
@@ -242,4 +242,19 @@ class Foo | |||
242 | :add | 242 | :add |
243 | :<add> | 243 | :<add> |
244 | 244 | ||
245 | do | ||
246 | global xa, xb | ||
247 | class CX | ||
248 | xa = 1 | ||
249 | xb = 1 | ||
250 | new: => | ||
251 | |||
252 | do | ||
253 | class CY | ||
254 | xa = 1 | ||
255 | local xb = 2 | ||
256 | new: => print xa, xb, xc, xd | ||
257 | const xc = 3 | ||
258 | close xd = <close>: => | ||
259 | |||
245 | nil | 260 | nil |
diff --git a/spec/outputs/class.lua b/spec/outputs/class.lua index 442ff4b..aaea33c 100644 --- a/spec/outputs/class.lua +++ b/spec/outputs/class.lua | |||
@@ -1229,4 +1229,64 @@ do | |||
1229 | _base_0.__class = _class_0 | 1229 | _base_0.__class = _class_0 |
1230 | Foo = _class_0 | 1230 | Foo = _class_0 |
1231 | end | 1231 | end |
1232 | do | ||
1233 | local CX | ||
1234 | do | ||
1235 | local _class_0 | ||
1236 | local _base_0 = { } | ||
1237 | if _base_0.__index == nil then | ||
1238 | _base_0.__index = _base_0 | ||
1239 | end | ||
1240 | _class_0 = setmetatable({ | ||
1241 | __init = function(self) end, | ||
1242 | __base = _base_0, | ||
1243 | __name = "CX" | ||
1244 | }, { | ||
1245 | __index = _base_0, | ||
1246 | __call = function(cls, ...) | ||
1247 | local _self_0 = setmetatable({ }, _base_0) | ||
1248 | cls.__init(_self_0, ...) | ||
1249 | return _self_0 | ||
1250 | end | ||
1251 | }) | ||
1252 | _base_0.__class = _class_0 | ||
1253 | local self = _class_0; | ||
1254 | xa = 1 | ||
1255 | xb = 1 | ||
1256 | CX = _class_0 | ||
1257 | end | ||
1258 | end | ||
1259 | do | ||
1260 | local CY | ||
1261 | local _class_0 | ||
1262 | local xa, xb, xc, xd | ||
1263 | local _base_0 = { } | ||
1264 | if _base_0.__index == nil then | ||
1265 | _base_0.__index = _base_0 | ||
1266 | end | ||
1267 | _class_0 = setmetatable({ | ||
1268 | __init = function(self) | ||
1269 | return print(xa, xb, xc, xd) | ||
1270 | end, | ||
1271 | __base = _base_0, | ||
1272 | __name = "CY" | ||
1273 | }, { | ||
1274 | __index = _base_0, | ||
1275 | __call = function(cls, ...) | ||
1276 | local _self_0 = setmetatable({ }, _base_0) | ||
1277 | cls.__init(_self_0, ...) | ||
1278 | return _self_0 | ||
1279 | end | ||
1280 | }) | ||
1281 | _base_0.__class = _class_0 | ||
1282 | local self = _class_0; | ||
1283 | xa = 1 | ||
1284 | xb = 2 | ||
1285 | xc = 3 | ||
1286 | xd = setmetatable({ }, { | ||
1287 | __close = function(self) end | ||
1288 | }) | ||
1289 | local _close_0 <close> = xd | ||
1290 | CY = _class_0 | ||
1291 | end | ||
1232 | return nil | 1292 | return nil |