diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-04-12 11:02:29 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-04-12 11:09:34 +0200 |
commit | 34a47ef9f37aa1b53a72ff05862e88082ca952c0 (patch) | |
tree | 88edb9832c740a99cd8f2b13ebc2e58b76976f28 /tests/objects/signals-fundamental-return.vala | |
parent | 0a0a851198fb8dcc14e752a7e086418a69183511 (diff) | |
download | vala-34a47ef9f37aa1b53a72ff05862e88082ca952c0.tar.gz |
codegen: Use get_value_*_function() in GSignalModule.generate_marshaller()
This makes sure to pick up the intended function like the generated ones
for fundamental classes.
Fixes https://gitlab.gnome.org/GNOME/vala/issues/468
Diffstat (limited to 'tests/objects/signals-fundamental-return.vala')
-rw-r--r-- | tests/objects/signals-fundamental-return.vala | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/objects/signals-fundamental-return.vala b/tests/objects/signals-fundamental-return.vala new file mode 100644 index 000000000..d73ed03fb --- /dev/null +++ b/tests/objects/signals-fundamental-return.vala @@ -0,0 +1,28 @@ +class Maman { +} + +interface IBar : Maman { +} + +class Bar : Maman, IBar { +} + +class Foo { + public signal Foo on_foo (); + public signal IBar on_bar (); +} + +void main () { + var foo = new Foo (); + foo.on_foo.connect (() => { + return new Foo (); + }); + foo.on_bar.connect (() => { + return new Bar (); + }); + + var bar = foo.on_foo (); + assert (bar is Foo); + var bar2 = foo.on_bar (); + assert (bar2 is IBar); +} |