From: Jürg Billeter Date: Sun, 30 Nov 2008 11:09:26 +0000 (+0000) Subject: Separate visiting operands from visiting binary expression X-Git-Tag: VALA_0_5_2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=deb47777eda8d31c15663fea4eaa66da49b80ba7;p=thirdparty%2Fvala.git Separate visiting operands from visiting binary expression 2008-11-30 Jürg Billeter * vala/valabinaryexpression.vala: * vala/valasymbolresolver.vala: * gobject/valaccodebasemodule.vala: Separate visiting operands from visiting binary expression svn path=/trunk/; revision=2094 --- diff --git a/ChangeLog b/ChangeLog index 695543999..5b7e7bbb7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-11-30 Jürg Billeter + + * vala/valabinaryexpression.vala: + * vala/valasymbolresolver.vala: + * gobject/valaccodebasemodule.vala: + + Separate visiting operands from visiting binary expression + 2008-11-30 Jürg Billeter * vala/valadeclarationstatement.vala: diff --git a/gobject/valaccodebasemodule.vala b/gobject/valaccodebasemodule.vala index e82d468ad..1cb5f83e9 100644 --- a/gobject/valaccodebasemodule.vala +++ b/gobject/valaccodebasemodule.vala @@ -2743,6 +2743,8 @@ public class Vala.CCodeBaseModule : CCodeModule { } public override void visit_binary_expression (BinaryExpression expr) { + expr.accept_children (codegen); + var cleft = (CCodeExpression) expr.left.ccodenode; var cright = (CCodeExpression) expr.right.ccodenode; diff --git a/vala/valabinaryexpression.vala b/vala/valabinaryexpression.vala index 024ec9dcb..3eb02fd41 100644 --- a/vala/valabinaryexpression.vala +++ b/vala/valabinaryexpression.vala @@ -77,16 +77,18 @@ public class Vala.BinaryExpression : Expression { right = _right; source_reference = source; } - - public override void accept (CodeVisitor visitor) { - left.accept (visitor); - right.accept (visitor); + public override void accept (CodeVisitor visitor) { visitor.visit_binary_expression (this); visitor.visit_expression (this); } + public override void accept_children (CodeVisitor visitor) { + left.accept (visitor); + right.accept (visitor); + } + public override void replace_expression (Expression old_node, Expression new_node) { if (left == old_node) { left = new_node; diff --git a/vala/valasymbolresolver.vala b/vala/valasymbolresolver.vala index 1bd682956..8f8452a5d 100644 --- a/vala/valasymbolresolver.vala +++ b/vala/valasymbolresolver.vala @@ -410,6 +410,10 @@ public class Vala.SymbolResolver : CodeVisitor { expr.accept_children (this); } + public override void visit_binary_expression (BinaryExpression expr) { + expr.accept_children (this); + } + public override void visit_lambda_expression (LambdaExpression l) { l.accept_children (this); }