aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Krewinkel <albert@zeitkraut.de>2018-01-06 23:25:08 +0100
committerAlbert Krewinkel <albert@zeitkraut.de>2018-01-06 23:25:08 +0100
commitf492f5a6dd991530241529d1110e73260d3a1d43 (patch)
tree3fad1e71d0802335f4727644a4ad40eef3b51a0b
parent3a22907306992f2dd1b6bcb548633734c0c9a1b1 (diff)
downloadpandoc-f492f5a6dd991530241529d1110e73260d3a1d43.tar.gz
data/pandoc.lua: fix Element inheritance
Extending all elements of a given type (e.g., all inline elements) was difficult, as the table used to lookup unknown methods would be reset every time a new element of that type was created, preventing recursive property lookup. This is was changed in that all methods and attributes of supertypes are now available to their subtypes.
-rw-r--r--data/pandoc.lua5
1 files changed, 3 insertions, 2 deletions
diff --git a/data/pandoc.lua b/data/pandoc.lua
index 86bb5b8ea..d96d5e702 100644
--- a/data/pandoc.lua
+++ b/data/pandoc.lua
@@ -33,13 +33,15 @@ local List = require 'pandoc.List'
-- @type Element
-- @local
local Element = {}
+Element.__index = Element
--- Create a new element subtype
-- @local
function Element:make_subtype(o)
o = o or {}
setmetatable(o, self)
- self.__index = self
+ -- Make subtype usable as a metatable
+ o.__index = o
return o
end
@@ -57,7 +59,6 @@ function Element:new(tag, ...)
element.c = content
end
setmetatable(element, self)
- self.__index = self
return element
end