summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2020-04-28 11:18:18 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2020-04-28 11:19:29 +0200
commitbb364bd25d50215b0c40d98ba5ecf2aa779e53a2 (patch)
tree1618dbab70c70a86d6bf85e63252759fbd662732
parent770d81f2a32a7bbaa64cd923a69838574e2f0454 (diff)
downloadgobject-introspection-bb364bd25d50215b0c40d98ba5ecf2aa779e53a2.tar.gz
Revert "Add support for element-type to GListModel"
Breaks vapigen and changes GListModel definition in Gio-2.0.gir This reverts commit a9f45431684e6be3623e272e54d481e4c5d9423d.
-rw-r--r--giscanner/docwriter.py18
-rw-r--r--giscanner/girparser.py2
-rw-r--r--giscanner/introspectablepass.py3
-rw-r--r--giscanner/transformer.py3
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_none.page30
-rw-r--r--tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_object.page31
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_none.page32
-rw-r--r--tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_object.page33
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_none.page32
-rw-r--r--tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_object.page32
-rw-r--r--tests/scanner/Regress-1.0-expected.gir31
-rw-r--r--tests/scanner/Regress-1.0-sections-expected.txt2
-rw-r--r--tests/scanner/regress.c30
-rw-r--r--tests/scanner/regress.h6
14 files changed, 7 insertions, 278 deletions
diff --git a/giscanner/docwriter.py b/giscanner/docwriter.py
index e4a8f7c5..786da80d 100644
--- a/giscanner/docwriter.py
+++ b/giscanner/docwriter.py
@@ -793,11 +793,7 @@ class DocFormatterPython(DocFormatterIntrospectableBase):
return fundamental_types.get(name, name)
def format_type(self, type_, link=False):
- if isinstance(type_, ast.List):
- if type_.name == 'Gio.ListModel':
- return 'Gio.ListModel(item_type=' + self.format_type(type_.element_type) + ')'
- return '[' + self.format_type(type_.element_type) + ']'
- elif isinstance(type_, ast.Array):
+ if isinstance(type_, (ast.List, ast.Array)):
return '[' + self.format_type(type_.element_type) + ']'
elif isinstance(type_, ast.Map):
return '{%s: %s}' % (self.format_type(type_.key_type),
@@ -934,14 +930,10 @@ class DocFormatterGjs(DocFormatterIntrospectableBase):
return fundamental_types.get(name, name)
def format_type(self, type_, link=False):
- if isinstance(type_, ast.Array):
- if type_.element_type.target_fundamental in ('gint8', 'guint8'):
- return 'ByteArray'
- else:
- return 'Array(' + self.format_type(type_.element_type, link) + ')'
- elif isinstance(type_, ast.List):
- if type_.name == 'Gio.ListModel':
- return 'Gio.ListModel({item_type: ' + self.format_type(type_.element_type) + '})'
+ if isinstance(type_, ast.Array) and \
+ type_.element_type.target_fundamental in ('gint8', 'guint8'):
+ return 'ByteArray'
+ elif isinstance(type_, (ast.List, ast.Array)):
return 'Array(' + self.format_type(type_.element_type, link) + ')'
elif isinstance(type_, ast.Map):
return '{%s: %s}' % (self.format_type(type_.key_type, link),
diff --git a/giscanner/girparser.py b/giscanner/girparser.py
index d31b26cf..35206a41 100644
--- a/giscanner/girparser.py
+++ b/giscanner/girparser.py
@@ -492,7 +492,7 @@ class GIRParser(object):
if ctype is None:
return ast.TypeUnknown()
return ast.Type(ctype=ctype)
- elif name in ['GLib.List', 'GLib.SList', 'Gio.ListModel']:
+ elif name in ['GLib.List', 'GLib.SList']:
subchild = self._find_first_child(typenode,
list(map(_corens, ('callback', 'array',
' varargs', 'type'))))
diff --git a/giscanner/introspectablepass.py b/giscanner/introspectablepass.py
index 8ac50064..e2056b42 100644
--- a/giscanner/introspectablepass.py
+++ b/giscanner/introspectablepass.py
@@ -89,8 +89,7 @@ class IntrospectablePass(object):
return
if (isinstance(node.type, (ast.List, ast.Array))
- and node.type.element_type == ast.TYPE_ANY
- and not (isinstance(node.type, ast.List) and node.type.name == 'Gio.ListModel')):
+ and node.type.element_type == ast.TYPE_ANY):
self._parameter_warning(parent, node, "Missing (element-type) annotation")
parent.introspectable = False
return
diff --git a/giscanner/transformer.py b/giscanner/transformer.py
index 7f230a20..bcabdedc 100644
--- a/giscanner/transformer.py
+++ b/giscanner/transformer.py
@@ -698,9 +698,6 @@ raise ValueError."""
elif base in ('GHashTable', 'GLib.HashTable', 'GObject.HashTable'):
return ast.Map(ast.TYPE_ANY, ast.TYPE_ANY, ctype=ctype, is_const=is_const,
complete_ctype=complete_ctype)
- elif base in ('GListModel', 'Gio.ListModel'):
- return ast.List('Gio.ListModel', ast.TYPE_ANY, ctype=ctype,
- is_const=is_const, complete_ctype=complete_ctype)
return None
def create_type_from_ctype_string(self, ctype, is_const=False,
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_none.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_none.page
deleted file mode 100644
index b1458649..00000000
--- a/tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_none.page
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<page id="Regress.test_list_model_none"
- type="topic"
- style="function"
- xmlns="http://projectmallard.org/1.0/"
- xmlns:api="http://projectmallard.org/experimental/api/"
- xmlns:ui="http://projectmallard.org/1.0/ui/">
- <info>
- <link xref="index" group="function" type="guide"/>
- <api:function>
- <api:returns>
- <api:type>GListModel*</api:type>
- </api:returns>
- <api:name>regress_test_list_model_none</api:name>
- </api:function>
- </info>
- <title>regress_test_list_model_none</title>
- <synopsis><code mime="text/x-csrc">
-GListModel* regress_test_list_model_none (void);
- </code></synopsis>
- <p>Test GListModel with no annotation.</p>
-
-<terms>
-<item>
-<title><code>Returns</code></title>
- <p>a GListModel</p>
-</item>
-</terms>
-
-</page>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_object.page b/tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_object.page
deleted file mode 100644
index 620789cd..00000000
--- a/tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_object.page
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0"?>
-<page id="Regress.test_list_model_object"
- type="topic"
- style="function"
- xmlns="http://projectmallard.org/1.0/"
- xmlns:api="http://projectmallard.org/experimental/api/"
- xmlns:ui="http://projectmallard.org/1.0/ui/">
- <info>
- <link xref="index" group="function" type="guide"/>
- <api:function>
- <api:returns>
- <api:type>GListModel*</api:type>
- </api:returns>
- <api:name>regress_test_list_model_object</api:name>
- </api:function>
- </info>
- <title>regress_test_list_model_object</title>
- <synopsis><code mime="text/x-csrc">
-GListModel* regress_test_list_model_object (void);
- </code></synopsis>
- <p>Test GListModel return value with an element type annotation.</p>
-
-<terms>
-<item>
-<title><code>Returns</code></title>
- <p>a GListModel
- containing RegressTestObj values</p>
-</item>
-</terms>
-
-</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_none.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_none.page
deleted file mode 100644
index 099232e0..00000000
--- a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_none.page
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<page id="Regress.test_list_model_none"
- type="topic"
- style="function"
- xmlns="http://projectmallard.org/1.0/"
- xmlns:api="http://projectmallard.org/experimental/api/"
- xmlns:ui="http://projectmallard.org/1.0/ui/">
- <info>
- <link xref="index" group="function" type="guide"/>
- <api:function>
- <api:returns>
- <api:type>Gio.ListModel({item_type: void})</api:type>
- </api:returns>
- <api:name>regress_test_list_model_none</api:name>
- </api:function>
- </info>
- <title>Regress.test_list_model_none</title>
- <synopsis><code mime="text/x-gjs">
-function test_list_model_none(): Gio.ListModel({item_type: void}) {
- // Gjs wrapper for regress_test_list_model_none()
-}
- </code></synopsis>
- <p>Test GListModel with no annotation.</p>
-
-<terms>
-<item>
-<title><code>Returns</code></title>
- <p>a GListModel</p>
-</item>
-</terms>
-
-</page>
diff --git a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_object.page b/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_object.page
deleted file mode 100644
index 618ca7e3..00000000
--- a/tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_object.page
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<page id="Regress.test_list_model_object"
- type="topic"
- style="function"
- xmlns="http://projectmallard.org/1.0/"
- xmlns:api="http://projectmallard.org/experimental/api/"
- xmlns:ui="http://projectmallard.org/1.0/ui/">
- <info>
- <link xref="index" group="function" type="guide"/>
- <api:function>
- <api:returns>
- <api:type>Gio.ListModel({item_type: Regress.TestObj})</api:type>
- </api:returns>
- <api:name>regress_test_list_model_object</api:name>
- </api:function>
- </info>
- <title>Regress.test_list_model_object</title>
- <synopsis><code mime="text/x-gjs">
-function test_list_model_object(): Gio.ListModel({item_type: Regress.TestObj}) {
- // Gjs wrapper for regress_test_list_model_object()
-}
- </code></synopsis>
- <p>Test GListModel return value with an element type annotation.</p>
-
-<terms>
-<item>
-<title><code>Returns</code></title>
- <p>a GListModel
- containing RegressTestObj values</p>
-</item>
-</terms>
-
-</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_none.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_none.page
deleted file mode 100644
index 61cb3de1..00000000
--- a/tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_none.page
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<page id="Regress.test_list_model_none"
- type="topic"
- style="function"
- xmlns="http://projectmallard.org/1.0/"
- xmlns:api="http://projectmallard.org/experimental/api/"
- xmlns:ui="http://projectmallard.org/1.0/ui/">
- <info>
- <link xref="index" group="function" type="guide"/>
- <api:function>
- <api:returns>
- <api:type>Gio.ListModel(item_type=gpointer)</api:type>
- </api:returns>
- <api:name>regress_test_list_model_none</api:name>
- </api:function>
- </info>
- <title>Regress.test_list_model_none</title>
- <synopsis><code mime="text/x-python">
-@returns(Gio.ListModel(item_type=gpointer))
-def test_list_model_none():
- # Python wrapper for regress_test_list_model_none()
- </code></synopsis>
- <p>Test GListModel with no annotation.</p>
-
-<terms>
-<item>
-<title><code>Returns</code></title>
-{formatter.format(node, node.retval.doc)}
-</item>
-</terms>
-
-</page>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_object.page b/tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_object.page
deleted file mode 100644
index d9dca201..00000000
--- a/tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_object.page
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0"?>
-<page id="Regress.test_list_model_object"
- type="topic"
- style="function"
- xmlns="http://projectmallard.org/1.0/"
- xmlns:api="http://projectmallard.org/experimental/api/"
- xmlns:ui="http://projectmallard.org/1.0/ui/">
- <info>
- <link xref="index" group="function" type="guide"/>
- <api:function>
- <api:returns>
- <api:type>Gio.ListModel(item_type=Regress.TestObj)</api:type>
- </api:returns>
- <api:name>regress_test_list_model_object</api:name>
- </api:function>
- </info>
- <title>Regress.test_list_model_object</title>
- <synopsis><code mime="text/x-python">
-@returns(Gio.ListModel(item_type=Regress.TestObj))
-def test_list_model_object():
- # Python wrapper for regress_test_list_model_object()
- </code></synopsis>
- <p>Test GListModel return value with an element type annotation.</p>
-
-<terms>
-<item>
-<title><code>Returns</code></title>
-{formatter.format(node, node.retval.doc)}
-</item>
-</terms>
-
-</page>
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index bcba3fbe..cef3b124 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -8041,37 +8041,6 @@ element-type annotation.</doc>
</parameter>
</parameters>
</function>
- <function name="test_list_model_none"
- c:identifier="regress_test_list_model_none">
- <doc xml:space="preserve"
- filename="regress.c"
- line="4689">Test GListModel with no annotation.</doc>
- <source-position filename="regress.h" line="1538"/>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve"
- filename="regress.c"
- line="4694">a GListModel</doc>
- <type name="Gio.ListModel" c:type="GListModel*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </return-value>
- </function>
- <function name="test_list_model_object"
- c:identifier="regress_test_list_model_object">
- <doc xml:space="preserve"
- filename="regress.c"
- line="4704">Test GListModel return value with an element type annotation.</doc>
- <source-position filename="regress.h" line="1541"/>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve"
- filename="regress.c"
- line="4709">a GListModel
- containing RegressTestObj values</doc>
- <type name="Gio.ListModel" c:type="GListModel*">
- <type name="TestObj"/>
- </type>
- </return-value>
- </function>
<function name="test_long" c:identifier="regress_test_long">
<source-position filename="regress.h" line="73"/>
<return-value transfer-ownership="none">
diff --git a/tests/scanner/Regress-1.0-sections-expected.txt b/tests/scanner/Regress-1.0-sections-expected.txt
index 84f7ec67..b35b3a9a 100644
--- a/tests/scanner/Regress-1.0-sections-expected.txt
+++ b/tests/scanner/Regress-1.0-sections-expected.txt
@@ -159,8 +159,6 @@ regress_test_int64
regress_test_int8
regress_test_int_out_utf8
regress_test_int_value_arg
-regress_test_list_model_none
-regress_test_list_model_object
regress_test_long
regress_test_multi_callback
regress_test_multi_double_args
diff --git a/tests/scanner/regress.c b/tests/scanner/regress.c
index e81d1989..3a63436b 100644
--- a/tests/scanner/regress.c
+++ b/tests/scanner/regress.c
@@ -4686,33 +4686,3 @@ regress_test_array_struct_in_none (RegressTestStructA *arr, gsize len)
g_assert_cmpint (arr[2].some_int, ==, 303);
}
-/**
- * regress_test_list_model_none:
- *
- * Test GListModel with no annotation.
- *
- * Returns: (transfer full): a GListModel
- */
-GListModel *
-regress_test_list_model_none (void)
-{
- GListStore *res = g_list_store_new (regress_test_obj_get_type ());
-
- return G_LIST_MODEL (res);
-}
-
-/**
- * regress_test_list_model_object:
- *
- * Test GListModel return value with an element type annotation.
- *
- * Returns: (transfer full) (element-type RegressTestObj): a GListModel
- * containing RegressTestObj values
- */
-GListModel *
-regress_test_list_model_object (void)
-{
- GListStore *res = g_list_store_new (regress_test_obj_get_type ());
-
- return G_LIST_MODEL (res);
-}
diff --git a/tests/scanner/regress.h b/tests/scanner/regress.h
index 9ff699fb..0b239f14 100644
--- a/tests/scanner/regress.h
+++ b/tests/scanner/regress.h
@@ -1534,10 +1534,4 @@ void regress_test_array_struct_in_full (RegressTestStructA *arr, gsize len);
_GI_TEST_EXTERN
void regress_test_array_struct_in_none (RegressTestStructA *arr, gsize len);
-_GI_TEST_EXTERN
-GListModel *regress_test_list_model_none (void);
-
-_GI_TEST_EXTERN
-GListModel *regress_test_list_model_object (void);
-
#endif /* __GITESTTYPES_H__ */