diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-04-01 15:33:43 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-04-01 16:00:00 +0200 |
commit | 61dd28834abb0e3b90b6978ca5221dfecd5db415 (patch) | |
tree | 7c7d086bb9ff738e24c78f152a60e03325e0678b | |
parent | 5aed64231cf86c7346442ebffefdea7903ccad99 (diff) | |
download | vala-61dd28834abb0e3b90b6978ca5221dfecd5db415.tar.gz |
tests/girwriter: Add tests for implicit parameters in virtual-method/callback
-rw-r--r-- | tests/girwriter/GirTest-1.0.gir-expected | 249 | ||||
-rw-r--r-- | tests/girwriter/girtest.vala | 7 | ||||
-rw-r--r-- | tests/girwriter/girtest.vapi-expected | 3 | ||||
-rw-r--r-- | tests/girwriter/girtest.vapigen-expected | 3 |
4 files changed, 262 insertions, 0 deletions
diff --git a/tests/girwriter/GirTest-1.0.gir-expected b/tests/girwriter/GirTest-1.0.gir-expected index 845293d78..d2e83c8fd 100644 --- a/tests/girwriter/GirTest-1.0.gir-expected +++ b/tests/girwriter/GirTest-1.0.gir-expected @@ -877,6 +877,60 @@ </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> @@ -1155,6 +1209,35 @@ </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"> @@ -1438,6 +1521,60 @@ </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"> @@ -1614,6 +1751,35 @@ </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"> @@ -2131,6 +2297,60 @@ </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"/> @@ -2372,6 +2592,35 @@ </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"> diff --git a/tests/girwriter/girtest.vala b/tests/girwriter/girtest.vala index 092b88cd4..61f0f4724 100644 --- a/tests/girwriter/girtest.vala +++ b/tests/girwriter/girtest.vala @@ -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 { diff --git a/tests/girwriter/girtest.vapi-expected b/tests/girwriter/girtest.vapi-expected index e1d7a4f69..7ed0bfe51 100644 --- a/tests/girwriter/girtest.vapi-expected +++ b/tests/girwriter/girtest.vapi-expected @@ -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 (); diff --git a/tests/girwriter/girtest.vapigen-expected b/tests/girwriter/girtest.vapigen-expected index cb0724d19..a4de2304d 100644 --- a/tests/girwriter/girtest.vapigen-expected +++ b/tests/girwriter/girtest.vapigen-expected @@ -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] |