make parens optional when using new operator on objects
authorJamie McCracken <jamiemcc@gnome.org>
Mon, 23 Jun 2008 02:33:30 +0000 (02:33 +0000)
committerJamie McCracken <jamiemcc@src.gnome.org>
Mon, 23 Jun 2008 02:33:30 +0000 (02:33 +0000)
2008-06-23  Jamie McCracken  <jamiemcc@gnome.org>

* vala/valagenieparser.vala:

make parens optional when using new operator on objects

svn path=/trunk/; revision=1632

ChangeLog
vala/valagenieparser.vala

index 859ca5c..2ffb058 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-06-23  Jamie McCracken  <jamiemcc@gnome.org>
+
+       * vala/valagenieparser.vala:
+
+       make parens optional when using new operator on objects
+
+
 2008-06-23  Jürg Billeter  <j@bitron.ch>
 
        * vala/valasemanticanalyzer.vala:
index a29d35b..d39f139 100644 (file)
@@ -867,18 +867,21 @@ public class Vala.Genie.Parser : CodeVisitor {
                
                
                var member = parse_member_name ();
-               if (accept (TokenType.OPEN_PARENS)) {
-                       var expr = parse_object_creation_expression (begin, member);
-                       return expr;
-               } else {
-                       throw new ParseError.SYNTAX (get_error ("expected ( or ["));
-               }
+               var expr = parse_object_creation_expression (begin, member);
+               return expr;
+               
        }
 
        Expression parse_object_creation_expression (SourceLocation begin, MemberAccess member) throws ParseError {
                member.creation_member = true;
-               var arg_list = parse_argument_list ();
-               expect (TokenType.CLOSE_PARENS);
+               Gee.List<Expression> arg_list;
+               if (accept (TokenType.OPEN_PARENS)) {
+                       arg_list = parse_argument_list ();
+                       expect (TokenType.CLOSE_PARENS);
+               } else {
+                       arg_list = new ArrayList<Expression> ();
+               }
+               
                var init_list = parse_object_initializer ();
 
                var expr = new ObjectCreationExpression (member, get_src (begin));