From bb364bd25d50215b0c40d98ba5ecf2aa779e53a2 Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Tue, 28 Apr 2020 11:18:18 +0200 Subject: Revert "Add support for element-type to GListModel" Breaks vapigen and changes GListModel definition in Gio-2.0.gir This reverts commit a9f45431684e6be3623e272e54d481e4c5d9423d. --- giscanner/docwriter.py | 18 ++++-------- giscanner/girparser.py | 2 +- giscanner/introspectablepass.py | 3 +- giscanner/transformer.py | 3 -- .../Regress.test_list_model_none.page | 30 -------------------- .../Regress.test_list_model_object.page | 31 -------------------- .../Regress.test_list_model_none.page | 32 --------------------- .../Regress.test_list_model_object.page | 33 ---------------------- .../Regress.test_list_model_none.page | 32 --------------------- .../Regress.test_list_model_object.page | 32 --------------------- tests/scanner/Regress-1.0-expected.gir | 31 -------------------- tests/scanner/Regress-1.0-sections-expected.txt | 2 -- tests/scanner/regress.c | 30 -------------------- tests/scanner/regress.h | 6 ---- 14 files changed, 7 insertions(+), 278 deletions(-) delete mode 100644 tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_none.page delete mode 100644 tests/scanner/Regress-1.0-C-expected/Regress.test_list_model_object.page delete mode 100644 tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_none.page delete mode 100644 tests/scanner/Regress-1.0-Gjs-expected/Regress.test_list_model_object.page delete mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_none.page delete mode 100644 tests/scanner/Regress-1.0-Python-expected/Regress.test_list_model_object.page 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 @@ - - - - - - - GListModel* - - regress_test_list_model_none - - - regress_test_list_model_none - -GListModel* regress_test_list_model_none (void); - -

Test GListModel with no annotation.

- - - -<code>Returns</code> -

a GListModel

-
-
- -
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 @@ - - - - - - - GListModel* - - regress_test_list_model_object - - - regress_test_list_model_object - -GListModel* regress_test_list_model_object (void); - -

Test GListModel return value with an element type annotation.

- - - -<code>Returns</code> -

a GListModel - containing RegressTestObj values

-
-
- -
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 @@ - - - - - - - Gio.ListModel({item_type: void}) - - regress_test_list_model_none - - - Regress.test_list_model_none - -function test_list_model_none(): Gio.ListModel({item_type: void}) { - // Gjs wrapper for regress_test_list_model_none() -} - -

Test GListModel with no annotation.

- - - -<code>Returns</code> -

a GListModel

-
-
- -
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 @@ - - - - - - - Gio.ListModel({item_type: Regress.TestObj}) - - regress_test_list_model_object - - - Regress.test_list_model_object - -function test_list_model_object(): Gio.ListModel({item_type: Regress.TestObj}) { - // Gjs wrapper for regress_test_list_model_object() -} - -

Test GListModel return value with an element type annotation.

- - - -<code>Returns</code> -

a GListModel - containing RegressTestObj values

-
-
- -
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 @@ - - - - - - - Gio.ListModel(item_type=gpointer) - - regress_test_list_model_none - - - Regress.test_list_model_none - -@returns(Gio.ListModel(item_type=gpointer)) -def test_list_model_none(): - # Python wrapper for regress_test_list_model_none() - -

Test GListModel with no annotation.

- - - -<code>Returns</code> -{formatter.format(node, node.retval.doc)} - - - -
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 @@ - - - - - - - Gio.ListModel(item_type=Regress.TestObj) - - regress_test_list_model_object - - - Regress.test_list_model_object - -@returns(Gio.ListModel(item_type=Regress.TestObj)) -def test_list_model_object(): - # Python wrapper for regress_test_list_model_object() - -

Test GListModel return value with an element type annotation.

- - - -<code>Returns</code> -{formatter.format(node, node.retval.doc)} - - - -
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. - - Test GListModel with no annotation. - - - a GListModel - - - - - - - Test GListModel return value with an element type annotation. - - - a GListModel - containing RegressTestObj values - - - - - 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__ */ -- cgit v1.2.1