From afc5dd02f939c9bbf698e88dfcffe066d42a2d23 Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Mon, 29 Sep 2014 11:52:50 +0100 Subject: [PATCH] elua: update lualian generation code to potentially deal with cycles --- src/bin/elua/modules/lualian.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/bin/elua/modules/lualian.lua b/src/bin/elua/modules/lualian.lua index dd317d0..8f76dd6 100644 --- a/src/bin/elua/modules/lualian.lua +++ b/src/bin/elua/modules/lualian.lua @@ -382,7 +382,7 @@ local Mixin = Node:clone { s:write(([[ local __class = __lib.%s_class_get() -%s.%s = eo.class_register("%s", { +%s.%s = eo.class_register("%s", nil, { ]]):format(self.prefix, mname, self.klass:name_get(), self.klass:full_name_get())) @@ -446,19 +446,19 @@ local Class = Node:clone { mname = "M" end + local kn = self.klass:full_name_get() + s:write(([[ local __class = __lib.%s_class_get() -local Parent = eo.class_get("%s") -eo.class_register("%s", Parent:clone { -]]):format(self.prefix, self.parent, self.klass:full_name_get())) +eo.class_register("%s", %s, { +]]):format(self.prefix, kn, self.parent and ('"' .. self.parent .. '"') or "nil")) self:gen_children(s) s:write("})") for i, v in ipairs(self.mixins) do - s:write(("\nM.%s:mixin(eo.class_get(\"%s\"))\n") - :format(ename, v)) + s:write(("\neo.class_mixin(\"%s\", \"%s\")\n"):format(kn, v)) end -- write the constructor -- 2.7.4