diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-01-15 15:52:49 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-01-15 15:52:49 +0100 |
commit | 98ab3da89640b8b8a6c67044b4df1194672774bb (patch) | |
tree | df8c01f363a605cc9fed4ae6df8d09bb4fc81f6d /tests/methods | |
parent | 8021ad3876ede6b19a8e075ab0f0a23a999d0b50 (diff) | |
download | vala-98ab3da89640b8b8a6c67044b4df1194672774bb.tar.gz |
Add further support for params arrays
This brings support for params-arrays in normal vala source code.
The parameter is a null-terminated array which is represented as variadic
parameter in generated C.
This feature is considered experimental for now.
Fixes https://gitlab.gnome.org/GNOME/vala/issues/128
Diffstat (limited to 'tests/methods')
-rw-r--r-- | tests/methods/params-array.vala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/methods/params-array.vala b/tests/methods/params-array.vala new file mode 100644 index 000000000..3c76d7048 --- /dev/null +++ b/tests/methods/params-array.vala @@ -0,0 +1,42 @@ +void foo (params string[] strv) { + assert (strv.length == 3); + assert (strv[0] == "foo"); + assert (strv[1] == "bar"); + assert (strv[2] == "manam"); +} + +void bar (params int[] intv) { + assert (intv.length == 3); + assert (intv[0] == 23); + assert (intv[1] == 42); + assert (intv[2] == 4711); +} + +void manam (params Value?[] valuev) { + assert (valuev.length == 3); + assert (valuev[0] == "foo"); + assert (valuev[1] == 4711); + assert (valuev[2] == 3.1415); +} + +void manam_owned (params owned Value?[] valuev) { + assert (valuev.length == 3); + assert (valuev[0] == "foo"); + assert (valuev[1] == 4711); + assert (valuev[2] == 3.1415); +} + +void minim (params Variant[] variantv) { + assert (variantv.length == 3); + assert ((string) variantv[0] == "foo"); + assert ((int) variantv[1] == 4711); + assert ((double) variantv[2] == 3.1415); +} + +void main () { + foo ("foo", "bar", "manam"); + bar (23, 42, 4711); + manam ("foo", 4711, 3.1415); + manam_owned ("foo", 4711, 3.1415); + minim ("foo", 4711, 3.1415); +} |