[gobject-introspection] tests: Move Foo into Regress



commit 9fc6eb16e954559d97cdd9a03437c8b1877c2a1d
Author: Jasper St. Pierre <jstpierre mecheye net>
Date:   Sat Feb 2 11:53:53 2013 -0500

    tests: Move Foo into Regress
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693097

 .gitignore                             |    1 -
 tests/scanner/Makefile.am              |   21 +-
 tests/scanner/Regress-1.0-expected.gir | 1481 +++++++++++++++++++++++++++++++-
 tests/scanner/foo.c                    |  498 ++++++------
 tests/scanner/foo.h                    |  438 +++++-----
 5 files changed, 1932 insertions(+), 507 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 7051e4f..fd079f0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,7 +70,6 @@ tests/repository/gitestrepo
 tests/repository/gitestthrows
 tests/repository/gitypelibtest
 tests/scanner/Bar-1.0.gir
-tests/scanner/Foo-1.0.gir
 tests/scanner/GetType-1.0.gir
 tests/scanner/GtkFrob-1.0.gir
 tests/scanner/Headeronly-1.0.gir
diff --git a/tests/scanner/Makefile.am b/tests/scanner/Makefile.am
index 91ab9a8..5200959 100644
--- a/tests/scanner/Makefile.am
+++ b/tests/scanner/Makefile.am
@@ -8,7 +8,6 @@ INTROSPECTION_SCANNER_ARGS += --warn-all
 check_LTLIBRARIES = \
 	libsletter.la \
 	libtestinherit.la \
-	libfoo.la \
 	libutility.la \
 	libgtkfrob.la \
 	libgettype.la \
@@ -29,11 +28,13 @@ libsletter_la_CFLAGS = $(AM_CFLAGS)
 libsletter_la_LDFLAGS = $(AM_LDFLAGS)
 
 libtestinherit_la_SOURCES = $(srcdir)/drawable.c $(srcdir)/drawable.h
-libfoo_la_SOURCES = $(srcdir)/foo.c $(srcdir)/foo.h
-libfoo_la_LIBADD = $(top_builddir)/libgirepository-1.0.la
 libutility_la_SOURCES = $(srcdir)/utility.c $(srcdir)/utility.h
 libgtkfrob_la_SOURCES = $(srcdir)/gtkfrob.c $(srcdir)/gtkfrob.h
-libregress_la_SOURCES = $(srcdir)/regress.c $(srcdir)/regress.h $(srcdir)/annotation.c $(srcdir)/annotation.h
+libregress_la_SOURCES = \
+	$(srcdir)/regress.c $(srcdir)/regress.h \
+	$(srcdir)/annotation.c $(srcdir)/annotation.h \
+	$(srcdir)/foo.c $(srcdir)/foo.h \
+	$(NULL)
 libregress_la_LIBADD = $(GIO_LIBS)
 if HAVE_CAIRO
 libregress_la_LIBADD += $(CAIRO_LIBS)
@@ -78,9 +79,9 @@ SLetter_1_0_gir_FILES = $(libsletter_la_SOURCES)
 SLetter_1_0_gir_SCANNERFLAGS = --identifier-prefix=S --c-include="sletter.h" --warn-error
 GIRS += SLetter-1.0.gir
 
-Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir libregress.la
+Regress-1.0.gir: $(top_builddir)/Gio-2.0.gir Utility-1.0.gir libregress.la
 Regress_1_0_gir_LIBS = libregress.la
-Regress_1_0_gir_INCLUDES = Gio-2.0
+Regress_1_0_gir_INCLUDES = Gio-2.0 Utility-1.0
 if HAVE_CAIRO
 Regress_1_0_gir_INCLUDES += cairo-1.0 
 endif
@@ -103,14 +104,6 @@ TestInherit_1_0_gir_FILES = $(libtestinherit_la_SOURCES)
 TestInherit_1_0_gir_SCANNERFLAGS = --c-include="drawable.h" --warn-error
 GIRS += TestInherit-1.0.gir
 
-Foo-1.0.gir: Utility-1.0.gir libfoo.la
-Foo_1_0_gir_PACKAGES = gobject-2.0
-Foo_1_0_gir_LIBS = libfoo.la
-Foo_1_0_gir_INCLUDES = GObject-2.0 Gio-2.0 Utility-1.0
-Foo_1_0_gir_FILES = $(srcdir)/foo.h $(srcdir)/foo.c
-Foo_1_0_gir_SCANNERFLAGS = --c-include="foo.h" --warn-error
-GIRS += Foo-1.0.gir
-
 Utility-1.0.gir: libutility.la
 Utility_1_0_gir_PACKAGES = gobject-2.0
 Utility_1_0_gir_LIBS = libutility.la
diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
index 61fb07a..3cb0382 100644
--- a/tests/scanner/Regress-1.0-expected.gir
+++ b/tests/scanner/Regress-1.0-expected.gir
@@ -9,6 +9,7 @@ and/or use gtk-doc annotations.  -->
   <include name="GLib" version="2.0"/>
   <include name="GObject" version="2.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"
@@ -20,6 +21,12 @@ and/or use gtk-doc annotations.  -->
       <doc xml:whitespace="preserve">Typedef TestBoxed to test caller-allocates correctness</doc>
       <type name="TestBoxed" c:type="RegressTestBoxed"/>
     </alias>
+    <alias name="FooObjectCookie" c:type="RegressFooObjectCookie">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
+    <alias name="FooXEvent" c:type="RegressFooXEvent">
+      <type name="gpointer" c:type="gpointer"/>
+    </alias>
     <alias name="IntSet" c:type="RegressIntSet" introspectable="0">
       <doc xml:whitespace="preserve">Compatibility typedef, like telepathy-glib's TpIntSet</doc>
       <type name="Intset" c:type="RegressIntset"/>
@@ -819,28 +826,1138 @@ it says it's pointer but it's actually a string.</doc>
         </parameters>
       </glib:signal>
     </class>
-    <record name="AnnotationObjectClass"
-            c:type="RegressAnnotationObjectClass"
-            glib:is-gtype-struct-for="AnnotationObject">
+    <record name="AnnotationObjectClass"
+            c:type="RegressAnnotationObjectClass"
+            glib:is-gtype-struct-for="AnnotationObject">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+    </record>
+    <record name="AnnotationStruct" c:type="RegressAnnotationStruct">
+      <doc xml:whitespace="preserve">This is a test of an array of object in an field of a struct.</doc>
+      <field name="objects" writable="1">
+        <array zero-terminated="0"
+               c:type="RegressAnnotationObject"
+               fixed-size="10">
+          <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+        </array>
+      </field>
+    </record>
+    <constant name="DOUBLE_CONSTANT"
+              value="44.220000"
+              c:type="REGRESS_DOUBLE_CONSTANT">
+      <type name="gdouble" c:type="gdouble"/>
+    </constant>
+    <constant name="FOO_DEFINE_SHOULD_BE_EXPOSED"
+              value="should be exposed"
+              c:type="REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED">
+      <type name="utf8" c:type="gchar*"/>
+    </constant>
+    <constant name="FOO_PIE_IS_TASTY"
+              value="3.141590"
+              c:type="REGRESS_FOO_PIE_IS_TASTY">
+      <type name="gdouble" c:type="gdouble"/>
+    </constant>
+    <constant name="FOO_SUCCESS_INT"
+              value="4408"
+              c:type="REGRESS_FOO_SUCCESS_INT">
+      <type name="gint" c:type="gint"/>
+    </constant>
+    <enumeration name="FooASingle" c:type="RegressFooASingle">
+      <member name="foo_some_single_enum"
+              value="0"
+              c:identifier="REGRESS_FOO_SOME_SINGLE_ENUM">
+      </member>
+    </enumeration>
+    <enumeration name="FooAddressType" c:type="RegressFooAddressType">
+      <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">
+      <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">
+        <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">
+        <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">
+      <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">
+        <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">
+        <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"
+            glib:type-name="RegressFooBoxed"
+            glib:get-type="regress_foo_boxed_get_type"
+            c:symbol-prefix="foo_boxed">
+      <constructor name="new" c:identifier="regress_foo_boxed_new">
+        <return-value transfer-ownership="full">
+          <type name="FooBoxed" c:type="RegressFooBoxed*"/>
+        </return-value>
+      </constructor>
+      <method name="method" c:identifier="regress_foo_boxed_method">
+        <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">
+      <implements name="FooInterface"/>
+      <method name="some_method" c:identifier="regress_foo_buffer_some_method">
+        <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"
+            glib:is-gtype-struct-for="FooBuffer">
+    </record>
+    <callback name="FooCallback" c:type="RegressFooCallback">
+      <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">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </callback>
+    <record name="FooDBusData"
+            c:type="RegressFooDBusData"
+            glib:type-name="RegressFooDBusData"
+            glib:get-type="regress_foo_dbus_data_get_type"
+            c:symbol-prefix="foo_dbus_data">
+      <method name="method" c:identifier="regress_foo_dbus_data_method">
+        <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">
+      <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">
+      <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">
+      </member>
+      <member name="beta"
+              value="1"
+              c:identifier="REGRESS_FOO_ENUM_BETA"
+              glib:nick="beta">
+      </member>
+      <member name="delta"
+              value="2"
+              c:identifier="REGRESS_FOO_ENUM_DELTA"
+              glib:nick="delta">
+      </member>
+      <function name="method" c:identifier="regress_foo_enum_type_method">
+        <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">
+        <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">
+      </member>
+      <member name="bad"
+              value="1"
+              c:identifier="REGRESS_FOO_ERROR_BAD"
+              glib:nick="bad">
+      </member>
+      <member name="ugly"
+              value="2"
+              c:identifier="REGRESS_FOO_ERROR_UGLY"
+              glib:nick="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">
+      <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">
+      <field name="send_event" writable="1">
+        <type name="gint8" c:type="gint8"/>
+      </field>
+    </record>
+    <record name="FooEventExpose" c:type="RegressFooEventExpose">
+      <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">
+      <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">
+      </member>
+      <member name="second"
+              value="2"
+              c:identifier="REGRESS_FOO_FLAGS_SECOND"
+              glib:nick="second">
+      </member>
+      <member name="third"
+              value="4"
+              c:identifier="REGRESS_FOO_FLAGS_THIRD"
+              glib:nick="third">
+      </member>
+    </bitfield>
+    <record name="FooForeignStruct"
+            c:type="RegressFooForeignStruct"
+            foreign="1">
+      <field name="regress_foo" writable="1">
+        <type name="gint" c:type="int"/>
+      </field>
+      <constructor name="new" c:identifier="regress_foo_foreign_struct_new">
+        <return-value transfer-ownership="full">
+          <type name="FooForeignStruct" c:type="RegressFooForeignStruct*"/>
+        </return-value>
+      </constructor>
+      <method name="copy" c:identifier="regress_foo_foreign_struct_copy">
+        <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">
+      <function name="static_method"
+                c:identifier="regress_foo_interface_static_method">
+        <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">
+        <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">
+        <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">
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="do_regress_foo">
+        <callback name="do_regress_foo">
+          <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">
+      <implements name="FooInterface"/>
+      <constructor name="new" c:identifier="regress_foo_object_new">
+        <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">
+        <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">
+        <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:whitespace="preserve">This function is intended to match clutter_stage_get_default which
+uses a C sugar return type.</doc>
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">The global #RegressFooSubobject</doc>
+          <type name="FooSubobject" c:type="RegressFooObject*"/>
+        </return-value>
+      </function>
+      <function name="static_meth"
+                c:identifier="regress_foo_object_static_meth">
+        <return-value transfer-ownership="none">
+          <type name="gint" c:type="int"/>
+        </return-value>
+      </function>
+      <virtual-method name="read_fn" invoker="read">
+        <doc xml:whitespace="preserve">Read some stuff.</doc>
+        <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="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:whitespace="preserve">length</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="virtual_method" invoker="virtual_method">
+        <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:whitespace="preserve">This shouldn't be scanned as a constructor.</doc>
+        <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">
+        <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">
+        <return-value transfer-ownership="none">
+          <doc xml:whitespace="preserve">%NULL always</doc>
+          <type name="Utility.Object" c:type="UtilityObject*"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">a #RegressFooObject</doc>
+            <type name="FooObject" c:type="RegressFooObject*"/>
+          </instance-parameter>
+        </parameters>
+      </method>
+      <method name="get_name" c:identifier="regress_foo_object_get_name">
+        <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">
+        <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">
+        <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:whitespace="preserve">Not sure why this test is here...</doc>
+        <return-value>
+          <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:whitespace="preserve">Read some stuff.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">obj</doc>
+            <type name="FooObject" c:type="RegressFooObject*"/>
+          </instance-parameter>
+          <parameter name="offset" transfer-ownership="none">
+            <doc xml:whitespace="preserve">offset</doc>
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter name="length" transfer-ownership="none">
+            <doc xml:whitespace="preserve">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:whitespace="preserve">This is only useful from C.</doc>
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="object" transfer-ownership="none">
+            <doc xml:whitespace="preserve">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">
+        <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 transfer-ownership="none">
+            <varargs>
+            </varargs>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="various" c:identifier="regress_foo_object_various">
+        <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">
+            <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">
+        <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">
+        <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">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </glib:signal>
+    </class>
+    <record name="FooObjectClass"
+            c:type="RegressFooObjectClass"
+            glib:is-gtype-struct-for="FooObject">
+      <field name="parent_class">
+        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+      </field>
+      <field name="virtual_method">
+        <callback name="virtual_method">
+          <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">
+          <return-value transfer-ownership="none">
+            <type name="none" c:type="void"/>
+          </return-value>
+          <parameters>
+            <parameter name="object" transfer-ownership="none">
+              <type name="FooObject" c:type="RegressFooObject*"/>
+            </parameter>
+            <parameter name="offset" transfer-ownership="none">
+              <doc xml:whitespace="preserve">offset</doc>
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter name="length" transfer-ownership="none">
+              <doc xml:whitespace="preserve">length</doc>
+              <type name="gint" c:type="int"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="_reserved">
+        <array zero-terminated="0" c:type="GCallback" 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">
+    </class>
+    <record name="FooOtherObjectClass"
+            c:type="RegressFooOtherObjectClass"
+            disguised="1"
+            glib:is-gtype-struct-for="FooOtherObject">
+    </record>
+    <record name="FooRectangle" c:type="RegressFooRectangle">
+      <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">
+        <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:whitespace="preserve">add to this rect</doc>
+            <type name="FooRectangle" c:type="RegressFooRectangle*"/>
+          </instance-parameter>
+          <parameter name="r2" transfer-ownership="none">
+            <doc xml:whitespace="preserve">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:whitespace="preserve">This is a C convenience constructor; we have to (skip)
+it because it's not a boxed type.</doc>
+        <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:whitespace="preserve">Some type that is only interesting from C and should not be
+exposed to language bindings.</doc>
+      <member name="one" value="0" c:identifier="REGRESS_FOO_SKIPPABLE_ONE">
+        <doc xml:whitespace="preserve">a skippable enum value</doc>
+      </member>
+      <member name="two" value="1" c:identifier="REGRESS_FOO_SKIPPABLE_TWO">
+        <doc xml:whitespace="preserve">another skippable enum value</doc>
+      </member>
+    </enumeration>
+    <enumeration name="FooStackLayer" c:type="RegressFooStackLayer">
+      <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">
+      <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">
+    </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">
+      <prerequisite name="FooInterface"/>
+      <virtual-method name="destroy_event">
+        <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">
+        <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">
+        <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" closure="1">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <virtual-method name="do_moo" invoker="do_moo">
+        <return-value transfer-ownership="none">
+          <type name="none" c:type="void"/>
+        </return-value>
+        <parameters>
+          <instance-parameter name="self" transfer-ownership="none">
+            <type name="FooSubInterface" c:type="RegressFooSubInterface*"/>
+          </instance-parameter>
+          <parameter transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </virtual-method>
+      <method name="do_bar" c:identifier="regress_foo_sub_interface_do_bar">
+        <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">
+        <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">
+            <type name="gpointer" c:type="gpointer"/>
+          </parameter>
+        </parameters>
+      </method>
+      <method name="do_moo" c:identifier="regress_foo_sub_interface_do_moo">
+        <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 transfer-ownership="none">
+            <type name="gint" c:type="int"/>
+          </parameter>
+          <parameter transfer-ownership="none">
+            <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">
+      <field name="parent_iface">
+        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+      </field>
+      <field name="destroy_event">
+        <callback name="destroy_event">
+          <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">
+          <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_moo">
+        <callback name="do_moo">
+          <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 transfer-ownership="none">
+              <type name="gint" c:type="int"/>
+            </parameter>
+            <parameter transfer-ownership="none">
+              <type name="gpointer" c:type="gpointer"/>
+            </parameter>
+          </parameters>
+        </callback>
+      </field>
+      <field name="do_baz">
+        <callback name="do_baz">
+          <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" 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">
+      <implements name="FooInterface"/>
+      <constructor name="new" c:identifier="regress_foo_subobject_new">
+        <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">
       <field name="parent_class">
-        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+        <type name="FooObjectClass" c:type="RegressFooObjectClass"/>
       </field>
     </record>
-    <record name="AnnotationStruct" c:type="RegressAnnotationStruct">
-      <doc xml:whitespace="preserve">This is a test of an array of object in an field of a struct.</doc>
-      <field name="objects" writable="1">
-        <array zero-terminated="0"
-               c:type="RegressAnnotationObject"
-               fixed-size="10">
-          <type name="AnnotationObject" c:type="RegressAnnotationObject*"/>
+    <record name="FooThingWithArray" c:type="RegressFooThingWithArray">
+      <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" c:type="char" fixed-size="80">
+          <type name="gchar" c:type="char"/>
         </array>
       </field>
+      <field name="data" writable="1">
+        <type name="guint8" c:type="guchar*"/>
+      </field>
     </record>
-    <constant name="DOUBLE_CONSTANT"
-              value="44.220000"
-              c:type="REGRESS_DOUBLE_CONSTANT">
-      <type name="gdouble" c:type="gdouble"/>
-    </constant>
+    <union name="FooUnion" c:type="RegressFooUnion">
+      <field name="regress_foo" writable="1">
+        <type name="gint" c:type="int"/>
+      </field>
+    </union>
+    <record name="FooUtilityStruct" c:type="RegressFooUtilityStruct">
+      <field name="bar" writable="1">
+        <type name="Utility.Struct" c:type="UtilityStruct"/>
+      </field>
+    </record>
+    <callback name="FooVarargsCallback"
+              c:type="RegressFooVarargsCallback"
+              introspectable="0">
+      <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 transfer-ownership="none">
+          <varargs>
+          </varargs>
+        </parameter>
+      </parameters>
+    </callback>
     <constant name="GUINT64_CONSTANT"
               value="18446744073709551615"
               c:type="REGRESS_GUINT64_CONSTANT">
@@ -3011,6 +4128,324 @@ detection, and fixing it via regress_annotations.</doc>
         <type name="GLib.Quark" c:type="GQuark"/>
       </return-value>
     </function>
+    <function name="foo_async_ready_callback"
+              c:identifier="regress_foo_async_ready_callback">
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="cancellable" transfer-ownership="none" allow-none="1">
+          <type name="Gio.Cancellable" c:type="GCancellable*"/>
+        </parameter>
+        <parameter name="callback"
+                   transfer-ownership="none"
+                   allow-none="1"
+                   scope="async"
+                   closure="2">
+          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
+        </parameter>
+        <parameter name="user_data" transfer-ownership="none">
+          <type name="gpointer" c:type="gpointer"/>
+        </parameter>
+      </parameters>
+    </function>
+    <function name="foo_destroy_notify_callback"
+              c:identifier="regress_foo_destroy_notify_callback">
+      <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">
+          <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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:whitespace="preserve">This should be scanned as a top-level function, and shouldn't cause
+a "Can't find matching type for constructor" warning.</doc>
+      <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:whitespace="preserve">This is a C convenience constructor; we have to (skip)
+it because it's not a boxed type.</doc>
+      <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:whitespace="preserve">Does something that's only interesting from C and should not be
+exposed to language bindings.</doc>
+      <return-value transfer-ownership="none">
+        <type name="none" c:type="void"/>
+      </return-value>
+      <parameters>
+        <parameter name="fs" transfer-ownership="none">
+          <doc xml:whitespace="preserve">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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
+      <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">
       <return-value transfer-ownership="none">
         <type name="none" c:type="void"/>
diff --git a/tests/scanner/foo.c b/tests/scanner/foo.c
index f8cc350..c883ada 100644
--- a/tests/scanner/foo.c
+++ b/tests/scanner/foo.c
@@ -1,45 +1,44 @@
 #include "foo.h"
-#include "girepository.h"
 
 /* A hidden type not exposed publicly, similar to GUPNP's XML wrapper
    object */
-typedef struct _FooHidden FooHidden;
-
-int foo_init_argv (int argc, char **argv);
-int foo_init_argv_address (int *argc, char ***argv);
-void foo_private_function (FooObject *foo);
-void foo_test_unsigned (unsigned int uint);
-void foo_interface_do_foo (FooInterface *self, int x);
-void foo_do_foo (FooInterface *self, int x);
-int foo_enum_method (FooEnumType foo_enum);
-FooHidden * foo_hidden_copy (const FooHidden *boxed);
-void foo_hidden_free (FooHidden *boxed);
-GType foo_hidden_get_type (void);
-FooBoxed *foo_boxed_copy (const FooBoxed *boxed);
-void foo_boxed_free (FooBoxed *boxed);
-void foo_dbus_data_free (FooDBusData *boxed);
-FooDBusData *foo_dbus_data_copy (const FooDBusData *boxed);
+typedef struct _RegressFooHidden RegressFooHidden;
+
+int regress_foo_init_argv (int argc, char **argv);
+int regress_foo_init_argv_address (int *argc, char ***argv);
+void regress_foo_private_function (RegressFooObject *regress_foo);
+void regress_foo_test_unsigned (unsigned int uint);
+void regress_foo_interface_do_regress_foo (RegressFooInterface *self, int x);
+void regress_foo_do_regress_foo (RegressFooInterface *self, int x);
+int regress_foo_enum_method (RegressFooEnumType regress_foo_enum);
+RegressFooHidden * regress_foo_hidden_copy (const RegressFooHidden *boxed);
+void regress_foo_hidden_free (RegressFooHidden *boxed);
+GType regress_foo_hidden_get_type (void);
+RegressFooBoxed *regress_foo_boxed_copy (const RegressFooBoxed *boxed);
+void regress_foo_boxed_free (RegressFooBoxed *boxed);
+void regress_foo_dbus_data_free (RegressFooDBusData *boxed);
+RegressFooDBusData *regress_foo_dbus_data_copy (const RegressFooDBusData *boxed);
 
 typedef struct
 {
   int i;
 } PrivateStruct;
 
-void foo_private_function (FooObject *foo)
+void regress_foo_private_function (RegressFooObject *regress_foo)
 {
 
 }
 
 GType
-foo_interface_get_type (void)
+regress_foo_interface_get_type (void)
 {
   static GType object_type = 0;
 
   if (!object_type)
     {
       object_type = g_type_register_static_simple (G_TYPE_INTERFACE,
-                                                   "FooInterface",
-                                                   sizeof (FooInterfaceIface),
+                                                   "RegressFooInterface",
+                                                   sizeof (RegressFooInterfaceIface),
                                                    NULL, 0, NULL, 0);
 
       g_type_interface_add_prerequisite (object_type, G_TYPE_OBJECT);
@@ -48,12 +47,12 @@ foo_interface_get_type (void)
   return object_type;
 }
 
-void foo_interface_do_foo (FooInterface *self, int x)
+void regress_foo_interface_do_regress_foo (RegressFooInterface *self, int x)
 {
-  FOO_INTERFACE_GET_INTERFACE(self)->do_foo (self, x);
+  REGRESS_FOO_INTERFACE_GET_INTERFACE(self)->do_regress_foo (self, x);
 }
 
-void foo_interface_static_method (int x)
+void regress_foo_interface_static_method (int x)
 {
 }
 
@@ -68,14 +67,14 @@ enum {
   LAST_SIGNAL
 };
 
-static guint foo_object_signals[LAST_SIGNAL] = { 0 };
+static guint regress_foo_object_signals[LAST_SIGNAL] = { 0 };
 
 static void
-foo_foo_interface_init (gpointer         g_iface,
-			gpointer         iface_data)
+regress_foo_regress_foo_interface_init (gpointer         g_iface,
+                                        gpointer         iface_data)
 {
-  FooInterfaceIface *iface = (FooInterfaceIface *)g_iface;
-  iface->do_foo = foo_do_foo;
+  RegressFooInterfaceIface *iface = (RegressFooInterfaceIface *)g_iface;
+  iface->do_regress_foo = regress_foo_do_regress_foo;
 }
 
 enum {
@@ -84,75 +83,74 @@ enum {
 };
 
 static void
-foo_sub_interface_class_init (gpointer g_class, gpointer class_data);
+regress_foo_sub_interface_class_init (gpointer g_class, gpointer class_data);
 
-static guint foo_subiface_signals[SUBIFACE_LAST_SIGNAL] = { 0 };
+static guint regress_foo_subiface_signals[SUBIFACE_LAST_SIGNAL] = { 0 };
 
 GType
-foo_sub_interface_get_type (void)
+regress_foo_sub_interface_get_type (void)
 {
   static GType object_type = 0;
 
   if (!object_type)
     {
       object_type = g_type_register_static_simple (G_TYPE_INTERFACE,
-                                                   "FooSubInterface",
-                                                   sizeof (FooSubInterfaceIface),
-                                                   foo_sub_interface_class_init, 0, NULL, 0);
+                                                   "RegressFooSubInterface",
+                                                   sizeof (RegressFooSubInterfaceIface),
+                                                   regress_foo_sub_interface_class_init, 0, NULL, 0);
 
-      g_type_interface_add_prerequisite (object_type, FOO_TYPE_INTERFACE);
+      g_type_interface_add_prerequisite (object_type, REGRESS_FOO_TYPE_INTERFACE);
     }
 
   return object_type;
 }
 
 static void
-foo_sub_interface_class_init (gpointer g_class, gpointer class_data)
+regress_foo_sub_interface_class_init (gpointer g_class, gpointer class_data)
 {
-  foo_subiface_signals[SUBIFACE_DESTROY_EVENT] =
-    g_signal_new ("destroy-event", FOO_TYPE_SUBINTERFACE,
+  regress_foo_subiface_signals[SUBIFACE_DESTROY_EVENT] =
+    g_signal_new ("destroy-event", REGRESS_FOO_TYPE_SUBINTERFACE,
                   G_SIGNAL_RUN_LAST,
-                  G_STRUCT_OFFSET (FooSubInterfaceIface, destroy_event),
-                  NULL, NULL,
-                  gi_cclosure_marshal_generic,
+                  G_STRUCT_OFFSET (RegressFooSubInterfaceIface, destroy_event),
+                  NULL, NULL, NULL,
                   G_TYPE_NONE,
                   0,
                   G_TYPE_NONE);
 }
 
 void
-foo_sub_interface_do_bar (FooSubInterface *self)
+regress_foo_sub_interface_do_bar (RegressFooSubInterface *self)
 {
-  FOO_SUBINTERFACE_GET_INTERFACE(self)->do_bar (self);
+  REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_bar (self);
 }
 
 void
-foo_sub_interface_do_moo (FooSubInterface *self, int x, gpointer y)
+regress_foo_sub_interface_do_moo (RegressFooSubInterface *self, int x, gpointer y)
 {
-  FOO_SUBINTERFACE_GET_INTERFACE(self)->do_moo (self, x, y);
+  REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_moo (self, x, y);
 }
 
 /**
- * foo_sub_interface_do_baz:
+ * regress_foo_sub_interface_do_baz:
  * @self:
  * @callback: (scope call):
  * @user_data:
  */
 void
-foo_sub_interface_do_baz (FooSubInterface *self, GCallback callback, gpointer user_data)
+regress_foo_sub_interface_do_baz (RegressFooSubInterface *self, GCallback callback, gpointer user_data)
 {
-  FOO_SUBINTERFACE_GET_INTERFACE(self)->do_baz (self, callback, user_data);
+  REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(self)->do_baz (self, callback, user_data);
 }
 
-G_DEFINE_TYPE_EXTENDED (FooObject, foo_object, G_TYPE_OBJECT,
-			0, G_IMPLEMENT_INTERFACE (FOO_TYPE_INTERFACE,
-						  foo_foo_interface_init));
+G_DEFINE_TYPE_EXTENDED (RegressFooObject, regress_foo_object, G_TYPE_OBJECT,
+			0, G_IMPLEMENT_INTERFACE (REGRESS_FOO_TYPE_INTERFACE,
+						  regress_foo_regress_foo_interface_init));
 
 static void
-foo_object_set_property (GObject         *object,
-                         guint            prop_id,
-                         const GValue    *value,
-                         GParamSpec      *pspec)
+regress_foo_object_set_property (GObject         *object,
+                                 guint            prop_id,
+                                 const GValue    *value,
+                                 GParamSpec      *pspec)
 {
   switch (prop_id)
     {
@@ -167,10 +165,10 @@ foo_object_set_property (GObject         *object,
 }
 
 static void
-foo_object_get_property (GObject         *object,
-                         guint            prop_id,
-                         GValue          *value,
-                         GParamSpec      *pspec)
+regress_foo_object_get_property (GObject         *object,
+                                 guint            prop_id,
+                                 GValue          *value,
+                                 GParamSpec      *pspec)
 {
   switch (prop_id)
     {
@@ -185,14 +183,14 @@ foo_object_get_property (GObject         *object,
 }
 
 static void
-foo_object_class_init (FooObjectClass *klass)
+regress_foo_object_class_init (RegressFooObjectClass *klass)
 {
   GObjectClass *gobject_class;
 
   gobject_class = G_OBJECT_CLASS (klass);
 
-  gobject_class->set_property = foo_object_set_property;
-  gobject_class->get_property = foo_object_get_property;
+  gobject_class->set_property = regress_foo_object_set_property;
+  gobject_class->get_property = regress_foo_object_get_property;
 
   g_object_class_install_property (gobject_class,
                                    PROP_STRING,
@@ -206,9 +204,9 @@ foo_object_class_init (FooObjectClass *klass)
                                    g_param_spec_boxed ("hidden",
 						       "hidden property",
 						       "should not be exposed",
-						       foo_hidden_get_type (),
+						       regress_foo_hidden_get_type (),
 						       G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
-  foo_object_signals[SIGNAL] =
+  regress_foo_object_signals[SIGNAL] =
     g_signal_new ("signal",
 		  G_OBJECT_CLASS_TYPE (gobject_class),
 		  G_SIGNAL_RUN_LAST,
@@ -220,80 +218,80 @@ foo_object_class_init (FooObjectClass *klass)
 }
 
 static void
-foo_object_init (FooObject *object)
+regress_foo_object_init (RegressFooObject *object)
 {
 
 }
 
-FooObject *
-foo_object_new (void)
+RegressFooObject *
+regress_foo_object_new (void)
 {
-  return g_object_new (FOO_TYPE_OBJECT, NULL);
+  return g_object_new (REGRESS_FOO_TYPE_OBJECT, NULL);
 }
 
 GObject *
-foo_object_new_as_super (void)
+regress_foo_object_new_as_super (void)
 {
-  return g_object_new (FOO_TYPE_OBJECT, NULL);
+  return g_object_new (REGRESS_FOO_TYPE_OBJECT, NULL);
 }
 
 /**
- * foo_object_external_type:
- * @object: a #FooObject
+ * regress_foo_object_external_type:
+ * @object: a #RegressFooObject
  *
  * Returns: (transfer none): %NULL always
  */
 UtilityObject*
-foo_object_external_type (FooObject *object)
+regress_foo_object_external_type (RegressFooObject *object)
 {
   return NULL;
 }
 
 void                  
-foo_object_take_all (FooObject *object, int x, ...)
+regress_foo_object_take_all (RegressFooObject *object, int x, ...)
 {
 
 }
 
 void
-foo_do_foo (FooInterface *self, int x)
+regress_foo_do_regress_foo (RegressFooInterface *self, int x)
 {
 
 
 }
 
 void
-foo_object_is_it_time_yet (FooObject *object, time_t time)
+regress_foo_object_is_it_time_yet (RegressFooObject *object, time_t time)
 {
 }
 
 /**
- * foo_object_new_cookie: (skip)
+ * regress_foo_object_new_cookie: (skip)
  * @object:
  * @target:
  *
  * Not sure why this test is here...
  */
-FooObjectCookie
-foo_object_new_cookie (FooObject *object, const char *target)
+RegressFooObjectCookie
+regress_foo_object_new_cookie (RegressFooObject *object, const char *target)
 {
   return NULL;
 }
 
 const char *
-foo_object_get_name (FooObject *object)
+regress_foo_object_get_name (RegressFooObject *object)
 {
-  return "foo";
+  return "regress_foo";
 }
 
 char *
-foo_object_dup_name (FooObject *object)
+regress_foo_object_dup_name (RegressFooObject *object)
 {
-  return g_strdup ("foo");
+  return g_strdup ("regress_foo");
 }
 
 /**
- * foo_object_read:
+ * regress_foo_object_read:
  * @object: obj
  * @offset: offset
  * @length: length
@@ -303,244 +301,244 @@ foo_object_dup_name (FooObject *object)
  * Virtual: read_fn
  */
 void
-foo_object_read (FooObject *object, int offset, int length)
+regress_foo_object_read (RegressFooObject *object, int offset, int length)
 {
 
 }
 
 /**
- * foo_object_skipped_method: (skip)
+ * regress_foo_object_skipped_method: (skip)
  * @object: obj
  *
  * This is only useful from C.
  */
 void
-foo_object_skipped_method (FooObject *object)
+regress_foo_object_skipped_method (RegressFooObject *object)
 {
 }
 
-G_DEFINE_ABSTRACT_TYPE (FooSubobject, foo_subobject, FOO_TYPE_OBJECT);
+G_DEFINE_ABSTRACT_TYPE (RegressFooSubobject, regress_foo_subobject, REGRESS_FOO_TYPE_OBJECT);
 
 static void
-foo_subobject_class_init (FooSubobjectClass *klass)
+regress_foo_subobject_class_init (RegressFooSubobjectClass *klass)
 {
 
 }
 
 static void
-foo_subobject_init (FooSubobject *object)
+regress_foo_subobject_init (RegressFooSubobject *object)
 {
 
 }
 
 /**
- * foo_object_get_default:
+ * regress_foo_object_get_default:
  *
  * This function is intended to match clutter_stage_get_default which
  * uses a C sugar return type.
  *
- * Return value: (type FooSubobject) (transfer none): The global #FooSubobject
+ * Return value: (type RegressFooSubobject) (transfer none): The global #RegressFooSubobject
  */
-FooObject *
-foo_object_get_default ()
+RegressFooObject *
+regress_foo_object_get_default ()
 {
   return NULL;
 }
 
-int foo_init (void)
+int regress_foo_init (void)
 {
-  return FOO_SUCCESS_INT;
+  return REGRESS_FOO_SUCCESS_INT;
 }
 
-int foo_init_argv (int argc, char **argv)
+int regress_foo_init_argv (int argc, char **argv)
 {
-  return FOO_SUCCESS_INT;
+  return REGRESS_FOO_SUCCESS_INT;
 }
 
-int foo_init_argv_address (int *argc, char ***argv)
+int regress_foo_init_argv_address (int *argc, char ***argv)
 {
-  return FOO_SUCCESS_INT;
+  return REGRESS_FOO_SUCCESS_INT;
 }
 
 GType
-foo_enum_type_get_type (void)
-{
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GEnumValue values[] = {
-            { FOO_ENUM_ALPHA, "FOO_ENUM_ALPHA", "alpha" },
-            { FOO_ENUM_BETA, "FOO_ENUM_BETA", "beta" },
-            { FOO_ENUM_DELTA, "FOO_ENUM_DELTA", "delta" },
-            { 0, NULL, NULL }
-        };
-        etype = g_enum_register_static (g_intern_static_string ("FooEnumType"), values);
-    }
-    return etype;
+regress_foo_enum_type_get_type (void)
+{
+  static GType etype = 0;
+  if (G_UNLIKELY(etype == 0)) {
+    static const GEnumValue values[] = {
+      { REGRESS_FOO_ENUM_ALPHA, "REGRESS_FOO_ENUM_ALPHA", "alpha" },
+      { REGRESS_FOO_ENUM_BETA, "REGRESS_FOO_ENUM_BETA", "beta" },
+      { REGRESS_FOO_ENUM_DELTA, "REGRESS_FOO_ENUM_DELTA", "delta" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static (g_intern_static_string ("RegressFooEnumType"), values);
+  }
+  return etype;
 }
 
-int foo_enum_method (FooEnumType foo_enum)
+int regress_foo_enum_method (RegressFooEnumType regress_foo_enum)
 {
   return 0;
 }
 
 
 GType
-foo_flags_type_get_type (void)
-{
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GFlagsValue values[] = {
-            { FOO_FLAGS_FIRST, "FOO_FLAGS_FIRST", "first" },
-            { FOO_FLAGS_SECOND, "FOO_FLAGS_SECOND", "second" },
-            { FOO_FLAGS_THIRD, "FOO_FLAGS_THIRD", "third" },
-            { 0, NULL, NULL }
-        };
-        etype = g_flags_register_static (g_intern_static_string ("FooFlagsType"), values);
-    }
-    return etype;
+regress_foo_flags_type_get_type (void)
+{
+  static GType etype = 0;
+  if (G_UNLIKELY(etype == 0)) {
+    static const GFlagsValue values[] = {
+      { REGRESS_FOO_FLAGS_FIRST, "REGRESS_FOO_FLAGS_FIRST", "first" },
+      { REGRESS_FOO_FLAGS_SECOND, "REGRESS_FOO_FLAGS_SECOND", "second" },
+      { REGRESS_FOO_FLAGS_THIRD, "REGRESS_FOO_FLAGS_THIRD", "third" },
+      { 0, NULL, NULL }
+    };
+    etype = g_flags_register_static (g_intern_static_string ("RegressFooFlagsType"), values);
+  }
+  return etype;
 }
 
-struct _FooBoxed
+struct _RegressFooBoxed
 {
   int private;
 };
 
 
-FooBoxed *
-foo_boxed_copy (const FooBoxed *boxed)
+RegressFooBoxed *
+regress_foo_boxed_copy (const RegressFooBoxed *boxed)
 {
-  return (FooBoxed *)g_memdup (boxed, sizeof (FooBoxed));
+  return (RegressFooBoxed *)g_memdup (boxed, sizeof (RegressFooBoxed));
 }
 
 void
-foo_boxed_free (FooBoxed *boxed)
+regress_foo_boxed_free (RegressFooBoxed *boxed)
 {
-  g_slice_free (FooBoxed, boxed);
+  g_slice_free (RegressFooBoxed, boxed);
 }
 
 
 GType
-foo_boxed_get_type (void)
+regress_foo_boxed_get_type (void)
 {
   static GType our_type = 0;
   
   if (our_type == 0)
-    our_type = g_boxed_type_register_static ("FooBoxed",
-					     (GBoxedCopyFunc) foo_boxed_copy,
-					     (GBoxedFreeFunc) foo_boxed_free);
+    our_type = g_boxed_type_register_static ("RegressFooBoxed",
+					     (GBoxedCopyFunc) regress_foo_boxed_copy,
+					     (GBoxedFreeFunc) regress_foo_boxed_free);
   return our_type;
 }
 
-FooBoxed *
-foo_boxed_new (void)
+RegressFooBoxed *
+regress_foo_boxed_new (void)
 {
-  return g_slice_new0 (FooBoxed);
+  return g_slice_new0 (RegressFooBoxed);
 }
 
 void
-foo_boxed_method (FooBoxed *boxed)
+regress_foo_boxed_method (RegressFooBoxed *boxed)
 {
 
 }
 
-/* FooDbus */
-struct _FooDBusData
+/* RegressFooDbus */
+struct _RegressFooDBusData
 {
   double private;
 };
 
-FooDBusData *
-foo_dbus_data_copy (const FooDBusData *boxed)
+RegressFooDBusData *
+regress_foo_dbus_data_copy (const RegressFooDBusData *boxed)
 {
-  return (FooDBusData *)g_memdup (boxed, sizeof (FooDBusData));
+  return (RegressFooDBusData *)g_memdup (boxed, sizeof (RegressFooDBusData));
 }
 
 void
-foo_dbus_data_free (FooDBusData *boxed)
+regress_foo_dbus_data_free (RegressFooDBusData *boxed)
 {
-  g_slice_free (FooDBusData, boxed);
+  g_slice_free (RegressFooDBusData, boxed);
 }
 
 
 GType
-foo_dbus_data_get_type (void)
+regress_foo_dbus_data_get_type (void)
 {
   static GType our_type = 0;
   
   if (our_type == 0)
-    our_type = g_boxed_type_register_static ("FooDBusData",
-					     (GBoxedCopyFunc) foo_dbus_data_copy,
-					     (GBoxedFreeFunc) foo_dbus_data_free);
+    our_type = g_boxed_type_register_static ("RegressFooDBusData",
+					     (GBoxedCopyFunc) regress_foo_dbus_data_copy,
+					     (GBoxedFreeFunc) regress_foo_dbus_data_free);
   return our_type;
 }
 
 GType
-foo_brect_get_type (void)
+regress_foo_brect_get_type (void)
 {
   static GType our_type = 0;
   
   if (our_type == 0)
-    our_type = g_boxed_type_register_static ("FooBRect",
+    our_type = g_boxed_type_register_static ("RegressFooBRect",
 					     (GBoxedCopyFunc) g_memdup, /* Won't work */
 					     (GBoxedFreeFunc) g_free);
   return our_type;
 }
 
 GType
-foo_bunion_get_type (void)
+regress_foo_bunion_get_type (void)
 {
   static GType our_type = 0;
   
   if (our_type == 0)
-    our_type = g_boxed_type_register_static ("FooBUnion",
+    our_type = g_boxed_type_register_static ("RegressFooBUnion",
 					     (GBoxedCopyFunc) g_memdup, /* Won't work */
 					     (GBoxedFreeFunc) g_free);
   return our_type;
 }
 
-void foo_test_unsigned (unsigned int uint)
+void regress_foo_test_unsigned (unsigned int uint)
 {
 }
 
 /**
- * foo_test_string_array:
+ * regress_foo_test_string_array:
  * @array: (array zero-terminated=1):
  */
 void
-foo_test_string_array (char **array)
+regress_foo_test_string_array (char **array)
 {
 }
 
 /**
- * foo_test_string_array_with_g:
+ * regress_foo_test_string_array_with_g:
  * @array: (array zero-terminated=1):
  */
 void
-foo_test_string_array_with_g (gchar **array)
+regress_foo_test_string_array_with_g (gchar **array)
 {
 }
 
 /**
- * foo_test_array:
+ * regress_foo_test_array:
  *
  * Returns: (element-type utf8) (transfer container):
  */
 GArray *
-foo_test_array (void)
+regress_foo_test_array (void)
 {
   return NULL;
 }
 
 /**
- * foo_rectangle_new: (skip)
+ * regress_foo_rectangle_new: (skip)
  *
  * This is a C convenience constructor; we have to (skip)
  * it because it's not a boxed type.
  */
-FooRectangle *
-foo_rectangle_new (int x, int y, int width, int height)
+RegressFooRectangle *
+regress_foo_rectangle_new (int x, int y, int width, int height)
 {
-  FooRectangle *r = g_slice_new (FooRectangle);
+  RegressFooRectangle *r = g_slice_new (RegressFooRectangle);
   r->x = x;
   r->y = y;
   r->width = width;
@@ -549,250 +547,250 @@ foo_rectangle_new (int x, int y, int width, int height)
 }
 
 /**
- * foo_rectangle_add:
+ * regress_foo_rectangle_add:
  * @r1: (inout): add to this rect
  * @r2: source rectangle
  */
 void
-foo_rectangle_add(FooRectangle *r1, const FooRectangle *r2)
+regress_foo_rectangle_add(RegressFooRectangle *r1, const RegressFooRectangle *r2)
 {
 
 }
 
-/* FooHidden */
+/* RegressFooHidden */
 
-struct _FooHidden
+struct _RegressFooHidden
 {
   char *frob;
 };
 
-FooHidden *
-foo_hidden_copy (const FooHidden *boxed)
+RegressFooHidden *
+regress_foo_hidden_copy (const RegressFooHidden *boxed)
 {
-  return (FooHidden *)g_memdup (boxed, sizeof (FooHidden));
+  return (RegressFooHidden *)g_memdup (boxed, sizeof (RegressFooHidden));
 }
 
 void
-foo_hidden_free (FooHidden *boxed)
+regress_foo_hidden_free (RegressFooHidden *boxed)
 {
-  g_slice_free (FooHidden, boxed);
+  g_slice_free (RegressFooHidden, boxed);
 }
 
 GType
-foo_hidden_get_type (void)
+regress_foo_hidden_get_type (void)
 {
   static GType our_type = 0;
 
   if (our_type == 0)
-    our_type = g_boxed_type_register_static ("FooHidden",
-					     (GBoxedCopyFunc) foo_hidden_copy,
-					     (GBoxedFreeFunc) foo_hidden_free);
+    our_type = g_boxed_type_register_static ("RegressFooHidden",
+					     (GBoxedCopyFunc) regress_foo_hidden_copy,
+					     (GBoxedFreeFunc) regress_foo_hidden_free);
   return our_type;
 }
 
 GType
-foo_error_get_type (void)
-{
-    static GType etype = 0;
-    if (G_UNLIKELY(etype == 0)) {
-        static const GEnumValue values[] = {
-            { FOO_ERROR_GOOD, "FOO_ERROR_GOOD", "good" },
-            { FOO_ERROR_BAD, "FOO_ERROR_BAD", "bad" },
-            { FOO_ERROR_UGLY, "FOO_ERROR_UGLY", "ugly" },
-            { 0, NULL, NULL }
-        };
-        etype = g_enum_register_static (g_intern_static_string ("FooError"), values);
-    }
-    return etype;
+regress_foo_error_get_type (void)
+{
+  static GType etype = 0;
+  if (G_UNLIKELY(etype == 0)) {
+    static const GEnumValue values[] = {
+      { REGRESS_FOO_ERROR_GOOD, "REGRESS_FOO_ERROR_GOOD", "good" },
+      { REGRESS_FOO_ERROR_BAD, "REGRESS_FOO_ERROR_BAD", "bad" },
+      { REGRESS_FOO_ERROR_UGLY, "REGRESS_FOO_ERROR_UGLY", "ugly" },
+      { 0, NULL, NULL }
+    };
+    etype = g_enum_register_static (g_intern_static_string ("RegressFooError"), values);
+  }
+  return etype;
 }
 
 GQuark
-foo_error_quark (void)
+regress_foo_error_quark (void)
 {
-  return g_quark_from_static_string ("foo-error-quark");
+  return g_quark_from_static_string ("regress_foo-error-quark");
 }
 
 void
-foo_some_variant (guint x, va_list args)
+regress_foo_some_variant (guint x, va_list args)
 {
 }
 
-GType foo_tile_handler_get_type(void);
+GType regress_foo_tile_handler_get_type(void);
 
 /* This setup of a totally hidden parent class matches
  * http://bugzilla.gnome.org/show_bug.cgi?id=561360
  */
-#define FOO_TYPE_TILE_HANDLER        (foo_tile_handler_get_type ())
-#define FOO_TILE_HANDLER(object)     (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_TILE_HANDLER, FooTileHandler))
-#define FOO_IS_TILE_HANDLER(object)  (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_TILE_HANDLER))
+#define REGRESS_FOO_TYPE_TILE_HANDLER        (regress_foo_tile_handler_get_type ())
+#define REGRESS_FOO_TILE_HANDLER(object)     (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_TILE_HANDLER, RegressFooTileHandler))
+#define REGRESS_FOO_IS_TILE_HANDLER(object)  (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_TILE_HANDLER))
 
-struct _FooTileHandler
+struct _RegressFooTileHandler
 {
-  FooObject parent_instance;
+  RegressFooObject parent_instance;
 };
 
 
-struct _FooTileHandlerClass
+struct _RegressFooTileHandlerClass
 {
-  FooObjectClass parent_class;
+  RegressFooObjectClass parent_class;
 };
 
-typedef struct _FooTileHandler          FooTileHandler;
-typedef struct _FooTileHandlerClass     FooTileHandlerClass;
+typedef struct _RegressFooTileHandler          RegressFooTileHandler;
+typedef struct _RegressFooTileHandlerClass     RegressFooTileHandlerClass;
 
-G_DEFINE_TYPE(FooTileHandler, foo_tile_handler, FOO_TYPE_OBJECT);
+G_DEFINE_TYPE(RegressFooTileHandler, regress_foo_tile_handler, REGRESS_FOO_TYPE_OBJECT);
 
 static void
-foo_tile_handler_class_init (FooTileHandlerClass *klass)
+regress_foo_tile_handler_class_init (RegressFooTileHandlerClass *klass)
 {
 
 }
 
 static void
-foo_tile_handler_init (FooTileHandler *object)
+regress_foo_tile_handler_init (RegressFooTileHandler *object)
 {
 
 }
 
-struct _FooBuffer
+struct _RegressFooBuffer
 {
-  FooTileHandler parent_instance;
+  RegressFooTileHandler parent_instance;
 };
 
-struct _FooBufferClass
+struct _RegressFooBufferClass
 {
-  FooTileHandlerClass parent_class;
+  RegressFooTileHandlerClass parent_class;
 };
 
-G_DEFINE_TYPE(FooBuffer, foo_buffer, FOO_TYPE_TILE_HANDLER);
+G_DEFINE_TYPE(RegressFooBuffer, regress_foo_buffer, REGRESS_FOO_TYPE_TILE_HANDLER);
 
 static void
-foo_buffer_class_init (FooBufferClass *klass)
+regress_foo_buffer_class_init (RegressFooBufferClass *klass)
 {
 
 }
 
 static void
-foo_buffer_init (FooBuffer *object)
+regress_foo_buffer_init (RegressFooBuffer *object)
 {
 
 }
 
 void
-foo_buffer_some_method (FooBuffer *buffer)
+regress_foo_buffer_some_method (RegressFooBuffer *buffer)
 {
 }
 
-struct _FooOtherObject
+struct _RegressFooOtherObject
 {
   GObject parent_instance;
 };
 
-struct _FooOtherObjectClass
+struct _RegressFooOtherObjectClass
 {
   GObjectClass parent_class;
 };
 
-G_DEFINE_TYPE(FooOtherObject, foo_other_object, G_TYPE_OBJECT);
+G_DEFINE_TYPE(RegressFooOtherObject, regress_foo_other_object, G_TYPE_OBJECT);
 
 static void
-foo_other_object_class_init (FooOtherObjectClass *klass)
+regress_foo_other_object_class_init (RegressFooOtherObjectClass *klass)
 {
 
 }
 
 static void
-foo_other_object_init (FooOtherObject *object)
+regress_foo_other_object_init (RegressFooOtherObject *object)
 {
 
 }
 
 
-#define FOO_DEFINE_SHOULD_NOT_BE_EXPOSED "should not be exposed"
+#define REGRESS_FOO_DEFINE_SHOULD_NOT_BE_EXPOSED "should not be exposed"
 
 /**
- * foo_skip_me: (skip)
- * @fs: a #FooSkippable
+ * regress_foo_skip_me: (skip)
+ * @fs: a #RegressFooSkippable
  *
  * Does something that's only interesting from C and should not be
  * exposed to language bindings.
  */
 void
-foo_skip_me (FooSkippable fs)
+regress_foo_skip_me (RegressFooSkippable fs)
 {
 }
 
 /**
- * FooForeignStruct: (foreign)
+ * RegressFooForeignStruct: (foreign)
  *
  */
 
-FooForeignStruct*
-foo_foreign_struct_new (void)
+RegressFooForeignStruct*
+regress_foo_foreign_struct_new (void)
 {
-  return g_slice_new0 (FooForeignStruct);
+  return g_slice_new0 (RegressFooForeignStruct);
 }
 
-FooForeignStruct*
-foo_foreign_struct_copy (FooForeignStruct *original)
+RegressFooForeignStruct*
+regress_foo_foreign_struct_copy (RegressFooForeignStruct *original)
 {
-    FooForeignStruct *copy;
-    copy = foo_foreign_struct_new ();
-    copy->foo = original->foo;
-    return copy;
+  RegressFooForeignStruct *copy;
+  copy = regress_foo_foreign_struct_new ();
+  copy->regress_foo = original->regress_foo;
+  return copy;
 }
 
 /**
- * foo_test_varargs_callback: (skip)
+ * regress_foo_test_varargs_callback: (skip)
  *
  */
 void
-foo_test_varargs_callback (gint i, FooVarargsCallback callback)
+regress_foo_test_varargs_callback (gint i, RegressFooVarargsCallback callback)
 {
 }
 
 /**
- * foo_test_varargs_callback2: (skip)
+ * regress_foo_test_varargs_callback2: (skip)
  *
  */
 void
-foo_test_varargs_callback2 (FooVarargsCallback callback)
+regress_foo_test_varargs_callback2 (RegressFooVarargsCallback callback)
 {
 }
 
 /**
- * foo_test_varargs_callback3: (skip)
+ * regress_foo_test_varargs_callback3: (skip)
  *
  */
 void
-foo_test_varargs_callback3 (FooVarargsCallback callback,
-			    FooVarargsCallback callback2)
+regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback,
+                                    RegressFooVarargsCallback callback2)
 {
 }
 
 /**
- * foo_object_append_new_stack_layer:
+ * regress_foo_object_append_new_stack_layer:
  *
  * This shouldn't be scanned as a constructor.
  *
  * Returns: (transfer none):
  */
-FooOtherObject *
-foo_object_append_new_stack_layer (FooObject *obj, int x)
+RegressFooOtherObject *
+regress_foo_object_append_new_stack_layer (RegressFooObject *obj, int x)
 {
   return NULL;
 }
 
 /**
- * foo_not_a_constructor_new:
+ * regress_foo_not_a_constructor_new:
  *
  * This should be scanned as a top-level function, and shouldn't cause
  * a "Can't find matching type for constructor" warning.
  *
  * Returns: (transfer none):
  */
-FooObject *
-foo_not_a_constructor_new (void)
+RegressFooObject *
+regress_foo_not_a_constructor_new (void)
 {
   return NULL;
 }
diff --git a/tests/scanner/foo.h b/tests/scanner/foo.h
index f852083..20c92eb 100644
--- a/tests/scanner/foo.h
+++ b/tests/scanner/foo.h
@@ -1,257 +1,257 @@
-#ifndef __FOO_OBJECT_H__
-#define __FOO_OBJECT_H__
+#ifndef __REGRESS_FOO_OBJECT_H__
+#define __REGRESS_FOO_OBJECT_H__
 
 #include <glib-object.h>
 #include <gio/gio.h> /* GAsyncReadyCallback */
 #include "utility.h"
 
-#define FOO_SUCCESS_INT 0x1138
+#define REGRESS_FOO_SUCCESS_INT 0x1138
 
-#define FOO_DEFINE_SHOULD_BE_EXPOSED "should be exposed"
+#define REGRESS_FOO_DEFINE_SHOULD_BE_EXPOSED "should be exposed"
 
-#define FOO_PIE_IS_TASTY 3.14159
+#define REGRESS_FOO_PIE_IS_TASTY 3.14159
 
-#define FOO_TYPE_INTERFACE           (foo_interface_get_type ())
-#define FOO_INTERFACE(object)        (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_INTERFACE, FooInterface))
-#define FOO_IS_INTERFACE(object)     (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_INTERFACE))
-#define FOO_INTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), FOO_TYPE_INTERFACE, FooInterfaceIface))
+#define REGRESS_FOO_TYPE_INTERFACE           (regress_foo_interface_get_type ())
+#define REGRESS_FOO_INTERFACE(object)        (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_INTERFACE, RegressFooInterface))
+#define REGRESS_FOO_IS_INTERFACE(object)     (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_INTERFACE))
+#define REGRESS_FOO_INTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), REGRESS_FOO_TYPE_INTERFACE, RegressFooInterfaceIface))
 
-#define FOO_TYPE_SUBINTERFACE           (foo_sub_interface_get_type ())
-#define FOO_SUBINTERFACE(object)        (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_SUBINTERFACE, FooSubInterface))
-#define FOO_IS_SUBINTERFACE(object)     (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_SUBINTERFACE))
-#define FOO_SUBINTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), FOO_TYPE_SUBINTERFACE, FooSubInterfaceIface))
+#define REGRESS_FOO_TYPE_SUBINTERFACE           (regress_foo_sub_interface_get_type ())
+#define REGRESS_FOO_SUBINTERFACE(object)        (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_SUBINTERFACE, RegressFooSubInterface))
+#define REGRESS_FOO_IS_SUBINTERFACE(object)     (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_SUBINTERFACE))
+#define REGRESS_FOO_SUBINTERFACE_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), REGRESS_FOO_TYPE_SUBINTERFACE, RegressFooSubInterfaceIface))
 
 
-#define FOO_TYPE_OBJECT              (foo_object_get_type ())
-#define FOO_OBJECT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_OBJECT, FooObject))
-#define FOO_IS_OBJECT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_OBJECT))
+#define REGRESS_FOO_TYPE_OBJECT              (regress_foo_object_get_type ())
+#define REGRESS_FOO_OBJECT(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_OBJECT, RegressFooObject))
+#define REGRESS_FOO_IS_OBJECT(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_OBJECT))
 
-#define FOO_TYPE_SUBOBJECT           (foo_subobject_get_type ())
-#define FOO_SUBOBJECT(subobject)     (G_TYPE_CHECK_INSTANCE_CAST ((subobject), FOO_TYPE_SUBOBJECT, FooSubobject))
-#define FOO_IS_SUBOBJECT(subobject)  (G_TYPE_CHECK_INSTANCE_TYPE ((subobject), FOO_TYPE_SUBOBJECT))
+#define REGRESS_FOO_TYPE_SUBOBJECT           (regress_foo_subobject_get_type ())
+#define REGRESS_FOO_SUBOBJECT(subobject)     (G_TYPE_CHECK_INSTANCE_CAST ((subobject), REGRESS_FOO_TYPE_SUBOBJECT, RegressFooSubobject))
+#define REGRESS_FOO_IS_SUBOBJECT(subobject)  (G_TYPE_CHECK_INSTANCE_TYPE ((subobject), REGRESS_FOO_TYPE_SUBOBJECT))
 
-#define FOO_TYPE_BUFFER        (foo_buffer_get_type ())
-#define FOO_BUFFER(object)     (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_BUFFER, FooBuffer))
-#define FOO_IS_BUFFER(object)  (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_BUFFER))
+#define REGRESS_FOO_TYPE_BUFFER        (regress_foo_buffer_get_type ())
+#define REGRESS_FOO_BUFFER(object)     (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_BUFFER, RegressFooBuffer))
+#define REGRESS_FOO_IS_BUFFER(object)  (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_BUFFER))
 
-#define FOO_TYPE_OTHER_OBJECT  (foo_other_object_get_type ())
-#define FOO_OTHER_OBJECT(object)     (G_TYPE_CHECK_INSTANCE_CAST ((object), FOO_TYPE_OTHER_OBJECT, FooOtherObject))
-#define FOO_IS_OTHER_OBJECT(object)  (G_TYPE_CHECK_INSTANCE_TYPE ((object), FOO_TYPE_OTHER_OBJECT))
+#define REGRESS_FOO_TYPE_OTHER_OBJECT  (regress_foo_other_object_get_type ())
+#define REGRESS_FOO_OTHER_OBJECT(object)     (G_TYPE_CHECK_INSTANCE_CAST ((object), REGRESS_FOO_TYPE_OTHER_OBJECT, RegressFooOtherObject))
+#define REGRESS_FOO_IS_OTHER_OBJECT(object)  (G_TYPE_CHECK_INSTANCE_TYPE ((object), REGRESS_FOO_TYPE_OTHER_OBJECT))
 
-typedef struct _FooInterface       FooInterface;
-typedef struct _FooInterfaceIface  FooInterfaceIface;
-typedef struct _FooSubInterface       FooSubInterface;
-typedef struct _FooSubInterfaceIface  FooSubInterfaceIface;
-typedef struct _FooObject          FooObject;
-typedef struct _FooObjectClass     FooObjectClass;
-typedef struct _FooSubobject       FooSubobject;
-typedef struct _FooSubobjectClass  FooSubobjectClass;
-typedef struct _FooBuffer          FooBuffer;
-typedef struct _FooBufferClass     FooBufferClass;
-typedef struct _FooOtherObject          FooOtherObject;
-typedef struct _FooOtherObjectClass     FooOtherObjectClass;
+typedef struct _RegressFooInterface       RegressFooInterface;
+typedef struct _RegressFooInterfaceIface  RegressFooInterfaceIface;
+typedef struct _RegressFooSubInterface       RegressFooSubInterface;
+typedef struct _RegressFooSubInterfaceIface  RegressFooSubInterfaceIface;
+typedef struct _RegressFooObject          RegressFooObject;
+typedef struct _RegressFooObjectClass     RegressFooObjectClass;
+typedef struct _RegressFooSubobject       RegressFooSubobject;
+typedef struct _RegressFooSubobjectClass  RegressFooSubobjectClass;
+typedef struct _RegressFooBuffer          RegressFooBuffer;
+typedef struct _RegressFooBufferClass     RegressFooBufferClass;
+typedef struct _RegressFooOtherObject          RegressFooOtherObject;
+typedef struct _RegressFooOtherObjectClass     RegressFooOtherObjectClass;
 
-struct _FooInterfaceIface
+struct _RegressFooInterfaceIface
 {
   GTypeInterface parent_iface;
 
-  void (*do_foo) (FooInterface *self, int x);
+  void (*do_regress_foo) (RegressFooInterface *self, int x);
 };
 
-GType                 foo_interface_get_type       (void) G_GNUC_CONST;
+GType                 regress_foo_interface_get_type       (void) G_GNUC_CONST;
 
-void foo_interface_do_foo (FooInterface *iface, int x);
+void regress_foo_interface_do_regress_foo (RegressFooInterface *iface, int x);
 
-void foo_interface_static_method (int x);
+void regress_foo_interface_static_method (int x);
 
-struct _FooSubInterfaceIface
+struct _RegressFooSubInterfaceIface
 {
   GTypeInterface parent_iface;
 
   /* signals */
 
-  void (*destroy_event) (FooSubInterface *self);
+  void (*destroy_event) (RegressFooSubInterface *self);
 
   /* virtual table */
 
-  void (*do_bar) (FooSubInterface *self);
+  void (*do_bar) (RegressFooSubInterface *self);
 
   /* explicitly test un-named parameters */
-  void (*do_moo) (FooSubInterface *self, int, gpointer);
+  void (*do_moo) (RegressFooSubInterface *self, int, gpointer);
 
-  void (*do_baz) (FooSubInterface *self, GCallback callback, gpointer user_data);
+  void (*do_baz) (RegressFooSubInterface *self, GCallback callback, gpointer user_data);
 };
 
-GType                 foo_sub_interface_get_type       (void) G_GNUC_CONST;
+GType                 regress_foo_sub_interface_get_type       (void) G_GNUC_CONST;
 
-void foo_sub_interface_do_bar (FooSubInterface *self);
-void foo_sub_interface_do_moo (FooSubInterface *self, int, gpointer);
-void foo_sub_interface_do_baz (FooSubInterface *self,
-                               GCallback callback,
-                               gpointer user_data);
+void regress_foo_sub_interface_do_bar (RegressFooSubInterface *self);
+void regress_foo_sub_interface_do_moo (RegressFooSubInterface *self, int, gpointer);
+void regress_foo_sub_interface_do_baz (RegressFooSubInterface *self,
+                                       GCallback callback,
+                                       gpointer user_data);
 
-struct _FooObject
+struct _RegressFooObject
 {
   GObject parent_instance;
 
   int some_int;
 };
 
-struct _FooObjectClass
+struct _RegressFooObjectClass
 {
   GObjectClass parent_class;
 
-  gboolean (* virtual_method) (FooObject *object, int first_param);
+  gboolean (* virtual_method) (RegressFooObject *object, int first_param);
 
   /* Intended to match GFile */
-  void (*read_fn) (FooObject *object, int offset, int length);
+  void (*read_fn) (RegressFooObject *object, int offset, int length);
   
   /* Test reserved stuff */
   GCallback _reserved[4];
 };
 
-gint                  foo_init                     (void);
+gint                  regress_foo_init                     (void);
 
-GType                 foo_object_get_type          (void) G_GNUC_CONST;
-FooObject*            foo_object_new               (void);
-UtilityObject*        foo_object_external_type     (FooObject *object);
-GObject*              foo_object_new_as_super      (void);
+GType                 regress_foo_object_get_type          (void) G_GNUC_CONST;
+RegressFooObject*            regress_foo_object_new               (void);
+UtilityObject*        regress_foo_object_external_type     (RegressFooObject *object);
+GObject*              regress_foo_object_new_as_super      (void);
 
-void                  foo_object_various           (FooObject *object, void *data, GType some_type);
+void                  regress_foo_object_various           (RegressFooObject *object, void *data, GType some_type);
 
-void                  foo_object_take_all          (FooObject *object, int x, ...);
+void                  regress_foo_object_take_all          (RegressFooObject *object, int x, ...);
 
-typedef gpointer FooObjectCookie;
+typedef gpointer RegressFooObjectCookie;
 
-FooObjectCookie       foo_object_new_cookie        (FooObject *object, const char *target);
+RegressFooObjectCookie       regress_foo_object_new_cookie        (RegressFooObject *object, const char *target);
 
-void                  foo_object_is_it_time_yet    (FooObject *object, time_t time);
+void                  regress_foo_object_is_it_time_yet    (RegressFooObject *object, time_t time);
 
-const char *          foo_object_get_name          (FooObject *object);
+const char *          regress_foo_object_get_name          (RegressFooObject *object);
 
-char *                foo_object_dup_name          (FooObject *object);
+char *                regress_foo_object_dup_name          (RegressFooObject *object);
 
-void                  foo_object_handle_glyph      (FooObject *object, UtilityGlyph glyph);
+void                  regress_foo_object_handle_glyph      (RegressFooObject *object, UtilityGlyph glyph);
 
-gboolean              foo_object_virtual_method    (FooObject *object, int first_param);
+gboolean              regress_foo_object_virtual_method    (RegressFooObject *object, int first_param);
 
-void                  foo_object_read              (FooObject *object, int offset, int length);
+void                  regress_foo_object_read              (RegressFooObject *object, int offset, int length);
 
-int                   foo_object_static_meth       (void);
+int                   regress_foo_object_static_meth       (void);
 
-void                  foo_object_skipped_method    (FooObject *object);
+void                  regress_foo_object_skipped_method    (RegressFooObject *object);
 
-struct _FooSubobject
+struct _RegressFooSubobject
 {
-  FooObject parent_instance;
+  RegressFooObject parent_instance;
 };
 
-struct _FooSubobjectClass
+struct _RegressFooSubobjectClass
 {
-  FooObjectClass parent_class;
+  RegressFooObjectClass parent_class;
 };
 
-GType                 foo_subobject_get_type       (void) G_GNUC_CONST;
-FooSubobject*         foo_subobject_new            (void);
+GType                 regress_foo_subobject_get_type       (void) G_GNUC_CONST;
+RegressFooSubobject*         regress_foo_subobject_new            (void);
 
-FooObject *           foo_object_get_default       (void);
+RegressFooObject *           regress_foo_object_get_default       (void);
 
-GType                 foo_buffer_get_type          (void);
+GType                 regress_foo_buffer_get_type          (void);
 
-void                  foo_buffer_some_method       (FooBuffer *buffer);
+void                  regress_foo_buffer_some_method       (RegressFooBuffer *buffer);
 
-GType                 foo_other_object_get_type    (void) G_GNUC_CONST;
+GType                 regress_foo_other_object_get_type    (void) G_GNUC_CONST;
 
-FooObject *           foo_not_a_constructor_new    (void);
+RegressFooObject *           regress_foo_not_a_constructor_new    (void);
 
 typedef enum
 {
-  FOO_ENUM_ALPHA,
-  FOO_ENUM_BETA,
-  FOO_ENUM_DELTA
-} FooEnumType;
+  REGRESS_FOO_ENUM_ALPHA,
+  REGRESS_FOO_ENUM_BETA,
+  REGRESS_FOO_ENUM_DELTA
+} RegressFooEnumType;
 
-GType foo_enum_type_get_type (void);
+GType regress_foo_enum_type_get_type (void);
 
-int                   foo_enum_type_method         (FooEnumType foo_enum);
+int                   regress_foo_enum_type_method         (RegressFooEnumType regress_foo_enum);
 
-FooEnumType           foo_enum_type_returnv        (int x);
+RegressFooEnumType           regress_foo_enum_type_returnv        (int x);
 
 typedef enum
 {
-  FOO_FLAGS_FIRST  = 1 << 0,
-  FOO_FLAGS_SECOND = 1 << 1,
-  FOO_FLAGS_THIRD  = 1 << 2
-} FooFlagsType;
+  REGRESS_FOO_FLAGS_FIRST  = 1 << 0,
+  REGRESS_FOO_FLAGS_SECOND = 1 << 1,
+  REGRESS_FOO_FLAGS_THIRD  = 1 << 2
+} RegressFooFlagsType;
 
-GType foo_flags_type_get_type (void);
+GType regress_foo_flags_type_get_type (void);
 
 typedef enum
 {
-  FOO_ENUM_UN = 1,
-  FOO_ENUM_DEUX = 2,
-  FOO_ENUM_TROIS = 3,
-  FOO_ENUM_NEUF = 9
-} FooEnumNoType;
+  REGRESS_FOO_ENUM_UN = 1,
+  REGRESS_FOO_ENUM_DEUX = 2,
+  REGRESS_FOO_ENUM_TROIS = 3,
+  REGRESS_FOO_ENUM_NEUF = 9
+} RegressFooEnumNoType;
 
 typedef enum
 {
-  FOO_FLAGS_ETT  = 1 << 0,
-  FOO_FLAGS_TVA = 1 << 1,
-  FOO_FLAGS_FYRA  = 1 << 2
-} FooFlagsNoType;
+  REGRESS_FOO_FLAGS_ETT  = 1 << 0,
+  REGRESS_FOO_FLAGS_TVA = 1 << 1,
+  REGRESS_FOO_FLAGS_FYRA  = 1 << 2
+} RegressFooFlagsNoType;
 
 typedef enum
 {
-  FOO_ENUM_FULLNAME_ONE = 1,
-  FOO_ENUM_FULLNAME_TWO,
-  FOO_ENUM_FULLNAME_THREE
-} FooEnumFullname;
+  REGRESS_FOO_ENUM_FULLNAME_ONE = 1,
+  REGRESS_FOO_ENUM_FULLNAME_TWO,
+  REGRESS_FOO_ENUM_FULLNAME_THREE
+} RegressFooEnumFullname;
 
 typedef enum
 {
-  FOO_ADDRESS_INVALID,
-  FOO_ADDRESS_IPV4,
-  FOO_ADDRESS_IPV6
-} FooAddressType;
+  REGRESS_FOO_ADDRESS_INVALID,
+  REGRESS_FOO_ADDRESS_IPV4,
+  REGRESS_FOO_ADDRESS_IPV6
+} RegressFooAddressType;
 
-typedef struct _FooBoxed FooBoxed;
+typedef struct _RegressFooBoxed RegressFooBoxed;
 
-GType                 foo_boxed_get_type       (void) G_GNUC_CONST;
-FooBoxed*             foo_boxed_new            (void);
-void                  foo_boxed_method         (FooBoxed* boxed);
+GType                 regress_foo_boxed_get_type       (void) G_GNUC_CONST;
+RegressFooBoxed*             regress_foo_boxed_new            (void);
+void                  regress_foo_boxed_method         (RegressFooBoxed* boxed);
 
 /* This one tests capitalization handling with respect to DBus */
-typedef struct _FooDBusData FooDBusData;
-GType                 foo_dbus_data_get_type       (void) G_GNUC_CONST;
-void                  foo_dbus_data_method         (FooDBusData* dbusdata);
+typedef struct _RegressFooDBusData RegressFooDBusData;
+GType                 regress_foo_dbus_data_get_type       (void) G_GNUC_CONST;
+void                  regress_foo_dbus_data_method         (RegressFooDBusData* dbusdata);
 
 /* FIXME: Scanner does not support this yet
-const char *FOO_CONSTANT_STR = "foo-constant-str";
-const int FOO_CONSTANT_INT = 10;
-const float FOO_CONSTANT_FLOAT = 10;
+const char *REGRESS_FOO_CONSTANT_STR = "regress_foo-constant-str";
+const int REGRESS_FOO_CONSTANT_INT = 10;
+const float REGRESS_FOO_CONSTANT_FLOAT = 10;
 */
 
 /* Callback */
-typedef gboolean (* FooCallback) (FooObject *foo, gboolean b, gpointer data);
+typedef gboolean (* RegressFooCallback) (RegressFooObject *regress_foo, gboolean b, gpointer data);
 
 /* Invalid comments, should be ignored */
 
 /* @ */
 /* @: */
 
-typedef struct _FooStruct           FooStruct; 
-typedef struct _FooStructPrivate    FooStructPrivate; 
+typedef struct _RegressFooStruct           RegressFooStruct; 
+typedef struct _RegressFooStructPrivate    RegressFooStructPrivate; 
 
-struct _FooStruct
+struct _RegressFooStruct
 {
-  FooStructPrivate *priv;
+  RegressFooStructPrivate *priv;
   int member;
 };
 
-typedef struct _FooRectangle          FooRectangle;
+typedef struct _RegressFooRectangle          RegressFooRectangle;
 
-struct _FooRectangle
+struct _RegressFooRectangle
 {
   gint x;
   gint y;
@@ -260,81 +260,81 @@ struct _FooRectangle
 };
 
 void
-foo_method_external_references (UtilityObject *object,
-				UtilityEnumType e,
-				UtilityFlagType f,
-				UtilityStruct s);
+regress_foo_method_external_references (UtilityObject *object,
+                                        UtilityEnumType e,
+                                        UtilityFlagType f,
+                                        UtilityStruct s);
 
-void foo_rectangle_add(FooRectangle *r1, const FooRectangle *r2);
+void regress_foo_rectangle_add(RegressFooRectangle *r1, const RegressFooRectangle *r2);
 
-FooRectangle * foo_rectangle_new (int x, int y, int width, int height);
+RegressFooRectangle * regress_foo_rectangle_new (int x, int y, int width, int height);
 
 
-typedef struct _FooEventAny FooEventAny;
-typedef struct _FooEventExpose FooEventExpose;
+typedef struct _RegressFooEventAny RegressFooEventAny;
+typedef struct _RegressFooEventExpose RegressFooEventExpose;
 
-typedef union  _FooEvent FooEvent;
+typedef union  _RegressFooEvent RegressFooEvent;
 
-struct _FooEventAny
+struct _RegressFooEventAny
 {
   gint8 send_event;
 };
 
-struct _FooEventExpose
+struct _RegressFooEventExpose
 {
   gint8 send_event;
   gint count;
 };
   
-union _FooEvent
+union _RegressFooEvent
 {
   int type;
-  FooEventAny any;
-  FooEventExpose expose;
+  RegressFooEventAny any;
+  RegressFooEventExpose expose;
 };
 
-typedef void FooXEvent;
+typedef void RegressFooXEvent;
 
 /* And now some boxed variants */
 
-typedef struct _FooBRect          FooBRect;
+typedef struct _RegressFooBRect          RegressFooBRect;
 
-struct _FooBRect
+struct _RegressFooBRect
 {
   double x;
   double y;
 };
 
-GType foo_brect_get_type (void);
+GType regress_foo_brect_get_type (void);
 
-FooBRect *foo_brect_new (double x, double y);
+RegressFooBRect *regress_foo_brect_new (double x, double y);
 
-void foo_brect_add (FooBRect *b1, FooBRect *b2);
+void regress_foo_brect_add (RegressFooBRect *b1, RegressFooBRect *b2);
 
-typedef union _FooBUnion FooBUnion;
+typedef union _RegressFooBUnion RegressFooBUnion;
 
-union _FooBUnion
+union _RegressFooBUnion
 {
   int type;
   double v;
-  FooBRect *rect;
+  RegressFooBRect *rect;
 };
 
-typedef union _FooUnion FooUnion;
+typedef union _RegressFooUnion RegressFooUnion;
 
-union _FooUnion
+union _RegressFooUnion
 {
-  int foo;
+  int regress_foo;
 };
 
-typedef struct _FooUtilityStruct FooUtilityStruct;
-struct _FooUtilityStruct
+typedef struct _RegressFooUtilityStruct RegressFooUtilityStruct;
+struct _RegressFooUtilityStruct
 {
   UtilityStruct bar;
 };
 
-typedef struct _FooThingWithArray FooThingWithArray;
-struct _FooThingWithArray
+typedef struct _RegressFooThingWithArray RegressFooThingWithArray;
+struct _RegressFooThingWithArray
 {
   int x;
   int y;
@@ -342,100 +342,100 @@ struct _FooThingWithArray
   guchar *data;
 } ;
 
-FooBUnion *foo_bunion_new (void);
+RegressFooBUnion *regress_foo_bunion_new (void);
 
-GType foo_bunion_get_type (void);
+GType regress_foo_bunion_get_type (void);
 
-int foo_bunion_get_contained_type (FooBUnion *bunion);
+int regress_foo_bunion_get_contained_type (RegressFooBUnion *bunion);
 
-void foo_test_unsigned_qualifier (unsigned int unsigned_param);
-void foo_test_unsigned_type (unsigned unsigned_param);
+void regress_foo_test_unsigned_qualifier (unsigned int unsigned_param);
+void regress_foo_test_unsigned_type (unsigned unsigned_param);
 
-void foo_test_string_array (char **array);
+void regress_foo_test_string_array (char **array);
 
-void foo_test_string_array_with_g (gchar **array);
+void regress_foo_test_string_array_with_g (gchar **array);
 
-GArray *foo_test_array (void);
+GArray *regress_foo_test_array (void);
 
-const char * foo_test_const_char_retval (void);
-const FooStruct * foo_test_const_struct_retval (void);
-void foo_test_const_char_param (const char * param);
-void foo_test_const_struct_param (const FooStruct * param);
+const char * regress_foo_test_const_char_retval (void);
+const RegressFooStruct * regress_foo_test_const_struct_retval (void);
+void regress_foo_test_const_char_param (const char * param);
+void regress_foo_test_const_struct_param (const RegressFooStruct * param);
 
-typedef void (*FooVarargsCallback) (const char * param, ...);
-void foo_test_varargs_callback (gint i, FooVarargsCallback callback);
-void foo_test_varargs_callback2 (FooVarargsCallback callback);
-void foo_test_varargs_callback3 (FooVarargsCallback callback,
-				 FooVarargsCallback callback2);
+typedef void (*RegressFooVarargsCallback) (const char * param, ...);
+void regress_foo_test_varargs_callback (gint i, RegressFooVarargsCallback callback);
+void regress_foo_test_varargs_callback2 (RegressFooVarargsCallback callback);
+void regress_foo_test_varargs_callback3 (RegressFooVarargsCallback callback,
+                                         RegressFooVarargsCallback callback2);
 
 /* Make sure callbacks get the right scope by default */
-void foo_async_ready_callback(GCancellable *cancellable,
-                              GAsyncReadyCallback callback,
-                              gpointer user_data);
-void foo_destroy_notify_callback(FooCallback callback,
-                                 gpointer data,
-                                 GDestroyNotify destroy);
+void regress_foo_async_ready_callback(GCancellable *cancellable,
+                                      GAsyncReadyCallback callback,
+                                      gpointer user_data);
+void regress_foo_destroy_notify_callback(RegressFooCallback callback,
+                                         gpointer data,
+                                         GDestroyNotify destroy);
 
 typedef enum {
-  FOO_ERROR_GOOD,
-  FOO_ERROR_BAD,
-  FOO_ERROR_UGLY
-} FooError;
-GType foo_error_get_type (void);
+  REGRESS_FOO_ERROR_GOOD,
+  REGRESS_FOO_ERROR_BAD,
+  REGRESS_FOO_ERROR_UGLY
+} RegressFooError;
+GType regress_foo_error_get_type (void);
 
-GQuark foo_error_quark (void);
+GQuark regress_foo_error_quark (void);
 
 typedef enum
 {
-  FOO_LAYER_DESKTOP        = 0,
-  FOO_LAYER_BOTTOM        = 1,
-  FOO_LAYER_NORMAL        = 2,
-  FOO_LAYER_TOP        = 4, /* Same as DOCK; see EWMH and bug 330717 */
-  FOO_LAYER_DOCK        = 4,
-  FOO_LAYER_FULLSCREEN        = 5,
-  FOO_LAYER_FOCUSED_WINDOW    = 6,
-  FOO_LAYER_OVERRIDE_REDIRECT = 7,
-  FOO_LAYER_LAST        = 8
-} FooStackLayer;
+  REGRESS_FOO_LAYER_DESKTOP        = 0,
+  REGRESS_FOO_LAYER_BOTTOM        = 1,
+  REGRESS_FOO_LAYER_NORMAL        = 2,
+  REGRESS_FOO_LAYER_TOP        = 4, /* Same as DOCK; see EWMH and bug 330717 */
+  REGRESS_FOO_LAYER_DOCK        = 4,
+  REGRESS_FOO_LAYER_FULLSCREEN        = 5,
+  REGRESS_FOO_LAYER_FOCUSED_WINDOW    = 6,
+  REGRESS_FOO_LAYER_OVERRIDE_REDIRECT = 7,
+  REGRESS_FOO_LAYER_LAST        = 8
+} RegressFooStackLayer;
 
 typedef enum
 {
-  FOO_SOME_SINGLE_ENUM
-} FooASingle;
+  REGRESS_FOO_SOME_SINGLE_ENUM
+} RegressFooASingle;
 
 /* Should be skipped */
-void foo_some_variant (guint x, va_list args);
-void foo_some_variant_ptr (guint x, va_list *args);
+void regress_foo_some_variant (guint x, va_list args);
+void regress_foo_some_variant_ptr (guint x, va_list *args);
 
 /**
- * FooSkippable: (skip)
- * @FOO_SKIPPABLE_ONE: a skippable enum value
- * @FOO_SKIPPABLE_TWO: another skippable enum value
+ * RegressFooSkippable: (skip)
+ * @REGRESS_FOO_SKIPPABLE_ONE: a skippable enum value
+ * @REGRESS_FOO_SKIPPABLE_TWO: another skippable enum value
  *
  * Some type that is only interesting from C and should not be
  * exposed to language bindings.
  */
 typedef enum {
-  FOO_SKIPPABLE_ONE,
-  FOO_SKIPPABLE_TWO
-} FooSkippable;
-void foo_skip_me (FooSkippable fs);
+  REGRESS_FOO_SKIPPABLE_ONE,
+  REGRESS_FOO_SKIPPABLE_TWO
+} RegressFooSkippable;
+void regress_foo_skip_me (RegressFooSkippable fs);
 
-typedef struct _FooForeignStruct           FooForeignStruct;
+typedef struct _RegressFooForeignStruct           RegressFooForeignStruct;
 
-struct _FooForeignStruct
+struct _RegressFooForeignStruct
 {
-  int foo;
+  int regress_foo;
 };
 
-FooForeignStruct* foo_foreign_struct_new (void);
-FooForeignStruct* foo_foreign_struct_copy (FooForeignStruct *original);
+RegressFooForeignStruct* regress_foo_foreign_struct_new (void);
+RegressFooForeignStruct* regress_foo_foreign_struct_copy (RegressFooForeignStruct *original);
 
 /* This one should be a global, not a method on UtilityObject since
  * it's a separate namespace.
  */
-void foo_object_a_global_method (UtilityObject *obj);
+void regress_foo_object_a_global_method (UtilityObject *obj);
 
-FooOtherObject * foo_object_append_new_stack_layer (FooObject *obj, int x);
+RegressFooOtherObject * regress_foo_object_append_new_stack_layer (RegressFooObject *obj, int x);
 
-#endif /* __FOO_OBJECT_H__ */
+#endif /* __REGRESS_FOO_OBJECT_H__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]