diff --git a/imports/class/shared.lua b/imports/class/shared.lua index 6336d68..bcbd258 100644 --- a/imports/class/shared.lua +++ b/imports/class/shared.lua @@ -63,17 +63,17 @@ function mixins.new(class, ...) if constructor then local parent = class - function obj:super(...) + rawset(obj, 'super', function(self, ...) parent = getmetatable(parent) constructor = getConstructor(parent) if constructor then return constructor(self, ...) end - end + end) constructor(obj, ...) end - obj.super = nil + rawset(obj, 'super', nil) if next(obj.private) then local private = table.clone(obj.private)