diff options
author | Luca Bruno <lucabru@src.gnome.org> | 2011-06-01 10:18:44 +0200 |
---|---|---|
committer | Luca Bruno <lucabru@src.gnome.org> | 2011-07-15 18:57:24 +0200 |
commit | 43570fcee9d6965690b9c612b7c886cb85ad107f (patch) | |
tree | d188b2edd343d1b2fbb6163eaa99eaf7c735d892 /vala/valaunaryexpression.vala | |
parent | 7d1332dd66d7b12da503f2aa9239753aaa5a1719 (diff) | |
download | vala-43570fcee9d6965690b9c612b7c886cb85ad107f.tar.gz |
Enable flow analysis for out parameters
Fixes bug 638363.
Diffstat (limited to 'vala/valaunaryexpression.vala')
-rw-r--r-- | vala/valaunaryexpression.vala | 8 |
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); } |