From: Luca Bruno Date: Thu, 29 Dec 2011 11:39:15 +0000 (+0100) Subject: Several transformer fixes X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=168ee69b1e580a00c52d9d699e911e9d619e6a14;p=thirdparty%2Fvala.git Several transformer fixes --- diff --git a/vala/valacodetransformer.vala b/vala/valacodetransformer.vala index eaff508b4..8727c8e7e 100644 --- a/vala/valacodetransformer.vala +++ b/vala/valacodetransformer.vala @@ -196,6 +196,7 @@ public class Vala.CodeTransformer : CodeVisitor { var loop = new Loop (stmt.body, stmt.source_reference); var parent_block = (Block) stmt.parent_node; + context.analyzer.replaced_nodes.add (stmt); parent_block.replace_statement (stmt, loop); stmt.body.checked = false; @@ -210,6 +211,7 @@ public class Vala.CodeTransformer : CodeVisitor { var loop = new Loop (stmt.body, stmt.source_reference); var parent_block = (Block) stmt.parent_node; + context.analyzer.replaced_nodes.add (stmt); parent_block.replace_statement (stmt, loop); check (loop); @@ -237,6 +239,7 @@ public class Vala.CodeTransformer : CodeVisitor { block.add_statement (new Loop (stmt.body, stmt.source_reference)); var parent_block = (Block) stmt.parent_node; + context.analyzer.replaced_nodes.add (stmt); parent_block.replace_statement (stmt, block); stmt.body.checked = false; @@ -283,6 +286,7 @@ public class Vala.CodeTransformer : CodeVisitor { block.add_statement (new Loop (stmt.body, stmt.source_reference)); var parent_block = (Block) stmt.parent_node; + context.analyzer.replaced_nodes.add (stmt); parent_block.replace_statement (stmt, block); stmt.body.checked = false; @@ -366,6 +370,7 @@ public class Vala.CodeTransformer : CodeVisitor { block.remove_local_variable (local); context.analyzer.get_insert_block (expr).add_local_variable (local); + context.analyzer.replaced_nodes.add (expr); old_parent_node.replace_expression (expr, temp_access); check (temp_access); } @@ -396,6 +401,7 @@ public class Vala.CodeTransformer : CodeVisitor { ma.formal_target_type = expr.formal_target_type; ma.target_type = expr.target_type; + context.analyzer.replaced_nodes.add (expr); expr.parent_node.replace_expression (expr, ma); check (ma); } diff --git a/vala/valaconditionalexpression.vala b/vala/valaconditionalexpression.vala index 72f42d195..16e54064f 100644 --- a/vala/valaconditionalexpression.vala +++ b/vala/valaconditionalexpression.vala @@ -85,11 +85,9 @@ public class Vala.ConditionalExpression : Expression { } public override void accept (CodeVisitor visitor) { - // FIXME: temporary workaround to keep alive the object - var self = this; - visitor.visit_conditional_expression (self); + visitor.visit_conditional_expression (this); - visitor.visit_expression (self); + visitor.visit_expression (this); } public override void accept_children (CodeVisitor visitor) {