summaryrefslogtreecommitdiff
path: root/vala/valaunaryexpression.vala
diff options
context:
space:
mode:
authorLuca Bruno <lucabru@src.gnome.org>2011-06-01 10:18:44 +0200
committerLuca Bruno <lucabru@src.gnome.org>2011-07-15 18:57:24 +0200
commit43570fcee9d6965690b9c612b7c886cb85ad107f (patch)
treed188b2edd343d1b2fbb6163eaa99eaf7c735d892 /vala/valaunaryexpression.vala
parent7d1332dd66d7b12da503f2aa9239753aaa5a1719 (diff)
downloadvala-43570fcee9d6965690b9c612b7c886cb85ad107f.tar.gz
Enable flow analysis for out parameters
Fixes bug 638363.
Diffstat (limited to 'vala/valaunaryexpression.vala')
-rw-r--r--vala/valaunaryexpression.vala8
1 files changed, 6 insertions, 2 deletions
diff --git a/vala/valaunaryexpression.vala b/vala/valaunaryexpression.vala
index a26c3dac4..11c3bb417 100644
--- a/vala/valaunaryexpression.vala
+++ b/vala/valaunaryexpression.vala
@@ -253,17 +253,21 @@ public class Vala.UnaryExpression : Expression {
codegen.visit_expression (this);
}
- public override void get_defined_variables (Collection<LocalVariable> collection) {
+ public override void get_defined_variables (Collection<Variable> collection) {
inner.get_defined_variables (collection);
if (operator == UnaryOperator.OUT || operator == UnaryOperator.REF) {
var local = inner.symbol_reference as LocalVariable;
+ var param = inner.symbol_reference as Parameter;
if (local != null) {
collection.add (local);
}
+ if (param != null && param.direction == ParameterDirection.OUT) {
+ collection.add (param);
+ }
}
}
- public override void get_used_variables (Collection<LocalVariable> collection) {
+ public override void get_used_variables (Collection<Variable> collection) {
if (operator != UnaryOperator.OUT) {
inner.get_used_variables (collection);
}