[gobject-introspection] giscanner: write virtual method instance parameter docs to .gir file
- From: Colin Walters <walters src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gobject-introspection] giscanner: write virtual method instance parameter docs to .gir file
- Date: Wed, 9 Oct 2013 17:00:09 +0000 (UTC)
commit 001631bf9b9e672154492bf6547c0c7c985ed3e0
Author: Dieter Verfaillie <dieterv optionexplicit be>
Date: Fri Aug 23 08:48:05 2013 +0200
giscanner: write virtual method instance parameter docs to .gir file
giscanner/maintransformer.py | 6 ++
.../Regress.FooObject-read_fn.page | 2 +-
.../Regress.TestObj-matrix.page | 2 +-
.../Regress.FooObject-read_fn.page | 2 +-
.../Regress.TestObj-matrix.page | 2 +-
tests/scanner/Regress-1.0-expected.gir | 4 +
tests/scanner/WarnLib-1.0-expected.gir | 59 ++++++++++++++++++++
.../annotationparser/gi/syntax_whitespace.xml | 49 ++++++++++++++++
tests/scanner/warnlib.c | 14 +++++
tests/scanner/warnlib.h | 3 +
10 files changed, 139 insertions(+), 4 deletions(-)
---
diff --git a/giscanner/maintransformer.py b/giscanner/maintransformer.py
index 92a0773..d0eae90 100644
--- a/giscanner/maintransformer.py
+++ b/giscanner/maintransformer.py
@@ -675,7 +675,13 @@ class MainTransformer(object):
def _apply_annotations_params(self, parent, params, block):
declparams = set([])
if parent.instance_parameter:
+ if block:
+ doc_param = block.params.get(parent.instance_parameter.argname)
+ else:
+ doc_param = None
+ self._apply_annotations_param(parent, parent.instance_parameter, doc_param)
declparams.add(parent.instance_parameter.argname)
+
for param in params:
if block:
doc_param = block.params.get(param.argname)
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page
b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page
index a316adb..f99f3c0 100644
--- a/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.FooObject-read_fn.page
@@ -27,7 +27,7 @@ void read_fn (RegressFooObject* object,
<terms>
<item>
<title><code>object</code></title>
-
+<p>obj</p>
</item>
<item>
<title><code>offset</code></title>
diff --git a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page
b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page
index 4c8247b..4320365 100644
--- a/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page
+++ b/tests/scanner/Regress-1.0-C-expected/Regress.TestObj-matrix.page
@@ -28,7 +28,7 @@ case.</p>
<terms>
<item>
<title><code>obj</code></title>
-
+<p>A <link xref="Regress.TestObj"/></p>
</item>
<item>
<title><code>somestr</code></title>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page
b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page
index c2ca1c0..6cf532b 100644
--- a/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.FooObject-read_fn.page
@@ -27,7 +27,7 @@ def do_read_fn(object, offset, length):
<terms>
<item>
<title><code>object</code></title>
-
+<p>obj</p>
</item>
<item>
<title><code>offset</code></title>
diff --git a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page
b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page
index fe7066a..742e6da 100644
--- a/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page
+++ b/tests/scanner/Regress-1.0-Python-expected/Regress.TestObj-matrix.page
@@ -29,7 +29,7 @@ case.</p>
<terms>
<item>
<title><code>obj</code></title>
-
+<p>A <link xref="Regress.TestObj"/></p>
</item>
<item>
<title><code>somestr</code></title>
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index f9ba48c..7b823a3 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -1311,6 +1311,7 @@ uses a C sugar return type.</doc>
</return-value>
<parameters>
<instance-parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
<type name="FooObject" c:type="RegressFooObject*"/>
</instance-parameter>
<parameter name="offset" transfer-ownership="none">
@@ -1572,6 +1573,7 @@ uses a C sugar return type.</doc>
</return-value>
<parameters>
<parameter name="object" transfer-ownership="none">
+ <doc xml:space="preserve">obj</doc>
<type name="FooObject" c:type="RegressFooObject*"/>
</parameter>
<parameter name="offset" transfer-ownership="none">
@@ -2825,6 +2827,7 @@ case.</doc>
</return-value>
<parameters>
<instance-parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</instance-parameter>
<parameter name="somestr" transfer-ownership="none">
@@ -3514,6 +3517,7 @@ the introspection client langage.</doc>
</return-value>
<parameters>
<parameter name="obj" transfer-ownership="none">
+ <doc xml:space="preserve">A #RegressTestObj</doc>
<type name="TestObj" c:type="RegressTestObj*"/>
</parameter>
<parameter name="somestr" transfer-ownership="none">
diff --git a/tests/scanner/WarnLib-1.0-expected.gir b/tests/scanner/WarnLib-1.0-expected.gir
index 0fc0d84..47e3666 100644
--- a/tests/scanner/WarnLib-1.0-expected.gir
+++ b/tests/scanner/WarnLib-1.0-expected.gir
@@ -19,6 +19,26 @@ and/or use gtk-doc annotations. -->
glib:type-name="WarnLibWhatever"
glib:get-type="warnlib_whatever_get_type"
glib:type-struct="WhateverIface">
+ <virtual-method name="do_boo" invoker="do_boo">
+ <doc xml:space="preserve">Does boo.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">a WarnLibWhatever</doc>
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </instance-parameter>
+ <parameter name="x" transfer-ownership="none">
+ <doc xml:space="preserve">x parameter</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <doc xml:space="preserve">y parameter</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
<virtual-method name="do_moo" invoker="do_moo">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
@@ -35,6 +55,24 @@ and/or use gtk-doc annotations. -->
</parameter>
</parameters>
</virtual-method>
+ <method name="do_boo" c:identifier="warnlib_whatever_do_boo">
+ <doc xml:space="preserve">Does boo.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">a WarnLibWhatever</doc>
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </instance-parameter>
+ <parameter name="arg1" transfer-ownership="none">
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="arg2" transfer-ownership="none">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
<method name="do_moo" c:identifier="warnlib_whatever_do_moo">
<return-value transfer-ownership="none">
<type name="none" c:type="void"/>
@@ -76,6 +114,27 @@ and/or use gtk-doc annotations. -->
</parameters>
</callback>
</field>
+ <field name="do_boo">
+ <callback name="do_boo">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <doc xml:space="preserve">a WarnLibWhatever</doc>
+ <type name="Whatever" c:type="WarnLibWhatever*"/>
+ </parameter>
+ <parameter name="x" transfer-ownership="none">
+ <doc xml:space="preserve">x parameter</doc>
+ <type name="gint" c:type="int"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <doc xml:space="preserve">y parameter</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
</record>
<function name="throw_unpaired"
c:identifier="warnlib_throw_unpaired"
diff --git a/tests/scanner/annotationparser/gi/syntax_whitespace.xml
b/tests/scanner/annotationparser/gi/syntax_whitespace.xml
index c7934da..3857ea6 100644
--- a/tests/scanner/annotationparser/gi/syntax_whitespace.xml
+++ b/tests/scanner/annotationparser/gi/syntax_whitespace.xml
@@ -72,4 +72,53 @@ Test overriding via the "Rename To" annotation.</description>
*/</output>
</test>
+<test>
+ <input>/**
+ *atk_text_get_default_attributes:
+ * text: an #AtkText
+ *
+ *Creates ...
+ *
+ *Returns: (transfer full): an ...
+ */</input>
+ <parser>
+ <docblock>
+ <identifier>
+ <name>atk_text_get_default_attributes</name>
+ </identifier>
+ <parameters>
+ <parameter>
+ <name>text</name>
+ <description>an #AtkText</description>
+ </parameter>
+ </parameters>
+ <description>Creates ...</description>
+ <tags>
+ <tag>
+ <name>returns</name>
+ <annotations>
+ <annotation>
+ <name>transfer</name>
+ <options>
+ <option>
+ <name>full</name>
+ </option>
+ </options>
+ </annotation>
+ </annotations>
+ <description>an ...</description>
+ </tag>
+ </tags>
+ </docblock>
+ </parser>
+ <output>/**
+ * atk_text_get_default_attributes:
+ * @text: an #AtkText
+ *
+ * Creates ...
+ *
+ * Returns: (transfer full): an ...
+ */</output>
+</test>
+
</tests>
diff --git a/tests/scanner/warnlib.c b/tests/scanner/warnlib.c
index 940d2b6..d7c1e2a 100644
--- a/tests/scanner/warnlib.c
+++ b/tests/scanner/warnlib.c
@@ -31,3 +31,17 @@ warnlib_whatever_do_moo (WarnLibWhatever *self, int x, gpointer y)
{
WARNLIB_WHATEVER_GET_IFACE(self)->do_moo (self, x, y);
}
+
+/**
+ * warnlib_whatever_do_boo:
+ * @self: a WarnLibWhatever
+ * @x: x parameter
+ * @y: y parameter
+ *
+ * Does boo.
+ */
+void
+warnlib_whatever_do_boo (WarnLibWhatever *self, int x, gpointer y)
+{
+ WARNLIB_WHATEVER_GET_IFACE(self)->do_boo (self, x, y);
+}
diff --git a/tests/scanner/warnlib.h b/tests/scanner/warnlib.h
index 9e448c0..a4c28b4 100644
--- a/tests/scanner/warnlib.h
+++ b/tests/scanner/warnlib.h
@@ -27,9 +27,12 @@ struct _WarnLibWhateverIface
/* explicitly test un-named parameters */
void (*do_moo) (WarnLibWhatever *self, int, gpointer);
+
+ void (*do_boo) (WarnLibWhatever *self, int x, gpointer y);
};
void warnlib_whatever_do_moo (WarnLibWhatever *self, int, gpointer);
+void warnlib_whatever_do_boo (WarnLibWhatever *self, int, gpointer);
GType warnlib_whatever_get_type (void) G_GNUC_CONST;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]