Fix unittests, add missing allow-none
[gnome.gobject-introspection] / tests / scanner / foo-1.0-expected.tgir
index 168373e..ea7aa70 100644 (file)
             xmlns:c="http://www.gtk.org/introspection/c/1.0"
             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
   <include name="utility" version="1.0"/>
+  <include name="Gio" version="2.0"/>
   <include name="GObject" version="2.0"/>
   <include name="GLib" version="2.0"/>
-  <namespace name="foo" version="1.0" shared-library="foo">
-    <interface name="Interface" glib:type-name="FooInterface" glib:get-type="foo_interface_get_type"/>
-    <record name="InterfaceIface">
-      <field name="parent_iface">
-        <type name="GObject.TypeInterface"/>
+  <namespace name="foo" version="1.0" shared-library="libfoo.so" c:prefix="foo">
+    <enumeration name="ASingle">
+      <member name="some_single_enum" value="0"/>
+    </enumeration>
+    <enumeration name="AddressType">
+      <member name="invalid" value="0"/>
+      <member name="ipv4" value="1"/>
+      <member name="ipv6" value="2"/>
+    </enumeration>
+    <record name="BRect" glib:type-name="FooBRect" glib:get-type="foo_brect_get_type">
+      <field name="x" writable="1">
+        <type name="double"/>
+      </field>
+      <field name="y" writable="1">
+        <type name="double"/>
       </field>
+      <constructor name="new" c:identifier="foo_brect_new">
+        <return-value transfer-ownership="full">
+          <type name="BRect"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="double"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="double"/>
+          </parameter>
+        </parameters>
+      </constructor>
+      <method name="add" c:identifier="foo_brect_add">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="b2" transfer-ownership="none">
+            <type name="BRect"/>
+          </parameter>
+        </parameters>
+      </method>
     </record>
-    <interface name="SubInterface" glib:type-name="FooSubInterface" glib:get-type="foo_sub_interface_get_type">
-      <prerequisite name="Interface"/>
-      <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
+    <union name="BUnion" type-name="FooBUnion" get-type="foo_bunion_get_type">
+      <field name="type" writable="1">
+        <type name="int"/>
+      </field>
+      <field name="v" writable="1">
+        <type name="double"/>
+      </field>
+      <field name="rect" writable="1">
+        <type name="BRect"/>
+      </field>
+      <constructor name="new" c:identifier="foo_bunion_new">
+        <return-value transfer-ownership="full">
+          <type name="BUnion"/>
+        </return-value>
+      </constructor>
+      <method name="get_contained_type" c:identifier="foo_bunion_get_contained_type">
+        <return-value transfer-ownership="none">
+          <type name="int"/>
+        </return-value>
+      </method>
+    </union>
+    <record name="Boxed" glib:type-name="FooBoxed" glib:get-type="foo_boxed_get_type">
+      <constructor name="new" c:identifier="foo_boxed_new">
+        <return-value transfer-ownership="full">
+          <type name="Boxed"/>
+        </return-value>
+      </constructor>
+      <method name="method" c:identifier="foo_boxed_method">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </method>
+    </record>
+    <class name="Buffer" parent="Object" glib:type-struct="BufferClass" glib:type-name="FooBuffer" glib:get-type="foo_buffer_get_type">
+      <implements name="Interface"/>
+      <method name="some_method" c:identifier="foo_buffer_some_method">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </method>
+    </class>
+    <record name="BufferClass" glib:is-gtype-struct="1"/>
+    <callback name="Callback">
+      <return-value transfer-ownership="none">
+        <type name="boolean"/>
+      </return-value>
+      <parameters>
+        <parameter name="foo" transfer-ownership="none">
+          <type name="Object"/>
+        </parameter>
+        <parameter name="b" transfer-ownership="none">
+          <type name="boolean"/>
+        </parameter>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="DBusData" glib:type-name="FooDBusData" glib:get-type="foo_dbus_data_get_type">
+      <method name="method" c:identifier="foo_dbus_data_method">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+      </method>
+    </record>
+    <constant name="DEFINE_SHOULD_BE_EXPOSED" value="should be exposed">
+      <type name="utf8"/>
+    </constant>
+    <enumeration name="EnumFullname">
+      <member name="one" value="1"/>
+      <member name="two" value="2"/>
+      <member name="three" value="3"/>
+    </enumeration>
+    <enumeration name="EnumNoType">
+      <member name="un" value="1"/>
+      <member name="deux" value="2"/>
+      <member name="trois" value="3"/>
+      <member name="neuf" value="9"/>
+    </enumeration>
+    <enumeration name="EnumType" glib:type-name="FooEnumType" glib:get-type="foo_enum_type_get_type">
+      <member name="alpha" value="0"/>
+      <member name="beta" value="1"/>
+      <member name="delta" value="2"/>
+    </enumeration>
+    <enumeration name="Error" glib:type-name="FooError" glib:get-type="foo_error_get_type">
+      <member name="good" value="0"/>
+      <member name="bad" value="1"/>
+      <member name="ugly" value="2"/>
+    </enumeration>
+    <union name="Event">
+      <field name="type" writable="1">
+        <type name="int"/>
+      </field>
+      <field name="any" writable="1">
+        <type name="EventAny"/>
+      </field>
+      <field name="expose" writable="1">
+        <type name="EventExpose"/>
+      </field>
+    </union>
+    <record name="EventAny">
+      <field name="send_event" writable="1">
+        <type name="int8"/>
+      </field>
+    </record>
+    <record name="EventExpose">
+      <field name="send_event" writable="1">
+        <type name="int8"/>
+      </field>
+      <field name="count" writable="1">
+        <type name="int"/>
+      </field>
+    </record>
+    <bitfield name="FlagsNoType">
+      <member name="ett" value="1"/>
+      <member name="tva" value="2"/>
+      <member name="fyra" value="4"/>
+    </bitfield>
+    <bitfield name="FlagsType" glib:type-name="FooFlagsType" glib:get-type="foo_flags_type_get_type">
+      <member name="first" value="1"/>
+      <member name="second" value="2"/>
+      <member name="third" value="4"/>
+    </bitfield>
+    <interface name="Interface" glib:type-name="FooInterface" glib:get-type="foo_interface_get_type" glib:type-struct="InterfaceIface">
+      <method name="do_foo" c:identifier="foo_interface_do_foo">
         <return-value transfer-ownership="none">
           <type name="none"/>
         </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
       </method>
+      <virtual-method name="do_foo" offset="0" invoker="do_foo">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
     </interface>
-    <record name="SubInterfaceIface">
+    <record name="InterfaceIface" glib:is-gtype-struct="1">
       <field name="parent_iface">
         <type name="GObject.TypeInterface"/>
       </field>
+      <field name="do_foo">
+        <callback name="do_foo">
+          <return-value transfer-ownership="none">
+            <type name="none"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="Interface"/>
+            </parameter>
+            <parameter name="x" transfer-ownership="none">
+              <type name="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
     </record>
-    <class name="Object" parent="GObject.Object" glib:type-name="FooObject" glib:get-type="foo_object_get_type">
+    <class name="Object" parent="GObject.Object" glib:type-struct="ObjectClass" glib:type-name="FooObject" glib:get-type="foo_object_get_type">
       <implements name="Interface"/>
       <field name="parent_instance">
         <type name="GObject.Object"/>
           <type name="int"/>
         </return-value>
       </function>
+      <function name="get_default" c:identifier="foo_object_get_default">
+        <return-value transfer-ownership="full">
+          <type name="Subobject"/>
+        </return-value>
+      </function>
       <method name="external_type" c:identifier="foo_object_external_type">
         <return-value transfer-ownership="full">
           <type name="utility.Object"/>
           </parameter>
         </parameters>
       </method>
+      <method name="virtual_method" c:identifier="foo_object_virtual_method">
+        <return-value transfer-ownership="none">
+          <type name="boolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_param" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="read" c:identifier="foo_object_read">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
+      </method>
       <property name="string" writable="1" construct="1">
         <type name="utf8"/>
       </property>
           </parameter>
         </parameters>
       </glib:signal>
+      <virtual-method name="virtual_method" offset="0" invoker="virtual_method">
+        <return-value transfer-ownership="none">
+          <type name="boolean"/>
+        </return-value>
+        <parameters>
+          <parameter name="first_param" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="read_fn" offset="0" invoker="read">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="offset" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
     </class>
-    <record name="ObjectClass">
+    <record name="ObjectClass" glib:is-gtype-struct="1">
       <field name="parent_class">
         <type name="GObject.ObjectClass"/>
       </field>
+      <field name="virtual_method">
+        <callback name="virtual_method">
+          <return-value transfer-ownership="none">
+            <type name="boolean"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object"/>
+            </parameter>
+            <parameter name="first_param" transfer-ownership="none">
+              <type name="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="read_fn">
+        <callback name="read_fn">
+          <return-value transfer-ownership="none">
+            <type name="none"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="Object"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <type name="int"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <type name="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_reserved">
+        <array fixed-size="4">
+          <type name="GObject.Callback"/>
+        </array>
+      </field>
     </record>
-    <class name="Subobject" parent="Object" abstract="1" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type">
-      <implements name="Interface"/>
-      <field name="parent_instance">
-        <type name="Object"/>
+    <constant name="PIE_IS_TASTY" value="3.141590">
+      <type name="double"/>
+    </constant>
+    <record name="Rectangle">
+      <field name="x" writable="1">
+        <type name="int"/>
       </field>
-      <constructor name="new" c:identifier="foo_subobject_new">
+      <field name="y" writable="1">
+        <type name="int"/>
+      </field>
+      <field name="width" writable="1">
+        <type name="int"/>
+      </field>
+      <field name="height" writable="1">
+        <type name="int"/>
+      </field>
+      <constructor name="new" c:identifier="foo_rectangle_new">
         <return-value transfer-ownership="full">
-          <type name="Subobject"/>
+          <type name="Rectangle"/>
         </return-value>
+        <parameters>
+          <parameter name="x" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+          <parameter name="y" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+          <parameter name="width" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+          <parameter name="height" transfer-ownership="none">
+            <type name="int"/>
+          </parameter>
+        </parameters>
       </constructor>
-    </class>
-    <record name="SubobjectClass">
-      <field name="parent_class">
-        <type name="ObjectClass"/>
-      </field>
+      <method name="add" c:identifier="foo_rectangle_add">
+        <return-value transfer-ownership="none">
+          <type name="none"/>
+        </return-value>
+        <parameters>
+          <parameter name="r2" transfer-ownership="none">
+            <type name="Rectangle"/>
+          </parameter>
+        </parameters>
+      </method>
     </record>
-    <function name="init" c:identifier="foo_init">
-      <return-value transfer-ownership="none">
-        <type name="int"/>
-      </return-value>
-    </function>
-    <enumeration name="EnumType" glib:type-name="FooEnumType" glib:get-type="foo_enum_type_get_type">
-      <member name="alpha" value="0"/>
-      <member name="beta" value="1"/>
-      <member name="delta" value="2"/>
+    <constant name="SUCCESS_INT" value="4408">
+      <type name="int"/>
+    </constant>
+    <enumeration name="StackLayer">
+      <member name="desktop" value="0"/>
+      <member name="bottom" value="1"/>
+      <member name="normal" value="2"/>
+      <member name="top" value="4"/>
+      <member name="dock" value="4"/>
+      <member name="fullscreen" value="5"/>
+      <member name="focused_window" value="6"/>
+      <member name="override_redirect" value="7"/>
+      <member name="last" value="8"/>
     </enumeration>
-    <function name="enum_type_method" c:identifier="foo_enum_type_method">
-      <return-value transfer-ownership="none">
+    <record name="Struct">
+      <field name="priv" writable="1">
+        <type name="StructPrivate"/>
+      </field>
+      <field name="member" writable="1">
         <type name="int"/>
-      </return-value>
-      <parameters>
-        <parameter name="foo_enum" transfer-ownership="none">
-          <type name="EnumType"/>
-        </parameter>
-      </parameters>
-    </function>
-    <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
-      <return-value transfer-ownership="full">
-        <type name="EnumType"/>
-      </return-value>
-      <parameters>
-        <parameter name="x" transfer-ownership="none">
-          <type name="int"/>
-        </parameter>
-      </parameters>
-    </function>
-    <bitfield name="FlagsType" glib:type-name="FooFlagsType" glib:get-type="foo_flags_type_get_type">
-      <member name="first" value="1"/>
-      <member name="second" value="2"/>
-      <member name="third" value="4"/>
-    </bitfield>
-    <enumeration name="EnumNoType">
-      <member name="un" value="1"/>
-      <member name="deux" value="2"/>
-      <member name="trois" value="3"/>
-      <member name="neuf" value="9"/>
-    </enumeration>
-    <enumeration name="EnumFullname">
-      <member name="one" value="1"/>
-      <member name="two" value="2"/>
-      <member name="three" value="3"/>
-    </enumeration>
-    <record name="Boxed" glib:type-name="FooBoxed" glib:get-type="foo_boxed_get_type">
-      <constructor name="new" c:identifier="foo_boxed_new">
-        <return-value transfer-ownership="full">
-          <type name="Boxed"/>
-        </return-value>
-      </constructor>
-      <method name="method" c:identifier="foo_boxed_method">
+      </field>
+    </record>
+    <record name="StructPrivate"/>
+    <interface name="SubInterface" glib:type-name="FooSubInterface" glib:get-type="foo_sub_interface_get_type" glib:type-struct="SubInterfaceIface">
+      <prerequisite name="Interface"/>
+      <method name="do_bar" c:identifier="foo_sub_interface_do_bar">
         <return-value transfer-ownership="none">
           <type name="none"/>
         </return-value>
       </method>
-    </record>
-    <record name="DBusData" glib:type-name="FooDBusData" glib:get-type="foo_dbus_data_get_type">
-      <method name="method" c:identifier="foo_dbus_data_method">
+      <glib:signal name="destroy-event" when="LAST">
+        <return-value transfer-ownership="full">
+          <type name="none"/>
+        </return-value>
+      </glib:signal>
+      <virtual-method name="do_bar" offset="0" invoker="do_bar">
         <return-value transfer-ownership="none">
           <type name="none"/>
         </return-value>
-      </method>
+      </virtual-method>
+    </interface>
+    <record name="SubInterfaceIface" glib:is-gtype-struct="1">
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface"/>
+      </field>
+      <field name="destroy_event">
+        <callback name="destroy_event">
+          <return-value transfer-ownership="none">
+            <type name="none"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="SubInterface"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="do_bar">
+        <callback name="do_bar">
+          <return-value transfer-ownership="none">
+            <type name="none"/>
+          </return-value>
+          <parameters>
+            <parameter name="self" transfer-ownership="none">
+              <type name="SubInterface"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
     </record>
-    <callback name="Callback">
-      <return-value transfer-ownership="none">
-        <type name="boolean"/>
-      </return-value>
-      <parameters>
-        <parameter name="foo" transfer-ownership="none">
-          <type name="Object"/>
-        </parameter>
-        <parameter name="b" transfer-ownership="none">
-          <type name="boolean"/>
-        </parameter>
-        <parameter name="data" transfer-ownership="none">
-          <type name="any"/>
-        </parameter>
-      </parameters>
-    </callback>
-    <record name="Struct">
-      <field name="priv" writable="1">
-        <type name="StructPrivate"/>
+    <class name="Subobject" parent="Object" glib:type-struct="SubobjectClass" abstract="1" glib:type-name="FooSubobject" glib:get-type="foo_subobject_get_type">
+      <implements name="Interface"/>
+      <field name="parent_instance">
+        <type name="Object"/>
       </field>
-      <field name="member" writable="1">
-        <type name="int"/>
+      <constructor name="new" c:identifier="foo_subobject_new">
+        <return-value transfer-ownership="full">
+          <type name="Subobject"/>
+        </return-value>
+      </constructor>
+    </class>
+    <record name="SubobjectClass" glib:is-gtype-struct="1">
+      <field name="parent_class">
+        <type name="ObjectClass"/>
       </field>
     </record>
-    <record name="StructPrivate"/>
-    <record name="Rectangle">
+    <record name="ThingWithArray">
       <field name="x" writable="1">
         <type name="int"/>
       </field>
       <field name="y" writable="1">
         <type name="int"/>
       </field>
-      <field name="width" writable="1">
-        <type name="int"/>
+      <field name="lines" writable="1">
+        <array fixed-size="80">
+          <type name="int8"/>
+        </array>
       </field>
-      <field name="height" writable="1">
+      <field name="data" writable="1">
+        <type name="any"/>
+      </field>
+    </record>
+    <union name="Union">
+      <field name="foo" writable="1">
         <type name="int"/>
       </field>
+    </union>
+    <record name="UtilityStruct">
+      <field name="bar" writable="1">
+        <type name="utility.Struct"/>
+      </field>
     </record>
-    <function name="method_external_references" c:identifier="foo_method_external_references">
+    <function name="async_ready_callback" c:identifier="foo_async_ready_callback">
       <return-value transfer-ownership="none">
         <type name="none"/>
       </return-value>
       <parameters>
-        <parameter name="object" transfer-ownership="none">
-          <type name="utility.Object"/>
-        </parameter>
-        <parameter name="e" transfer-ownership="none">
-          <type name="utility.EnumType"/>
+        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+          <type name="Gio.Cancellable"/>
         </parameter>
-        <parameter name="f" transfer-ownership="none">
-          <type name="utility.FlagType"/>
+        <parameter name="callback" transfer-ownership="none" scope="async" closure="2">
+          <type name="Gio.AsyncReadyCallback"/>
         </parameter>
-        <parameter name="s" transfer-ownership="none">
-          <type name="utility.Struct"/>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="any"/>
         </parameter>
       </parameters>
     </function>
-    <function name="rectangle_add" c:identifier="foo_rectangle_add">
+    <function name="destroy_notify_callback" c:identifier="foo_destroy_notify_callback">
       <return-value transfer-ownership="none">
         <type name="none"/>
       </return-value>
       <parameters>
-        <parameter name="r1" transfer-ownership="full" direction="inout">
-          <type name="Rectangle"/>
+        <parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2">
+          <type name="Callback"/>
         </parameter>
-        <parameter name="r2" transfer-ownership="none">
-          <type name="Rectangle"/>
+        <parameter name="data" transfer-ownership="none">
+          <type name="any"/>
+        </parameter>
+        <parameter name="destroy" transfer-ownership="none" scope="call">
+          <type name="GLib.DestroyNotify"/>
         </parameter>
       </parameters>
     </function>
-    <function name="rectangle_new" c:identifier="foo_rectangle_new">
+    <function name="enum_type_method" c:identifier="foo_enum_type_method">
+      <return-value transfer-ownership="none">
+        <type name="int"/>
+      </return-value>
+      <parameters>
+        <parameter name="foo_enum" transfer-ownership="none">
+          <type name="EnumType"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="enum_type_returnv" c:identifier="foo_enum_type_returnv">
       <return-value transfer-ownership="full">
-        <type name="Rectangle"/>
+        <type name="EnumType"/>
       </return-value>
       <parameters>
         <parameter name="x" transfer-ownership="none">
           <type name="int"/>
         </parameter>
-        <parameter name="y" transfer-ownership="none">
-          <type name="int"/>
+      </parameters>
+    </function>
+    <function name="init" c:identifier="foo_init">
+      <return-value transfer-ownership="none">
+        <type name="int"/>
+      </return-value>
+    </function>
+    <function name="method_external_references" c:identifier="foo_method_external_references">
+      <return-value transfer-ownership="none">
+        <type name="none"/>
+      </return-value>
+      <parameters>
+        <parameter name="object" transfer-ownership="none">
+          <type name="utility.Object"/>
         </parameter>
-        <parameter name="width" transfer-ownership="none">
-          <type name="int"/>
+        <parameter name="e" transfer-ownership="none">
+          <type name="utility.EnumType"/>
         </parameter>
-        <parameter name="height" transfer-ownership="none">
-          <type name="int"/>
+        <parameter name="f" transfer-ownership="none">
+          <type name="utility.FlagType"/>
+        </parameter>
+        <parameter name="s" transfer-ownership="none">
+          <type name="utility.Struct"/>
         </parameter>
       </parameters>
     </function>
-    <record name="EventAny">
-      <field name="send_event" writable="1">
-        <type name="int8"/>
-      </field>
-    </record>
-    <record name="EventExpose">
-      <field name="send_event" writable="1">
-        <type name="int8"/>
-      </field>
-      <field name="count" writable="1">
-        <type name="int"/>
-      </field>
-    </record>
-    <union name="Event">
-      <field name="type" writable="1">
-        <type name="int"/>
-      </field>
-      <field name="any" writable="1">
-        <type name="EventAny"/>
-      </field>
-      <field name="expose" writable="1">
-        <type name="EventExpose"/>
-      </field>
-    </union>
-    <record name="BRect" glib:type-name="FooBRect" glib:get-type="foo_brect_get_type">
-      <field name="x" writable="1">
-        <type name="double"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="double"/>
-      </field>
-      <constructor name="new" c:identifier="foo_brect_new">
-        <return-value transfer-ownership="full">
-          <type name="BRect"/>
-        </return-value>
-        <parameters>
-          <parameter name="x" transfer-ownership="none">
-            <type name="double"/>
-          </parameter>
-          <parameter name="y" transfer-ownership="none">
-            <type name="double"/>
-          </parameter>
-        </parameters>
-      </constructor>
-      <method name="add" c:identifier="foo_brect_add">
-        <return-value transfer-ownership="none">
-          <type name="none"/>
-        </return-value>
-        <parameters>
-          <parameter name="b2" transfer-ownership="none">
-            <type name="BRect"/>
-          </parameter>
-        </parameters>
-      </method>
-    </record>
-    <union name="BUnion" type-name="FooBUnion" get-type="foo_bunion_get_type">
-      <field name="type" writable="1">
-        <type name="int"/>
-      </field>
-      <field name="v" writable="1">
-        <type name="double"/>
-      </field>
-      <field name="rect" writable="1">
-        <type name="BRect"/>
-      </field>
-      <constructor name="new" c:identifier="foo_bunion_new">
-        <return-value transfer-ownership="full">
-          <type name="BUnion"/>
-        </return-value>
-      </constructor>
-      <method name="get_contained_type" c:identifier="foo_bunion_get_contained_type">
-        <return-value transfer-ownership="none">
-          <type name="int"/>
-        </return-value>
-      </method>
-    </union>
-    <union name="Union">
-      <field name="foo" writable="1">
-        <type name="int"/>
-      </field>
-    </union>
-    <record name="UtilityStruct">
-      <field name="bar" writable="1">
-        <type name="utility.Struct"/>
-      </field>
-    </record>
-    <record name="ThingWithArray">
-      <field name="x" writable="1">
-        <type name="int"/>
-      </field>
-      <field name="y" writable="1">
-        <type name="int"/>
-      </field>
-      <field name="lines" writable="1">
-        <array fixed-size="80">
-          <type name="int8"/>
-        </array>
-      </field>
-      <field name="data" writable="1">
-        <type name="any"/>
-      </field>
-    </record>
-    <function name="test_unsigned_qualifier" c:identifier="foo_test_unsigned_qualifier">
+    <function name="test_const_char_param" c:identifier="foo_test_const_char_param">
       <return-value transfer-ownership="none">
         <type name="none"/>
       </return-value>
       <parameters>
-        <parameter name="unsigned_param" transfer-ownership="none">
-          <type name="uint"/>
+        <parameter name="param" transfer-ownership="none">
+          <type name="utf8"/>
         </parameter>
       </parameters>
     </function>
-    <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
+    <function name="test_const_char_retval" c:identifier="foo_test_const_char_retval">
+      <return-value transfer-ownership="none">
+        <type name="utf8"/>
+      </return-value>
+    </function>
+    <function name="test_const_struct_param" c:identifier="foo_test_const_struct_param">
       <return-value transfer-ownership="none">
         <type name="none"/>
       </return-value>
       <parameters>
-        <parameter name="unsigned_param" transfer-ownership="none">
-          <type name="uint"/>
+        <parameter name="param" transfer-ownership="none">
+          <type name="Struct"/>
         </parameter>
       </parameters>
     </function>
+    <function name="test_const_struct_retval" c:identifier="foo_test_const_struct_retval">
+      <return-value transfer-ownership="none">
+        <type name="Struct"/>
+      </return-value>
+    </function>
     <function name="test_string_array" c:identifier="foo_test_string_array">
       <return-value transfer-ownership="none">
         <type name="none"/>
         </parameter>
       </parameters>
     </function>
-    <constant name="SUCCESS_INT" value="4408">
-      <type name="int"/>
-    </constant>
+    <function name="test_unsigned_qualifier" c:identifier="foo_test_unsigned_qualifier">
+      <return-value transfer-ownership="none">
+        <type name="none"/>
+      </return-value>
+      <parameters>
+        <parameter name="unsigned_param" transfer-ownership="none">
+          <type name="uint"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="test_unsigned_type" c:identifier="foo_test_unsigned_type">
+      <return-value transfer-ownership="none">
+        <type name="none"/>
+      </return-value>
+      <parameters>
+        <parameter name="unsigned_param" transfer-ownership="none">
+          <type name="uint"/>
+        </parameter>
+      </parameters>
+    </function>
   </namespace>
 </repository>