Fixes bug 652252.
if (m.is_virtual) {
var cname = m.get_real_cname ();
ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.vfunc_name), new CCodeIdentifier (cname));
+ if (m.coroutine) {
+ ccode.add_assignment (new CCodeMemberAccess.pointer (ciface, m.get_finish_vfunc_name ()), new CCodeIdentifier (m.get_finish_real_cname ()));
+ }
}
}
asynchronous/bug639591.vala \
asynchronous/bug641182.vala \
asynchronous/bug646945.vala \
+ asynchronous/bug652252.vala \
asynchronous/closures.vala \
dbus/basic-types.test \
dbus/arrays.test \
--- /dev/null
+interface Foo : Object {
+ public async virtual void foo () {
+ }
+}
+
+class Bar : Object, Foo {
+}
+
+void main () {
+ var loop = new MainLoop();
+
+ var bar = new Bar ();
+ bar.foo.begin ((s,r) => { bar.foo.end (r); loop.quit (); });
+
+ loop.run();
+}