]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
tests/girwriter: Add tests for implicit parameters in virtual-method/callback
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 1 Apr 2021 13:33:43 +0000 (15:33 +0200)
committerRico Tzschichholz <ricotz@ubuntu.com>
Sun, 4 Apr 2021 13:43:21 +0000 (15:43 +0200)
tests/girwriter/GirTest-1.0.gir-expected
tests/girwriter/girtest.vala
tests/girwriter/girtest.vapi-expected
tests/girwriter/girtest.vapigen-expected

index 845293d78d3119dc82088f1e5d4ed99c50990ca1..d2e83c8fda55f219f1ca193800018bae07aa30d2 100644 (file)
                                </parameter>
                        </parameters>
                </virtual-method>
+               <method name="method_implicit_params" c:identifier="gir_test_object_test_method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method_implicit_params" invoker="method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
                <property name="some-property" writable="1" construct="1">
                        <type name="utf8" c:type="gchar*"/>
                </property>
                                </parameters>
                        </callback>
                </field>
+               <field name="method_implicit_params">
+                       <callback name="method_implicit_params" c:type="method_implicit_params">
+                               <return-value transfer-ownership="full">
+                                       <type name="none" c:type="void"/>
+                               </return-value>
+                               <parameters>
+                                       <instance-parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.ObjectTest" c:type="GirTestObjectTest*"/>
+                                       </instance-parameter>
+                                       <parameter name="param1" transfer-ownership="none">
+                                               <array length="1" c:type="gint*">
+                                                       <type name="gint" c:type="gint"/>
+                                               </array>
+                                       </parameter>
+                                       <parameter name="param1_length1" transfer-ownership="none">
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                                       <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                               <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                                       </parameter>
+                                       <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                               <type name="gpointer" c:type="void*"/>
+                                       </parameter>
+                                       <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                               <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
                <field name="signal_with_default_handlder">
                        <callback name="object_test_signal_with_default_handlder" c:type="object_test_signal_with_default_handlder">
                                <return-value transfer-ownership="full">
                                </parameter>
                        </parameters>
                </virtual-method>
+               <method name="method_implicit_params" c:identifier="gir_test_abstract_object_test_method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method_implicit_params" invoker="method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
        </class>
        <record name="AbstractObjectTestClass" c:type="GirTestAbstractObjectTestClass" glib:is-gtype-struct-for="AbstractObjectTest">
                <field name="parent_class" readable="0" private="1">
                                </parameters>
                        </callback>
                </field>
+               <field name="method_implicit_params">
+                       <callback name="method_implicit_params" c:type="method_implicit_params">
+                               <return-value transfer-ownership="full">
+                                       <type name="none" c:type="void"/>
+                               </return-value>
+                               <parameters>
+                                       <instance-parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.AbstractObjectTest" c:type="GirTestAbstractObjectTest*"/>
+                                       </instance-parameter>
+                                       <parameter name="param1" transfer-ownership="none">
+                                               <array length="1" c:type="gint*">
+                                                       <type name="gint" c:type="gint"/>
+                                               </array>
+                                       </parameter>
+                                       <parameter name="param1_length1" transfer-ownership="none">
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                                       <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                               <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                                       </parameter>
+                                       <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                               <type name="gpointer" c:type="void*"/>
+                                       </parameter>
+                                       <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                               <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
        </record>
        <record name="AbstractObjectTestPrivate" c:type="GirTestAbstractObjectTestPrivate" disguised="1"/>
        <class name="ImplementionTest" c:type="GirTestImplementionTest" c:symbol-prefix="implemention_test" glib:type-name="GirTestImplementionTest" glib:get-type="gir_test_implemention_test_get_type" glib:type-struct="ImplementionTestClass" parent="GObject.Object">
                                </parameter>
                        </parameters>
                </virtual-method>
+               <method name="method_implicit_params" c:identifier="gir_test_interface_test_method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </method>
+               <virtual-method name="method_implicit_params" invoker="method_implicit_params">
+                       <return-value transfer-ownership="full">
+                               <type name="none" c:type="void"/>
+                       </return-value>
+                       <parameters>
+                               <instance-parameter name="self" transfer-ownership="none">
+                                       <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                               </instance-parameter>
+                               <parameter name="param1" transfer-ownership="none">
+                                       <array length="1" c:type="gint*">
+                                               <type name="gint" c:type="gint"/>
+                                       </array>
+                               </parameter>
+                               <parameter name="param1_length1" transfer-ownership="none">
+                                       <type name="gint" c:type="gint"/>
+                               </parameter>
+                               <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                       <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                               </parameter>
+                               <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                       <type name="gpointer" c:type="void*"/>
+                               </parameter>
+                               <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                       <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                               </parameter>
+                       </parameters>
+               </virtual-method>
                <function name="static_method" c:identifier="gir_test_interface_test_static_method">
                        <return-value transfer-ownership="full">
                                <type name="none" c:type="void"/>
                                </parameters>
                        </callback>
                </field>
+               <field name="method_implicit_params">
+                       <callback name="method_implicit_params" c:type="method_implicit_params">
+                               <return-value transfer-ownership="full">
+                                       <type name="none" c:type="void"/>
+                               </return-value>
+                               <parameters>
+                                       <instance-parameter name="self" transfer-ownership="none">
+                                               <type name="GirTest.InterfaceTest" c:type="GirTestInterfaceTest*"/>
+                                       </instance-parameter>
+                                       <parameter name="param1" transfer-ownership="none">
+                                               <array length="1" c:type="gint*">
+                                                       <type name="gint" c:type="gint"/>
+                                               </array>
+                                       </parameter>
+                                       <parameter name="param1_length1" transfer-ownership="none">
+                                               <type name="gint" c:type="gint"/>
+                                       </parameter>
+                                       <parameter name="param2" transfer-ownership="none" closure="3" scope="notified" destroy="4">
+                                               <type name="GirTest.DelegateTest" c:type="GirTestDelegateTest"/>
+                                       </parameter>
+                                       <parameter name="param2_target" transfer-ownership="none" allow-none="1">
+                                               <type name="gpointer" c:type="void*"/>
+                                       </parameter>
+                                       <parameter name="param2_target_destroy_notify" transfer-ownership="none" scope="call">
+                                               <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+                                       </parameter>
+                               </parameters>
+                       </callback>
+               </field>
                <field name="get_property">
                        <callback name="get_property" c:type="get_property">
                                <return-value transfer-ownership="none">
index 092b88cd4ac19c8fada7457b308b56648cb5a891..61f0f47245f7472d04d68bbf374cb65393ef0d5f 100644 (file)
@@ -87,6 +87,8 @@ namespace GirTest {
                [NoWrapper]
                public virtual async void no_wrapper_method_async () {
                }
+               public virtual void method_implicit_params (int[] param1, owned DelegateTest param2) {
+               }
                [HasEmitter]
                public signal void some_signal (int param);
                public static void static_method () {
@@ -298,6 +300,9 @@ namespace GirTest {
                [NoWrapper]
                public virtual async void no_wrapper_method_async () {
                }
+
+               public virtual void method_implicit_params (int[] param1, owned DelegateTest param2) {
+               }
        }
 
        public abstract class AbstractObjectTest : Object {
@@ -321,6 +326,8 @@ namespace GirTest {
 
                [NoWrapper]
                public abstract async void no_wrapper_method_async ();
+
+               public abstract void method_implicit_params (int[] param1, owned DelegateTest param2);
        }
 
        public interface PrerequisiteTest : InterfaceTest {
index e1d7a4f69c08e8a33b2c6c59089a22177668c9d9..7ed0bfe510db64b2f36c53bd58718785d0d90836 100644 (file)
@@ -7,6 +7,7 @@ namespace GirTest {
        [CCode (cheader_filename = "girtest.h")]
        public abstract class AbstractObjectTest : GLib.Object {
                protected AbstractObjectTest ();
+               public abstract void method_implicit_params (int[] param1, owned GirTest.DelegateTest param2);
                public abstract void method_int8_in (int8 param);
                public abstract void method_int8_inout (ref int8 param);
                public abstract void method_int8_out (out int8 param);
@@ -73,6 +74,7 @@ namespace GirTest {
                public int[] int_in_int_in_array_return (int param1, int param2);
                public ObjectTest.may_fail (int param) throws GirTest.ErrorTest;
                public void method ();
+               public virtual void method_implicit_params (int[] param1, owned GirTest.DelegateTest param2);
                public virtual void method_throw () throws GirTest.ErrorTest;
                public void method_valist (int param, va_list vargs);
                public void method_varargs (int param, ...);
@@ -126,6 +128,7 @@ namespace GirTest {
        public interface InterfaceTest : GLib.Object {
                public virtual async void coroutine_async ();
                public virtual void int8_in (int8 param);
+               public virtual void method_implicit_params (int[] param1, owned GirTest.DelegateTest param2);
                public virtual void method_valist (int param, va_list vargs);
                [NoWrapper]
                public virtual void no_wrapper_method ();
index cb0724d19fea417fe1a740f71115abc8234ebfcd..a4de2304d14ca0074f4d908b37c8afa1e6792f24 100644 (file)
@@ -9,6 +9,7 @@ namespace GirTest {
                [CCode (has_construct_function = false)]
                protected AbstractObjectTest ();
                public abstract void internal_method (int8 param);
+               public abstract void method_implicit_params ([CCode (array_length_cname = "param1_length1", array_length_pos = 1.5)] int[] param1, owned GirTest.DelegateTest param2);
                public abstract void method_int8_in (int8 param);
                public abstract void method_int8_inout (ref int8 param);
                public abstract void method_int8_out (out int8 param);
@@ -105,6 +106,7 @@ namespace GirTest {
                [CCode (cname = "gir_test_object_test_new_may_fail", has_construct_function = false)]
                public ObjectTest.may_fail (int param) throws GirTest.ErrorTest;
                public void method ();
+               public virtual void method_implicit_params ([CCode (array_length_cname = "param1_length1", array_length_pos = 1.5)] int[] param1, owned GirTest.DelegateTest param2);
                public virtual void method_throw () throws GirTest.ErrorTest;
                public void method_valist (int param, va_list vargs);
                public void method_varargs (int param, ...);
@@ -163,6 +165,7 @@ namespace GirTest {
                public virtual int get_property ();
                public virtual void int8_in (int8 param);
                public virtual void internal_method ();
+               public virtual void method_implicit_params ([CCode (array_length_cname = "param1_length1", array_length_pos = 1.5)] int[] param1, owned GirTest.DelegateTest param2);
                [NoWrapper]
                public virtual void no_wrapper_method ();
                [NoWrapper]