summaryrefslogtreecommitdiff
path: root/vala/valalambdaexpression.vala
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2010-01-24 18:41:44 +0100
committerJürg Billeter <j@bitron.ch>2010-01-29 21:57:40 +0100
commitda67841f1fed0b391965e6c1b2179855396ab06b (patch)
treee785d5eaa053da88ee41c8fad55cd5d4c6030b58 /vala/valalambdaexpression.vala
parentd20e60748429c8c1b14c85cd880ab7c8e1e8f54c (diff)
downloadvala-da67841f1fed0b391965e6c1b2179855396ab06b.tar.gz
Perform flow analysis on lambda expressions
Fixes bug 606478.
Diffstat (limited to 'vala/valalambdaexpression.vala')
-rw-r--r--vala/valalambdaexpression.vala17
1 files changed, 6 insertions, 11 deletions
diff --git a/vala/valalambdaexpression.vala b/vala/valalambdaexpression.vala
index 0f0bb2997..facaed95b 100644
--- a/vala/valalambdaexpression.vala
+++ b/vala/valalambdaexpression.vala
@@ -1,6 +1,6 @@
/* valalambdaexpression.vala
*
- * Copyright (C) 2006-2009 Jürg Billeter
+ * Copyright (C) 2006-2010 Jürg Billeter
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -133,7 +133,10 @@ public class Vala.LambdaExpression : Expression {
}
var cb = (Delegate) ((DelegateType) target_type).delegate_symbol;
- method = new Method (get_lambda_name (analyzer), cb.return_type);
+ method = new Method (get_lambda_name (analyzer), cb.return_type, source_reference);
+ // track usage for flow analyzer
+ method.used = true;
+
if (!cb.has_target || !analyzer.is_in_instance_method ()) {
method.binding = MemberBinding.STATIC;
} else {
@@ -211,15 +214,7 @@ public class Vala.LambdaExpression : Expression {
/* lambda expressions should be usable like MemberAccess of a method */
symbol_reference = method;
- if (method == null) {
- if (expression_body != null) {
- expression_body.check (analyzer);
- } else if (statement_body != null) {
- statement_body.check (analyzer);
- }
- } else {
- method.check (analyzer);
- }
+ method.check (analyzer);
value_type = new MethodType (method);
value_type.value_owned = target_type.value_owned;