aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/inputs/test/class_spec.yue13
-rw-r--r--spec/outputs/class.lua55
-rw-r--r--spec/outputs/test/class_spec.lua186
3 files changed, 253 insertions, 1 deletions
diff --git a/spec/inputs/test/class_spec.yue b/spec/inputs/test/class_spec.yue
index df8bc96..4f7af7c 100644
--- a/spec/inputs/test/class_spec.yue
+++ b/spec/inputs/test/class_spec.yue
@@ -293,3 +293,16 @@ describe "class", ->
293 assert.same 1 + 100 + 12, Sub!\value! 293 assert.same 1 + 100 + 12, Sub!\value!
294 assert.same 6, OtherSub!\value! 294 assert.same 6, OtherSub!\value!
295 295
296 it "should copy metamethod from super", ->
297 class A
298 val: 1
299 <tostring>: => "Object #{ @val }"
300
301 class B extends A
302 val: 2
303
304 a, b = A!, B!
305
306 assert.same "Object 1", tostring a
307 assert.same "Object 2", tostring b
308
diff --git a/spec/outputs/class.lua b/spec/outputs/class.lua
index 9a61a67..d13b738 100644
--- a/spec/outputs/class.lua
+++ b/spec/outputs/class.lua
@@ -65,6 +65,11 @@ do
65 local _class_0 65 local _class_0
66 local _parent_0 = Simple 66 local _parent_0 = Simple
67 local _base_0 = { } 67 local _base_0 = { }
68 for _key_0, _val_0 in pairs(_parent_0.__base) do
69 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
70 _base_0[_key_0] = _val_0
71 end
72 end
68 if _base_0.__index == nil then 73 if _base_0.__index == nil then
69 _base_0.__index = _base_0 74 _base_0.__index = _base_0
70 end 75 end
@@ -138,6 +143,11 @@ do
138 return _class_0.__parent.__base.cool(self, 120302) 143 return _class_0.__parent.__base.cool(self, 120302)
139 end 144 end
140 } 145 }
146 for _key_0, _val_0 in pairs(_parent_0.__base) do
147 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
148 _base_0[_key_0] = _val_0
149 end
150 end
141 if _base_0.__index == nil then 151 if _base_0.__index == nil then
142 _base_0.__index = _base_0 152 _base_0.__index = _base_0
143 end 153 end
@@ -211,6 +221,11 @@ do
211 return assert(_class_0.__parent == Okay) 221 return assert(_class_0.__parent == Okay)
212 end 222 end
213 } 223 }
224 for _key_0, _val_0 in pairs(_parent_0.__base) do
225 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
226 _base_0[_key_0] = _val_0
227 end
228 end
214 if _base_0.__index == nil then 229 if _base_0.__index == nil then
215 _base_0.__index = _base_0 230 _base_0.__index = _base_0
216 end 231 end
@@ -311,6 +326,11 @@ do
311 end 326 end
312 end 327 end
313 } 328 }
329 for _key_0, _val_0 in pairs(_parent_0.__base) do
330 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
331 _base_0[_key_0] = _val_0
332 end
333 end
314 if _base_0.__index == nil then 334 if _base_0.__index == nil then
315 _base_0.__index = _base_0 335 _base_0.__index = _base_0
316 end 336 end
@@ -551,6 +571,11 @@ do
551 local _class_0 571 local _class_0
552 local _parent_0 = Hello.World 572 local _parent_0 = Hello.World
553 local _base_0 = { } 573 local _base_0 = { }
574 for _key_0, _val_0 in pairs(_parent_0.__base) do
575 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
576 _base_0[_key_0] = _val_0
577 end
578 end
554 if _base_0.__index == nil then 579 if _base_0.__index == nil then
555 _base_0.__index = _base_0 580 _base_0.__index = _base_0
556 end 581 end
@@ -641,6 +666,11 @@ do
641 local _class_0 666 local _class_0
642 local _parent_0 = Hello 667 local _parent_0 = Hello
643 local _base_0 = { } 668 local _base_0 = { }
669 for _key_0, _val_0 in pairs(_parent_0.__base) do
670 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
671 _base_0[_key_0] = _val_0
672 end
673 end
644 if _base_0.__index == nil then 674 if _base_0.__index == nil then
645 _base_0.__index = _base_0 675 _base_0.__index = _base_0
646 end 676 end
@@ -682,6 +712,11 @@ do
682 local _class_0 712 local _class_0
683 local _parent_0 = World 713 local _parent_0 = World
684 local _base_0 = { } 714 local _base_0 = { }
715 for _key_0, _val_0 in pairs(_parent_0.__base) do
716 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
717 _base_0[_key_0] = _val_0
718 end
719 end
685 if _base_0.__index == nil then 720 if _base_0.__index == nil then
686 _base_0.__index = _base_0 721 _base_0.__index = _base_0
687 end 722 end
@@ -828,6 +863,11 @@ do
828 } 863 }
829 end 864 end
830 } 865 }
866 for _key_0, _val_0 in pairs(_parent_0.__base) do
867 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
868 _base_0[_key_0] = _val_0
869 end
870 end
831 if _base_0.__index == nil then 871 if _base_0.__index == nil then
832 _base_0.__index = _base_0 872 _base_0.__index = _base_0
833 end 873 end
@@ -871,6 +911,11 @@ do
871 return _class_0.__parent.__base.dang(self) 911 return _class_0.__parent.__base.dang(self)
872 end) 912 end)
873 } 913 }
914 for _key_0, _val_0 in pairs(_parent_0.__base) do
915 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
916 _base_0[_key_0] = _val_0
917 end
918 end
874 if _base_0.__index == nil then 919 if _base_0.__index == nil then
875 _base_0.__index = _base_0 920 _base_0.__index = _base_0
876 end 921 end
@@ -910,6 +955,11 @@ do
910 local _class_0 955 local _class_0
911 local _parent_0 = Thing 956 local _parent_0 = Thing
912 local _base_0 = { } 957 local _base_0 = { }
958 for _key_0, _val_0 in pairs(_parent_0.__base) do
959 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
960 _base_0[_key_0] = _val_0
961 end
962 end
913 if _base_0.__index == nil then 963 if _base_0.__index == nil then
914 _base_0.__index = _base_0 964 _base_0.__index = _base_0
915 end 965 end
@@ -1051,6 +1101,11 @@ do
1051 } 1101 }
1052 end 1102 end
1053 } 1103 }
1104 for _key_0, _val_0 in pairs(_parent_0.__base) do
1105 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1106 _base_0[_key_0] = _val_0
1107 end
1108 end
1054 if _base_0.__index == nil then 1109 if _base_0.__index == nil then
1055 _base_0.__index = _base_0 1110 _base_0.__index = _base_0
1056 end 1111 end
diff --git a/spec/outputs/test/class_spec.lua b/spec/outputs/test/class_spec.lua
index b4062e0..e08b5aa 100644
--- a/spec/outputs/test/class_spec.lua
+++ b/spec/outputs/test/class_spec.lua
@@ -129,6 +129,11 @@ return describe("class", function()
129 local _base_0 = { 129 local _base_0 = {
130 color = "green" 130 color = "green"
131 } 131 }
132 for _key_0, _val_0 in pairs(_parent_0.__base) do
133 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
134 _base_0[_key_0] = _val_0
135 end
136 end
132 if _base_0.__index == nil then 137 if _base_0.__index == nil then
133 _base_0.__index = _base_0 138 _base_0.__index = _base_0
134 end 139 end
@@ -195,6 +200,11 @@ return describe("class", function()
195 local _class_0 200 local _class_0
196 local _parent_0 = Base 201 local _parent_0 = Base
197 local _base_0 = { } 202 local _base_0 = { }
203 for _key_0, _val_0 in pairs(_parent_0.__base) do
204 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
205 _base_0[_key_0] = _val_0
206 end
207 end
198 if _base_0.__index == nil then 208 if _base_0.__index == nil then
199 _base_0.__index = _base_0 209 _base_0.__index = _base_0
200 end 210 end
@@ -416,6 +426,11 @@ return describe("class", function()
416 local _class_0 426 local _class_0
417 local _parent_0 = Base 427 local _parent_0 = Base
418 local _base_0 = { } 428 local _base_0 = { }
429 for _key_0, _val_0 in pairs(_parent_0.__base) do
430 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
431 _base_0[_key_0] = _val_0
432 end
433 end
419 if _base_0.__index == nil then 434 if _base_0.__index == nil then
420 _base_0.__index = _base_0 435 _base_0.__index = _base_0
421 end 436 end
@@ -493,6 +508,11 @@ return describe("class", function()
493 return ("%08d"):format(_class_0.__parent.__base.counter(self)) 508 return ("%08d"):format(_class_0.__parent.__base.counter(self))
494 end 509 end
495 } 510 }
511 for _key_0, _val_0 in pairs(_parent_0.__base) do
512 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
513 _base_0[_key_0] = _val_0
514 end
515 end
496 if _base_0.__index == nil then 516 if _base_0.__index == nil then
497 _base_0.__index = _base_0 517 _base_0.__index = _base_0
498 end 518 end
@@ -568,6 +588,11 @@ return describe("class", function()
568 return _class_0.__parent.counter(self) 588 return _class_0.__parent.counter(self)
569 end 589 end
570 } 590 }
591 for _key_0, _val_0 in pairs(_parent_0.__base) do
592 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
593 _base_0[_key_0] = _val_0
594 end
595 end
571 if _base_0.__index == nil then 596 if _base_0.__index == nil then
572 _base_0.__index = _base_0 597 _base_0.__index = _base_0
573 end 598 end
@@ -638,6 +663,11 @@ return describe("class", function()
638 return _class_0.__parent 663 return _class_0.__parent
639 end 664 end
640 } 665 }
666 for _key_0, _val_0 in pairs(_parent_0.__base) do
667 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
668 _base_0[_key_0] = _val_0
669 end
670 end
641 if _base_0.__index == nil then 671 if _base_0.__index == nil then
642 _base_0.__index = _base_0 672 _base_0.__index = _base_0
643 end 673 end
@@ -720,6 +750,11 @@ return describe("class", function()
720 end 750 end
721 end 751 end
722 } 752 }
753 for _key_0, _val_0 in pairs(_parent_0.__base) do
754 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
755 _base_0[_key_0] = _val_0
756 end
757 end
723 if _base_0.__index == nil then 758 if _base_0.__index == nil then
724 _base_0.__index = _base_0 759 _base_0.__index = _base_0
725 end 760 end
@@ -790,6 +825,11 @@ return describe("class", function()
790 local _class_0 825 local _class_0
791 local _parent_0 = Thing 826 local _parent_0 = Thing
792 local _base_0 = { } 827 local _base_0 = { }
828 for _key_0, _val_0 in pairs(_parent_0.__base) do
829 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
830 _base_0[_key_0] = _val_0
831 end
832 end
793 if _base_0.__index == nil then 833 if _base_0.__index == nil then
794 _base_0.__index = _base_0 834 _base_0.__index = _base_0
795 end 835 end
@@ -857,6 +897,11 @@ return describe("class", function()
857 local _class_0 897 local _class_0
858 local _parent_0 = Thing 898 local _parent_0 = Thing
859 local _base_0 = { } 899 local _base_0 = { }
900 for _key_0, _val_0 in pairs(_parent_0.__base) do
901 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
902 _base_0[_key_0] = _val_0
903 end
904 end
860 if _base_0.__index == nil then 905 if _base_0.__index == nil then
861 _base_0.__index = _base_0 906 _base_0.__index = _base_0
862 end 907 end
@@ -969,6 +1014,11 @@ return describe("class", function()
969 return _class_0.__parent 1014 return _class_0.__parent
970 end 1015 end
971 } 1016 }
1017 for _key_0, _val_0 in pairs(_parent_0.__base) do
1018 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1019 _base_0[_key_0] = _val_0
1020 end
1021 end
972 if _base_0.__index == nil then 1022 if _base_0.__index == nil then
973 _base_0.__index = _base_0 1023 _base_0.__index = _base_0
974 end 1024 end
@@ -1050,6 +1100,11 @@ return describe("class", function()
1050 return _class_0.__parent.__base.a(self) + 2 1100 return _class_0.__parent.__base.a(self) + 2
1051 end 1101 end
1052 } 1102 }
1103 for _key_0, _val_0 in pairs(_parent_0.__base) do
1104 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1105 _base_0[_key_0] = _val_0
1106 end
1107 end
1053 if _base_0.__index == nil then 1108 if _base_0.__index == nil then
1054 _base_0.__index = _base_0 1109 _base_0.__index = _base_0
1055 end 1110 end
@@ -1094,6 +1149,11 @@ return describe("class", function()
1094 return _class_0.__parent.__base.a(self) + 3 1149 return _class_0.__parent.__base.a(self) + 3
1095 end 1150 end
1096 } 1151 }
1152 for _key_0, _val_0 in pairs(_parent_0.__base) do
1153 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1154 _base_0[_key_0] = _val_0
1155 end
1156 end
1097 if _base_0.__index == nil then 1157 if _base_0.__index == nil then
1098 _base_0.__index = _base_0 1158 _base_0.__index = _base_0
1099 end 1159 end
@@ -1164,6 +1224,11 @@ return describe("class", function()
1164 local _class_0 1224 local _class_0
1165 local _parent_0 = One 1225 local _parent_0 = One
1166 local _base_0 = { } 1226 local _base_0 = { }
1227 for _key_0, _val_0 in pairs(_parent_0.__base) do
1228 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1229 _base_0[_key_0] = _val_0
1230 end
1231 end
1167 if _base_0.__index == nil then 1232 if _base_0.__index == nil then
1168 _base_0.__index = _base_0 1233 _base_0.__index = _base_0
1169 end 1234 end
@@ -1208,6 +1273,11 @@ return describe("class", function()
1208 return _class_0.__parent.__base.a(self) + 3 1273 return _class_0.__parent.__base.a(self) + 3
1209 end 1274 end
1210 } 1275 }
1276 for _key_0, _val_0 in pairs(_parent_0.__base) do
1277 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1278 _base_0[_key_0] = _val_0
1279 end
1280 end
1211 if _base_0.__index == nil then 1281 if _base_0.__index == nil then
1212 _base_0.__index = _base_0 1282 _base_0.__index = _base_0
1213 end 1283 end
@@ -1252,6 +1322,11 @@ return describe("class", function()
1252 return _class_0.__parent.__base.a(self) + 4 1322 return _class_0.__parent.__base.a(self) + 4
1253 end 1323 end
1254 } 1324 }
1325 for _key_0, _val_0 in pairs(_parent_0.__base) do
1326 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1327 _base_0[_key_0] = _val_0
1328 end
1329 end
1255 if _base_0.__index == nil then 1330 if _base_0.__index == nil then
1256 _base_0.__index = _base_0 1331 _base_0.__index = _base_0
1257 end 1332 end
@@ -1330,6 +1405,11 @@ return describe("class", function()
1330 return _class_0.__parent.__base.doit(self) 1405 return _class_0.__parent.__base.doit(self)
1331 end 1406 end
1332 } 1407 }
1408 for _key_0, _val_0 in pairs(_parent_0.__base) do
1409 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1410 _base_0[_key_0] = _val_0
1411 end
1412 end
1333 if _base_0.__index == nil then 1413 if _base_0.__index == nil then
1334 _base_0.__index = _base_0 1414 _base_0.__index = _base_0
1335 end 1415 end
@@ -1404,6 +1484,11 @@ return describe("class", function()
1404 local _class_0 1484 local _class_0
1405 local _parent_0 = One 1485 local _parent_0 = One
1406 local _base_0 = { } 1486 local _base_0 = { }
1487 for _key_0, _val_0 in pairs(_parent_0.__base) do
1488 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1489 _base_0[_key_0] = _val_0
1490 end
1491 end
1407 if _base_0.__index == nil then 1492 if _base_0.__index == nil then
1408 _base_0.__index = _base_0 1493 _base_0.__index = _base_0
1409 end 1494 end
@@ -1444,6 +1529,11 @@ return describe("class", function()
1444 local _class_0 1529 local _class_0
1445 local _parent_0 = Two 1530 local _parent_0 = Two
1446 local _base_0 = { } 1531 local _base_0 = { }
1532 for _key_0, _val_0 in pairs(_parent_0.__base) do
1533 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1534 _base_0[_key_0] = _val_0
1535 end
1536 end
1447 if _base_0.__index == nil then 1537 if _base_0.__index == nil then
1448 _base_0.__index = _base_0 1538 _base_0.__index = _base_0
1449 end 1539 end
@@ -1488,6 +1578,11 @@ return describe("class", function()
1488 local _class_0 1578 local _class_0
1489 local _parent_0 = Three 1579 local _parent_0 = Three
1490 local _base_0 = { } 1580 local _base_0 = { }
1581 for _key_0, _val_0 in pairs(_parent_0.__base) do
1582 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1583 _base_0[_key_0] = _val_0
1584 end
1585 end
1491 if _base_0.__index == nil then 1586 if _base_0.__index == nil then
1492 _base_0.__index = _base_0 1587 _base_0.__index = _base_0
1493 end 1588 end
@@ -1529,7 +1624,7 @@ return describe("class", function()
1529 end 1624 end
1530 return assert.same(8, Four:a()) 1625 return assert.same(8, Four:a())
1531 end) 1626 end)
1532 return it("super should still work when method wrapped", function() 1627 it("super should still work when method wrapped", function()
1533 local add_some 1628 local add_some
1534 add_some = function(opts) 1629 add_some = function(opts)
1535 return function(self) 1630 return function(self)
@@ -1574,6 +1669,11 @@ return describe("class", function()
1574 end 1669 end
1575 }) 1670 })
1576 } 1671 }
1672 for _key_0, _val_0 in pairs(_parent_0.__base) do
1673 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1674 _base_0[_key_0] = _val_0
1675 end
1676 end
1577 if _base_0.__index == nil then 1677 if _base_0.__index == nil then
1578 _base_0.__index = _base_0 1678 _base_0.__index = _base_0
1579 end 1679 end
@@ -1626,6 +1726,11 @@ return describe("class", function()
1626 end 1726 end
1627 end)() 1727 end)()
1628 } 1728 }
1729 for _key_0, _val_0 in pairs(_parent_0.__base) do
1730 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1731 _base_0[_key_0] = _val_0
1732 end
1733 end
1629 if _base_0.__index == nil then 1734 if _base_0.__index == nil then
1630 _base_0.__index = _base_0 1735 _base_0.__index = _base_0
1631 end 1736 end
@@ -1664,5 +1769,84 @@ return describe("class", function()
1664 assert.same(1 + 100 + 12, Sub():value()) 1769 assert.same(1 + 100 + 12, Sub():value())
1665 return assert.same(6, OtherSub():value()) 1770 return assert.same(6, OtherSub():value())
1666 end) 1771 end)
1772 return it("should copy metamethod from super", function()
1773 local A
1774 do
1775 local _class_0
1776 local _base_0 = {
1777 val = 1,
1778 __tostring = function(self)
1779 return "Object " .. tostring(self.val)
1780 end
1781 }
1782 if _base_0.__index == nil then
1783 _base_0.__index = _base_0
1784 end
1785 _class_0 = setmetatable({
1786 __init = function() end,
1787 __base = _base_0,
1788 __name = "A"
1789 }, {
1790 __index = _base_0,
1791 __call = function(cls, ...)
1792 local _self_0 = setmetatable({ }, _base_0)
1793 cls.__init(_self_0, ...)
1794 return _self_0
1795 end
1796 })
1797 _base_0.__class = _class_0
1798 A = _class_0
1799 end
1800 local B
1801 do
1802 local _class_0
1803 local _parent_0 = A
1804 local _base_0 = {
1805 val = 2
1806 }
1807 for _key_0, _val_0 in pairs(_parent_0.__base) do
1808 if _base_0[_key_0] == nil and _key_0:match("^__") and not (_key_0 == "__index" and _val_0 == _parent_0.__base) then
1809 _base_0[_key_0] = _val_0
1810 end
1811 end
1812 if _base_0.__index == nil then
1813 _base_0.__index = _base_0
1814 end
1815 setmetatable(_base_0, _parent_0.__base)
1816 _class_0 = setmetatable({
1817 __init = function(self, ...)
1818 return _class_0.__parent.__init(self, ...)
1819 end,
1820 __base = _base_0,
1821 __name = "B",
1822 __parent = _parent_0
1823 }, {
1824 __index = function(cls, name)
1825 local val = rawget(_base_0, name)
1826 if val == nil then
1827 local parent = rawget(cls, "__parent")
1828 if parent then
1829 return parent[name]
1830 end
1831 else
1832 return val
1833 end
1834 end,
1835 __call = function(cls, ...)
1836 local _self_0 = setmetatable({ }, _base_0)
1837 cls.__init(_self_0, ...)
1838 return _self_0
1839 end
1840 })
1841 _base_0.__class = _class_0
1842 if _parent_0.__inherited then
1843 _parent_0.__inherited(_parent_0, _class_0)
1844 end
1845 B = _class_0
1846 end
1847 local a, b = A(), B()
1848 assert.same("Object 1", tostring(a))
1849 return assert.same("Object 2", tostring(b))
1850 end)
1667 end) 1851 end)
1668end) 1852end)