diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-08-13 23:00:44 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2020-08-14 13:19:51 +0200 |
commit | 254431cc5778421bd1bd3d0de02a55843cfa07a2 (patch) | |
tree | 2bc23298f70372b24340bb5f2dc0d9b58a709164 | |
parent | 8bab9d110ab18a693e81ccbe0619cb7b5471d54f (diff) | |
download | vala-254431cc5778421bd1bd3d0de02a55843cfa07a2.tar.gz |
vala: Set parent_node for child nodes of lambda-expressionwip/issue/1062
Fixes https://gitlab.gnome.org/GNOME/vala/issues/1062
-rw-r--r-- | vala/valalambdaexpression.vala | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/vala/valalambdaexpression.vala b/vala/valalambdaexpression.vala index 6042d948b..9a6940f90 100644 --- a/vala/valalambdaexpression.vala +++ b/vala/valalambdaexpression.vala @@ -34,13 +34,29 @@ public class Vala.LambdaExpression : Expression { * The expression body of this lambda expression. Only one of * expression_body or statement_body may be set. */ - public Expression expression_body { get; private set; } + public Expression expression_body { + get { return _expression_body; } + private set { + _expression_body = value; + if (_expression_body != null) { + _expression_body.parent_node = this; + } + } + } /** * The statement body of this lambda expression. Only one of * expression_body or statement_body may be set. */ - public Block statement_body { get; private set; } + public Block statement_body { + get { return _statement_body; } + private set { + _statement_body = value; + if (_statement_body != null) { + _statement_body.parent_node = this; + } + } + } /** * The generated method. @@ -48,6 +64,8 @@ public class Vala.LambdaExpression : Expression { public Method method { get; private set; } private List<Parameter> parameters = new ArrayList<Parameter> (); + Block _statement_body; + Expression _expression_body; /** * Creates a new lambda expression. @@ -168,6 +186,7 @@ public class Vala.LambdaExpression : Expression { } } method.owner = context.analyzer.current_symbol.scope; + method.parent_node = this; var lambda_params = get_parameters (); Iterator<Parameter> lambda_param_it = lambda_params.iterator (); |