From: Jürg Billeter Date: Thu, 5 Nov 2009 15:09:39 +0000 (+0100) Subject: GAsync: Fix virtual async methods X-Git-Tag: 0.7.9~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93c04c2de4c25c40e83c6ea9bc73a2fa474d2373;p=thirdparty%2Fvala.git GAsync: Fix virtual async methods Fixes bug 600827. --- diff --git a/codegen/valagtypemodule.vala b/codegen/valagtypemodule.vala index e24ab34ff..0acde87f3 100644 --- a/codegen/valagtypemodule.vala +++ b/codegen/valagtypemodule.vala @@ -1147,7 +1147,7 @@ internal class Vala.GTypeModule : GErrorModule { var base_type = m.base_method.parent_symbol; // there is currently no default handler for abstract async methods - if (m.overrides || !m.coroutine) { + if (!m.is_abstract || !m.coroutine) { var ccast = new CCodeFunctionCall (new CCodeIdentifier ("%s_CLASS".printf (((Class) base_type).get_upper_case_cname (null)))); ccast.add_argument (new CCodeIdentifier ("klass")); diff --git a/tests/Makefile.am b/tests/Makefile.am index 4773f3a18..7e6f22289 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -70,6 +70,7 @@ TESTS = \ asynchronous/bug598697.vala \ asynchronous/bug598698.vala \ asynchronous/bug599568.vala \ + asynchronous/bug600827.vala \ dbus/basic-types.test \ dbus/arrays.test \ dbus/async.test \ diff --git a/tests/asynchronous/bug600827.vala b/tests/asynchronous/bug600827.vala new file mode 100644 index 000000000..709ee7287 --- /dev/null +++ b/tests/asynchronous/bug600827.vala @@ -0,0 +1,9 @@ +public class Foo { + public virtual async void do_foo () { + } +} + +void main () { + var foo = new Foo (); + foo.do_foo (); +}