scanner: Warn if we're missing (element-type) for GPtrArray
authorColin Walters <walters@verbum.org>
Mon, 10 Dec 2012 18:12:13 +0000 (13:12 -0500)
committerColin Walters <walters@verbum.org>
Mon, 10 Dec 2012 18:46:04 +0000 (13:46 -0500)
For background,
See https://bugzilla.gnome.org/show_bug.cgi?id=629682
See https://bugzilla.gnome.org/show_bug.cgi?id=689871

Basically we should emit a warning here.

https://bugzilla.gnome.org/show_bug.cgi?id=689998

giscanner/introspectablepass.py
tests/warn/invalid-element-type.h
tests/warn/missing-element-type.h

index 97ccfe71c35c5e5025e07752512463614887a017..b87156a895a7d9a81ba23578ca2f9a3b6165d220 100644 (file)
@@ -87,7 +87,7 @@ class IntrospectablePass(object):
             parent.introspectable = False
             return
 
-        if (isinstance(node.type, ast.List)
+        if (isinstance(node.type, (ast.List, ast.Array))
             and node.type.element_type == ast.TYPE_ANY):
             self._parameter_warning(parent, node, "Missing (element-type) annotation")
             parent.introspectable = False
index 52e31164d46eafeb68c99d49b44beede796c3311..c9ff3040e9c9e60ad669c49f295da9b58dbe8bf7 100644 (file)
@@ -80,3 +80,4 @@ GList* test_unresolved_element_type(void);
 // EXPECT:63: Warning: Test: test_unresolved_element_type: Unknown type: 'Unresolved'
 // EXPECT:4: Warning: Test: test_invalid_list_element_type: argument l1: Missing (element-type) annotation
 // EXPECT:4: Warning: Test: test_invalid_list_element_type: argument l2: Missing (element-type) annotation
+// EXPECT:50: Warning: Test: test_invalid_ptrarray_element_type: argument p1: Missing (element-type) annotation
index 1f958a741ab09d0179f766e8f24071298eda5152..87206403d1efb67441a12e6481dca9453596075b 100644 (file)
@@ -8,3 +8,11 @@
 GSList *test_gslist_element_type(void);
 
 // EXPECT:6: Warning: Test: test_gslist_element_type: return value: Missing (element-type) annotation
+
+/**
+ * test_ptrarray_element_type:
+ * @somearray: An array.
+ */
+void test_ptrarray_arg_element_type(GPtrArray *somearray);
+
+// EXPECT:16: Warning: Test: test_ptrarray_arg_element_type: argument somearray: Missing (element-type) annotation