]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Add missing replace_expression() implementations
authorLuca Bruno <lucabru@src.gnome.org>
Thu, 29 Dec 2011 11:39:15 +0000 (12:39 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Tue, 23 Oct 2018 16:45:45 +0000 (18:45 +0200)
vala/valaconditionalexpression.vala
vala/valadeletestatement.vala
vala/valadostatement.vala
vala/valaforstatement.vala
vala/valalockstatement.vala
vala/valapostfixexpression.vala
vala/valatemplate.vala
vala/valaunlockstatement.vala
vala/valawhilestatement.vala

index 27f7d8618114ea41676e5a2265e8b5f148707ea7..30336289d8b1e429de3cbcdc282ae11987ad847b 100644 (file)
@@ -110,6 +110,18 @@ public class Vala.ConditionalExpression : Expression {
                false_expression.get_error_types (collection, source_reference);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (condition == old_node) {
+                       condition = new_node;
+               }
+               if (true_expression == old_node) {
+                       true_expression = new_node;
+               }
+               if (false_expression == old_node) {
+                       false_expression = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                if (checked) {
                        return !error;
index e12b5c4e1f38050564cf1c0f574c3f1f937e94b1..ff3ff68913f507d03fd53fcc05e26d359acefdfe 100644 (file)
@@ -50,6 +50,12 @@ public class Vala.DeleteStatement : CodeNode, Statement {
                expression.accept (visitor);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (expression == old_node) {
+                       expression = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                if (checked) {
                        return !error;
index b7fa036603a184463b50b658b03d85af7b7b4687..987facc908f6b0b198ce8a051d733171a16f8a2e 100644 (file)
@@ -86,6 +86,12 @@ public class Vala.DoStatement : CodeNode, Statement {
                return (literal != null && literal.value);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (condition == old_node) {
+                       condition = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                // convert to simple loop
 
index 80ff8dbeb1fa803b28f026ef32c456e3e8279f98..79bd063f74517c961a86b607420d34fdde879c63 100644 (file)
@@ -136,6 +136,22 @@ public class Vala.ForStatement : CodeNode, Statement {
                body.accept (visitor);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (condition == old_node) {
+                       condition = new_node;
+               }
+               for (int i=0; i < initializer.size; i++) {
+                       if (initializer[i] == old_node) {
+                               initializer[i] = new_node;
+                       }
+               }
+               for (int i=0; i < iterator.size; i++) {
+                       if (iterator[i] == old_node) {
+                               iterator[i] = new_node;
+                       }
+               }
+       }
+
        bool always_true (Expression condition) {
                var literal = condition as BooleanLiteral;
                return (literal != null && literal.value);
index 38fac07b5d22074ed32b270f15f986b19ce00179..65d8ff09e8af7cde1ede6cba683903595e9b1586 100644 (file)
@@ -57,6 +57,12 @@ public class Vala.LockStatement : CodeNode, Statement {
                visitor.visit_lock_statement (this);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (resource == old_node) {
+                       resource = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                if (body != null) {
                        // if the statement isn't empty, it is converted into a try statement
index eed39a39a0d0e60c0948ca083cf2e74aaea9ca95..156ffecf0e8d22b881f7980f556a5cc9ee938513 100644 (file)
@@ -91,6 +91,12 @@ public class Vala.PostfixExpression : Expression {
                inner.get_used_variables (collection);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (inner == old_node) {
+                       inner = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                if (checked) {
                        return !error;
index 5e27a7b8e7ca7d625cfe56e444241428787985db..dd66c3d4c1e693242280fd9c589b97114b2e9cae 100644 (file)
@@ -58,6 +58,14 @@ public class Vala.Template : Expression {
                }
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               int index = expression_list.index_of (old_node);
+               if (index >= 0) {
+                       expression_list[index] = new_node;
+                       new_node.parent_node = this;
+               }
+       }
+
        public override bool check (CodeContext context) {
                if (checked) {
                        return !error;
index 283b782a5c0ae7c3730c8a0b71cd82397326e13d..69f9eb0220fef33f7c852bf05c8780c8df9c68bf 100644 (file)
@@ -40,6 +40,12 @@ public class Vala.UnlockStatement : CodeNode, Statement {
                visitor.visit_unlock_statement (this);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (resource == old_node) {
+                       resource = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                if (checked) {
                        return !error;
index 9c4e65e6c0a04c3335d6af415b645b32c4f0a4be..0b0a1b1bbebe058e1b626fc149f45a8945c68856 100644 (file)
@@ -91,6 +91,12 @@ public class Vala.WhileStatement : CodeNode, Statement {
                return (literal != null && !literal.value);
        }
 
+       public override void replace_expression (Expression old_node, Expression new_node) {
+               if (condition == old_node) {
+                       condition = new_node;
+               }
+       }
+
        public override bool check (CodeContext context) {
                // convert to simple loop