<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Gio" version="2.0"/>
  <include name="Utility" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <c:include name="regress.h"/>
  <namespace name="Regress"
             version="1.0"
             shared-library="libregress-1.0.so"
             c:identifier-prefixes="Regress"
             c:symbol-prefixes="regress">
    <alias name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed">
      <doc xml:space="preserve"
           filename="regress.h"
           line="1466">Typedef TestBoxed to test caller-allocates correctness</doc>
      <source-position filename="regress.h" line="1471"/>
      <type name="TestBoxed" c:type="RegressTestBoxed"/>
    </alias>
    <alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
      <source-position filename="foo.h" line="148"/>
      <type name="gpointer" c:type="gpointer"/>
    </alias>
    <alias name="FooXEvent" c:type="RegressFooXEvent">
      <source-position filename="foo.h" line="383"/>
      <type name="none" c:type="void"/>
    </alias>
    <alias name="IntsetAlias" c:type="RegressIntsetAlias" introspectable="0">
      <doc xml:space="preserve"
           filename="regress.h"
           line="1436">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
      <source-position filename="regress.h" line="1442"/>
      <type name="Intset" c:type="RegressIntset"/>
    </alias>
    <alias name="PtrArrayAlias" c:type="RegressPtrArrayAlias">
      <doc xml:space="preserve"
           filename="regress.h"
           line="1444">Typedef'd GPtrArray for some reason</doc>
      <source-position filename="regress.h" line="1449"/>
      <type name="GLib.PtrArray" c:type="GPtrArray"/>
    </alias>
    <alias name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64">
      <source-position filename="regress.h" line="530"/>
      <type name="guint64" c:type="guint64"/>
    </alias>
    <alias name="VaListAlias" c:type="RegressVaListAlias" introspectable="0">
      <doc xml:space="preserve"
           filename="regress.h"
           line="1455">Typedef'd va_list for additional reasons</doc>
      <source-position filename="regress.h" line="1460"/>
      <type name="va_list" c:type="va_list"/>
    </alias>
    <constant name="ANNOTATION_CALCULATED_DEFINE"
              value="100"
              c:type="REGRESS_ANNOTATION_CALCULATED_DEFINE">
      <source-position filename="annotation.h" line="295"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ANNOTATION_CALCULATED_LARGE"
              value="10000000000UL"
              c:type="REGRESS_ANNOTATION_CALCULATED_LARGE"
              version="1.4">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="297">Constant to define a calculated large value</doc>
      <source-position filename="annotation.h" line="304"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="ANNOTATION_CALCULATED_LARGE_DIV"
              value="1000000UL"
              c:type="REGRESS_ANNOTATION_CALCULATED_LARGE_DIV">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="306">Constant to define a calculated large value</doc>
      <source-position filename="annotation.h" line="311"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="ATestError"
                 c:type="RegressATestError"
                 glib:error-domain="regress-atest-error">
      <source-position filename="regress.h" line="511"/>
      <member name="code0" value="0" c:identifier="REGRESS_ATEST_ERROR_CODE0">
      </member>
      <member name="code1" value="1" c:identifier="REGRESS_ATEST_ERROR_CODE1">
      </member>
      <member name="code2" value="2" c:identifier="REGRESS_ATEST_ERROR_CODE2">
      </member>
    </enumeration>
    <record name="AnAnonymousUnion" c:type="RegressAnAnonymousUnion">
      <source-position filename="regress.h" line="1572"/>
      <field name="x" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <union>
        <source-position filename="regress.h" line="1571"/>
        <field name="a" writable="1">
          <array zero-terminated="0" fixed-size="2">
            <type name="LikeGnomeKeyringPasswordSchema"
                  c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
          </array>
        </field>
        <field name="padding" writable="1">
          <array zero-terminated="0" fixed-size="4">
            <type name="guint" c:type="guint"/>
          </array>
        </field>
      </union>
    </record>
    <bitfield name="AnnotationBitfield" c:type="RegressAnnotationBitfield">
      <source-position filename="annotation.h" line="18"/>
      <member name="foo" value="1" c:identifier="ANN_FLAG_FOO">
      </member>
      <member name="bar" value="2" c:identifier="ANN_FLAG_BAR">
      </member>
      <member name="foobar"
              value="3"
              c:identifier="ANN_FLAG_FOOBAR"
              version="1.4">
      </member>
    </bitfield>
    <callback name="AnnotationCallback" c:type="RegressAnnotationCallback">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="20">This is a callback.</doc>
      <source-position filename="annotation.h" line="27"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="annotation.h"
             line="25">array of ints</doc>
        <type name="gint" c:type="const gint*"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.h"
               line="22">array of ints</doc>
          <type name="gint" c:type="const gint*"/>
        </parameter>
      </parameters>
    </callback>
    <record name="AnnotationFields" c:type="RegressAnnotationFields">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="252">This is a struct for testing field documentation and annotations</doc>
      <source-position filename="annotation.h" line="273"/>
      <field name="field1" writable="1">
        <doc xml:space="preserve"
             filename="annotation.h"
             line="254">Some documentation</doc>
        <type name="gint" c:type="int"/>
      </field>
      <field name="arr" writable="1">
        <doc xml:space="preserve"
             filename="annotation.h"
             line="255">an array of length @len</doc>
        <array length="2" zero-terminated="0" c:type="guchar*">
          <type name="guint8" c:type="guchar"/>
        </array>
      </field>
      <field name="len" writable="1">
        <doc xml:space="preserve"
             filename="annotation.h"
             line="256">the length of array</doc>
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="field4" version="1.4" writable="1">
        <doc xml:space="preserve"
             filename="annotation.h"
             line="265">A new field, breaking ABI is fun!</doc>
        <type name="guint" c:type="guint"/>
      </field>
    </record>
    <callback name="AnnotationForeachFunc"
              c:type="RegressAnnotationForeachFunc">
      <source-position filename="annotation.h" line="55"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
        </parameter>
        <parameter name="item" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="AnnotationListCallback"
              c:type="RegressAnnotationListCallback">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="29">This is a callback taking a list.</doc>
      <source-position filename="annotation.h" line="36"/>
      <return-value transfer-ownership="container">
        <doc xml:space="preserve"
             filename="annotation.h"
             line="34">list of strings</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="utf8"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.h"
               line="31">list of strings</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </callback>
    <callback name="AnnotationNotifyFunc" c:type="RegressAnnotationNotifyFunc">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="38">This is a callback with a 'closure' argument that is not named
'user_data' and hence has to be annotated.</doc>
      <source-position filename="annotation.h" line="45"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="0">
          <doc xml:space="preserve"
               filename="annotation.h"
               line="40">The user data</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <class name="AnnotationObject"
           c:symbol-prefix="annotation_object"
           c:type="RegressAnnotationObject"
           parent="GObject.Object"
           glib:type-name="RegressAnnotationObject"
           glib:get-type="regress_annotation_object_get_type"
           glib:type-struct="AnnotationObjectClass">
      <attribute name="org.example.Test" value="cows"/>
      <doc xml:space="preserve"
           filename="annotation.h"
           line="47">This is an object used to test annotations.</doc>
      <source-position filename="annotation.h" line="67"/>
      <method name="allow_none"
              c:identifier="regress_annotation_object_allow_none">
        <source-position filename="annotation.h" line="83"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="572">%NULL always</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="569">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="somearg"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="calleeowns"
              c:identifier="regress_annotation_object_calleeowns">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="296">This is a test for out arguments; GObject defaults to transfer</doc>
        <source-position filename="annotation.h" line="106"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="303">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="298">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="toown"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="299">a #GObject</doc>
            <type name="GObject.Object" c:type="GObject**"/>
          </parameter>
        </parameters>
      </method>
      <method name="calleesowns"
              c:identifier="regress_annotation_object_calleesowns">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="312">This is a test for out arguments, one transferred, other not</doc>
        <source-position filename="annotation.h" line="110"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="320">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="314">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="toown1"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="315">a #GObject</doc>
            <type name="GObject.Object" c:type="GObject**"/>
          </parameter>
          <parameter name="toown2"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="316">a #GObject</doc>
            <type name="GObject.Object" c:type="GObject**"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_sum"
              c:identifier="regress_annotation_object_compute_sum">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="422">Test taking a zero-terminated array</doc>
        <source-position filename="annotation.h" line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="424">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="nums" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="425">Sequence of numbers</doc>
            <array zero-terminated="0" c:type="int*">
              <type name="gint" c:type="int"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="compute_sum_n"
              c:identifier="regress_annotation_object_compute_sum_n">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="436">Test taking an array with length parameter</doc>
        <source-position filename="annotation.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="438">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="nums" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="439">Sequence of
  numbers that are zero-terminated</doc>
            <array length="1" zero-terminated="0" c:type="int*">
              <type name="gint" c:type="int"/>
            </array>
          </parameter>
          <parameter name="n_nums" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="441">Length of number array</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="compute_sum_nz"
              c:identifier="regress_annotation_object_compute_sum_nz">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="453">Test taking a zero-terminated array with length parameter</doc>
        <source-position filename="annotation.h" line="144"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="455">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="nums" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="456">Sequence of numbers that
are zero-terminated</doc>
            <array length="1" zero-terminated="1" c:type="int*">
              <type name="gint" c:type="int"/>
            </array>
          </parameter>
          <parameter name="n_nums" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="458">Length of number array</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_object"
              c:identifier="regress_annotation_object_create_object">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="396">Test returning a caller-owned object</doc>
        <source-position filename="annotation.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="402">The object</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="398">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="do_not_use"
              c:identifier="regress_annotation_object_do_not_use"
              deprecated="1"
              deprecated-version="0.12">
        <doc-deprecated xml:space="preserve">Use regress_annotation_object_create_object() instead.</doc-deprecated>
        <source-position filename="annotation.h" line="180"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="597">%NULL always</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="595">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="extra_annos"
              c:identifier="regress_annotation_object_extra_annos">
        <attribute name="org.foobar" value="testvalue"/>
        <source-position filename="annotation.h" line="219"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="foreach" c:identifier="regress_annotation_object_foreach">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="502">Test taking a call-scoped callback</doc>
        <source-position filename="annotation.h" line="158"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="504">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="505">Callback to invoke</doc>
            <type name="AnnotationForeachFunc"
                  c:type="RegressAnnotationForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="506">Callback user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_hash"
              c:identifier="regress_annotation_object_get_hash">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="349">This is a test for returning a hash table mapping strings to
objects.</doc>
        <source-position filename="annotation.h" line="118"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="356">hash table</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="GObject.Object"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="351">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_objects"
              c:identifier="regress_annotation_object_get_objects">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="378">This is a test for returning a list of objects.
The list itself should be freed, but not the internal objects,
intentionally similar example to gtk_container_get_children</doc>
        <source-position filename="annotation.h" line="125"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="386">list of objects</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="AnnotationObject"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="380">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_strings"
              c:identifier="regress_annotation_object_get_strings">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="331">This is a test for returning a list of strings, where
each string needs to be freed.</doc>
        <source-position filename="annotation.h" line="115"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="338">list of strings</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="333">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="hidden_self"
              c:identifier="regress_annotation_object_hidden_self">
        <source-position filename="annotation.h" line="194"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="641">A #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="gpointer"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="in" c:identifier="regress_annotation_object_in">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="232">This is a test for in arguments</doc>
        <source-position filename="annotation.h" line="102"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="239">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="234">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="inarg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="235">This is an argument test</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="inout" c:identifier="regress_annotation_object_inout">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="248">This is a test for out arguments</doc>
        <source-position filename="annotation.h" line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="255">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="250">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="inoutarg"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="251">This is an argument test</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="inout2" c:identifier="regress_annotation_object_inout2">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="263">This is a second test for out arguments</doc>
        <source-position filename="annotation.h" line="94"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="270">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="265">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="inoutarg"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="266">This is an argument test</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="inout3" c:identifier="regress_annotation_object_inout3">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="279">This is a 3th test for out arguments</doc>
        <source-position filename="annotation.h" line="98"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="286">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="281">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="inoutarg"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="282">This is an argument test</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="method" c:identifier="regress_annotation_object_method">
        <source-position filename="annotation.h" line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="208">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="206">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="notrans" c:identifier="regress_annotation_object_notrans">
        <source-position filename="annotation.h" line="87"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="584">An object, not referenced</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="582">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="out" c:identifier="regress_annotation_object_out">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="216">This is a test for out arguments</doc>
        <source-position filename="annotation.h" line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="223">an int</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="218">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="outarg"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="219">This is an argument test</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="parse_args"
              c:identifier="regress_annotation_object_parse_args">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="470">Test taking a zero-terminated array with length parameter</doc>
        <source-position filename="annotation.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="472">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="argc"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="473">Length of the argument vector</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="argv"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="474">Argument vector</doc>
            <array length="0" zero-terminated="1" c:type="char***">
              <type name="utf8" c:type="char**"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="set_data"
              c:identifier="regress_annotation_object_set_data">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="518">Test taking a guchar * with a length.</doc>
        <source-position filename="annotation.h" line="164"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="520">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="521">The data</doc>
            <array length="1" zero-terminated="0" c:type="const guchar*">
              <type name="guint8" c:type="guchar"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="522">Length of the data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data2"
              c:identifier="regress_annotation_object_set_data2">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="534">Test taking a gchar * with a length.</doc>
        <source-position filename="annotation.h" line="169"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="536">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="537">The data</doc>
            <array length="1" zero-terminated="0" c:type="const gchar*">
              <type name="gint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="538">Length of the data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_data3"
              c:identifier="regress_annotation_object_set_data3">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="550">Test taking a gchar * with a length, overriding the array element
type.</doc>
        <source-position filename="annotation.h" line="174"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="552">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="553">The data</doc>
            <array length="1" zero-terminated="0" c:type="gpointer">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="554">Length of the data</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="string_out"
              c:identifier="regress_annotation_object_string_out">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="486">Test returning a string as an out parameter</doc>
        <source-position filename="annotation.h" line="154"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="493">some boolean</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="488">a #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="str_out"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="489">string return value</doc>
            <type name="utf8" c:type="char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="use_buffer"
              c:identifier="regress_annotation_object_use_buffer">
        <source-position filename="annotation.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="412">a #GObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="bytes" transfer-ownership="none">
            <type name="guint8" c:type="guchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="watch"
              c:identifier="regress_annotation_object_watch"
              shadowed-by="watch_full"
              introspectable="0">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="606">This is here just for the sake of being overriden by its
regress_annotation_object_watch_full().</doc>
        <source-position filename="annotation.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="608">A #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="func" transfer-ownership="none" closure="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="609">The callback</doc>
            <type name="AnnotationForeachFunc"
                  c:type="RegressAnnotationForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="610">The callback data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="watch_full"
              c:identifier="regress_annotation_object_watch_full"
              shadows="watch">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="622">Test overriding via the "Rename To" annotation.</doc>
        <source-position filename="annotation.h" line="188"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="624">A #RegressAnnotationObject</doc>
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="625">The callback</doc>
            <type name="AnnotationForeachFunc"
                  c:type="RegressAnnotationForeachFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="626">The callback data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="627">Destroy notification</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="with_voidp"
              c:identifier="regress_annotation_object_with_voidp">
        <source-position filename="annotation.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="370">Opaque pointer handle</doc>
            <type name="gpointer" c:type="void*"/>
          </parameter>
        </parameters>
      </method>
      <property name="function-property"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="AnnotationCallback" c:type="gpointer"/>
      </property>
      <property name="string-property"
                version="1.0"
                deprecated="1"
                deprecated-version="1.2"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="156">This is a property which is a string</doc>
        <doc-deprecated xml:space="preserve">Use better-string-property instead</doc-deprecated>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="tab-property"
                version="1.2"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="NULL">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="181">This is a property annotation intentionally indented with a mix
of tabs and strings to test the tab handling capabilities of the scanner.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <glib:signal name="attribute-signal" when="last">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="134">This signal tests a signal with attributes.</doc>
        <return-value transfer-ownership="full">
          <attribute name="some.annotation.foo3" value="val3"/>
          <doc xml:space="preserve"
               filename="annotation.c"
               line="142">the return value</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="arg1" transfer-ownership="none">
            <attribute name="some.annotation.foo1" value="val1"/>
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="137">a value</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="arg2" transfer-ownership="none">
            <attribute name="some.annotation.foo2" value="val2"/>
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="138">another value</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="doc-empty-arg-parsing" when="last">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="118">This signal tests an empty document argument (@arg1)</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="arg1"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="list-signal" when="last">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="101">This is a signal which takes a list of strings, but it's not
known by GObject as it's only marked as G_TYPE_POINTER</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="list" transfer-ownership="container">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="104">a list of strings</doc>
            <type name="GLib.List" c:type="gpointer">
              <type name="utf8"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="string-signal"
                   when="last"
                   version="1.0"
                   deprecated="1"
                   deprecated-version="1.2">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="81">This is a signal which has a broken signal handler,
it says it's pointer but it's actually a string.</doc>
        <doc-deprecated xml:space="preserve">Use other-signal instead</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="annotation.c"
                 line="84">a string</doc>
            <type name="utf8" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="AnnotationObjectClass"
            c:type="RegressAnnotationObjectClass"
            glib:is-gtype-struct-for="AnnotationObject">
      <source-position filename="annotation.h" line="67"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="AnnotationStruct" c:type="RegressAnnotationStruct">
      <doc xml:space="preserve"
           filename="annotation.h"
           line="242">This is a test of an array of object in an field of a struct.</doc>
      <source-position filename="annotation.h" line="250"/>
      <field name="objects" writable="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
        </array>
      </field>
    </record>
    <record name="AnonymousUnionAndStruct"
            c:type="RegressAnonymousUnionAndStruct">
      <source-position filename="regress.h" line="1585"/>
      <field name="x" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <union>
        <source-position filename="regress.h" line="1584"/>
        <record>
          <source-position filename="regress.h" line="1581"/>
          <field name="a" writable="1">
            <type name="LikeGnomeKeyringPasswordSchema"
                  c:type="RegressLikeGnomeKeyringPasswordSchema*"/>
          </field>
          <field name="b" writable="1">
            <type name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem*"/>
          </field>
        </record>
        <field name="padding" writable="1">
          <array zero-terminated="0" fixed-size="4">
            <type name="guint" c:type="guint"/>
          </array>
        </field>
      </union>
    </record>
    <constant name="BAD_EXPR_CONSTANT"
              value="1"
              c:type="REGRESS_BAD_EXPR_CONSTANT">
      <source-position filename="regress.h" line="528"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="BOOL_CONSTANT" value="true" c:type="REGRESS_BOOL_CONSTANT">
      <source-position filename="regress.h" line="524"/>
      <type name="gboolean" c:type="gboolean"/>
    </constant>
    <constant name="DOUBLE_CONSTANT"
              value="44.220000"
              c:type="REGRESS_DOUBLE_CONSTANT">
      <source-position filename="regress.h" line="521"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <function-macro name="FOO_BUFFER"
                    c:identifier="REGRESS_FOO_BUFFER"
                    introspectable="0">
      <source-position filename="foo.h" line="36"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FOO_DEFINE_SHOULD_BE_EXPOSED"
              value="should be exposed"
              c:type="REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED">
      <source-position filename="foo.h" line="12"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <constant name="FOO_FLAGS_SECOND_AND_THIRD"
              value="6"
              c:type="REGRESS_FOO_FLAGS_SECOND_AND_THIRD">
      <source-position filename="foo.h" line="249"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <function-macro name="FOO_INTERFACE"
                    c:identifier="REGRESS_FOO_INTERFACE"
                    introspectable="0">
      <source-position filename="foo.h" line="17"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_INTERFACE_GET_INTERFACE"
                    c:identifier="REGRESS_FOO_INTERFACE_GET_INTERFACE"
                    introspectable="0">
      <source-position filename="foo.h" line="19"/>
      <parameters>
        <parameter name="inst">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_IS_BUFFER"
                    c:identifier="REGRESS_FOO_IS_BUFFER"
                    introspectable="0">
      <source-position filename="foo.h" line="37"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_IS_INTERFACE"
                    c:identifier="REGRESS_FOO_IS_INTERFACE"
                    introspectable="0">
      <source-position filename="foo.h" line="18"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_IS_OBJECT"
                    c:identifier="REGRESS_FOO_IS_OBJECT"
                    introspectable="0">
      <source-position filename="foo.h" line="29"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_IS_OTHER_OBJECT"
                    c:identifier="REGRESS_FOO_IS_OTHER_OBJECT"
                    introspectable="0">
      <source-position filename="foo.h" line="41"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_IS_SUBINTERFACE"
                    c:identifier="REGRESS_FOO_IS_SUBINTERFACE"
                    introspectable="0">
      <source-position filename="foo.h" line="23"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_IS_SUBOBJECT"
                    c:identifier="REGRESS_FOO_IS_SUBOBJECT"
                    introspectable="0">
      <source-position filename="foo.h" line="33"/>
      <parameters>
        <parameter name="subobject">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_OBJECT"
                    c:identifier="REGRESS_FOO_OBJECT"
                    introspectable="0">
      <source-position filename="foo.h" line="28"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_OTHER_OBJECT"
                    c:identifier="REGRESS_FOO_OTHER_OBJECT"
                    introspectable="0">
      <source-position filename="foo.h" line="40"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FOO_PIE_IS_TASTY"
              value="3.141590"
              c:type="REGRESS_FOO_PIE_IS_TASTY">
      <source-position filename="foo.h" line="14"/>
      <type name="gdouble" c:type="gdouble"/>
    </constant>
    <function-macro name="FOO_SUBINTERFACE"
                    c:identifier="REGRESS_FOO_SUBINTERFACE"
                    introspectable="0">
      <source-position filename="foo.h" line="22"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_SUBINTERFACE_GET_INTERFACE"
                    c:identifier="REGRESS_FOO_SUBINTERFACE_GET_INTERFACE"
                    introspectable="0">
      <source-position filename="foo.h" line="24"/>
      <parameters>
        <parameter name="inst">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="FOO_SUBOBJECT"
                    c:identifier="REGRESS_FOO_SUBOBJECT"
                    introspectable="0">
      <source-position filename="foo.h" line="32"/>
      <parameters>
        <parameter name="subobject">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="FOO_SUCCESS_INT"
              value="4408"
              c:type="REGRESS_FOO_SUCCESS_INT">
      <source-position filename="foo.h" line="10"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="FooASingle" c:type="RegressFooASingle">
      <source-position filename="foo.h" line="534"/>
      <member name="foo_some_single_enum"
              value="0"
              c:identifier="REGRESS_FOO_SOME_SINGLE_ENUM">
      </member>
    </enumeration>
    <enumeration name="FooAddressType" c:type="RegressFooAddressType">
      <source-position filename="foo.h" line="281"/>
      <member name="invalid"
              value="0"
              c:identifier="REGRESS_FOO_ADDRESS_INVALID">
      </member>
      <member name="ipv4" value="1" c:identifier="REGRESS_FOO_ADDRESS_IPV4">
      </member>
      <member name="ipv6" value="2" c:identifier="REGRESS_FOO_ADDRESS_IPV6">
      </member>
    </enumeration>
    <record name="FooBRect"
            c:type="RegressFooBRect"
            glib:type-name="RegressFooBRect"
            glib:get-type="regress_foo_brect_get_type"
            c:symbol-prefix="foo_brect">
      <source-position filename="foo.h" line="393"/>
      <field name="x" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="y" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <constructor name="new" c:identifier="regress_foo_brect_new">
        <source-position filename="foo.h" line="401"/>
        <return-value transfer-ownership="full">
          <type name="FooBRect" c:type="RegressFooBRect*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="add" c:identifier="regress_foo_brect_add">
        <source-position filename="foo.h" line="405"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="b1" transfer-ownership="none">
            <type name="FooBRect" c:type="RegressFooBRect*"/>
          </instance-parameter>
          <parameter name="b2" transfer-ownership="none">
            <type name="FooBRect" c:type="RegressFooBRect*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <union name="FooBUnion"
           c:type="RegressFooBUnion"
           glib:type-name="RegressFooBUnion"
           glib:get-type="regress_foo_bunion_get_type"
           c:symbol-prefix="foo_bunion">
      <source-position filename="foo.h" line="414"/>
      <field name="type" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="v" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="rect" writable="1">
        <type name="FooBRect" c:type="RegressFooBRect*"/>
      </field>
      <constructor name="new" c:identifier="regress_foo_bunion_new">
        <source-position filename="foo.h" line="440"/>
        <return-value transfer-ownership="full">
          <type name="FooBUnion" c:type="RegressFooBUnion*"/>
        </return-value>
      </constructor>
      <method name="get_contained_type"
              c:identifier="regress_foo_bunion_get_contained_type">
        <source-position filename="foo.h" line="448"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="bunion" transfer-ownership="none">
            <type name="FooBUnion" c:type="RegressFooBUnion*"/>
          </instance-parameter>
        </parameters>
      </method>
    </union>
    <record name="FooBoxed"
            c:type="RegressFooBoxed"
            opaque="1"
            glib:type-name="RegressFooBoxed"
            glib:get-type="regress_foo_boxed_get_type"
            c:symbol-prefix="foo_boxed">
      <source-position filename="foo.h" line="283"/>
      <constructor name="new" c:identifier="regress_foo_boxed_new">
        <source-position filename="foo.h" line="290"/>
        <return-value transfer-ownership="full">
          <type name="FooBoxed" c:type="RegressFooBoxed*"/>
        </return-value>
      </constructor>
      <method name="method" c:identifier="regress_foo_boxed_method">
        <source-position filename="foo.h" line="293"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="FooBoxed" c:type="RegressFooBoxed*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="FooBuffer"
           c:symbol-prefix="foo_buffer"
           c:type="RegressFooBuffer"
           parent="FooObject"
           glib:type-name="RegressFooBuffer"
           glib:get-type="regress_foo_buffer_get_type"
           glib:type-struct="FooBufferClass">
      <source-position filename="foo.h" line="52"/>
      <implements name="FooInterface"/>
      <method name="some_method" c:identifier="regress_foo_buffer_some_method">
        <source-position filename="foo.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="buffer" transfer-ownership="none">
            <type name="FooBuffer" c:type="RegressFooBuffer*"/>
          </instance-parameter>
        </parameters>
      </method>
    </class>
    <record name="FooBufferClass"
            c:type="RegressFooBufferClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="FooBuffer">
      <source-position filename="foo.h" line="52"/>
    </record>
    <callback name="FooCallback" c:type="RegressFooCallback">
      <source-position filename="foo.h" line="317"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="regress_foo" transfer-ownership="none">
          <type name="FooObject" c:type="RegressFooObject*"/>
        </parameter>
        <parameter name="b" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="FooDBusData"
            c:type="RegressFooDBusData"
            opaque="1"
            glib:type-name="RegressFooDBusData"
            glib:get-type="regress_foo_dbus_data_get_type"
            c:symbol-prefix="foo_dbus_data">
      <source-position filename="foo.h" line="296"/>
      <method name="method" c:identifier="regress_foo_dbus_data_method">
        <source-position filename="foo.h" line="302"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="dbusdata" transfer-ownership="none">
            <type name="FooDBusData" c:type="RegressFooDBusData*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="FooEnumFullname" c:type="RegressFooEnumFullname">
      <source-position filename="foo.h" line="274"/>
      <member name="one"
              value="1"
              c:identifier="REGRESS_FOO_ENUM_FULLNAME_ONE">
      </member>
      <member name="two"
              value="2"
              c:identifier="REGRESS_FOO_ENUM_FULLNAME_TWO">
      </member>
      <member name="three"
              value="3"
              c:identifier="REGRESS_FOO_ENUM_FULLNAME_THREE">
      </member>
    </enumeration>
    <enumeration name="FooEnumNoType" c:type="RegressFooEnumNoType">
      <source-position filename="foo.h" line="260"/>
      <member name="un" value="1" c:identifier="REGRESS_FOO_ENUM_UN">
      </member>
      <member name="deux" value="2" c:identifier="REGRESS_FOO_ENUM_DEUX">
      </member>
      <member name="trois" value="3" c:identifier="REGRESS_FOO_ENUM_TROIS">
      </member>
      <member name="neuf" value="9" c:identifier="REGRESS_FOO_ENUM_NEUF">
      </member>
    </enumeration>
    <enumeration name="FooEnumType"
                 glib:type-name="RegressFooEnumType"
                 glib:get-type="regress_foo_enum_type_get_type"
                 c:type="RegressFooEnumType">
      <member name="alpha"
              value="0"
              c:identifier="REGRESS_FOO_ENUM_ALPHA"
              glib:nick="alpha"
              glib:name="REGRESS_FOO_ENUM_ALPHA">
      </member>
      <member name="beta"
              value="1"
              c:identifier="REGRESS_FOO_ENUM_BETA"
              glib:nick="beta"
              glib:name="REGRESS_FOO_ENUM_BETA">
      </member>
      <member name="delta"
              value="2"
              c:identifier="REGRESS_FOO_ENUM_DELTA"
              glib:nick="delta"
              glib:name="REGRESS_FOO_ENUM_DELTA">
      </member>
      <function name="method" c:identifier="regress_foo_enum_type_method">
        <source-position filename="foo.h" line="236"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <parameter name="regress_foo_enum" transfer-ownership="none">
            <type name="FooEnumType" c:type="RegressFooEnumType"/>
          </parameter>
        </parameters>
      </function>
      <function name="returnv" c:identifier="regress_foo_enum_type_returnv">
        <source-position filename="foo.h" line="240"/>
        <return-value transfer-ownership="none">
          <type name="FooEnumType" c:type="RegressFooEnumType"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <enumeration name="FooError"
                 glib:type-name="RegressFooError"
                 glib:get-type="regress_foo_error_get_type"
                 c:type="RegressFooError"
                 glib:error-domain="regress_foo-error-quark">
      <member name="good"
              value="0"
              c:identifier="REGRESS_FOO_ERROR_GOOD"
              glib:nick="good"
              glib:name="REGRESS_FOO_ERROR_GOOD">
      </member>
      <member name="bad"
              value="1"
              c:identifier="REGRESS_FOO_ERROR_BAD"
              glib:nick="bad"
              glib:name="REGRESS_FOO_ERROR_BAD">
      </member>
      <member name="ugly"
              value="2"
              c:identifier="REGRESS_FOO_ERROR_UGLY"
              glib:nick="ugly"
              glib:name="REGRESS_FOO_ERROR_UGLY">
      </member>
      <function name="quark" c:identifier="regress_foo_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <union name="FooEvent" c:type="RegressFooEvent">
      <source-position filename="foo.h" line="381"/>
      <field name="type" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="any" writable="1">
        <type name="FooEventAny" c:type="RegressFooEventAny"/>
      </field>
      <field name="expose" writable="1">
        <type name="FooEventExpose" c:type="RegressFooEventExpose"/>
      </field>
    </union>
    <record name="FooEventAny" c:type="RegressFooEventAny">
      <source-position filename="foo.h" line="368"/>
      <field name="send_event" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
    </record>
    <record name="FooEventExpose" c:type="RegressFooEventExpose">
      <source-position filename="foo.h" line="374"/>
      <field name="send_event" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="count" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <bitfield name="FooFlagsNoType" c:type="RegressFooFlagsNoType">
      <source-position filename="foo.h" line="267"/>
      <member name="ett" value="1" c:identifier="REGRESS_FOO_FLAGS_ETT">
      </member>
      <member name="tva" value="2" c:identifier="REGRESS_FOO_FLAGS_TVA">
      </member>
      <member name="fyra" value="4" c:identifier="REGRESS_FOO_FLAGS_FYRA">
      </member>
    </bitfield>
    <bitfield name="FooFlagsType"
              glib:type-name="RegressFooFlagsType"
              glib:get-type="regress_foo_flags_type_get_type"
              c:type="RegressFooFlagsType">
      <member name="first"
              value="1"
              c:identifier="REGRESS_FOO_FLAGS_FIRST"
              glib:nick="first"
              glib:name="REGRESS_FOO_FLAGS_FIRST">
      </member>
      <member name="second"
              value="2"
              c:identifier="REGRESS_FOO_FLAGS_SECOND"
              glib:nick="second"
              glib:name="REGRESS_FOO_FLAGS_SECOND">
      </member>
      <member name="third"
              value="4"
              c:identifier="REGRESS_FOO_FLAGS_THIRD"
              glib:nick="third"
              glib:name="REGRESS_FOO_FLAGS_THIRD">
      </member>
    </bitfield>
    <record name="FooForeignStruct"
            c:type="RegressFooForeignStruct"
            foreign="1">
      <source-position filename="foo.h" line="563"/>
      <field name="regress_foo" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <constructor name="new" c:identifier="regress_foo_foreign_struct_new">
        <source-position filename="foo.h" line="567"/>
        <return-value transfer-ownership="full">
          <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
        </return-value>
      </constructor>
      <method name="copy" c:identifier="regress_foo_foreign_struct_copy">
        <source-position filename="foo.h" line="570"/>
        <return-value transfer-ownership="full">
          <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
        </return-value>
        <parameters>
          <instance-parameter name="original" transfer-ownership="none">
            <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <interface name="FooInterface"
               c:symbol-prefix="foo_interface"
               c:type="RegressFooInterface"
               glib:type-name="RegressFooInterface"
               glib:get-type="regress_foo_interface_get_type"
               glib:type-struct="FooInterfaceIface">
      <source-position filename="foo.h" line="61"/>
      <function name="static_method"
                c:identifier="regress_foo_interface_static_method">
        <source-position filename="foo.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="do_regress_foo" invoker="do_regress_foo">
        <source-position filename="foo.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FooInterface" c:type="RegressFooInterface*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="do_regress_foo"
              c:identifier="regress_foo_interface_do_regress_foo">
        <source-position filename="foo.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="iface" transfer-ownership="none">
            <type name="FooInterface" c:type="RegressFooInterface*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="FooInterfaceIface"
            c:type="RegressFooInterfaceIface"
            glib:is-gtype-struct-for="FooInterface">
      <source-position filename="foo.h" line="61"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="do_regress_foo">
        <callback name="do_regress_foo">
          <source-position filename="foo.h" line="60"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="FooInterface" c:type="RegressFooInterface*"/>
            </parameter>
            <parameter name="x" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="FooObject"
           c:symbol-prefix="foo_object"
           c:type="RegressFooObject"
           parent="GObject.Object"
           glib:type-name="RegressFooObject"
           glib:get-type="regress_foo_object_get_type"
           glib:type-struct="FooObjectClass">
      <source-position filename="foo.h" line="121"/>
      <implements name="FooInterface"/>
      <constructor name="new" c:identifier="regress_foo_object_new">
        <source-position filename="foo.h" line="132"/>
        <return-value transfer-ownership="full">
          <type name="FooObject" c:type="RegressFooObject*"/>
        </return-value>
      </constructor>
      <constructor name="new_as_super"
                   c:identifier="regress_foo_object_new_as_super">
        <source-position filename="foo.h" line="138"/>
        <return-value transfer-ownership="full">
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
      </constructor>
      <function name="a_global_method"
                c:identifier="regress_foo_object_a_global_method">
        <source-position filename="foo.h" line="577"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="obj" transfer-ownership="none">
            <type name="Utility.Object" c:type="UtilityObject*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_default"
                c:identifier="regress_foo_object_get_default">
        <doc xml:space="preserve"
             filename="foo.c"
             line="337">This function is intended to match clutter_stage_get_default which
uses a C sugar return type.</doc>
        <source-position filename="foo.h" line="205"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="foo.c"
               line="343">The global #RegressFooSubobject</doc>
          <type name="FooSubobject" c:type="RegressFooObject*"/>
        </return-value>
      </function>
      <function name="static_meth"
                c:identifier="regress_foo_object_static_meth">
        <source-position filename="foo.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </function>
      <virtual-method name="read_fn" invoker="read">
        <doc xml:space="preserve"
             filename="foo.c"
             line="298">Read some stuff.</doc>
        <source-position filename="foo.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="300">obj</doc>
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="301">offset</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="302">length</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="virtual_method" invoker="virtual_method">
        <source-position filename="foo.h" line="114"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="first_param" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="append_new_stack_layer"
              c:identifier="regress_foo_object_append_new_stack_layer">
        <doc xml:space="preserve"
             filename="foo.c"
             line="806">This shouldn't be scanned as a constructor.</doc>
        <source-position filename="foo.h" line="581"/>
        <return-value transfer-ownership="none">
          <type name="FooOtherObject" c:type="RegressFooOtherObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="dup_name" c:identifier="regress_foo_object_dup_name">
        <source-position filename="foo.h" line="164"/>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="external_type"
              c:identifier="regress_foo_object_external_type">
        <source-position filename="foo.h" line="135"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="foo.c"
               line="247">%NULL always</doc>
          <type name="Utility.Object" c:type="UtilityObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="foo.c"
                 line="245">a #RegressFooObject</doc>
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="regress_foo_object_get_name">
        <source-position filename="foo.h" line="160"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="handle_glyph"
              c:identifier="regress_foo_object_handle_glyph">
        <source-position filename="foo.h" line="168"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="glyph" transfer-ownership="none">
            <type name="Utility.Glyph" c:type="UtilityGlyph"/>
          </parameter>
        </parameters>
      </method>
      <method name="is_it_time_yet"
              c:identifier="regress_foo_object_is_it_time_yet">
        <source-position filename="foo.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="time" transfer-ownership="none">
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="new_cookie"
              c:identifier="regress_foo_object_new_cookie"
              introspectable="0">
        <doc xml:space="preserve"
             filename="foo.c"
             line="273">Not sure why this test is here...</doc>
        <source-position filename="foo.h" line="152"/>
        <return-value transfer-ownership="none">
          <type name="FooObjectCookie" c:type="RegressFooObjectCookie"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="target" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="read" c:identifier="regress_foo_object_read">
        <doc xml:space="preserve"
             filename="foo.c"
             line="298">Read some stuff.</doc>
        <source-position filename="foo.h" line="176"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="300">obj</doc>
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="301">offset</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="length" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="302">length</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="skipped_method"
              c:identifier="regress_foo_object_skipped_method"
              introspectable="0">
        <doc xml:space="preserve"
             filename="foo.c"
             line="312">This is only useful from C.</doc>
        <source-position filename="foo.h" line="184"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve" filename="foo.c" line="314">obj</doc>
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="take_all"
              c:identifier="regress_foo_object_take_all"
              introspectable="0">
        <source-position filename="foo.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="..." transfer-ownership="none">
            <varargs/>
          </parameter>
        </parameters>
      </method>
      <method name="various" c:identifier="regress_foo_object_various">
        <source-position filename="foo.h" line="142"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="void*"/>
          </parameter>
          <parameter name="some_type" transfer-ownership="none">
            <type name="GType" c:type="GType"/>
          </parameter>
        </parameters>
      </method>
      <method name="virtual_method"
              c:identifier="regress_foo_object_virtual_method">
        <source-position filename="foo.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="object" transfer-ownership="none">
            <type name="FooObject" c:type="RegressFooObject*"/>
          </instance-parameter>
          <parameter name="first_param" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <property name="hidden"
                introspectable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <property name="string"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="some_int">
        <type name="gint" c:type="int"/>
      </field>
      <glib:signal name="signal" when="last">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="p0"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="FooObjectClass"
            c:type="RegressFooObjectClass"
            glib:is-gtype-struct-for="FooObject">
      <source-position filename="foo.h" line="121"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="virtual_method">
        <callback name="virtual_method">
          <source-position filename="foo.h" line="114"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <type name="FooObject" c:type="RegressFooObject*"/>
            </parameter>
            <parameter name="first_param" transfer-ownership="none">
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="read_fn">
        <callback name="read_fn">
          <source-position filename="foo.h" line="117"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="object" transfer-ownership="none">
              <doc xml:space="preserve" filename="foo.c" line="300">obj</doc>
              <type name="FooObject" c:type="RegressFooObject*"/>
            </parameter>
            <parameter name="offset" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="foo.c"
                   line="301">offset</doc>
              <type name="gint" c:type="int"/>
            </parameter>
            <parameter name="length" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="foo.c"
                   line="302">length</doc>
              <type name="gint" c:type="int"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_reserved">
        <array zero-terminated="0" fixed-size="4">
          <type name="GObject.Callback" c:type="GCallback"/>
        </array>
      </field>
    </record>
    <class name="FooOtherObject"
           c:symbol-prefix="foo_other_object"
           c:type="RegressFooOtherObject"
           parent="GObject.Object"
           glib:type-name="RegressFooOtherObject"
           glib:get-type="regress_foo_other_object_get_type"
           glib:type-struct="FooOtherObjectClass">
      <source-position filename="foo.h" line="54"/>
    </class>
    <record name="FooOtherObjectClass"
            c:type="RegressFooOtherObjectClass"
            disguised="1"
            opaque="1"
            glib:is-gtype-struct-for="FooOtherObject">
      <source-position filename="foo.h" line="54"/>
    </record>
    <record name="FooRectangle" c:type="RegressFooRectangle">
      <source-position filename="foo.h" line="341"/>
      <field name="x" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="y" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="width" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="height" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <method name="add" c:identifier="regress_foo_rectangle_add">
        <source-position filename="foo.h" line="353"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="r1"
                              direction="inout"
                              caller-allocates="0"
                              transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="foo.c"
                 line="582">add to this rect</doc>
            <type name="FooRectangle" c:type="RegressFooRectangle*"/>
          </instance-parameter>
          <parameter name="r2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="foo.c"
                 line="583">source rectangle</doc>
            <type name="FooRectangle" c:type="const RegressFooRectangle*"/>
          </parameter>
        </parameters>
      </method>
      <function name="new"
                c:identifier="regress_foo_rectangle_new"
                introspectable="0">
        <doc xml:space="preserve"
             filename="foo.c"
             line="563">This is a C convenience constructor; we have to (skip)
it because it's not a boxed type.</doc>
        <source-position filename="foo.h" line="357"/>
        <return-value>
          <type name="FooRectangle" c:type="RegressFooRectangle*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <enumeration name="FooSkippable"
                 introspectable="0"
                 c:type="RegressFooSkippable">
      <doc xml:space="preserve"
           filename="foo.h"
           line="544">Some type that is only interesting from C and should not be
exposed to language bindings.</doc>
      <source-position filename="foo.h" line="555"/>
      <member name="one" value="0" c:identifier="REGRESS_FOO_SKIPPABLE_ONE">
        <doc xml:space="preserve"
             filename="foo.h"
             line="546">a skippable enum value</doc>
      </member>
      <member name="two" value="1" c:identifier="REGRESS_FOO_SKIPPABLE_TWO">
        <doc xml:space="preserve"
             filename="foo.h"
             line="547">another skippable enum value</doc>
      </member>
    </enumeration>
    <enumeration name="FooStackLayer" c:type="RegressFooStackLayer">
      <source-position filename="foo.h" line="529"/>
      <member name="desktop"
              value="0"
              c:identifier="REGRESS_FOO_LAYER_DESKTOP">
      </member>
      <member name="bottom" value="1" c:identifier="REGRESS_FOO_LAYER_BOTTOM">
      </member>
      <member name="normal" value="2" c:identifier="REGRESS_FOO_LAYER_NORMAL">
      </member>
      <member name="top" value="4" c:identifier="REGRESS_FOO_LAYER_TOP">
      </member>
      <member name="dock" value="4" c:identifier="REGRESS_FOO_LAYER_DOCK">
      </member>
      <member name="fullscreen"
              value="5"
              c:identifier="REGRESS_FOO_LAYER_FULLSCREEN">
      </member>
      <member name="focused_window"
              value="6"
              c:identifier="REGRESS_FOO_LAYER_FOCUSED_WINDOW">
      </member>
      <member name="override_redirect"
              value="7"
              c:identifier="REGRESS_FOO_LAYER_OVERRIDE_REDIRECT">
      </member>
      <member name="last" value="8" c:identifier="REGRESS_FOO_LAYER_LAST">
      </member>
    </enumeration>
    <record name="FooStruct" c:type="RegressFooStruct">
      <source-position filename="foo.h" line="331"/>
      <field name="priv" writable="1">
        <type name="FooStructPrivate" c:type="RegressFooStructPrivate*"/>
      </field>
      <field name="member" writable="1">
        <type name="gint" c:type="int"/>
      </field>
    </record>
    <record name="FooStructPrivate"
            c:type="RegressFooStructPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="foo.h" line="325"/>
    </record>
    <interface name="FooSubInterface"
               c:symbol-prefix="foo_sub_interface"
               c:type="RegressFooSubInterface"
               glib:type-name="RegressFooSubInterface"
               glib:get-type="regress_foo_sub_interface_get_type"
               glib:type-struct="FooSubInterfaceIface">
      <source-position filename="foo.h" line="88"/>
      <prerequisite name="FooInterface"/>
      <virtual-method name="destroy_event">
        <source-position filename="foo.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="do_bar" invoker="do_bar">
        <source-position filename="foo.h" line="85"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="do_baz" invoker="do_baz">
        <source-position filename="foo.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     closure="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="do_bar" c:identifier="regress_foo_sub_interface_do_bar">
        <source-position filename="foo.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="do_baz" c:identifier="regress_foo_sub_interface_do_baz">
        <source-position filename="foo.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="call"
                     closure="1">
            <type name="GObject.Callback" c:type="GCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="destroy-event" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="FooSubInterfaceIface"
            c:type="RegressFooSubInterfaceIface"
            glib:is-gtype-struct-for="FooSubInterface">
      <source-position filename="foo.h" line="88"/>
      <field name="parent_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="destroy_event">
        <callback name="destroy_event">
          <source-position filename="foo.h" line="81"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="do_bar">
        <callback name="do_bar">
          <source-position filename="foo.h" line="85"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="do_baz">
        <callback name="do_baz">
          <source-position filename="foo.h" line="87"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
            </parameter>
            <parameter name="callback"
                       transfer-ownership="none"
                       scope="call"
                       closure="2">
              <type name="GObject.Callback" c:type="GCallback"/>
            </parameter>
            <parameter name="user_data"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1"
                       closure="2">
              <type name="gpointer" c:type="gpointer"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="FooSubobject"
           c:symbol-prefix="foo_subobject"
           c:type="RegressFooSubobject"
           parent="FooObject"
           abstract="1"
           glib:type-name="RegressFooSubobject"
           glib:get-type="regress_foo_subobject_get_type"
           glib:type-struct="FooSubobjectClass">
      <source-position filename="foo.h" line="194"/>
      <implements name="FooInterface"/>
      <constructor name="new" c:identifier="regress_foo_subobject_new">
        <source-position filename="foo.h" line="201"/>
        <return-value transfer-ownership="full">
          <type name="FooSubobject" c:type="RegressFooSubobject*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="FooObject" c:type="RegressFooObject"/>
      </field>
    </class>
    <record name="FooSubobjectClass"
            c:type="RegressFooSubobjectClass"
            glib:is-gtype-struct-for="FooSubobject">
      <source-position filename="foo.h" line="194"/>
      <field name="parent_class">
        <type name="FooObjectClass" c:type="RegressFooObjectClass"/>
      </field>
    </record>
    <record name="FooThingWithArray" c:type="RegressFooThingWithArray">
      <source-position filename="foo.h" line="436"/>
      <field name="x" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="y" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="lines" writable="1">
        <array zero-terminated="0" fixed-size="80">
          <type name="gchar" c:type="char"/>
        </array>
      </field>
      <field name="data" writable="1">
        <type name="guint8" c:type="guchar*"/>
      </field>
    </record>
    <union name="FooUnion" c:type="RegressFooUnion">
      <source-position filename="foo.h" line="421"/>
      <field name="regress_foo" writable="1">
        <type name="gint" c:type="int"/>
      </field>
    </union>
    <record name="FooUtilityStruct" c:type="RegressFooUtilityStruct">
      <source-position filename="foo.h" line="427"/>
      <field name="bar" writable="1">
        <type name="Utility.Struct" c:type="UtilityStruct"/>
      </field>
    </record>
    <callback name="FooVarargsCallback"
              c:type="RegressFooVarargsCallback"
              introspectable="0">
      <source-position filename="foo.h" line="482"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="param" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="..." transfer-ownership="none">
          <varargs/>
        </parameter>
      </parameters>
    </callback>
    <constant name="GI_SCANNER_ELSE"
              value="3"
              c:type="REGRESS_GI_SCANNER_ELSE">
      <source-position filename="regress.h" line="1549"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="GI_SCANNER_IFDEF"
              value="3"
              c:type="REGRESS_GI_SCANNER_IFDEF">
      <source-position filename="regress.h" line="1553"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="GOOD_EXPR_CONSTANT"
              value="1408"
              c:type="REGRESS_GOOD_EXPR_CONSTANT">
      <source-position filename="regress.h" line="527"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="GUINT64_CONSTANT"
              value="18446744073709551615"
              c:type="REGRESS_GUINT64_CONSTANT">
      <source-position filename="regress.h" line="526"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="GUINT64_CONSTANTA"
              value="18446744073709551615"
              c:type="REGRESS_GUINT64_CONSTANTA">
      <source-position filename="regress.h" line="531"/>
      <type name="TestTypeGUInt64" c:type="RegressTestTypeGUInt64"/>
    </constant>
    <constant name="G_GINT64_CONSTANT"
              value="1000"
              c:type="REGRESS_G_GINT64_CONSTANT">
      <source-position filename="regress.h" line="525"/>
      <type name="gint64" c:type="gint64"/>
    </constant>
    <constant name="INT_CONSTANT" value="4422" c:type="REGRESS_INT_CONSTANT">
      <source-position filename="regress.h" line="520"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Intset" c:type="RegressIntset" disguised="1" opaque="1">
      <doc xml:space="preserve"
           filename="regress.h"
           line="1428">Like telepathy-glib's TpIntset.</doc>
      <source-position filename="regress.h" line="1434"/>
    </record>
    <constant name="LONG_STRING_CONSTANT"
              value="TYPE,VALUE,ENCODING,CHARSET,LANGUAGE,DOM,INTL,POSTAL,PARCEL,HOME,WORK,PREF,VOICE,FAX,MSG,CELL,PAGER,BBS,MODEM,CAR,ISDN,VIDEO,AOL,APPLELINK,ATTMAIL,CIS,EWORLD,INTERNET,IBMMAIL,MCIMAIL,POWERSHARE,PRODIGY,TLX,X400,GIF,CGM,WMF,BMP,MET,PMB,DIB,PICT,TIFF,PDF,PS,JPEG,QTIME,MPEG,MPEG2,AVI,WAVE,AIFF,PCM,X509,PGP"
              c:type="REGRESS_LONG_STRING_CONSTANT">
      <source-position filename="regress.h" line="1520"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <record name="LikeGnomeKeyringPasswordSchema"
            c:type="RegressLikeGnomeKeyringPasswordSchema">
      <source-position filename="regress.h" line="1539"/>
      <field name="dummy" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="attributes" writable="1">
        <array zero-terminated="0" fixed-size="32">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
      <field name="dummy2" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
    </record>
    <record name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem">
      <source-position filename="regress.h" line="1506"/>
      <field name="name" writable="1">
        <array zero-terminated="0" fixed-size="32">
          <type name="gchar" c:type="gchar"/>
        </array>
      </field>
      <method name="set_name"
              c:identifier="regress_like_xkl_config_item_set_name">
        <source-position filename="regress.h" line="1510"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="LikeXklConfigItem" c:type="RegressLikeXklConfigItem*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <constant name="MAXUINT64"
              value="18446744073709551615"
              c:type="REGRESS_MAXUINT64">
      <source-position filename="regress.h" line="1543"/>
      <type name="guint64" c:type="guint64"/>
    </constant>
    <constant name="MININT64"
              value="-9223372036854775808"
              c:type="REGRESS_MININT64">
      <source-position filename="regress.h" line="1542"/>
      <type name="gint64" c:type="gint64"/>
    </constant>
    <constant name="Mixed_Case_Constant"
              value="4423"
              c:type="REGRESS_Mixed_Case_Constant">
      <source-position filename="regress.h" line="523"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="NEGATIVE_INT_CONSTANT"
              value="-42"
              c:type="REGRESS_NEGATIVE_INT_CONSTANT">
      <source-position filename="regress.h" line="519"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <constant name="STRING_CONSTANT"
              value="Some String"
              c:type="REGRESS_STRING_CONSTANT">
      <source-position filename="regress.h" line="522"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <record name="SkippedStructure"
            c:type="RegressSkippedStructure"
            introspectable="0">
      <doc xml:space="preserve"
           filename="regress.h"
           line="1410">This should be skipped, and moreover, all function which
use it should be.</doc>
      <source-position filename="regress.h" line="1420"/>
      <field name="x" writable="1">
        <type name="gint" c:type="int"/>
      </field>
      <field name="v" writable="1">
        <type name="gdouble" c:type="double"/>
      </field>
    </record>
    <function-macro name="TEST_FLOATING"
                    c:identifier="REGRESS_TEST_FLOATING"
                    introspectable="0">
      <source-position filename="regress.h" line="1338"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_FLOATING_GET_CLASS"
                    c:identifier="REGRESS_TEST_FLOATING_GET_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="1340"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_FUNDAMENTAL_OBJECT"
                    c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="1042"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_FUNDAMENTAL_OBJECT_CAST"
                    c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT_CAST"
                    introspectable="0">
      <source-position filename="regress.h" line="1044"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_FUNDAMENTAL_OBJECT_CLASS"
                    c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="1043"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_FUNDAMENTAL_OBJECT_GET_CLASS"
                    c:identifier="REGRESS_TEST_FUNDAMENTAL_OBJECT_GET_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="1041"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_GNUC_EXTENSION_STMT"
                    c:identifier="REGRESS_TEST_GNUC_EXTENSION_STMT"
                    introspectable="0">
      <source-position filename="regress.h" line="1516"/>
      <parameters>
        <parameter name="foo">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_INTERFACE"
                    c:identifier="REGRESS_TEST_INTERFACE"
                    introspectable="0">
      <source-position filename="regress.h" line="1286"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_INTERFACE_GET_IFACE"
                    c:identifier="REGRESS_TEST_INTERFACE_GET_IFACE"
                    introspectable="0">
      <source-position filename="regress.h" line="1288"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_FLOATING"
                    c:identifier="REGRESS_TEST_IS_FLOATING"
                    introspectable="0">
      <source-position filename="regress.h" line="1339"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_FUNDAMENTAL_OBJECT"
                    c:identifier="REGRESS_TEST_IS_FUNDAMENTAL_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="1039"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_FUNDAMENTAL_OBJECT_CLASS"
                    c:identifier="REGRESS_TEST_IS_FUNDAMENTAL_OBJECT_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="1040"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_INTERFACE"
                    c:identifier="REGRESS_TEST_IS_INTERFACE"
                    introspectable="0">
      <source-position filename="regress.h" line="1287"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_OBJECT"
                    c:identifier="REGRESS_TEST_IS_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="777"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_SUB_OBJECT"
                    c:identifier="REGRESS_TEST_IS_SUB_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="1005"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_IS_WI_802_1X"
                    c:identifier="REGRESS_TEST_IS_WI_802_1X"
                    introspectable="0">
      <source-position filename="regress.h" line="1305"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_OBJECT"
                    c:identifier="REGRESS_TEST_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="776"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_OBJ_GET_CLASS"
                    c:identifier="REGRESS_TEST_OBJ_GET_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="778"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_SUB_OBJECT"
                    c:identifier="REGRESS_TEST_SUB_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="1004"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_SUB_OBJ_GET_CLASS"
                    c:identifier="REGRESS_TEST_SUB_OBJ_GET_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="1006"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT"
                    c:identifier="REGRESS_TEST_VALUE_HOLDS_FUNDAMENTAL_OBJECT"
                    introspectable="0">
      <source-position filename="regress.h" line="1079"/>
      <parameters>
        <parameter name="value">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_WI_802_1X"
                    c:identifier="REGRESS_TEST_WI_802_1X"
                    introspectable="0">
      <source-position filename="regress.h" line="1304"/>
      <parameters>
        <parameter name="object">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="TEST_WI_802_1X_GET_CLASS"
                    c:identifier="REGRESS_TEST_WI_802_1X_GET_CLASS"
                    introspectable="0">
      <source-position filename="regress.h" line="1306"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <enumeration name="TestABCError"
                 glib:type-name="RegressTestABCError"
                 glib:get-type="regress_test_abc_error_get_type"
                 c:type="RegressTestABCError"
                 glib:error-domain="regress-test-abc-error">
      <member name="code1"
              value="1"
              c:identifier="REGRESS_TEST_ABC_ERROR_CODE1"
              glib:nick="code1"
              glib:name="REGRESS_TEST_ABC_ERROR_CODE1">
      </member>
      <member name="code2"
              value="2"
              c:identifier="REGRESS_TEST_ABC_ERROR_CODE2"
              glib:nick="code2"
              glib:name="REGRESS_TEST_ABC_ERROR_CODE2">
      </member>
      <member name="code3"
              value="3"
              c:identifier="REGRESS_TEST_ABC_ERROR_CODE3"
              glib:nick="code3"
              glib:name="REGRESS_TEST_ABC_ERROR_CODE3">
      </member>
      <function name="quark" c:identifier="regress_test_abc_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <record name="TestBoxed"
            c:type="RegressTestBoxed"
            glib:type-name="RegressTestBoxed"
            glib:get-type="regress_test_boxed_get_type"
            c:symbol-prefix="test_boxed">
      <source-position filename="regress.h" line="685"/>
      <field name="some_int8" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="nested_a" writable="1">
        <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
      </field>
      <field name="priv" writable="1">
        <type name="TestBoxedPrivate" c:type="RegressTestBoxedPrivate*"/>
      </field>
      <constructor name="new" c:identifier="regress_test_boxed_new">
        <source-position filename="regress.h" line="691"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxed" c:type="RegressTestBoxed*"/>
        </return-value>
      </constructor>
      <constructor name="new_alternative_constructor1"
                   c:identifier="regress_test_boxed_new_alternative_constructor1">
        <source-position filename="regress.h" line="694"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxed" c:type="RegressTestBoxed*"/>
        </return-value>
        <parameters>
          <parameter name="i" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_alternative_constructor2"
                   c:identifier="regress_test_boxed_new_alternative_constructor2">
        <source-position filename="regress.h" line="697"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxed" c:type="RegressTestBoxed*"/>
        </return-value>
        <parameters>
          <parameter name="i" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="j" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_alternative_constructor3"
                   c:identifier="regress_test_boxed_new_alternative_constructor3">
        <source-position filename="regress.h" line="700"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxed" c:type="RegressTestBoxed*"/>
        </return-value>
        <parameters>
          <parameter name="s" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="_not_a_method"
              c:identifier="regress_test_boxeds_not_a_method"
              moved-to="test_boxeds_not_a_method">
        <source-position filename="regress.h" line="712"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxed" c:type="RegressTestBoxed*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="regress_test_boxed_copy">
        <source-position filename="regress.h" line="704"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxed" c:type="RegressTestBoxed*"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxed" c:type="RegressTestBoxed*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equals" c:identifier="regress_test_boxed_equals">
        <source-position filename="regress.h" line="707"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxed" c:type="RegressTestBoxed*"/>
          </instance-parameter>
          <parameter name="other" transfer-ownership="none">
            <type name="TestBoxed" c:type="RegressTestBoxed*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="TestBoxedB"
            c:type="RegressTestBoxedB"
            glib:type-name="RegressTestBoxedB"
            glib:get-type="regress_test_boxed_b_get_type"
            c:symbol-prefix="test_boxed_b">
      <source-position filename="regress.h" line="723"/>
      <field name="some_int8" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="some_long" writable="1">
        <type name="glong" c:type="glong"/>
      </field>
      <constructor name="new" c:identifier="regress_test_boxed_b_new">
        <source-position filename="regress.h" line="730"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
        </return-value>
        <parameters>
          <parameter name="some_int8" transfer-ownership="none">
            <type name="gint8" c:type="gint8"/>
          </parameter>
          <parameter name="some_long" transfer-ownership="none">
            <type name="glong" c:type="glong"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="regress_test_boxed_b_copy">
        <source-position filename="regress.h" line="733"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxedB" c:type="RegressTestBoxedB*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="TestBoxedC"
            c:type="RegressTestBoxedC"
            glib:type-name="RegressTestBoxedC"
            glib:get-type="regress_test_boxed_c_get_type"
            c:symbol-prefix="test_boxed_c">
      <source-position filename="regress.h" line="741"/>
      <field name="refcount" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="another_thing" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <constructor name="new" c:identifier="regress_test_boxed_c_new">
        <source-position filename="regress.h" line="747"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxedC" c:type="RegressTestBoxedC*"/>
        </return-value>
      </constructor>
    </record>
    <record name="TestBoxedD"
            c:type="RegressTestBoxedD"
            opaque="1"
            copy-function="regress_test_boxed_d_copy"
            free-function="regress_test_boxed_d_free"
            glib:type-name="RegressTestBoxedD"
            glib:get-type="regress_test_boxed_d_get_type"
            c:symbol-prefix="test_boxed_d">
      <source-position filename="regress.h" line="754"/>
      <constructor name="new" c:identifier="regress_test_boxed_d_new">
        <source-position filename="regress.h" line="762"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
        </return-value>
        <parameters>
          <parameter name="a_string" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="a_int" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy" c:identifier="regress_test_boxed_d_copy">
        <source-position filename="regress.h" line="765"/>
        <return-value transfer-ownership="full">
          <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="regress_test_boxed_d_free">
        <source-position filename="regress.h" line="768"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_magic" c:identifier="regress_test_boxed_d_get_magic">
        <source-position filename="regress.h" line="772"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="boxed" transfer-ownership="none">
            <type name="TestBoxedD" c:type="RegressTestBoxedD*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="TestBoxedPrivate"
            c:type="RegressTestBoxedPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="regress.h" line="677"/>
    </record>
    <callback name="TestCallback" c:type="RegressTestCallback">
      <source-position filename="regress.h" line="1166"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </callback>
    <callback name="TestCallbackArray" c:type="RegressTestCallbackArray">
      <source-position filename="regress.h" line="1198"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="one" transfer-ownership="none">
          <array length="1" zero-terminated="0" c:type="int*">
            <type name="gint" c:type="int"/>
          </array>
        </parameter>
        <parameter name="one_length" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
        <parameter name="two" transfer-ownership="none">
          <array length="3" zero-terminated="0" c:type="const char**">
            <type name="utf8"/>
          </array>
        </parameter>
        <parameter name="two_length" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestCallbackArrayInOut"
              c:type="RegressTestCallbackArrayInOut">
      <source-position filename="regress.h" line="1204"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ints"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <array length="1" zero-terminated="0" c:type="int**">
            <type name="gint" c:type="int*"/>
          </array>
        </parameter>
        <parameter name="length"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestCallbackFull" c:type="RegressTestCallbackFull">
      <source-position filename="regress.h" line="1185"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="foo" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.h"
               line="1181">the investment rate</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="bar" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.h"
               line="1182">how much money</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
        <parameter name="path" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.h"
               line="1183">Path to file</doc>
          <type name="filename" c:type="char*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestCallbackGError" c:type="RegressTestCallbackGError">
      <source-position filename="regress.h" line="1173"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="error" transfer-ownership="none">
          <type name="GLib.Error" c:type="const GError*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestCallbackHashtable"
              c:type="RegressTestCallbackHashtable">
      <source-position filename="regress.h" line="1172"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.h"
               line="1170">a hash table; will be modified</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="gint"/>
          </type>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestCallbackOwnedGError"
              c:type="RegressTestCallbackOwnedGError">
      <source-position filename="regress.h" line="1178"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="error" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.h"
               line="1176">GError instance; must be freed by the callback</doc>
          <type name="GLib.Error" c:type="GError*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestCallbackReturnFull"
              c:type="RegressTestCallbackReturnFull">
      <source-position filename="regress.h" line="1190"/>
      <return-value transfer-ownership="full">
        <type name="TestObj" c:type="RegressTestObj*"/>
      </return-value>
    </callback>
    <callback name="TestCallbackUserData" c:type="RegressTestCallbackUserData">
      <source-position filename="regress.h" line="1167"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="0">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <enumeration name="TestDEFError"
                 c:type="RegressTestDEFError"
                 glib:error-domain="regress-test-def-error">
      <source-position filename="regress.h" line="497"/>
      <member name="code0"
              value="0"
              c:identifier="REGRESS_TEST_DEF_ERROR_CODE0">
      </member>
      <member name="code1"
              value="1"
              c:identifier="REGRESS_TEST_DEF_ERROR_CODE1">
      </member>
      <member name="code2"
              value="2"
              c:identifier="REGRESS_TEST_DEF_ERROR_CODE2">
      </member>
    </enumeration>
    <enumeration name="TestEnum"
                 glib:type-name="RegressTestEnum"
                 glib:get-type="regress_test_enum_get_type"
                 c:type="RegressTestEnum">
      <doc xml:space="preserve"
           filename="regress.h"
           line="368">By purpose, not all members have documentation</doc>
      <member name="value1"
              value="0"
              c:identifier="REGRESS_TEST_VALUE1"
              glib:nick="value1"
              glib:name="REGRESS_TEST_VALUE1">
        <doc xml:space="preserve" filename="regress.h" line="370">value 1</doc>
      </member>
      <member name="value2"
              value="1"
              c:identifier="REGRESS_TEST_VALUE2"
              glib:nick="value2"
              glib:name="REGRESS_TEST_VALUE2">
        <doc xml:space="preserve" filename="regress.h" line="371">value 2</doc>
      </member>
      <member name="value3"
              value="-1"
              c:identifier="REGRESS_TEST_VALUE3"
              glib:nick="value3"
              glib:name="REGRESS_TEST_VALUE3">
      </member>
      <member name="value4"
              value="48"
              c:identifier="REGRESS_TEST_VALUE4"
              glib:nick="value4"
              glib:name="REGRESS_TEST_VALUE4">
      </member>
      <member name="value5"
              value="49"
              c:identifier="REGRESS_TEST_VALUE5"
              glib:nick="value5"
              glib:name="REGRESS_TEST_VALUE5">
      </member>
      <function name="param" c:identifier="regress_test_enum_param">
        <source-position filename="regress.h" line="435"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <parameter name="e" transfer-ownership="none">
            <type name="TestEnum" c:type="RegressTestEnum"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <enumeration name="TestEnumNoGEnum" c:type="RegressTestEnumNoGEnum">
      <source-position filename="regress.h" line="425"/>
      <member name="evalue1" value="0" c:identifier="REGRESS_TEST_EVALUE1">
      </member>
      <member name="evalue2" value="42" c:identifier="REGRESS_TEST_EVALUE2">
      </member>
      <member name="evalue3" value="48" c:identifier="REGRESS_TEST_EVALUE3">
      </member>
    </enumeration>
    <enumeration name="TestEnumUnsigned"
                 glib:type-name="RegressTestEnumUnsigned"
                 glib:get-type="regress_test_enum_unsigned_get_type"
                 c:type="RegressTestEnumUnsigned">
      <member name="value1"
              value="1"
              c:identifier="REGRESS_TEST_UNSIGNED_VALUE1"
              glib:nick="value1"
              glib:name="REGRESS_TEST_UNSIGNED_VALUE1">
      </member>
      <member name="value2"
              value="2147483648"
              c:identifier="REGRESS_TEST_UNSIGNED_VALUE2"
              glib:nick="value2"
              glib:name="REGRESS_TEST_UNSIGNED_VALUE2">
      </member>
    </enumeration>
    <enumeration name="TestError"
                 glib:type-name="RegressTestError"
                 glib:get-type="regress_test_error_get_type"
                 c:type="RegressTestError"
                 glib:error-domain="regress-test-error">
      <member name="code1"
              value="1"
              c:identifier="REGRESS_TEST_ERROR_CODE1"
              glib:nick="code1"
              glib:name="REGRESS_TEST_ERROR_CODE1">
      </member>
      <member name="code2"
              value="2"
              c:identifier="REGRESS_TEST_ERROR_CODE2"
              glib:nick="code2"
              glib:name="REGRESS_TEST_ERROR_CODE2">
      </member>
      <member name="code3"
              value="3"
              c:identifier="REGRESS_TEST_ERROR_CODE3"
              glib:nick="code3"
              glib:name="REGRESS_TEST_ERROR_CODE3">
      </member>
      <function name="quark" c:identifier="regress_test_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <callback name="TestExternallyDefinedCallback"
              c:type="RegressTestExternallyDefinedCallback">
      <source-position filename="regress.h" line="807"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="obj" transfer-ownership="none">
          <type name="TestObj" c:type="RegressTestObj*"/>
        </parameter>
        <parameter name="someint" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </callback>
    <bitfield name="TestFlags"
              glib:type-name="RegressTestFlags"
              glib:get-type="regress_test_flags_get_type"
              c:type="RegressTestFlags">
      <member name="flag1"
              value="1"
              c:identifier="REGRESS_TEST_FLAG1"
              glib:nick="flag1"
              glib:name="TEST_FLAG1">
      </member>
      <member name="flag2"
              value="2"
              c:identifier="REGRESS_TEST_FLAG2"
              glib:nick="flag2"
              glib:name="TEST_FLAG2">
      </member>
      <member name="flag3"
              value="4"
              c:identifier="REGRESS_TEST_FLAG3"
              glib:nick="flag3"
              glib:name="TEST_FLAG3">
      </member>
    </bitfield>
    <class name="TestFloating"
           c:symbol-prefix="test_floating"
           c:type="RegressTestFloating"
           parent="GObject.InitiallyUnowned"
           glib:type-name="RegressTestFloating"
           glib:get-type="regress_test_floating_get_type"
           glib:type-struct="TestFloatingClass">
      <source-position filename="regress.h" line="1350"/>
      <constructor name="new" c:identifier="regress_test_floating_new">
        <source-position filename="regress.h" line="1357"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4528">A new floating #RegressTestFloating</doc>
          <type name="TestFloating" c:type="RegressTestFloating*"/>
        </return-value>
      </constructor>
      <field name="parent_instance">
        <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
      </field>
    </class>
    <record name="TestFloatingClass"
            c:type="RegressTestFloatingClass"
            glib:is-gtype-struct-for="TestFloating">
      <source-position filename="regress.h" line="1350"/>
      <field name="parent_class">
        <type name="GObject.InitiallyUnownedClass"
              c:type="GInitiallyUnownedClass"/>
      </field>
    </record>
    <class name="TestFundamentalObject"
           c:symbol-prefix="test_fundamental_object"
           c:type="RegressTestFundamentalObject"
           abstract="1"
           glib:type-name="RegressTestFundamentalObject"
           glib:get-type="regress_test_fundamental_object_get_type"
           glib:type-struct="TestFundamentalObjectClass"
           glib:fundamental="1"
           glib:ref-func="regress_test_fundamental_object_ref"
           glib:unref-func="regress_test_fundamental_object_unref"
           glib:set-value-func="regress_test_value_set_fundamental_object"
           glib:get-value-func="regress_test_value_get_fundamental_object">
      <source-position filename="regress.h" line="1068"/>
      <virtual-method name="copy">
        <source-position filename="regress.h" line="1053"/>
        <return-value transfer-ownership="full">
          <type name="TestFundamentalObject"
                c:type="RegressTestFundamentalObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestFundamentalObject"
                  c:type="const RegressTestFundamentalObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="finalize">
        <source-position filename="regress.h" line="1054"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestFundamentalObject"
                  c:type="RegressTestFundamentalObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="ref" c:identifier="regress_test_fundamental_object_ref">
        <source-position filename="regress.h" line="1074"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3490">A new #RegressTestFundamentalObject</doc>
          <type name="TestFundamentalObject"
                c:type="RegressTestFundamentalObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="fundamental_object"
                              transfer-ownership="none">
            <type name="TestFundamentalObject"
                  c:type="RegressTestFundamentalObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref"
              c:identifier="regress_test_fundamental_object_unref">
        <source-position filename="regress.h" line="1077"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fundamental_object"
                              transfer-ownership="none">
            <type name="TestFundamentalObject"
                  c:type="RegressTestFundamentalObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="instance">
        <type name="GObject.TypeInstance" c:type="GTypeInstance"/>
      </field>
      <field name="refcount">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="flags">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="TestFundamentalObjectClass"
            c:type="RegressTestFundamentalObjectClass"
            glib:is-gtype-struct-for="TestFundamentalObject">
      <source-position filename="regress.h" line="1068"/>
      <field name="type_class">
        <type name="GObject.TypeClass" c:type="GTypeClass"/>
      </field>
      <field name="copy">
        <type name="TestFundamentalObjectCopyFunction"
              c:type="RegressTestFundamentalObjectCopyFunction"/>
      </field>
      <field name="finalize">
        <type name="TestFundamentalObjectFinalizeFunction"
              c:type="RegressTestFundamentalObjectFinalizeFunction"/>
      </field>
    </record>
    <callback name="TestFundamentalObjectCopyFunction"
              c:type="RegressTestFundamentalObjectCopyFunction">
      <source-position filename="regress.h" line="1053"/>
      <return-value transfer-ownership="full">
        <type name="TestFundamentalObject"
              c:type="RegressTestFundamentalObject*"/>
      </return-value>
      <parameters>
        <parameter name="obj" transfer-ownership="none">
          <type name="TestFundamentalObject"
                c:type="const RegressTestFundamentalObject*"/>
        </parameter>
      </parameters>
    </callback>
    <callback name="TestFundamentalObjectFinalizeFunction"
              c:type="RegressTestFundamentalObjectFinalizeFunction">
      <source-position filename="regress.h" line="1054"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="obj" transfer-ownership="none">
          <type name="TestFundamentalObject"
                c:type="RegressTestFundamentalObject*"/>
        </parameter>
      </parameters>
    </callback>
    <class name="TestFundamentalObjectNoGetSetFunc"
           c:symbol-prefix="test_fundamental_object_no_get_set_func"
           c:type="RegressTestFundamentalObjectNoGetSetFunc"
           glib:type-name="RegressTestFundamentalObjectNoGetSetFunc"
           glib:get-type="regress_test_fundamental_object_no_get_set_func_get_type"
           glib:type-struct="TestFundamentalObjectNoGetSetFuncClass"
           glib:fundamental="1"
           glib:ref-func="regress_test_fundamental_object_ref"
           glib:unref-func="regress_test_fundamental_object_unref">
      <doc xml:space="preserve"
           filename="regress.c"
           line="3825">Just like a #RegressTestFundamentalObject but without gvalue setter and getter</doc>
      <source-position filename="regress.h" line="1116"/>
      <constructor name="new"
                   c:identifier="regress_test_fundamental_object_no_get_set_func_new">
        <source-position filename="regress.h" line="1149"/>
        <return-value transfer-ownership="full">
          <type name="TestFundamentalObjectNoGetSetFunc"
                c:type="RegressTestFundamentalObjectNoGetSetFunc*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="make_compatible_with_fundamental_sub_object"
                c:identifier="regress_test_fundamental_object_no_get_set_func_make_compatible_with_fundamental_sub_object">
        <source-position filename="regress.h" line="1161"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <method name="get_data"
              c:identifier="regress_test_fundamental_object_no_get_set_func_get_data">
        <source-position filename="regress.h" line="1153"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="fundamental" transfer-ownership="none">
            <type name="TestFundamentalObjectNoGetSetFunc"
                  c:type="RegressTestFundamentalObjectNoGetSetFunc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="fundamental_object" readable="0" private="1">
        <type name="TestFundamentalObject"
              c:type="RegressTestFundamentalObject"/>
      </field>
      <field name="data">
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="TestFundamentalObjectNoGetSetFuncClass"
            c:type="RegressTestFundamentalObjectNoGetSetFuncClass"
            glib:is-gtype-struct-for="TestFundamentalObjectNoGetSetFunc">
      <source-position filename="regress.h" line="1116"/>
      <field name="fundamental_object_class">
        <type name="TestFundamentalObjectClass"
              c:type="RegressTestFundamentalObjectClass"/>
      </field>
    </record>
    <class name="TestFundamentalSubObject"
           c:symbol-prefix="test_fundamental_sub_object"
           c:type="RegressTestFundamentalSubObject"
           parent="TestFundamentalObject"
           glib:type-name="RegressTestFundamentalSubObject"
           glib:get-type="regress_test_fundamental_sub_object_get_type"
           glib:type-struct="TestFundamentalSubObjectClass"
           glib:fundamental="1">
      <source-position filename="regress.h" line="1098"/>
      <constructor name="new"
                   c:identifier="regress_test_fundamental_sub_object_new">
        <source-position filename="regress.h" line="1141"/>
        <return-value transfer-ownership="full">
          <type name="TestFundamentalSubObject"
                c:type="RegressTestFundamentalSubObject*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="fundamental_object">
        <type name="TestFundamentalObject"
              c:type="RegressTestFundamentalObject"/>
      </field>
      <field name="data">
        <type name="utf8" c:type="char*"/>
      </field>
    </class>
    <record name="TestFundamentalSubObjectClass"
            c:type="RegressTestFundamentalSubObjectClass"
            glib:is-gtype-struct-for="TestFundamentalSubObject">
      <source-position filename="regress.h" line="1098"/>
      <field name="fundamental_object_class">
        <type name="TestFundamentalObjectClass"
              c:type="RegressTestFundamentalObjectClass"/>
      </field>
    </record>
    <class name="TestFundamentalSubObjectNoGetSetFunc"
           c:symbol-prefix="test_fundamental_sub_object_no_get_set_func"
           c:type="RegressTestFundamentalSubObjectNoGetSetFunc"
           parent="TestFundamentalObjectNoGetSetFunc"
           glib:type-name="RegressTestFundamentalSubObjectNoGetSetFunc"
           glib:get-type="regress_test_fundamental_sub_object_no_get_set_func_get_type"
           glib:type-struct="TestFundamentalSubObjectNoGetSetFuncClass"
           glib:fundamental="1">
      <source-position filename="regress.h" line="1131"/>
      <constructor name="new"
                   c:identifier="regress_test_fundamental_sub_object_no_get_set_func_new">
        <source-position filename="regress.h" line="1157"/>
        <return-value transfer-ownership="full">
          <type name="TestFundamentalSubObjectNoGetSetFunc"
                c:type="RegressTestFundamentalSubObjectNoGetSetFunc*"/>
        </return-value>
        <parameters>
          <parameter name="data" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="fundamental_object" readable="0" private="1">
        <type name="TestFundamentalObjectNoGetSetFunc"
              c:type="RegressTestFundamentalObjectNoGetSetFunc"/>
      </field>
    </class>
    <record name="TestFundamentalSubObjectNoGetSetFuncClass"
            c:type="RegressTestFundamentalSubObjectNoGetSetFuncClass"
            glib:is-gtype-struct-for="TestFundamentalSubObjectNoGetSetFunc">
      <source-position filename="regress.h" line="1131"/>
      <field name="fundamental_object_class">
        <type name="TestFundamentalObjectNoGetSetFuncClass"
              c:type="RegressTestFundamentalObjectNoGetSetFuncClass"/>
      </field>
    </record>
    <class name="TestInheritDrawable"
           c:symbol-prefix="test_inherit_drawable"
           c:type="RegressTestInheritDrawable"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="RegressTestInheritDrawable"
           glib:get-type="regress_test_inherit_drawable_get_type"
           glib:type-struct="TestInheritDrawableClass">
      <source-position filename="drawable.h" line="19"/>
      <method name="do_foo"
              c:identifier="regress_test_inherit_drawable_do_foo">
        <source-position filename="drawable.h" line="26"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawable" transfer-ownership="none">
            <type name="TestInheritDrawable"
                  c:type="RegressTestInheritDrawable*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="do_foo_maybe_throw"
              c:identifier="regress_test_inherit_drawable_do_foo_maybe_throw"
              throws="1">
        <source-position filename="drawable.h" line="35"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawable" transfer-ownership="none">
            <type name="TestInheritDrawable"
                  c:type="RegressTestInheritDrawable*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_origin"
              c:identifier="regress_test_inherit_drawable_get_origin">
        <source-position filename="drawable.h" line="29"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawable" transfer-ownership="none">
            <type name="TestInheritDrawable"
                  c:type="RegressTestInheritDrawable*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_size"
              c:identifier="regress_test_inherit_drawable_get_size">
        <source-position filename="drawable.h" line="32"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="drawable" transfer-ownership="none">
            <type name="TestInheritDrawable"
                  c:type="RegressTestInheritDrawable*"/>
          </instance-parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="guint" c:type="guint*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="guint" c:type="guint*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
    </class>
    <record name="TestInheritDrawableClass"
            c:type="RegressTestInheritDrawableClass"
            glib:is-gtype-struct-for="TestInheritDrawable">
      <source-position filename="drawable.h" line="19"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="TestInheritPixmapObjectClass"
            c:type="RegressTestInheritPixmapObjectClass">
      <source-position filename="drawable.h" line="42"/>
      <field name="parent_class" writable="1">
        <type name="TestInheritDrawableClass"
              c:type="RegressTestInheritDrawableClass"/>
      </field>
    </record>
    <interface name="TestInterface"
               c:symbol-prefix="test_interface"
               c:type="RegressTestInterface"
               glib:type-name="RegressTestInterface"
               glib:get-type="regress_test_interface_get_type"
               glib:type-struct="TestInterfaceIface">
      <source-position filename="regress.h" line="1294"/>
      <method name="emit_signal"
              c:identifier="regress_test_interface_emit_signal">
        <source-position filename="regress.h" line="1300"/>
        <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"
                 filename="regress.c"
                 line="4387">the object to emit the signal</doc>
            <type name="TestInterface" c:type="RegressTestInterface*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="number"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <glib:signal name="interface-signal" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="ptr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="4368">the code must look up the signal with
  g_interface_info_find_signal() in order to get this to work.</doc>
            <type name="gint" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </interface>
    <record name="TestInterfaceIface"
            c:type="RegressTestInterfaceIface"
            glib:is-gtype-struct-for="TestInterface">
      <source-position filename="regress.h" line="1294"/>
      <field name="base_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
    </record>
    <callback name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback">
      <source-position filename="regress.h" line="1165"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </callback>
    <class name="TestObj"
           c:symbol-prefix="test_obj"
           c:type="RegressTestObj"
           parent="GObject.Object"
           glib:type-name="RegressTestObj"
           glib:get-type="regress_test_obj_get_type"
           glib:type-struct="TestObjClass">
      <source-position filename="regress.h" line="829"/>
      <constructor name="constructor" c:identifier="regress_constructor">
        <source-position filename="regress.h" line="838"/>
        <return-value transfer-ownership="full">
          <type name="TestObj" c:type="RegressTestObj*"/>
        </return-value>
      </constructor>
      <constructor name="new" c:identifier="regress_test_obj_new">
        <source-position filename="regress.h" line="835"/>
        <return-value transfer-ownership="full">
          <type name="TestObj" c:type="RegressTestObj*"/>
        </return-value>
        <parameters>
          <parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2848">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_callback"
                   c:identifier="regress_test_obj_new_callback">
        <source-position filename="regress.h" line="1262"/>
        <return-value transfer-ownership="full">
          <type name="TestObj" c:type="RegressTestObj*"/>
        </return-value>
        <parameters>
          <parameter name="callback"
                     transfer-ownership="none"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <type name="TestCallbackUserData"
                  c:type="RegressTestCallbackUserData"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_file"
                   c:identifier="regress_test_obj_new_from_file"
                   throws="1">
        <source-position filename="regress.h" line="841"/>
        <return-value transfer-ownership="full">
          <type name="TestObj" c:type="RegressTestObj*"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="null_out" c:identifier="regress_test_obj_null_out">
        <source-position filename="regress.h" line="988"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="obj"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3309">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj**"/>
          </parameter>
        </parameters>
      </function>
      <function name="static_method"
                c:identifier="regress_test_obj_static_method">
        <source-position filename="regress.h" line="889"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <function name="static_method_callback"
                c:identifier="regress_test_obj_static_method_callback">
        <source-position filename="regress.h" line="1259"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call">
            <type name="TestCallback" c:type="RegressTestCallback"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="allow_none_vfunc">
        <source-position filename="regress.h" line="819"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="two"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="regress.h"
                 line="817">Another object</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="complex_vfunc">
        <source-position filename="regress.h" line="807"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="someint" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="matrix" invoker="do_matrix">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3283">This method is virtual.  Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
case.</doc>
        <source-position filename="regress.h" line="813"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3285">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="somestr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3286">Meaningless string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="do_matrix" c:identifier="regress_test_obj_do_matrix">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3283">This method is virtual.  Notably its name differs from the virtual
slot name, which makes it useful for testing bindings handle this
case.</doc>
        <source-position filename="regress.h" line="981"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3285">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="somestr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3286">Meaningless string</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_array_len_prop"
              c:identifier="regress_test_obj_emit_sig_with_array_len_prop">
        <source-position filename="regress.h" line="871"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_error"
              c:identifier="regress_test_obj_emit_sig_with_error">
        <source-position filename="regress.h" line="877"/>
        <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"
                 filename="regress.c"
                 line="3004">The object to emit the signal.</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_foreign_struct"
              c:identifier="regress_test_obj_emit_sig_with_foreign_struct">
        <source-position filename="regress.h" line="862"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_gstrv_full"
              c:identifier="regress_test_obj_emit_sig_with_gstrv_full">
        <source-position filename="regress.h" line="859"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_inout_int"
              c:identifier="regress_test_obj_emit_sig_with_inout_int">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2988">The signal handler must increment the inout parameter by 1.</doc>
        <source-position filename="regress.h" line="874"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2990">The object to emit the signal.</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_int64"
              c:identifier="regress_test_obj_emit_sig_with_int64">
        <source-position filename="regress.h" line="865"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_null_error"
              c:identifier="regress_test_obj_emit_sig_with_null_error">
        <source-position filename="regress.h" line="880"/>
        <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"
                 filename="regress.c"
                 line="3017">The object to emit the signal.</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_obj"
              c:identifier="regress_test_obj_emit_sig_with_obj">
        <source-position filename="regress.h" line="853"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_obj_full"
              c:identifier="regress_test_obj_emit_sig_with_obj_full">
        <source-position filename="regress.h" line="856"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="emit_sig_with_uint64"
              c:identifier="regress_test_obj_emit_sig_with_uint64">
        <source-position filename="regress.h" line="868"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="forced_method" c:identifier="regress_forced_method">
        <source-position filename="regress.h" line="892"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3050">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string"
              c:identifier="regress_test_obj_get_string"
              glib:get-property="string">
        <source-position filename="regress.h" line="850"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="instance_method"
              c:identifier="regress_test_obj_instance_method">
        <source-position filename="regress.h" line="883"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="instance_method_callback"
              c:identifier="regress_test_obj_instance_method_callback">
        <source-position filename="regress.h" line="1256"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="call">
            <type name="TestCallback" c:type="RegressTestCallback"/>
          </parameter>
        </parameters>
      </method>
      <method name="instance_method_full"
              c:identifier="regress_test_obj_instance_method_full">
        <source-position filename="regress.h" line="886"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="full">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="name_conflict"
              c:identifier="regress_test_obj_name_conflict">
        <source-position filename="regress.h" line="1000"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3353">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="not_nullable_element_typed_gpointer_in"
              c:identifier="regress_test_obj_not_nullable_element_typed_gpointer_in">
        <source-position filename="regress.h" line="995"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3340">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3341">some uint8 array</doc>
            <array length="1" zero-terminated="0" c:type="gpointer">
              <type name="guint8"/>
            </array>
          </parameter>
          <parameter name="count" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3342">length of @input</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="not_nullable_typed_gpointer_in"
              c:identifier="regress_test_obj_not_nullable_typed_gpointer_in">
        <source-position filename="regress.h" line="992"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3329">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3330">some #GObject</doc>
            <type name="GObject.Object" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_bare"
              c:identifier="regress_test_obj_set_bare"
              glib:set-property="bare">
        <source-position filename="regress.h" line="844"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="bare"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_string"
              c:identifier="regress_test_obj_set_string"
              glib:set-property="string">
        <source-position filename="regress.h" line="847"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="str" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="skip_inout_param"
              c:identifier="regress_test_obj_skip_inout_param"
              throws="1">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3247">Check that the out value is skipped</doc>
        <source-position filename="regress.h" line="969"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3261">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3249">A #RegressTestObj.</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3250">Parameter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="out_b"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3251">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="c" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3252">Other parameter.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="inout_d"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full"
                     skip="1">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3253">Will be incremented.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="out_sum"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3254">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="num1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3255">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3256">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="skip_out_param"
              c:identifier="regress_test_obj_skip_out_param"
              throws="1">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3211">Check that the out value is skipped</doc>
        <source-position filename="regress.h" line="957"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3225">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3213">A #RegressTestObj.</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3214">Parameter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="out_b"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     skip="1">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3215">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="c" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3216">Other parameter.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="inout_d"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3217">Will be incremented.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="out_sum"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3218">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="num1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3219">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3220">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="skip_param"
              c:identifier="regress_test_obj_skip_param"
              throws="1">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3175">Check that a parameter is skipped</doc>
        <source-position filename="regress.h" line="945"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3189">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3177">A #RegressTestObj.</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3178">Parameter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="out_b"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3179">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="c" transfer-ownership="none" skip="1">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3180">Other parameter.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="inout_d"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3181">Will be incremented.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="out_sum"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3182">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="num1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3183">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3184">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="skip_return_val"
              c:identifier="regress_test_obj_skip_return_val"
              throws="1">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3115">Check that the return value is skipped</doc>
        <source-position filename="regress.h" line="927"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3129">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3117">a #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3118">Parameter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="out_b"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3119">A return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="c" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3120">Other parameter.</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="inout_d"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3121">Will be incremented.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="out_sum"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3122">Return value.</doc>
            <type name="gint" c:type="gint*"/>
          </parameter>
          <parameter name="num1" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3123">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="num2" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3124">Number.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="skip_return_val_no_out"
              c:identifier="regress_test_obj_skip_return_val_no_out"
              throws="1">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3151">Check that the return value is skipped. Succeed if a is nonzero, otherwise
raise an error.</doc>
        <source-position filename="regress.h" line="939"/>
        <return-value transfer-ownership="none" skip="1">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3160">%TRUE if the call succeeds, %FALSE if @error is set.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3153">a #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3154">Parameter.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="torture_signature_0"
              c:identifier="regress_test_obj_torture_signature_0">
        <source-position filename="regress.h" line="907"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3060">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="z"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="foo" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="q"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="m" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="torture_signature_1"
              c:identifier="regress_test_obj_torture_signature_1"
              throws="1">
        <doc xml:space="preserve"
             filename="regress.c"
             line="3083">This function throws an error if m is odd.</doc>
        <source-position filename="regress.h" line="916"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="3085">A #RegressTestObj</doc>
            <type name="TestObj" c:type="RegressTestObj*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="z"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="foo" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="q"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="m" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="bare"
                writable="1"
                transfer-ownership="none"
                setter="set_bare">
        <type name="GObject.Object"/>
      </property>
      <property name="boxed" writable="1" transfer-ownership="none">
        <type name="TestBoxed"/>
      </property>
      <property name="byte-array"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <array name="GLib.ByteArray">
          <type name="guint8" c:type="guint8"/>
        </array>
      </property>
      <property name="double"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="float"
                writable="1"
                transfer-ownership="none"
                default-value="1.000000">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <property name="gtype"
                writable="1"
                transfer-ownership="none"
                default-value="G_TYPE_INVALID">
        <type name="GType" c:type="GType"/>
      </property>
      <property name="hash-table" writable="1" transfer-ownership="container">
        <type name="GLib.HashTable">
          <type name="utf8"/>
          <type name="gint8"/>
        </type>
      </property>
      <property name="hash-table-old"
                writable="1"
                transfer-ownership="container">
        <type name="GLib.HashTable">
          <type name="utf8"/>
          <type name="gint8"/>
        </type>
      </property>
      <property name="int"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="list"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="GLib.List" c:type="gpointer">
          <type name="utf8"/>
        </type>
      </property>
      <property name="list-old" writable="1" transfer-ownership="none">
        <type name="GLib.List" c:type="gpointer">
          <type name="utf8"/>
        </type>
      </property>
      <property name="name-conflict"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="42">
        <type name="gint" c:type="gint"/>
      </property>
      <property name="pptrarray" writable="1" transfer-ownership="none">
        <array name="GLib.PtrArray" c:type="gpointer">
          <type name="utf8"/>
        </array>
      </property>
      <property name="string"
                writable="1"
                transfer-ownership="none"
                setter="set_string"
                getter="get_string"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="write-only"
                readable="0"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="bare">
        <type name="GObject.Object" c:type="GObject*"/>
      </field>
      <field name="boxed">
        <type name="TestBoxed" c:type="RegressTestBoxed*"/>
      </field>
      <field name="hash_table">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="gpointer" c:type="gpointer"/>
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="list">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
      <field name="some_int8">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="some_float">
        <type name="gfloat" c:type="float"/>
      </field>
      <field name="some_double">
        <type name="gdouble" c:type="double"/>
      </field>
      <field name="string">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="gtype">
        <type name="GType" c:type="GType"/>
      </field>
      <field name="name_conflict">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="byte_array">
        <array name="GLib.ByteArray" c:type="GByteArray*">
          <type name="guint8" c:type="guint8"/>
        </array>
      </field>
      <field name="function_ptr">
        <callback name="function_ptr">
          <source-position filename="regress.h" line="804"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <glib:signal name="all"
                   when="first"
                   no-recurse="1"
                   detailed="1"
                   action="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="cleanup" when="cleanup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="first" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="sig-with-array-len-prop" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2379">This test signal similar to GSettings::change-event.
You can use this with regress_test_obj_emit_sig_with_array_len_prop(), or
raise from the introspection client language.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="arr"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2382">numbers, or %NULL</doc>
            <array length="1" zero-terminated="0" c:type="gpointer">
              <type name="guint"/>
            </array>
          </parameter>
          <parameter name="len" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2383">length of @arr, or 0</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-array-prop" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2359">This test signal is like TelepathyGlib's
 TpChannel:: group-members-changed-detailed:</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="arr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2362">numbers</doc>
            <array name="GLib.Array">
              <type name="guint"/>
            </array>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-foreign-struct" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="cr" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2504">A cairo context.</doc>
            <type name="cairo.Context"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-gerror" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2632">This signal is modeled after #GstDiscoverer::discovered, and is added to
exercise the path of a #GError being marshalled as a boxed type instead of
an exception in the introspected language.

Use via regress_test_obj_emit_sig_with_error() and
regress_test_obj_emit_sig_with_null_error(), or emit via the introspected
language.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="error"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2635">A #GError if something went wrong
  internally in @self. You must not free this #GError.</doc>
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-hash-prop" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2402">This test signal is like TelepathyGlib's
 TpAccount::status-changed</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="hash" transfer-ownership="none">
            <type name="GLib.HashTable">
              <type name="utf8"/>
              <type name="GObject.Value"/>
            </type>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-inout-int" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2611">This signal is modeled after GtkEditable::insert-text.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="position"
                     direction="inout"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2614">The position, in characters, at which to
    insert the new text. This is an in-out paramter. After the signal
    emission is finished, it should point after the newly inserted text.</doc>
            <type name="gint" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-int64-prop" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2552">You can use this with regress_test_obj_emit_sig_with_int64, or raise from
the introspection client langage.</doc>
        <return-value transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2555">an integer</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-intarray-ret" when="last">
        <return-value transfer-ownership="full">
          <array name="GLib.Array">
            <type name="gint"/>
          </array>
        </return-value>
        <parameters>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2595">an integer</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-obj" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2460">Test transfer none GObject as a param (tests refcounting).
Use with regress_test_obj_emit_sig_with_obj</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="obj" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2463">A newly created RegressTestObj</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-obj-full" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2480">Test transfer full GObject as a param (tests refcounting).
Use with regress_test_obj_emit_sig_with_obj_full</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="obj" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2483">A newly created RegressTestObj</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-strv" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2422">Test GStrv as a param.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="strs" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2425">strings</doc>
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-strv-full" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2441">Test GStrv as a param.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="strs" transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2444">strings</doc>
            <array>
              <type name="utf8"/>
            </array>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="sig-with-uint64-prop" when="last">
        <doc xml:space="preserve"
             filename="regress.c"
             line="2572">You can use this with regress_test_obj_emit_sig_with_uint64, or raise from
the introspection client langage.</doc>
        <return-value transfer-ownership="none">
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <parameter name="i" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="2575">an integer</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="test" when="last" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="test-with-static-scope-arg"
                   when="last"
                   no-recurse="1"
                   no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="TestSimpleBoxedA"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="TestObjClass"
            c:type="RegressTestObjClass"
            glib:is-gtype-struct-for="TestObj">
      <source-position filename="regress.h" line="829"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="matrix">
        <callback name="matrix">
          <source-position filename="regress.h" line="813"/>
          <return-value transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="regress.c"
                   line="3285">A #RegressTestObj</doc>
              <type name="TestObj" c:type="RegressTestObj*"/>
            </parameter>
            <parameter name="somestr" transfer-ownership="none">
              <doc xml:space="preserve"
                   filename="regress.c"
                   line="3286">Meaningless string</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="allow_none_vfunc">
        <callback name="allow_none_vfunc">
          <source-position filename="regress.h" line="819"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="obj" transfer-ownership="none">
              <type name="TestObj" c:type="RegressTestObj*"/>
            </parameter>
            <parameter name="two"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <doc xml:space="preserve"
                   filename="regress.h"
                   line="817">Another object</doc>
              <type name="TestObj" c:type="RegressTestObj*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="test_signal">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="test_signal_with_static_scope_arg">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="complex_vfunc">
        <type name="TestExternallyDefinedCallback"
              c:type="RegressTestExternallyDefinedCallback"/>
      </field>
      <field name="_regress_reserved1" introspectable="0">
        <callback name="_regress_reserved1">
          <source-position filename="regress.h" line="827"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="_regress_reserved2" introspectable="0">
        <callback name="_regress_reserved2">
          <source-position filename="regress.h" line="828"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
    </record>
    <enumeration name="TestOtherError"
                 glib:type-name="RegressTestOtherError"
                 glib:get-type="regress_test_unconventional_error_get_type"
                 c:type="RegressTestOtherError"
                 glib:error-domain="regress-test-other-error">
      <member name="code1"
              value="1"
              c:identifier="REGRESS_TEST_OTHER_ERROR_CODE1"
              glib:nick="code1"
              glib:name="REGRESS_TEST_OTHER_ERROR_CODE1">
      </member>
      <member name="code2"
              value="2"
              c:identifier="REGRESS_TEST_OTHER_ERROR_CODE2"
              glib:nick="code2"
              glib:name="REGRESS_TEST_OTHER_ERROR_CODE2">
      </member>
      <member name="code3"
              value="3"
              c:identifier="REGRESS_TEST_OTHER_ERROR_CODE3"
              glib:nick="code3"
              glib:name="REGRESS_TEST_OTHER_ERROR_CODE3">
      </member>
      <function name="quark"
                c:identifier="regress_test_unconventional_error_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <bitfield name="TestPrivateEnum" c:type="RegressTestPrivateEnum">
      <source-position filename="regress.h" line="1493"/>
      <member name="public_enum_before"
              value="1"
              c:identifier="REGRESS_TEST_PUBLIC_ENUM_BEFORE">
      </member>
      <member name="public_enum_after"
              value="4"
              c:identifier="REGRESS_TEST_PUBLIC_ENUM_AFTER">
      </member>
    </bitfield>
    <record name="TestPrivateStruct" c:type="RegressTestPrivateStruct">
      <source-position filename="regress.h" line="1485"/>
      <field name="this_is_public_before" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="this_is_private" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="this_is_public_after" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
    </record>
    <record name="TestReferenceCounters" c:type="RegressTestReferenceCounters">
      <source-position filename="regress.h" line="1595"/>
      <field name="refcount" writable="1">
        <type name="gint" c:type="grefcount"/>
      </field>
      <field name="atomicrefcount" writable="1">
        <type name="gint" c:type="gatomicrefcount"/>
      </field>
    </record>
    <enumeration name="TestReferenceEnum" c:type="RegressTestReferenceEnum">
      <source-position filename="regress.h" line="417"/>
      <member name="0" value="4" c:identifier="REGRESS_TEST_REFERENCE_0">
      </member>
      <member name="1" value="2" c:identifier="REGRESS_TEST_REFERENCE_1">
      </member>
      <member name="2" value="54" c:identifier="REGRESS_TEST_REFERENCE_2">
      </member>
      <member name="3" value="4" c:identifier="REGRESS_TEST_REFERENCE_3">
      </member>
      <member name="4" value="216" c:identifier="REGRESS_TEST_REFERENCE_4">
      </member>
      <member name="5" value="-217" c:identifier="REGRESS_TEST_REFERENCE_5">
      </member>
    </enumeration>
    <record name="TestSimpleBoxedA"
            c:type="RegressTestSimpleBoxedA"
            copy-function="regress_test_simple_boxed_a_copy"
            glib:type-name="RegressTestSimpleBoxedA"
            glib:get-type="regress_test_simple_boxed_a_get_gtype"
            c:symbol-prefix="test_simple_boxed_a">
      <doc xml:space="preserve" filename="regress.h" line="628">...</doc>
      <source-position filename="regress.h" line="643"/>
      <field name="some_int" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="some_int8" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="some_double" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="some_enum" writable="1">
        <type name="TestEnum" c:type="RegressTestEnum"/>
      </field>
      <method name="copy" c:identifier="regress_test_simple_boxed_a_copy">
        <source-position filename="regress.h" line="650"/>
        <return-value transfer-ownership="full">
          <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equals" c:identifier="regress_test_simple_boxed_a_equals">
        <source-position filename="regress.h" line="653"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
          </instance-parameter>
          <parameter name="other_a" transfer-ownership="none">
            <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA*"/>
          </parameter>
        </parameters>
      </method>
      <function name="const_return"
                c:identifier="regress_test_simple_boxed_a_const_return">
        <source-position filename="regress.h" line="657"/>
        <return-value transfer-ownership="none">
          <type name="TestSimpleBoxedA"
                c:type="const RegressTestSimpleBoxedA*"/>
        </return-value>
      </function>
    </record>
    <record name="TestSimpleBoxedB"
            c:type="RegressTestSimpleBoxedB"
            glib:type-name="RegressTestSimpleBoxedB"
            glib:get-type="regress_test_simple_boxed_b_get_type"
            c:symbol-prefix="test_simple_boxed_b">
      <source-position filename="regress.h" line="664"/>
      <field name="some_int8" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="nested_a" writable="1">
        <type name="TestSimpleBoxedA" c:type="RegressTestSimpleBoxedA"/>
      </field>
      <method name="copy" c:identifier="regress_test_simple_boxed_b_copy">
        <source-position filename="regress.h" line="671"/>
        <return-value transfer-ownership="full">
          <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
        </return-value>
        <parameters>
          <instance-parameter name="b" transfer-ownership="none">
            <type name="TestSimpleBoxedB" c:type="RegressTestSimpleBoxedB*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <callback name="TestSimpleCallback" c:type="RegressTestSimpleCallback">
      <source-position filename="regress.h" line="1164"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </callback>
    <record name="TestStructA" c:type="RegressTestStructA">
      <source-position filename="regress.h" line="546"/>
      <field name="some_int" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="some_int8" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="some_double" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="some_enum" writable="1">
        <type name="TestEnum" c:type="RegressTestEnum"/>
      </field>
      <method name="clone" c:identifier="regress_test_struct_a_clone">
        <doc xml:space="preserve"
             filename="regress.c"
             line="1736">Make a copy of a RegressTestStructA</doc>
        <source-position filename="regress.h" line="549"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="1738">the structure</doc>
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </instance-parameter>
          <parameter name="a_out"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="1739">the cloned structure</doc>
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </parameter>
        </parameters>
      </method>
      <function name="parse" c:identifier="regress_test_struct_a_parse">
        <source-position filename="regress.h" line="553"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="a_out"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="1752">the structure that is to be filled</doc>
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </parameter>
          <parameter name="string" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="1753">ignored</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
    </record>
    <record name="TestStructB" c:type="RegressTestStructB">
      <source-position filename="regress.h" line="562"/>
      <field name="some_int8" writable="1">
        <type name="gint8" c:type="gint8"/>
      </field>
      <field name="nested_a" writable="1">
        <type name="TestStructA" c:type="RegressTestStructA"/>
      </field>
      <method name="clone" c:identifier="regress_test_struct_b_clone">
        <doc xml:space="preserve"
             filename="regress.c"
             line="1779">Make a copy of a RegressTestStructB</doc>
        <source-position filename="regress.h" line="565"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="b" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="1781">the structure</doc>
            <type name="TestStructB" c:type="RegressTestStructB*"/>
          </instance-parameter>
          <parameter name="b_out"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="regress.c"
                 line="1782">the cloned structure</doc>
            <type name="TestStructB" c:type="RegressTestStructB*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <record name="TestStructC" c:type="RegressTestStructC">
      <source-position filename="regress.h" line="573"/>
      <field name="another_int" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="obj" writable="1">
        <type name="GObject.Object" c:type="GObject*"/>
      </field>
    </record>
    <record name="TestStructD" c:type="RegressTestStructD">
      <source-position filename="regress.h" line="592"/>
      <field name="array1" writable="1">
        <array c:type="RegressTestStructA**">
          <type name="TestStructA" c:type="RegressTestStructA*"/>
        </array>
      </field>
      <field name="array2" writable="1">
        <array c:type="gpointer*">
          <type name="TestObj"/>
        </array>
      </field>
      <field name="field" writable="1">
        <type name="TestObj"/>
      </field>
      <field name="list" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="TestObj"/>
        </type>
      </field>
      <field name="garray" writable="1">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="TestObj"/>
        </array>
      </field>
    </record>
    <record name="TestStructE" c:type="RegressTestStructE">
      <source-position filename="regress.h" line="609"/>
      <field name="some_type" writable="1">
        <type name="GType" c:type="GType"/>
      </field>
      <field name="some_union" writable="1">
        <array zero-terminated="0" fixed-size="2">
          <type name="TestStructE__some_union__union"/>
        </array>
      </field>
    </record>
    <union name="TestStructE__some_union__union">
      <field name="v_int" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="v_uint" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="v_long" writable="1">
        <type name="glong" c:type="glong"/>
      </field>
      <field name="v_ulong" writable="1">
        <type name="gulong" c:type="gulong"/>
      </field>
      <field name="v_int64" writable="1">
        <type name="gint64" c:type="gint64"/>
      </field>
      <field name="v_uint64" writable="1">
        <type name="guint64" c:type="guint64"/>
      </field>
      <field name="v_float" writable="1">
        <type name="gfloat" c:type="gfloat"/>
      </field>
      <field name="v_double" writable="1">
        <type name="gdouble" c:type="gdouble"/>
      </field>
      <field name="v_pointer" writable="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </union>
    <record name="TestStructF" c:type="RegressTestStructF">
      <source-position filename="regress.h" line="622"/>
      <field name="ref_count" writable="1">
        <type name="gint" c:type="volatile gint"/>
      </field>
      <field name="data1" writable="1">
        <type name="gint" c:type="const gint*"/>
      </field>
      <field name="data2" writable="1">
        <type name="gint" c:type="const gint* const"/>
      </field>
      <field name="data3" writable="1">
        <type name="gint" c:type="const gint* const* const"/>
      </field>
      <field name="data4" writable="1">
        <type name="gint" c:type="const gint** const*"/>
      </field>
      <field name="data5" writable="1">
        <type name="gint" c:type="volatile gint* const"/>
      </field>
      <field name="data6" writable="1">
        <type name="gint" c:type="const gint* volatile"/>
      </field>
      <field name="data7" writable="1">
        <type name="guint8" c:type="volatile const unsigned char"/>
      </field>
    </record>
    <record name="TestStructFixedArray" c:type="RegressTestStructFixedArray">
      <source-position filename="regress.h" line="1498"/>
      <field name="just_int" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="array" writable="1">
        <array zero-terminated="0" fixed-size="10">
          <type name="gint" c:type="gint"/>
        </array>
      </field>
      <method name="frob" c:identifier="regress_test_struct_fixed_array_frob">
        <source-position filename="regress.h" line="1502"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="str" transfer-ownership="none">
            <type name="TestStructFixedArray"
                  c:type="RegressTestStructFixedArray*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="TestSubObj"
           c:symbol-prefix="test_sub_obj"
           c:type="RegressTestSubObj"
           parent="TestObj"
           glib:type-name="RegressTestSubObj"
           glib:get-type="regress_test_sub_obj_get_type"
           glib:type-struct="TestSubObjClass">
      <source-position filename="regress.h" line="1022"/>
      <implements name="TestInterface"/>
      <constructor name="new" c:identifier="regress_test_sub_obj_new">
        <source-position filename="regress.h" line="1029"/>
        <return-value transfer-ownership="full">
          <type name="TestObj" c:type="RegressTestObj*"/>
        </return-value>
      </constructor>
      <method name="instance_method"
              c:identifier="regress_test_sub_obj_instance_method">
        <source-position filename="regress.h" line="1035"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestSubObj" c:type="RegressTestSubObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unset_bare" c:identifier="regress_test_sub_obj_unset_bare">
        <source-position filename="regress.h" line="1032"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestSubObj" c:type="RegressTestSubObj*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="boolean"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="TestObj" c:type="RegressTestObj"/>
      </field>
      <field name="number" readable="0" private="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="boolean" readable="0" private="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="TestSubObjClass"
            c:type="RegressTestSubObjClass"
            glib:is-gtype-struct-for="TestSubObj">
      <source-position filename="regress.h" line="1022"/>
      <field name="parent_class">
        <type name="TestObjClass" c:type="RegressTestObjClass"/>
      </field>
    </record>
    <class name="TestWi8021x"
           c:symbol-prefix="test_wi_802_1x"
           c:type="RegressTestWi8021x"
           parent="GObject.Object"
           glib:type-name="RegressTestWi8021x"
           glib:get-type="regress_test_wi_802_1x_get_type"
           glib:type-struct="TestWi8021xClass">
      <source-position filename="regress.h" line="1318"/>
      <constructor name="new" c:identifier="regress_test_wi_802_1x_new">
        <source-position filename="regress.h" line="1325"/>
        <return-value transfer-ownership="full">
          <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
        </return-value>
      </constructor>
      <function name="static_method"
                c:identifier="regress_test_wi_802_1x_static_method">
        <source-position filename="regress.h" line="1334"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </function>
      <method name="get_testbool"
              c:identifier="regress_test_wi_802_1x_get_testbool"
              glib:get-property="testbool">
        <source-position filename="regress.h" line="1328"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_testbool"
              c:identifier="regress_test_wi_802_1x_set_testbool"
              glib:set-property="testbool">
        <source-position filename="regress.h" line="1331"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="obj" transfer-ownership="none">
            <type name="TestWi8021x" c:type="RegressTestWi8021x*"/>
          </instance-parameter>
          <parameter name="v" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="testbool"
                writable="1"
                transfer-ownership="none"
                setter="set_testbool"
                getter="get_testbool"
                default-value="TRUE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="testbool">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </class>
    <record name="TestWi8021xClass"
            c:type="RegressTestWi8021xClass"
            glib:is-gtype-struct-for="TestWi8021x">
      <source-position filename="regress.h" line="1318"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <constant name="UTF8_CONSTANT"
              value="const ♥ utf8"
              c:type="REGRESS_UTF8_CONSTANT">
      <source-position filename="regress.h" line="1513"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function name="aliased_caller_alloc"
              c:identifier="regress_aliased_caller_alloc">
      <source-position filename="regress.h" line="1475"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="boxed"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <type name="AliasedTestBoxed" c:type="RegressAliasedTestBoxed*"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_attribute_func"
              c:identifier="regress_annotation_attribute_func">
      <source-position filename="annotation.h" line="235"/>
      <return-value transfer-ownership="none">
        <attribute name="some.other.annotation" value="value2"/>
        <attribute name="yet.another.annotation" value="another_value"/>
        <doc xml:space="preserve"
             filename="annotation.c"
             line="768">The return value.</doc>
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="765">A #RegressAnnotationObject.</doc>
          <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <attribute name="some.annotation" value="value"/>
          <attribute name="another.annotation" value="blahvalue"/>
          <doc xml:space="preserve"
               filename="annotation.c"
               line="766">Some data.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_custom_destroy"
              c:identifier="regress_annotation_custom_destroy">
      <doc xml:space="preserve"
           filename="annotation.c"
           line="719">Test messing up the heuristic of closure/destroy-notification
detection, and fixing it via annotations.</doc>
      <source-position filename="annotation.h" line="223"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="1">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="721">Destroy notification</doc>
          <type name="AnnotationCallback" c:type="RegressAnnotationCallback"/>
        </parameter>
        <parameter name="destroy"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2">
          <type name="AnnotationNotifyFunc"
                c:type="RegressAnnotationNotifyFunc"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_get_source_file"
              c:identifier="regress_annotation_get_source_file">
      <source-position filename="annotation.h" line="228"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="736">Source file</doc>
        <type name="filename" c:type="char*"/>
      </return-value>
    </function>
    <function name="annotation_init" c:identifier="regress_annotation_init">
      <source-position filename="annotation.h" line="198"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argc"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="650">The number of args.</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="651">The arguments.</doc>
          <array length="0" zero-terminated="0" c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_invalid_regress_annotation"
              c:identifier="regress_annotation_invalid_regress_annotation">
      <source-position filename="annotation.h" line="240"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="foo" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="779">some text (e.g. example) or else</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_ptr_array"
              c:identifier="regress_annotation_ptr_array">
      <source-position filename="annotation.h" line="276"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="array" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="756">the array</doc>
          <array name="GLib.PtrArray" c:type="GPtrArray*">
            <type name="GObject.Value"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_return_array"
              c:identifier="regress_annotation_return_array">
      <source-position filename="annotation.h" line="202"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="663">The return value</doc>
        <array length="0" zero-terminated="0" c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="length"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="661">Number of return values</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_return_filename"
              c:identifier="regress_annotation_return_filename">
      <source-position filename="annotation.h" line="288"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="818">An annotated filename</doc>
        <type name="filename" c:type="gchar*"/>
      </return-value>
    </function>
    <function name="annotation_set_source_file"
              c:identifier="regress_annotation_set_source_file">
      <source-position filename="annotation.h" line="231"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="fname" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="746">Source file</doc>
          <type name="filename" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_space_after_comment_bug631690"
              c:identifier="regress_annotation_space_after_comment_bug631690">
      <doc xml:space="preserve"
           filename="annotation.c"
           line="805">Explicitly test having a space after the ** here.</doc>
      <source-position filename="annotation.h" line="284"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="annotation_string_array_length"
              c:identifier="regress_annotation_string_array_length">
      <source-position filename="annotation.h" line="215"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="n_properties" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="properties" transfer-ownership="none">
          <array length="0" zero-terminated="0" c:type="const gchar* const*">
            <type name="utf8"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_string_zero_terminated"
              c:identifier="regress_annotation_string_zero_terminated">
      <source-position filename="annotation.h" line="208"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="674">The return value</doc>
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="annotation_string_zero_terminated_out"
              c:identifier="regress_annotation_string_zero_terminated_out">
      <source-position filename="annotation.h" line="211"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="out"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <array c:type="char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_test_parsing_bug630862"
              c:identifier="regress_annotation_test_parsing_bug630862">
      <doc xml:space="preserve"
           filename="annotation.c"
           line="791">See https://bugzilla.gnome.org/show_bug.cgi?id=630862</doc>
      <source-position filename="annotation.h" line="280"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="796">An object, note the colon:in here</doc>
        <type name="GObject.Object" c:type="GObject*"/>
      </return-value>
    </function>
    <function name="annotation_transfer_floating"
              c:identifier="regress_annotation_transfer_floating">
      <source-position filename="annotation.h" line="292"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="annotation.c"
             line="830">A floating object</doc>
        <type name="GObject.Object" c:type="GObject*"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="annotation.c"
               line="828">an object</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="annotation_versioned"
              c:identifier="regress_annotation_versioned"
              version="0.6">
      <source-position filename="annotation.h" line="205"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="atest_error_quark"
              c:identifier="regress_atest_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="foo_async_ready_callback"
              c:identifier="regress_foo_async_ready_callback">
      <source-position filename="foo.h" line="496"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="2">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_destroy_notify_callback"
              c:identifier="regress_foo_destroy_notify_callback">
      <source-position filename="foo.h" line="501"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="1"
                   destroy="2">
          <type name="FooCallback" c:type="RegressFooCallback"/>
        </parameter>
        <parameter name="data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="destroy" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_enum_type_method"
              c:identifier="regress_foo_enum_type_method"
              moved-to="FooEnumType.method">
      <source-position filename="foo.h" line="236"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="regress_foo_enum" transfer-ownership="none">
          <type name="FooEnumType" c:type="RegressFooEnumType"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_enum_type_returnv"
              c:identifier="regress_foo_enum_type_returnv"
              moved-to="FooEnumType.returnv">
      <source-position filename="foo.h" line="240"/>
      <return-value transfer-ownership="none">
        <type name="FooEnumType" c:type="RegressFooEnumType"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_error_quark"
              c:identifier="regress_foo_error_quark"
              moved-to="FooError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="foo_init" c:identifier="regress_foo_init">
      <source-position filename="foo.h" line="125"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
    </function>
    <function name="foo_interface_static_method"
              c:identifier="regress_foo_interface_static_method"
              moved-to="FooInterface.static_method">
      <source-position filename="foo.h" line="73"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_method_external_references"
              c:identifier="regress_foo_method_external_references">
      <source-position filename="foo.h" line="346"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="object" transfer-ownership="none">
          <type name="Utility.Object" c:type="UtilityObject*"/>
        </parameter>
        <parameter name="e" transfer-ownership="none">
          <type name="Utility.EnumType" c:type="UtilityEnumType"/>
        </parameter>
        <parameter name="f" transfer-ownership="none">
          <type name="Utility.FlagType" c:type="UtilityFlagType"/>
        </parameter>
        <parameter name="s" transfer-ownership="none">
          <type name="Utility.Struct" c:type="UtilityStruct"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_not_a_constructor_new"
              c:identifier="regress_foo_not_a_constructor_new">
      <doc xml:space="preserve"
           filename="foo.c"
           line="819">This should be scanned as a top-level function, and shouldn't cause
a "Can't find matching type for constructor" warning.</doc>
      <source-position filename="foo.h" line="221"/>
      <return-value transfer-ownership="none">
        <type name="FooObject" c:type="RegressFooObject*"/>
      </return-value>
    </function>
    <function name="foo_rectangle_new"
              c:identifier="regress_foo_rectangle_new"
              moved-to="FooRectangle.new"
              introspectable="0">
      <doc xml:space="preserve"
           filename="foo.c"
           line="563">This is a C convenience constructor; we have to (skip)
it because it's not a boxed type.</doc>
      <source-position filename="foo.h" line="357"/>
      <return-value>
        <type name="FooRectangle" c:type="RegressFooRectangle*"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="width" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="height" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_skip_me"
              c:identifier="regress_foo_skip_me"
              introspectable="0">
      <doc xml:space="preserve"
           filename="foo.c"
           line="746">Does something that's only interesting from C and should not be
exposed to language bindings.</doc>
      <source-position filename="foo.h" line="556"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="fs" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="foo.c"
               line="748">a #RegressFooSkippable</doc>
          <type name="FooSkippable" c:type="RegressFooSkippable"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_some_variant"
              c:identifier="regress_foo_some_variant"
              introspectable="0">
      <source-position filename="foo.h" line="539"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="va_list" c:type="va_list"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_some_variant_ptr"
              c:identifier="regress_foo_some_variant_ptr"
              introspectable="0">
      <source-position filename="foo.h" line="542"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="args" transfer-ownership="none">
          <type name="va_list" c:type="va_list*"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_array" c:identifier="regress_foo_test_array">
      <source-position filename="foo.h" line="467"/>
      <return-value transfer-ownership="container">
        <array name="GLib.Array" c:type="GArray*">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="foo_test_const_char_param"
              c:identifier="regress_foo_test_const_char_param">
      <source-position filename="foo.h" line="477"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="param" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_const_char_retval"
              c:identifier="regress_foo_test_const_char_retval">
      <source-position filename="foo.h" line="471"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="foo_test_const_struct_param"
              c:identifier="regress_foo_test_const_struct_param">
      <source-position filename="foo.h" line="480"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="param" transfer-ownership="none">
          <type name="FooStruct" c:type="const RegressFooStruct*"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_const_struct_retval"
              c:identifier="regress_foo_test_const_struct_retval">
      <source-position filename="foo.h" line="474"/>
      <return-value transfer-ownership="none">
        <type name="FooStruct" c:type="const RegressFooStruct*"/>
      </return-value>
    </function>
    <function name="foo_test_string_array"
              c:identifier="regress_foo_test_string_array">
      <source-position filename="foo.h" line="459"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="array" transfer-ownership="none">
          <array c:type="char**">
            <type name="utf8" c:type="char*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_string_array_with_g"
              c:identifier="regress_foo_test_string_array_with_g">
      <source-position filename="foo.h" line="463"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="array" transfer-ownership="none">
          <array c:type="gchar**">
            <type name="utf8" c:type="gchar*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_unsigned_qualifier"
              c:identifier="regress_foo_test_unsigned_qualifier">
      <source-position filename="foo.h" line="452"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="unsigned_param" transfer-ownership="none">
          <type name="guint" c:type="unsigned int"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_unsigned_type"
              c:identifier="regress_foo_test_unsigned_type">
      <source-position filename="foo.h" line="455"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="unsigned_param" transfer-ownership="none">
          <type name="guint" c:type="unsigned"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_varargs_callback"
              c:identifier="regress_foo_test_varargs_callback"
              introspectable="0">
      <source-position filename="foo.h" line="485"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="i" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
        <parameter name="callback" transfer-ownership="none">
          <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_varargs_callback2"
              c:identifier="regress_foo_test_varargs_callback2"
              introspectable="0">
      <source-position filename="foo.h" line="488"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none">
          <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="foo_test_varargs_callback3"
              c:identifier="regress_foo_test_varargs_callback3"
              introspectable="0">
      <source-position filename="foo.h" line="491"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none">
          <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
        </parameter>
        <parameter name="callback2" transfer-ownership="none">
          <type name="FooVarargsCallback" c:type="RegressFooVarargsCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="func_obj_null_in" c:identifier="regress_func_obj_null_in">
      <source-position filename="regress.h" line="985"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="obj"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3300">A #RegressTestObj</doc>
          <type name="TestObj" c:type="RegressTestObj*"/>
        </parameter>
      </parameters>
    </function>
    <function name="func_obj_nullable_in"
              c:identifier="regress_func_obj_nullable_in">
      <source-position filename="regress.h" line="990"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="obj"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3320">A #RegressTestObj</doc>
          <type name="TestObj" c:type="RegressTestObj*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_variant" c:identifier="regress_get_variant">
      <source-position filename="regress.h" line="1588"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="4804">A new variant</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
    </function>
    <function name="global_get_flags_out"
              c:identifier="regress_global_get_flags_out">
      <source-position filename="regress.h" line="442"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="v"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="1641">A flags value</doc>
          <type name="TestFlags" c:type="RegressTestFlags*"/>
        </parameter>
      </parameters>
    </function>
    <function name="has_parameter_named_attrs"
              c:identifier="regress_has_parameter_named_attrs">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4764">This test case mirrors GnomeKeyringPasswordSchema from
libgnome-keyring.</doc>
      <source-position filename="regress.h" line="1528"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="foo" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4766">some int</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="attributes" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4767">list of attributes</doc>
          <array zero-terminated="0" c:type="gpointer" fixed-size="32">
            <type name="guint32" c:type="gpointer"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="introspectable_via_alias"
              c:identifier="regress_introspectable_via_alias">
      <source-position filename="regress.h" line="1453"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <type name="PtrArrayAlias" c:type="RegressPtrArrayAlias*"/>
        </parameter>
      </parameters>
    </function>
    <function name="not_introspectable_via_alias"
              c:identifier="regress_not_introspectable_via_alias"
              introspectable="0">
      <source-position filename="regress.h" line="1464"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ok" transfer-ownership="none">
          <type name="VaListAlias" c:type="RegressVaListAlias"/>
        </parameter>
      </parameters>
    </function>
    <function name="random_function_with_skipped_structure"
              c:identifier="regress_random_function_with_skipped_structure"
              introspectable="0">
      <source-position filename="regress.h" line="1424"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="foo" transfer-ownership="none">
          <type name="SkippedStructure" c:type="RegressSkippedStructure*"/>
        </parameter>
        <parameter name="v" transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="set_abort_on_error"
              c:identifier="regress_set_abort_on_error">
      <source-position filename="regress.h" line="17"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="abort_on_error" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="standalone_section">
      <doc xml:space="preserve"
           filename="foo.c"
           line="8">This documentation section isn't associated with an object
in particular, but it should be serialized in the gir nevertheless.</doc>
    </docsection>
    <function name="test_abc_error_quark"
              c:identifier="regress_test_abc_error_quark"
              moved-to="TestABCError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="test_array_callback"
              c:identifier="regress_test_array_callback">
      <source-position filename="regress.h" line="1219"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackArray" c:type="RegressTestCallbackArray"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_fixed_out_objects"
              c:identifier="regress_test_array_fixed_out_objects">
      <source-position filename="regress.h" line="896"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="objs"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="3362">An array of #RegressTestObj</doc>
          <array zero-terminated="0" c:type="RegressTestObj***" fixed-size="2">
            <type name="TestObj" c:type="RegressTestObj**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_fixed_size_int_in"
              c:identifier="regress_test_array_fixed_size_int_in">
      <source-position filename="regress.h" line="181"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="828">the sum of the items in @ints</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="ints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="826">a list of 5 integers</doc>
          <array zero-terminated="0" c:type="int*" fixed-size="5">
            <type name="gint" c:type="int"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_fixed_size_int_out"
              c:identifier="regress_test_array_fixed_size_int_out">
      <source-position filename="regress.h" line="184"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="ints"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="841">a list of 5 integers ranging from 0 to 4</doc>
          <array zero-terminated="0" c:type="int**" fixed-size="5">
            <type name="gint" c:type="int*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_fixed_size_int_return"
              c:identifier="regress_test_array_fixed_size_int_return">
      <source-position filename="regress.h" line="187"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="855">a list of 5 integers ranging from 0 to 4</doc>
        <array zero-terminated="0" c:type="int*" fixed-size="5">
          <type name="gint" c:type="int"/>
        </array>
      </return-value>
    </function>
    <function name="test_array_gint16_in"
              c:identifier="regress_test_array_gint16_in">
      <source-position filename="regress.h" line="157"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="n_ints" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="ints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="690">List of ints</doc>
          <array length="0" zero-terminated="0" c:type="gint16*">
            <type name="gint16" c:type="gint16"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_gint32_in"
              c:identifier="regress_test_array_gint32_in">
      <source-position filename="regress.h" line="160"/>
      <return-value transfer-ownership="none">
        <type name="gint32" c:type="gint32"/>
      </return-value>
      <parameters>
        <parameter name="n_ints" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="ints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="704">List of ints</doc>
          <array length="0" zero-terminated="0" c:type="gint32*">
            <type name="gint32" c:type="gint32"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_gint64_in"
              c:identifier="regress_test_array_gint64_in">
      <source-position filename="regress.h" line="163"/>
      <return-value transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </return-value>
      <parameters>
        <parameter name="n_ints" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="ints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="719">List of ints</doc>
          <array length="0" zero-terminated="0" c:type="gint64*">
            <type name="gint64" c:type="gint64"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_gint8_in"
              c:identifier="regress_test_array_gint8_in">
      <source-position filename="regress.h" line="154"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="n_ints" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="ints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="676">List of ints</doc>
          <array length="0" zero-terminated="0" c:type="gint8*">
            <type name="gint8" c:type="gint8"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_gtype_in"
              c:identifier="regress_test_array_gtype_in">
      <source-position filename="regress.h" line="166"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="754">string representation of provided types</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="n_types" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="types" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="752">List of types</doc>
          <array length="0" zero-terminated="0" c:type="GType*">
            <type name="GType" c:type="GType"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_inout_callback"
              c:identifier="regress_test_array_inout_callback">
      <source-position filename="regress.h" line="1222"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackArrayInOut"
                c:type="RegressTestCallbackArrayInOut"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_full_out"
              c:identifier="regress_test_array_int_full_out">
      <source-position filename="regress.h" line="191"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="903">a new array of integers.</doc>
        <array length="0" zero-terminated="0" c:type="int*">
          <type name="gint" c:type="int"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="901">length of the returned array.</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_in"
              c:identifier="regress_test_array_int_in">
      <source-position filename="regress.h" line="145"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="n_ints" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="ints" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="624">List of ints</doc>
          <array length="0" zero-terminated="0" c:type="int*">
            <type name="gint" c:type="int"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_inout"
              c:identifier="regress_test_array_int_inout">
      <source-position filename="regress.h" line="151"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="n_ints"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="652">the length of @ints</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="ints"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="653">a list of integers whose items will be increased by 1, except the first that will be dropped</doc>
          <array length="0" zero-terminated="0" c:type="int**">
            <type name="gint" c:type="int*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_none_out"
              c:identifier="regress_test_array_int_none_out">
      <source-position filename="regress.h" line="194"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="920">a static array of integers.</doc>
        <array length="0" zero-terminated="0" c:type="int*">
          <type name="gint" c:type="int"/>
        </array>
      </return-value>
      <parameters>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="918">length of the returned array.</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_null_in"
              c:identifier="regress_test_array_int_null_in">
      <source-position filename="regress.h" line="197"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <array length="1" zero-terminated="0" c:type="int*">
            <type name="gint" c:type="int"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="933">length</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_null_out"
              c:identifier="regress_test_array_int_null_out">
      <source-position filename="regress.h" line="200"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <array length="1" zero-terminated="0" c:type="int**">
            <type name="gint" c:type="int*"/>
          </array>
        </parameter>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="945">length</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_int_out"
              c:identifier="regress_test_array_int_out">
      <source-position filename="regress.h" line="148"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="n_ints"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="637">the length of @ints</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="ints"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="638">a list of 5 integers, from 0 to 4 in consecutive order</doc>
          <array length="0" zero-terminated="0" c:type="int**">
            <type name="gint" c:type="int*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_static_in_int"
              c:identifier="regress_test_array_static_in_int">
      <source-position filename="regress.h" line="904"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="869">a list of 10 integers</doc>
          <array zero-terminated="0" c:type="int*" fixed-size="10">
            <type name="gint" c:type="int"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_in_full"
              c:identifier="regress_test_array_struct_in_full">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4896">Test flat array input with transfer full.

Similar to:
- gsf_property_settings_free() with structs but they contain pointers
- g_byte_array_new_take() with guint8s</doc>
      <source-position filename="regress.h" line="1610"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr" transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4898">An array</doc>
          <array length="1" zero-terminated="0" c:type="RegressTestStructA*">
            <type name="TestStructA" c:type="RegressTestStructA"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4899">Length of @arr</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_in_none"
              c:identifier="regress_test_array_struct_in_none">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4916">Test flat array input with transfer none.

Similar to g_main_context_check() or gtk_target_list_new().</doc>
      <source-position filename="regress.h" line="1613"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4918">An array.</doc>
          <array length="1" zero-terminated="0" c:type="RegressTestStructA*">
            <type name="TestStructA" c:type="RegressTestStructA"/>
          </array>
        </parameter>
        <parameter name="len" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4919">Length of @arr</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_out"
              c:identifier="regress_test_array_struct_out">
      <doc xml:space="preserve"
           filename="regress.c"
           line="1762">This is similar to gdk_keymap_get_entries_for_keyval().</doc>
      <source-position filename="regress.h" line="556"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <array length="1" zero-terminated="0" c:type="RegressTestStructA**">
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </array>
        </parameter>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_out_caller_alloc"
              c:identifier="regress_test_array_struct_out_caller_alloc">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4875">Test flat caller-allocated array output.

Similar to g_main_context_query().</doc>
      <source-position filename="regress.h" line="1607"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4877">An array</doc>
          <array length="1" zero-terminated="0" c:type="RegressTestStructA*">
            <type name="TestStructA" c:type="RegressTestStructA"/>
          </array>
        </parameter>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4878">Length of @arr</doc>
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_out_container"
              c:identifier="regress_test_array_struct_out_container">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4837">Test flat array output with transfer container.

Similar to pango_layout_get_log_attrs().</doc>
      <source-position filename="regress.h" line="1601"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="container">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4839">An array</doc>
          <array length="1" zero-terminated="0" c:type="RegressTestStructA**">
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </array>
        </parameter>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4840">Length of @arr</doc>
          <type name="gsize" c:type="gsize*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_out_full_fixed"
              c:identifier="regress_test_array_struct_out_full_fixed">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4859">Test flat fixed-size array output with transfer full.</doc>
      <source-position filename="regress.h" line="1604"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4861">An array</doc>
          <array zero-terminated="0"
                 c:type="RegressTestStructA**"
                 fixed-size="4">
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_array_struct_out_none"
              c:identifier="regress_test_array_struct_out_none">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4812">Test flat array output with transfer none.

Similar to:
- mm_modem_peek_ports() with structs
- gdk_query_visual_types() with enums
- gdk_event_get_axes() with doubles</doc>
      <source-position filename="regress.h" line="1598"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="arr"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4814">An array</doc>
          <array length="1" zero-terminated="0" c:type="RegressTestStructA**">
            <type name="TestStructA" c:type="RegressTestStructA*"/>
          </array>
        </parameter>
        <parameter name="len"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4815">Length of @arr</doc>
          <type name="gsize" c:type="gsize*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_async_ready_callback"
              c:identifier="regress_test_async_ready_callback">
      <source-position filename="regress.h" line="1252"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async">
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_boolean" c:identifier="regress_test_boolean">
      <source-position filename="regress.h" line="28"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_boolean_false"
              c:identifier="regress_test_boolean_false">
      <source-position filename="regress.h" line="34"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_boolean_true"
              c:identifier="regress_test_boolean_true">
      <source-position filename="regress.h" line="31"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_boxeds_not_a_method"
              c:identifier="regress_test_boxeds_not_a_method">
      <source-position filename="regress.h" line="712"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="boxed" transfer-ownership="none">
          <type name="TestBoxed" c:type="RegressTestBoxed*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_boxeds_not_a_static"
              c:identifier="regress_test_boxeds_not_a_static">
      <source-position filename="regress.h" line="715"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="test_cairo_context_full_return"
              c:identifier="regress_test_cairo_context_full_return">
      <source-position filename="regress.h" line="325"/>
      <return-value transfer-ownership="full">
        <type name="cairo.Context" c:type="cairo_t*"/>
      </return-value>
    </function>
    <function name="test_cairo_context_none_in"
              c:identifier="regress_test_cairo_context_none_in">
      <source-position filename="regress.h" line="328"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="context" transfer-ownership="none">
          <type name="cairo.Context" c:type="cairo_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_cairo_surface_full_out"
              c:identifier="regress_test_cairo_surface_full_out">
      <source-position filename="regress.h" line="341"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="surface"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="cairo.Surface" c:type="cairo_surface_t**"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_cairo_surface_full_return"
              c:identifier="regress_test_cairo_surface_full_return">
      <source-position filename="regress.h" line="335"/>
      <return-value transfer-ownership="full">
        <type name="cairo.Surface" c:type="cairo_surface_t*"/>
      </return-value>
    </function>
    <function name="test_cairo_surface_none_in"
              c:identifier="regress_test_cairo_surface_none_in">
      <source-position filename="regress.h" line="338"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="surface" transfer-ownership="none">
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_cairo_surface_none_return"
              c:identifier="regress_test_cairo_surface_none_return">
      <source-position filename="regress.h" line="332"/>
      <return-value transfer-ownership="none">
        <type name="cairo.Surface" c:type="cairo_surface_t*"/>
      </return-value>
    </function>
    <function name="test_callback" c:identifier="regress_test_callback">
      <source-position filename="regress.h" line="1213"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="call">
          <type name="TestCallback" c:type="RegressTestCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_callback_async"
              c:identifier="regress_test_callback_async">
      <source-position filename="regress.h" line="1245"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="async"
                   closure="1">
          <type name="TestCallbackUserData"
                c:type="RegressTestCallbackUserData"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_callback_destroy_notify"
              c:identifier="regress_test_callback_destroy_notify">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4118">Notified - callback persists until a DestroyNotify delegate
is invoked.</doc>
      <source-position filename="regress.h" line="1232"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="1"
                   destroy="2">
          <type name="TestCallbackUserData"
                c:type="RegressTestCallbackUserData"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_callback_destroy_notify_no_user_data"
              c:identifier="regress_test_callback_destroy_notify_no_user_data">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4145">Adds a scope notified callback with no user data. This can invoke an error
condition in bindings which needs to be tested.</doc>
      <source-position filename="regress.h" line="1237"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   destroy="1">
          <type name="TestCallbackUserData"
                c:type="RegressTestCallbackUserData"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_callback_return_full"
              c:identifier="regress_test_callback_return_full">
      <source-position filename="regress.h" line="1229"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackReturnFull"
                c:type="RegressTestCallbackReturnFull"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_callback_thaw_async"
              c:identifier="regress_test_callback_thaw_async">
      <source-position filename="regress.h" line="1248"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="test_callback_thaw_notifications"
              c:identifier="regress_test_callback_thaw_notifications">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4159">Invokes all callbacks installed by #test_callback_destroy_notify(),
adding up their return values, and removes them, invoking the
corresponding destroy notfications.</doc>
      <source-position filename="regress.h" line="1241"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="4166">Sum of the return values of the invoked callbacks.</doc>
        <type name="gint" c:type="int"/>
      </return-value>
    </function>
    <function name="test_callback_user_data"
              c:identifier="regress_test_callback_user_data">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4087">Call - callback parameter persists for the duration of the method
call and can be released on return.</doc>
      <source-position filename="regress.h" line="1225"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="call"
                   closure="1">
          <type name="TestCallbackUserData"
                c:type="RegressTestCallbackUserData"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_closure" c:identifier="regress_test_closure">
      <source-position filename="regress.h" line="307"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_closure_one_arg"
              c:identifier="regress_test_closure_one_arg">
      <source-position filename="regress.h" line="310"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="arg" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_closure_variant"
              c:identifier="regress_test_closure_variant">
      <source-position filename="regress.h" line="313"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="250">the return value of @closure</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
      <parameters>
        <parameter name="closure" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="247">GClosure which takes one GVariant and returns a GVariant</doc>
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="arg"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="regress.c"
               line="248">a GVariant passed as argument to @closure</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_create_fundamental_hidden_class_instance"
              c:identifier="regress_test_create_fundamental_hidden_class_instance">
      <source-position filename="regress.h" line="1145"/>
      <return-value transfer-ownership="full">
        <type name="TestFundamentalObject"
              c:type="RegressTestFundamentalObject*"/>
      </return-value>
    </function>
    <function name="test_date_in_gvalue"
              c:identifier="regress_test_date_in_gvalue">
      <source-position filename="regress.h" line="1391"/>
      <return-value transfer-ownership="full">
        <type name="GObject.Value" c:type="GValue*"/>
      </return-value>
    </function>
    <function name="test_def_error_quark"
              c:identifier="regress_test_def_error_quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="test_double" c:identifier="regress_test_double">
      <source-position filename="regress.h" line="88"/>
      <return-value transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_enum_param"
              c:identifier="regress_test_enum_param"
              moved-to="TestEnum.param">
      <source-position filename="regress.h" line="435"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="e" transfer-ownership="none">
          <type name="TestEnum" c:type="RegressTestEnum"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_error_quark"
              c:identifier="regress_test_error_quark"
              moved-to="TestError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="test_filename_return"
              c:identifier="regress_test_filename_return">
      <source-position filename="regress.h" line="116"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="530">list of strings</doc>
        <type name="GLib.SList" c:type="GSList*">
          <type name="filename"/>
        </type>
      </return-value>
    </function>
    <function name="test_float" c:identifier="regress_test_float">
      <source-position filename="regress.h" line="85"/>
      <return-value transfer-ownership="none">
        <type name="gfloat" c:type="gfloat"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gfloat" c:type="gfloat"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_garray_container_return"
              c:identifier="regress_test_garray_container_return">
      <source-position filename="regress.h" line="298"/>
      <return-value transfer-ownership="container">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="test_garray_full_return"
              c:identifier="regress_test_garray_full_return">
      <source-position filename="regress.h" line="301"/>
      <return-value transfer-ownership="full">
        <array name="GLib.PtrArray" c:type="GPtrArray*">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="test_gerror_callback"
              c:identifier="regress_test_gerror_callback">
      <source-position filename="regress.h" line="1270"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_ghash_container_return"
              c:identifier="regress_test_ghash_container_return">
      <source-position filename="regress.h" line="273"/>
      <return-value transfer-ownership="container">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_everything_return"
              c:identifier="regress_test_ghash_everything_return">
      <source-position filename="regress.h" line="276"/>
      <return-value transfer-ownership="full">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_gvalue_in"
              c:identifier="regress_test_ghash_gvalue_in">
      <source-position filename="regress.h" line="270"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="hash" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="1359">the hash table returned by
regress_test_ghash_gvalue_return().</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="GObject.Value"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_ghash_gvalue_return"
              c:identifier="regress_test_ghash_gvalue_return">
      <source-position filename="regress.h" line="267"/>
      <return-value transfer-ownership="none">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="GObject.Value"/>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_nested_everything_return"
              c:identifier="regress_test_ghash_nested_everything_return">
      <doc xml:space="preserve"
           filename="regress.c"
           line="1484">Specify nested parameterized types directly with the (type ) annotation.</doc>
      <source-position filename="regress.h" line="291"/>
      <return-value transfer-ownership="full">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="GLib.HashTable">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_nested_everything_return2"
              c:identifier="regress_test_ghash_nested_everything_return2">
      <doc xml:space="preserve"
           filename="regress.c"
           line="1501">Another way of specifying nested parameterized types: using the
element-type annotation.</doc>
      <source-position filename="regress.h" line="294"/>
      <return-value transfer-ownership="full">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="GLib.HashTable">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_nothing_in"
              c:identifier="regress_test_ghash_nothing_in">
      <source-position filename="regress.h" line="285"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GLib.HashTable" c:type="const GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_ghash_nothing_in2"
              c:identifier="regress_test_ghash_nothing_in2">
      <source-position filename="regress.h" line="288"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_ghash_nothing_return"
              c:identifier="regress_test_ghash_nothing_return">
      <source-position filename="regress.h" line="261"/>
      <return-value transfer-ownership="none">
        <type name="GLib.HashTable" c:type="const GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_nothing_return2"
              c:identifier="regress_test_ghash_nothing_return2">
      <source-position filename="regress.h" line="264"/>
      <return-value transfer-ownership="none">
        <type name="GLib.HashTable" c:type="GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_ghash_null_in"
              c:identifier="regress_test_ghash_null_in">
      <source-position filename="regress.h" line="279"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="GLib.HashTable" c:type="const GHashTable*">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_ghash_null_out"
              c:identifier="regress_test_ghash_null_out">
      <source-position filename="regress.h" line="282"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="out"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <type name="GLib.HashTable" c:type="const GHashTable**">
            <type name="utf8"/>
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_ghash_null_return"
              c:identifier="regress_test_ghash_null_return">
      <source-position filename="regress.h" line="258"/>
      <return-value transfer-ownership="none" nullable="1">
        <type name="GLib.HashTable" c:type="const GHashTable*">
          <type name="utf8"/>
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_glist_container_return"
              c:identifier="regress_test_glist_container_return">
      <source-position filename="regress.h" line="211"/>
      <return-value transfer-ownership="container">
        <type name="GLib.List" c:type="GList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_glist_everything_return"
              c:identifier="regress_test_glist_everything_return">
      <source-position filename="regress.h" line="214"/>
      <return-value transfer-ownership="full">
        <type name="GLib.List" c:type="GList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_glist_gtype_container_in"
              c:identifier="regress_test_glist_gtype_container_in">
      <source-position filename="regress.h" line="217"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="container">
          <type name="GLib.List" c:type="GList*">
            <type name="GType"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_glist_nothing_in"
              c:identifier="regress_test_glist_nothing_in">
      <source-position filename="regress.h" line="220"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GLib.List" c:type="const GList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_glist_nothing_in2"
              c:identifier="regress_test_glist_nothing_in2">
      <source-position filename="regress.h" line="223"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_glist_nothing_return"
              c:identifier="regress_test_glist_nothing_return">
      <source-position filename="regress.h" line="205"/>
      <return-value transfer-ownership="none">
        <type name="GLib.List" c:type="const GList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_glist_nothing_return2"
              c:identifier="regress_test_glist_nothing_return2">
      <source-position filename="regress.h" line="208"/>
      <return-value transfer-ownership="none">
        <type name="GLib.List" c:type="GList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_glist_null_in"
              c:identifier="regress_test_glist_null_in">
      <source-position filename="regress.h" line="226"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="GLib.SList" c:type="GSList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_glist_null_out"
              c:identifier="regress_test_glist_null_out">
      <source-position filename="regress.h" line="229"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="out_list"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <type name="GLib.SList" c:type="GSList**">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_gslist_container_return"
              c:identifier="regress_test_gslist_container_return">
      <source-position filename="regress.h" line="239"/>
      <return-value transfer-ownership="container">
        <type name="GLib.SList" c:type="GSList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_gslist_everything_return"
              c:identifier="regress_test_gslist_everything_return">
      <source-position filename="regress.h" line="242"/>
      <return-value transfer-ownership="full">
        <type name="GLib.SList" c:type="GSList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_gslist_nothing_in"
              c:identifier="regress_test_gslist_nothing_in">
      <source-position filename="regress.h" line="245"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GLib.SList" c:type="const GSList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_gslist_nothing_in2"
              c:identifier="regress_test_gslist_nothing_in2">
      <source-position filename="regress.h" line="248"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GLib.SList" c:type="GSList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_gslist_nothing_return"
              c:identifier="regress_test_gslist_nothing_return">
      <source-position filename="regress.h" line="233"/>
      <return-value transfer-ownership="none">
        <type name="GLib.SList" c:type="const GSList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_gslist_nothing_return2"
              c:identifier="regress_test_gslist_nothing_return2">
      <source-position filename="regress.h" line="236"/>
      <return-value transfer-ownership="none">
        <type name="GLib.SList" c:type="GSList*">
          <type name="utf8"/>
        </type>
      </return-value>
    </function>
    <function name="test_gslist_null_in"
              c:identifier="regress_test_gslist_null_in">
      <source-position filename="regress.h" line="251"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="GLib.SList" c:type="GSList*">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_gslist_null_out"
              c:identifier="regress_test_gslist_null_out">
      <source-position filename="regress.h" line="254"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="out_list"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <type name="GLib.SList" c:type="GSList**">
            <type name="utf8"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="test_gtype" c:identifier="regress_test_gtype">
      <source-position filename="regress.h" line="97"/>
      <return-value transfer-ownership="none">
        <type name="GType" c:type="GType"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="GType" c:type="GType"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_gvariant_as" c:identifier="regress_test_gvariant_as">
      <source-position filename="regress.h" line="362"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="453">New variant</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
    </function>
    <function name="test_gvariant_asv"
              c:identifier="regress_test_gvariant_asv">
      <source-position filename="regress.h" line="356"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="424">New variant</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
    </function>
    <function name="test_gvariant_i" c:identifier="regress_test_gvariant_i">
      <source-position filename="regress.h" line="350"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="402">New variant</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
    </function>
    <function name="test_gvariant_s" c:identifier="regress_test_gvariant_s">
      <source-position filename="regress.h" line="353"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="413">New variant</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
    </function>
    <function name="test_gvariant_v" c:identifier="regress_test_gvariant_v">
      <source-position filename="regress.h" line="359"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="442">New variant</doc>
        <type name="GLib.Variant" c:type="GVariant*"/>
      </return-value>
    </function>
    <function name="test_hash_table_callback"
              c:identifier="regress_test_hash_table_callback">
      <source-position filename="regress.h" line="1267"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="data" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4290">GHashTable that gets passed to callback</doc>
          <type name="GLib.HashTable" c:type="GHashTable*">
            <type name="utf8"/>
            <type name="gint"/>
          </type>
        </parameter>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackHashtable"
                c:type="RegressTestCallbackHashtable"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int" c:identifier="regress_test_int">
      <source-position filename="regress.h" line="67"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="gint"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int16" c:identifier="regress_test_int16">
      <source-position filename="regress.h" line="43"/>
      <return-value transfer-ownership="none">
        <type name="gint16" c:type="gint16"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gint16" c:type="gint16"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int32" c:identifier="regress_test_int32">
      <source-position filename="regress.h" line="49"/>
      <return-value transfer-ownership="none">
        <type name="gint32" c:type="gint32"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gint32" c:type="gint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int64" c:identifier="regress_test_int64">
      <source-position filename="regress.h" line="55"/>
      <return-value transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gint64" c:type="gint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int8" c:identifier="regress_test_int8">
      <source-position filename="regress.h" line="37"/>
      <return-value transfer-ownership="none">
        <type name="gint8" c:type="gint8"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gint8" c:type="gint8"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int_out_utf8"
              c:identifier="regress_test_int_out_utf8">
      <source-position filename="regress.h" line="126"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="length"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="in" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_int_value_arg"
              c:identifier="regress_test_int_value_arg">
      <source-position filename="regress.h" line="317"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="v" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_long" c:identifier="regress_test_long">
      <source-position filename="regress.h" line="73"/>
      <return-value transfer-ownership="none">
        <type name="glong" c:type="glong"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="glong" c:type="glong"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_multi_callback"
              c:identifier="regress_test_multi_callback">
      <source-position filename="regress.h" line="1216"/>
      <return-value transfer-ownership="none">
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="call">
          <type name="TestCallback" c:type="RegressTestCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_multi_double_args"
              c:identifier="regress_test_multi_double_args">
      <source-position filename="regress.h" line="131"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </parameter>
        <parameter name="one"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gdouble" c:type="gdouble*"/>
        </parameter>
        <parameter name="two"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gdouble" c:type="gdouble*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_multiline_doc_comments"
              c:identifier="regress_test_multiline_doc_comments">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4672">This is a function.

It has multiple lines in the documentation.

The sky is blue.

You will give me your credit card number.</doc>
      <source-position filename="regress.h" line="1405"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="test_nested_parameter"
              c:identifier="regress_test_nested_parameter">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4688">&lt;informaltable&gt;
  &lt;tgroup cols="3"&gt;
    &lt;thead&gt;
      &lt;row&gt;
        &lt;entry&gt;Syntax&lt;/entry&gt;
        &lt;entry&gt;Explanation&lt;/entry&gt;
        &lt;entry&gt;Examples&lt;/entry&gt;
      &lt;/row&gt;
    &lt;/thead&gt;
    &lt;tbody&gt;
      &lt;row&gt;
        &lt;entry&gt;rgb(@r, @g, @b)&lt;/entry&gt;
        &lt;entry&gt;An opaque color; @r, @g, @b can be either integers between
               0 and 255 or percentages&lt;/entry&gt;
        &lt;entry&gt;&lt;literallayout&gt;rgb(128, 10, 54)
rgb(20%, 30%, 0%)&lt;/literallayout&gt;&lt;/entry&gt;
      &lt;/row&gt;
      &lt;row&gt;
        &lt;entry&gt;rgba(@r, @g, @b, @a)&lt;/entry&gt;
        &lt;entry&gt;A translucent color; @r, @g, @b are as in the previous row,
               @a is a floating point number between 0 and 1&lt;/entry&gt;
        &lt;entry&gt;&lt;literallayout&gt;rgba(255, 255, 0, 0.5)&lt;/literallayout&gt;&lt;/entry&gt;
      &lt;/row&gt;
   &lt;/tbody&gt;
 &lt;/tgroup&gt;
&lt;/informaltable&gt;

What we're testing here is that the scanner ignores the @a nested inside XML.</doc>
      <source-position filename="regress.h" line="1408"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="a" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4690">An integer</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_noptr_callback"
              c:identifier="regress_test_noptr_callback">
      <source-position filename="regress.h" line="1210"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="call">
          <type name="TestNoPtrCallback" c:type="RegressTestNoPtrCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_null_gerror_callback"
              c:identifier="regress_test_null_gerror_callback">
      <source-position filename="regress.h" line="1273"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackGError" c:type="RegressTestCallbackGError"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_null_strv_in_gvalue"
              c:identifier="regress_test_null_strv_in_gvalue">
      <source-position filename="regress.h" line="1397"/>
      <return-value transfer-ownership="full">
        <type name="GObject.Value" c:type="GValue*"/>
      </return-value>
    </function>
    <function name="test_owned_gerror_callback"
              c:identifier="regress_test_owned_gerror_callback">
      <source-position filename="regress.h" line="1276"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none" scope="call">
          <type name="TestCallbackOwnedGError"
                c:type="RegressTestCallbackOwnedGError"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_return_allow_none"
              c:identifier="regress_test_return_allow_none">
      <source-position filename="regress.h" line="21"/>
      <return-value transfer-ownership="full" nullable="1">
        <type name="utf8" c:type="char*"/>
      </return-value>
    </function>
    <function name="test_return_nullable"
              c:identifier="regress_test_return_nullable">
      <source-position filename="regress.h" line="24"/>
      <return-value transfer-ownership="full" nullable="1">
        <type name="utf8" c:type="char*"/>
      </return-value>
    </function>
    <function name="test_short" c:identifier="regress_test_short">
      <source-position filename="regress.h" line="61"/>
      <return-value transfer-ownership="none">
        <type name="gshort" c:type="gshort"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gshort" c:type="gshort"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_simple_boxed_a_const_return"
              c:identifier="regress_test_simple_boxed_a_const_return"
              moved-to="TestSimpleBoxedA.const_return">
      <source-position filename="regress.h" line="657"/>
      <return-value transfer-ownership="none">
        <type name="TestSimpleBoxedA" c:type="const RegressTestSimpleBoxedA*"/>
      </return-value>
    </function>
    <function name="test_simple_callback"
              c:identifier="regress_test_simple_callback">
      <source-position filename="regress.h" line="1207"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="call">
          <type name="TestSimpleCallback" c:type="RegressTestSimpleCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_size" c:identifier="regress_test_size">
      <source-position filename="regress.h" line="82"/>
      <return-value transfer-ownership="none">
        <type name="gsize" c:type="gsize"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gsize" c:type="gsize"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_skip_unannotated_callback"
              c:identifier="regress_test_skip_unannotated_callback"
              introspectable="0">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4340">Should not emit a warning:
https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
      <source-position filename="regress.h" line="1280"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="callback" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="4342">No annotation here</doc>
          <type name="TestCallback" c:type="RegressTestCallback"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_ssize" c:identifier="regress_test_ssize">
      <source-position filename="regress.h" line="79"/>
      <return-value transfer-ownership="none">
        <type name="gssize" c:type="gssize"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gssize" c:type="gssize"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_struct_a_parse"
              c:identifier="regress_test_struct_a_parse"
              moved-to="TestStructA.parse">
      <source-position filename="regress.h" line="553"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="a_out"
                   direction="out"
                   caller-allocates="1"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="1752">the structure that is to be filled</doc>
          <type name="TestStructA" c:type="RegressTestStructA*"/>
        </parameter>
        <parameter name="string" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="1753">ignored</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_strv_in" c:identifier="regress_test_strv_in">
      <source-position filename="regress.h" line="142"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="arr" transfer-ownership="none">
          <array c:type="char**">
            <type name="utf8" c:type="char*"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_strv_in_gvalue"
              c:identifier="regress_test_strv_in_gvalue">
      <source-position filename="regress.h" line="1394"/>
      <return-value transfer-ownership="full">
        <type name="GObject.Value" c:type="GValue*"/>
      </return-value>
    </function>
    <function name="test_strv_out" c:identifier="regress_test_strv_out">
      <source-position filename="regress.h" line="172"/>
      <return-value transfer-ownership="full">
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="test_strv_out_c" c:identifier="regress_test_strv_out_c">
      <source-position filename="regress.h" line="175"/>
      <return-value transfer-ownership="none">
        <array c:type="const char* const*">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="test_strv_out_container"
              c:identifier="regress_test_strv_out_container">
      <source-position filename="regress.h" line="169"/>
      <return-value transfer-ownership="container">
        <array c:type="const char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="test_strv_outarg" c:identifier="regress_test_strv_outarg">
      <source-position filename="regress.h" line="178"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="retp"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="container">
          <array c:type="const char***">
            <type name="utf8" c:type="char**"/>
          </array>
        </parameter>
      </parameters>
    </function>
    <function name="test_timet" c:identifier="regress_test_timet">
      <source-position filename="regress.h" line="94"/>
      <return-value transfer-ownership="none">
        <type name="glong" c:type="time_t"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="glong" c:type="time_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_torture_signature_0"
              c:identifier="regress_test_torture_signature_0">
      <source-position filename="regress.h" line="1362"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="z"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="foo" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="q"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="m" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_torture_signature_1"
              c:identifier="regress_test_torture_signature_1"
              throws="1">
      <doc xml:space="preserve"
           filename="regress.c"
           line="4560">This function throws an error if m is odd.</doc>
      <source-position filename="regress.h" line="1370"/>
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="y"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="z"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="foo" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="q"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="m" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_torture_signature_2"
              c:identifier="regress_test_torture_signature_2">
      <source-position filename="regress.h" line="1379"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="x" transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   scope="notified"
                   closure="2"
                   destroy="3">
          <type name="TestCallbackUserData"
                c:type="RegressTestCallbackUserData"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
        <parameter name="notify" transfer-ownership="none" scope="async">
          <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
        </parameter>
        <parameter name="y"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gdouble" c:type="double*"/>
        </parameter>
        <parameter name="z"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="foo" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="q"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="m" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_uint" c:identifier="regress_test_uint">
      <source-position filename="regress.h" line="70"/>
      <return-value transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_uint16" c:identifier="regress_test_uint16">
      <source-position filename="regress.h" line="46"/>
      <return-value transfer-ownership="none">
        <type name="guint16" c:type="guint16"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="guint16" c:type="guint16"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_uint32" c:identifier="regress_test_uint32">
      <source-position filename="regress.h" line="52"/>
      <return-value transfer-ownership="none">
        <type name="guint32" c:type="guint32"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_uint64" c:identifier="regress_test_uint64">
      <source-position filename="regress.h" line="58"/>
      <return-value transfer-ownership="none">
        <type name="guint64" c:type="guint64"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="guint64" c:type="guint64"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_uint8" c:identifier="regress_test_uint8">
      <source-position filename="regress.h" line="40"/>
      <return-value transfer-ownership="none">
        <type name="guint8" c:type="guint8"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="guint8" c:type="guint8"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_ulong" c:identifier="regress_test_ulong">
      <source-position filename="regress.h" line="76"/>
      <return-value transfer-ownership="none">
        <type name="gulong" c:type="gulong"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gulong" c:type="gulong"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_unconventional_error_quark"
              c:identifier="regress_test_unconventional_error_quark"
              moved-to="TestOtherError.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="test_unichar" c:identifier="regress_test_unichar">
      <source-position filename="regress.h" line="91"/>
      <return-value transfer-ownership="none">
        <type name="gunichar" c:type="gunichar"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gunichar" c:type="gunichar"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_unsigned_enum_param"
              c:identifier="regress_test_unsigned_enum_param">
      <source-position filename="regress.h" line="438"/>
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="e" transfer-ownership="none">
          <type name="TestEnumUnsigned" c:type="RegressTestEnumUnsigned"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_ushort" c:identifier="regress_test_ushort">
      <source-position filename="regress.h" line="64"/>
      <return-value transfer-ownership="none">
        <type name="gushort" c:type="gushort"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="gushort" c:type="gushort"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_const_in"
              c:identifier="regress_test_utf8_const_in">
      <source-position filename="regress.h" line="107"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_const_return"
              c:identifier="regress_test_utf8_const_return">
      <source-position filename="regress.h" line="101"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="472">UTF-8 string</doc>
        <type name="utf8" c:type="const char*"/>
      </return-value>
    </function>
    <function name="test_utf8_inout" c:identifier="regress_test_utf8_inout">
      <source-position filename="regress.h" line="113"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="inout"
                   direction="inout"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_nonconst_return"
              c:identifier="regress_test_utf8_nonconst_return">
      <source-position filename="regress.h" line="104"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="484">UTF-8 string</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
    </function>
    <function name="test_utf8_null_in"
              c:identifier="regress_test_utf8_null_in">
      <source-position filename="regress.h" line="119"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="in"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_null_out"
              c:identifier="regress_test_utf8_null_out">
      <source-position filename="regress.h" line="122"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="char_out"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_out" c:identifier="regress_test_utf8_out">
      <source-position filename="regress.h" line="110"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="out"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_out_nonconst_return"
              c:identifier="regress_test_utf8_out_nonconst_return">
      <source-position filename="regress.h" line="137"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="regress.c"
             line="586">a copy of "first"</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="out"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="584">a copy of "second"</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_utf8_out_out"
              c:identifier="regress_test_utf8_out_out">
      <source-position filename="regress.h" line="134"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="out0"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="572">a copy of "first"</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="out1"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full">
          <doc xml:space="preserve"
               filename="regress.c"
               line="573">a copy of "second"</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_value_get_fundamental_object"
              c:identifier="regress_test_value_get_fundamental_object"
              introspectable="0">
      <source-position filename="regress.h" line="1085"/>
      <return-value>
        <type name="TestFundamentalObject"
              c:type="RegressTestFundamentalObject*"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <type name="GObject.Value" c:type="const GValue*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_value_return"
              c:identifier="regress_test_value_return">
      <source-position filename="regress.h" line="320"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="regress.c"
             line="300">the int wrapped in a GValue.</doc>
        <type name="GObject.Value" c:type="const GValue*"/>
      </return-value>
      <parameters>
        <parameter name="i" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="regress.c"
               line="298">an int</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_value_set_fundamental_object"
              c:identifier="regress_test_value_set_fundamental_object"
              introspectable="0">
      <source-position filename="regress.h" line="1082"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="value" transfer-ownership="none">
          <type name="GObject.Value" c:type="GValue*"/>
        </parameter>
        <parameter name="fundamental_object" transfer-ownership="none">
          <type name="TestFundamentalObject"
                c:type="RegressTestFundamentalObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="test_versioning"
              c:identifier="regress_test_versioning"
              version="1.32.1"
              deprecated="1"
              deprecated-version="1.33.3"
              stability="Unstable">
      <doc-version xml:space="preserve">Actually, this function was introduced earlier
  than this, but it didn't do anything before this version.</doc-version>
      <doc-deprecated xml:space="preserve">This function has been deprecated,
  because it sucks. Use foobar instead.</doc-deprecated>
      <doc-stability xml:space="preserve">Maybe someday we will find the time
  to stabilize this function. Who knows?</doc-stability>
      <source-position filename="regress.h" line="346"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
  </namespace>
</repository>
