diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-04-28 11:18:18 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-04-28 11:19:29 +0200 |
commit | bb364bd25d50215b0c40d98ba5ecf2aa779e53a2 (patch) | |
tree | 1618dbab70c70a86d6bf85e63252759fbd662732 | |
parent | 770d81f2a32a7bbaa64cd923a69838574e2f0454 (diff) | |
download | gobject-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.py | 18 | ||||
-rw-r--r-- | giscanner/girparser.py | 2 | ||||
-rw-r--r-- | giscanner/introspectablepass.py | 3 | ||||
-rw-r--r-- | giscanner/transformer.py | 3 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_none.page | 30 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_object.page | 31 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_none.page | 32 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_object.page | 33 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_none.page | 32 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_object.page | 32 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-expected.gir | 31 | ||||
-rw-r--r-- | tests/scanner/Regress-1.0-sections-expected.txt | 2 | ||||
-rw-r--r-- | tests/scanner/regress.c | 30 | ||||
-rw-r--r-- | tests/scanner/regress.h | 6 |
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__ */ |