summaryrefslogtreecommitdiff
path: root/tests/objects/signals-fundamental-return.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/objects/signals-fundamental-return.vala')
-rw-r--r--tests/objects/signals-fundamental-return.vala28
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);
+}