]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Fix regression introduced by last commit
authorJürg Billeter <j@bitron.ch>
Tue, 22 Jul 2008 14:45:06 +0000 (14:45 +0000)
committerJürg Billeter <juergbi@src.gnome.org>
Tue, 22 Jul 2008 14:45:06 +0000 (14:45 +0000)
2008-07-22  Jürg Billeter  <j@bitron.ch>

* vala/valaparser.vala:

Fix regression introduced by last commit

svn path=/trunk/; revision=1720

ChangeLog
vala/valaparser.vala

index 1d18222b64ed4304e7ae69eeac36b766a32124e5..bfdba0eef1a0e815e901219356007a30d0b8a7ca 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-07-22  Jürg Billeter  <j@bitron.ch>
+
+       * vala/valaparser.vala:
+
+       Fix regression introduced by last commit
+
 2008-07-22  Jared Moore  <jaredm@svn.gnome.org>
 
        * vala/valaparser.vala:
index 1bddf665496938a465fb86d1a01389c2844bfd08..68b785d53d7c9885307e8ab69f92fefb39c7fcfd 100644 (file)
@@ -2847,18 +2847,29 @@ public class Vala.Parser : CodeVisitor {
 
        MemberAccess parse_member_name () throws ParseError {
                var begin = get_location ();
-               // The first member access can be global:: qualified
-               MemberAccess expr = (MemberAccess) parse_simple_name ();
-               while (accept (TokenType.DOT)) {
+               MemberAccess expr = null;
+               bool first = true;
+               do {
                        string id = parse_identifier ();
+
+                       // The first member access can be global:: qualified
+                       bool qualified = false;
+                       if (first && id == "global" && accept (TokenType.DOUBLE_COLON)) {
+                               id = parse_identifier ();
+                               qualified = true;
+                       }
+
                        Gee.List<DataType> type_arg_list = parse_type_argument_list (false);
                        expr = new MemberAccess (expr, id, get_src (begin));
+                       expr.qualified = qualified;
                        if (type_arg_list != null) {
                                foreach (DataType type_arg in type_arg_list) {
                                        expr.add_type_argument (type_arg);
                                }
                        }
-               }
+
+                       first = false;
+               } while (accept (TokenType.DOT));
                return expr;
        }