diff options
author | Jürg Billeter <j@bitron.ch> | 2009-10-16 17:59:30 +0200 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2009-10-16 17:59:56 +0200 |
commit | d32e981f704891e7532d15c8458c752fec86f7df (patch) | |
tree | c67395a3b27843012c89ff9d0a36c39da40d79a2 | |
parent | e4a3bc64f91a4142389a86c71916ea5a4ae924c7 (diff) | |
download | vala-d32e981f704891e7532d15c8458c752fec86f7df.tar.gz |
GAsync: Fix non-closure lambda expressions in instance methods
Fixes bug 598697.
-rw-r--r-- | codegen/valaccodedelegatemodule.vala | 2 | ||||
-rw-r--r-- | tests/Makefile.am | 1 | ||||
-rw-r--r-- | tests/asynchronous/bug598697.vala | 8 |
3 files changed, 10 insertions, 1 deletions
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala index 0dd60fa64..4f656d75f 100644 --- a/codegen/valaccodedelegatemodule.vala +++ b/codegen/valaccodedelegatemodule.vala @@ -161,7 +161,7 @@ internal class Vala.CCodeDelegateModule : CCodeArrayModule { } return delegate_target; } else if (get_this_type () != null || in_constructor) { - CCodeExpression delegate_target = new CCodeIdentifier ("self"); + CCodeExpression delegate_target = get_result_cexpression ("self"); if (expr_owned) { if (get_this_type () != null) { var ref_call = new CCodeFunctionCall (get_dup_func_expression (get_this_type (), delegate_expr.source_reference)); diff --git a/tests/Makefile.am b/tests/Makefile.am index 84b888193..0d041e5a3 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -64,6 +64,7 @@ TESTS = \ asynchronous/bug596177.vala \ asynchronous/bug597294.vala \ asynchronous/bug598677.vala \ + asynchronous/bug598697.vala \ asynchronous/bug598698.vala \ dbus/basic-types.test \ dbus/arrays.test \ diff --git a/tests/asynchronous/bug598697.vala b/tests/asynchronous/bug598697.vala new file mode 100644 index 000000000..804039a42 --- /dev/null +++ b/tests/asynchronous/bug598697.vala @@ -0,0 +1,8 @@ +public class Foo { + public async void do_foo () { + Func f = () => {}; + } +} + +void main () { +} |