[vala] GAsync: Fix non-closure lambda expressions in instance methods



commit d32e981f704891e7532d15c8458c752fec86f7df
Author: Jürg Billeter <j bitron ch>
Date:   Fri Oct 16 17:59:30 2009 +0200

    GAsync: Fix non-closure lambda expressions in instance methods
    
    Fixes bug 598697.

 codegen/valaccodedelegatemodule.vala |    2 +-
 tests/Makefile.am                    |    1 +
 tests/asynchronous/bug598697.vala    |    8 ++++++++
 3 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/codegen/valaccodedelegatemodule.vala b/codegen/valaccodedelegatemodule.vala
index 0dd60fa..4f656d7 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 84b8881..0d041e5 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 0000000..804039a
--- /dev/null
+++ b/tests/asynchronous/bug598697.vala
@@ -0,0 +1,8 @@
+public class Foo {
+	public async void do_foo () {
+		Func f = () => {};
+	}
+}
+
+void main () {
+}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]