From: Rico Tzschichholz Date: Thu, 13 Aug 2020 21:00:44 +0000 (+0200) Subject: vala: Set parent_node for child nodes of lambda-expression X-Git-Tag: 0.40.24~22 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dde87d52f795fd246fd0a5a921ab88ddd3ab2ba5;p=thirdparty%2Fvala.git vala: Set parent_node for child nodes of lambda-expression Fixes https://gitlab.gnome.org/GNOME/vala/issues/1062 --- diff --git a/vala/valalambdaexpression.vala b/vala/valalambdaexpression.vala index b3151d551..adefa656d 100644 --- a/vala/valalambdaexpression.vala +++ b/vala/valalambdaexpression.vala @@ -34,20 +34,38 @@ 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; set; } - + public Expression expression_body { + get { return _expression_body; } + 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; set; } - + public Block statement_body { + get { return _statement_body; } + set { + _statement_body = value; + if (_statement_body != null) { + _statement_body.parent_node = this; + } + } + } + /** * The generated method. */ public Method method { get; set; } private List parameters = new ArrayList (); + 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 lambda_param_it = lambda_params.iterator ();