[vala/wip/transform: 358/373] Accept method call children



commit 9d0c241d3be6e4f170459797e86441f473f7b15a
Author: Luca Bruno <luca bruno immobiliare it>
Date:   Mon Feb 3 13:03:21 2014 +0100

    Accept method call children

 codegen/valaccodetransformer.vala | 14 ++++++++++++++
 vala/valamethodcall.vala          |  3 +++
 2 files changed, 17 insertions(+)
---
diff --git a/codegen/valaccodetransformer.vala b/codegen/valaccodetransformer.vala
index a6e4f9b57..b30c40cb9 100644
--- a/codegen/valaccodetransformer.vala
+++ b/codegen/valaccodetransformer.vala
@@ -359,8 +359,11 @@ public class Vala.CCodeTransformer : CodeTransformer {
                                var replacement = return_temp_access (local, expr.value_type, target_type, 
formal_target_type);
 
                                end_replace_expression (replacement);
+                               return;
                        }
                }
+
+               expr.accept_children (this);
        }
 
        public override void visit_conditional_expression (ConditionalExpression expr) {
@@ -476,8 +479,11 @@ public class Vala.CCodeTransformer : CodeTransformer {
                                var replacement = return_temp_access (local, expr.value_type, target_type, 
formal_target_type);
 
                                end_replace_expression (replacement);
+                               return;
                        }
                }
+
+               expr.accept_children (this);
        }
 
        Expression stringify (Expression expr) {
@@ -526,4 +532,12 @@ public class Vala.CCodeTransformer : CodeTransformer {
        public override void visit_assignment (Assignment a) {
                a.accept_children (this);
        }
+
+       public override void visit_cast_expression (CastExpression expr) {
+               expr.accept_children (this);
+       }
+
+       public override void visit_lambda_expression (LambdaExpression expr) {
+               expr.accept_children (this);
+       }
 }
diff --git a/vala/valamethodcall.vala b/vala/valamethodcall.vala
index d1ce21937..88308c400 100644
--- a/vala/valamethodcall.vala
+++ b/vala/valamethodcall.vala
@@ -648,6 +648,9 @@ public class Vala.MethodCall : Expression {
        public override string to_string () {
                var b = new StringBuilder ();
                b.append_c ('(');
+               if (is_yield_expression) {
+                       b.append ("yield ");
+               }
                b.append (call.to_string ());
                b.append_c ('(');
 


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