[vala/staging] vala: Add common CallableExpression.call property API



commit e51493ea5019872d6d2b5152d1781394b37a4f40
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Tue Feb 22 13:10:20 2022 +0100

    vala: Add common CallableExpression.call property API

 vala/valacallableexpression.vala       | 5 +++++
 vala/valamethodcall.vala               | 9 +++------
 vala/valaobjectcreationexpression.vala | 7 +++++++
 3 files changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/vala/valacallableexpression.vala b/vala/valacallableexpression.vala
index 930c7a0a2..cf9c7ddbe 100644
--- a/vala/valacallableexpression.vala
+++ b/vala/valacallableexpression.vala
@@ -36,6 +36,11 @@ public interface Vala.CallableExpression : Expression {
         */
        public abstract bool is_chainup { get; set; }
 
+       /**
+        * The expression to call.
+        */
+       public abstract Expression call { get; }
+
        /**
         * Appends the specified expression to the list of arguments.
         *
diff --git a/vala/valamethodcall.vala b/vala/valamethodcall.vala
index 70ad8fb6a..162a9fad4 100644
--- a/vala/valamethodcall.vala
+++ b/vala/valamethodcall.vala
@@ -31,10 +31,6 @@ public class Vala.MethodCall : Expression, CallableExpression {
         */
        public Expression call {
                get { return _call; }
-               private set {
-                       _call = value;
-                       _call.parent_node = this;
-               }
        }
 
        public bool is_yield_expression { get; set; }
@@ -61,7 +57,8 @@ public class Vala.MethodCall : Expression, CallableExpression {
         */
        public MethodCall (Expression call, SourceReference? source_reference = null) {
                this.source_reference = source_reference;
-               this.call = call;
+               this._call = call;
+               this._call.parent_node = this;
        }
 
        /**
@@ -99,7 +96,7 @@ public class Vala.MethodCall : Expression, CallableExpression {
 
        public override void replace_expression (Expression old_node, Expression new_node) {
                if (call == old_node) {
-                       call = new_node;
+                       _call = new_node;
                }
 
                int index = argument_list.index_of (old_node);
diff --git a/vala/valaobjectcreationexpression.vala b/vala/valaobjectcreationexpression.vala
index 9cea93417..5793b46f1 100644
--- a/vala/valaobjectcreationexpression.vala
+++ b/vala/valaobjectcreationexpression.vala
@@ -37,6 +37,13 @@ public class Vala.ObjectCreationExpression : Expression, CallableExpression {
                }
        }
 
+       /**
+        * The construction method to call.
+        */
+       public Expression call {
+               get { return member_name; }
+       }
+
        /**
         * The construction method to use or the data type to be created
         * with the default construction method.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]