diff options
Diffstat (limited to 'giscanner/girwriter.py')
-rw-r--r-- | giscanner/girwriter.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/giscanner/girwriter.py b/giscanner/girwriter.py index d1333cb7..6eff6526 100644 --- a/giscanner/girwriter.py +++ b/giscanner/girwriter.py @@ -378,10 +378,15 @@ class GIRWriter(XMLWriter): with self.tagcontext('array', attrs): self._write_type(ntype.element_type) elif isinstance(ntype, ast.List): - if ntype.name: + # GListModel element-type annotations are not mandatory + if ntype.name in ('Gio.ListModel', 'GListModel') and ntype.element_type is ast.TYPE_ANY: attrs.insert(0, ('name', ntype.name)) - with self.tagcontext('type', attrs): - self._write_type(ntype.element_type) + self.write_tag('type', attrs) + else: + if ntype.name: + attrs.insert(0, ('name', ntype.name)) + with self.tagcontext('type', attrs): + self._write_type(ntype.element_type) elif isinstance(ntype, ast.Map): attrs.insert(0, ('name', 'GLib.HashTable')) with self.tagcontext('type', attrs): |