super tests, fixed regression when compiling chain dot args

This commit is contained in:
leaf corcoran 2011-12-03 10:44:41 -08:00
parent 5c999fb680
commit 0d232f98e7
4 changed files with 50 additions and 3 deletions

View File

@ -109,7 +109,7 @@ value_compile = {
elseif t == "index" then
return "[", self:value(arg), "]"
elseif t == "dot" then
return ".", self:value(arg)
return ".", tostring(arg)
elseif t == "colon" then
return ":", arg, chain_item(node[3])
elseif t == "colon_stub" then

View File

@ -66,7 +66,7 @@ value_compile =
elseif t == "index"
"[", @value(arg), "]"
elseif t == "dot"
".", @value arg
".", tostring arg
elseif t == "colon"
":", arg, chain_item(node[3])
elseif t == "colon_stub"

View File

@ -69,3 +69,15 @@ with Hello!
print x
x!
class CoolSuper
hi: =>
super(1,2,3,4) 1,2,3,4
super.something 1,2,3,4
super.something(1,2,3,4).world
super\yeah"world".okay hi, hi, hi
something.super
super.super.super.super
nil

View File

@ -298,4 +298,39 @@ do
x = _with_0:something()
print(x)
x()
end
end
local CoolSuper
CoolSuper = (function()
local _parent_0 = nil
local _base_0 = {
hi = function(self)
_parent_0.hi(self, 1, 2, 3, 4)(1, 2, 3, 4)
_parent_0.something(1, 2, 3, 4)
local _ = _parent_0.something(1, 2, 3, 4).world
_parent_0.yeah(self, "world").okay(hi, hi, hi)
_ = something.super
_ = _parent_0.super.super.super
return nil
end
}
_base_0.__index = _base_0
if _parent_0 then
setmetatable(_base_0, getmetatable(_parent_0).__index)
end
local _class_0 = setmetatable({
__init = function(self, ...)
if _parent_0 then
return _parent_0.__init(self, ...)
end
end
}, {
__index = _base_0,
__call = function(cls, ...)
local _self_0 = setmetatable({}, _base_0)
cls.__init(_self_0, ...)
return _self_0
end
})
_base_0.__class = _class_0
return _class_0
end)()