]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Separate visiting inner expressions from visiting member access
authorJürg Billeter <j@bitron.ch>
Sun, 30 Nov 2008 13:05:05 +0000 (13:05 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Sun, 30 Nov 2008 13:05:05 +0000 (13:05 +0000)
2008-11-30  Jürg Billeter  <j@bitron.ch>

* vala/valamemberaccess.vala:
* vala/valasymbolresolver.vala:
* gobject/valaccodememberaccessmodule.vala:
* gobject/valagsignalmodule.vala:

Separate visiting inner expressions from visiting member access

svn path=/trunk/; revision=2097

ChangeLog
gobject/valaccodememberaccessmodule.vala
gobject/valagsignalmodule.vala
vala/valamemberaccess.vala
vala/valasymbolresolver.vala

index 41e191b1bcd8f0494ab4f87800661ffd217cc2be..4fc34f67ade0340c7589783e97d16f0f8a8cba9c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-30  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valamemberaccess.vala:
+       * vala/valasymbolresolver.vala:
+       * gobject/valaccodememberaccessmodule.vala:
+       * gobject/valagsignalmodule.vala:
+
+       Separate visiting inner expressions from visiting member access
+
 2008-11-30  Jürg Billeter  <j@bitron.ch>
 
        * vala/valaaddressofexpression.vala:
index cb22da5e4c1afea85f3f50ee83ba790f7a080232..8a509f1c7e5550a93bea9ce3f7b25dd15fcdd0ef 100644 (file)
@@ -29,6 +29,8 @@ public class Vala.CCodeMemberAccessModule : CCodeControlFlowModule {
        }
 
        public override void visit_member_access (MemberAccess expr) {
+               expr.accept_children (codegen);
+
                CCodeExpression pub_inst = null;
                DataType base_type = null;
        
index 0f787fcc98c3d78aae7b41352c975b4db01111fe..de08011c061521c500a93cecae491285dd7e08d1 100644 (file)
@@ -585,13 +585,15 @@ public class Vala.GSignalModule : GObjectModule {
        }
 
        public override void visit_member_access (MemberAccess expr) {
-               CCodeExpression pub_inst = null;
+               if (expr.symbol_reference is Signal) {
+                       expr.accept_children (codegen);
+
+                       CCodeExpression pub_inst = null;
        
-               if (expr.inner != null) {
-                       pub_inst = (CCodeExpression) expr.inner.ccodenode;
-               }
+                       if (expr.inner != null) {
+                               pub_inst = (CCodeExpression) expr.inner.ccodenode;
+                       }
 
-               if (expr.symbol_reference is Signal) {
                        var sig = (Signal) expr.symbol_reference;
                        var cl = (TypeSymbol) sig.parent_symbol;
                        
index 031d66f6f383fafc3ddb77a2726b6b73cafd342a..c11da0cec9ed372973bfbf4d16a9cdbc4fc61815 100644 (file)
@@ -115,8 +115,14 @@ public class Vala.MemberAccess : Expression {
        public Gee.List<DataType> get_type_arguments () {
                return new ReadOnlyList<DataType> (type_argument_list);
        }
-       
+
        public override void accept (CodeVisitor visitor) {
+               visitor.visit_member_access (this);
+
+               visitor.visit_expression (this);
+       }
+
+       public override void accept_children (CodeVisitor visitor) {
                if (inner != null) {
                        inner.accept (visitor);
                }
@@ -124,10 +130,6 @@ public class Vala.MemberAccess : Expression {
                foreach (DataType type_arg in type_argument_list) {
                        type_arg.accept (visitor);
                }
-
-               visitor.visit_member_access (this);
-
-               visitor.visit_expression (this);
        }
 
        public override string to_string () {
index 8fd813aa5636da60c87cc7076b5cb5a4fec7e66f..2197df0020fb04ccbf7e60a2724179de25f0f849 100644 (file)
@@ -394,6 +394,10 @@ public class Vala.SymbolResolver : CodeVisitor {
                expr.accept_children (this);
        }
 
+       public override void visit_member_access (MemberAccess expr) {
+               expr.accept_children (this);
+       }
+
        public override void visit_method_call (MethodCall expr) {
                expr.accept_children (this);
        }