local Hello Hello = (function() local _parent_0 = nil local _base_0 = { hello = function(self) return print(self.test, self.world) end, __tostring = function(self) return "hello world" end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, test, world) self.test, self.world = test, world return print("creating object..") end, __base = _base_0, __name = "Hello", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() local x = Hello(1, 2) x:hello() print(x) local Simple Simple = (function() local _parent_0 = nil local _base_0 = { cool = function(self) return print("cool") end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "Simple", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() local Yikes Yikes = (function() local _parent_0 = Simple local _base_0 = { } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self) return print("created hello") end, __base = _base_0, __name = "Yikes", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() x = Yikes() x:cool() local Hi Hi = (function() local _parent_0 = nil local _base_0 = { cool = function(self, num) return print("num", num) end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, arg) return print("init arg", arg) end, __base = _base_0, __name = "Hi", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() Simple = (function() local _parent_0 = Hi local _base_0 = { cool = function(self) return _parent_0.cool(self, 120302) end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self) return _parent_0.__init(self, "man") end, __base = _base_0, __name = "Simple", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() x = Simple() x:cool() print(x.__class == Simple) local Okay Okay = (function() local _parent_0 = nil local _base_0 = { something = 20323 } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "Okay", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() local Biggie Biggie = (function() local _parent_0 = Okay local _base_0 = { something = function(self) _parent_0.something(self, 1, 2, 3, 4) _parent_0.something(another_self, 1, 2, 3, 4) return assert(_parent_0 == Okay) end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "Biggie", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() local Yeah Yeah = (function() local _parent_0 = nil local _base_0 = { okay = function(self) return _parent_0.something(self, 1, 2, 3, 4) end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "Yeah", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() local What What = (function() local _parent_0 = nil local _base_0 = { something = function(self) return print("val:", self.val) end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "What", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() Hello = (function() local _parent_0 = What local _base_0 = { val = 2323, something = function(self) return (function() local _base_1 = _parent_0 local _fn_0 = _base_1.something return function(...) return _fn_0(self, ...) end end)() end } _base_0.__index = _base_0 if _parent_0 then setmetatable(_base_0, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "Hello", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)() do local _with_0 = Hello() x = _with_0:something() print(x) x() 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, _parent_0.__base) end local _class_0 = setmetatable({ __init = function(self, ...) if _parent_0 then return _parent_0.__init(self, ...) end end, __base = _base_0, __name = "CoolSuper", __parent = _parent_0 }, { __index = function(cls, name) local val = rawget(_base_0, name) if val == nil and _parent_0 then return _parent_0[name] else return val end end, __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)()