]> 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:01 +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 ca15d4c8e1d9752e014ddae3b503eea9bdaa58bf..ea89d7e55aa7bcc92f0ac6e2ab6e83c7a469a6f5 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 e39dabc59a104dc232e37beedcb391a839a2523c..a08020bd07db17d19177a14a9c8a18d3cc0d9248 100644 (file)
@@ -82,6 +82,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 () {
@@ -284,6 +286,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 {
@@ -305,6 +310,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 aa02fb5cb231473d122f8f505b6bd3fb4af30970..807080a3347fb770c97eaf827db25f1c425ba765 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 b03b374e715b069fabfe29791827d71d94a1d838..35a839f7228d4cc3294dceeafe18e6b2653a4555 100644 (file)
@@ -8,6 +8,7 @@ namespace GirTest {
        public abstract class AbstractObjectTest : GLib.Object {
                [CCode (has_construct_function = false)]
                protected AbstractObjectTest ();
+               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);
@@ -102,6 +103,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, ...);
@@ -159,6 +161,7 @@ namespace GirTest {
                public virtual void coroutine_finish (GLib.AsyncResult _res_);
                public virtual int get_property ();
                public virtual void int8_in (int8 param);
+               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]