Try to recover incomplete initializers. Fixes #4964
authorMarek Safar <marek.safar@gmail.com>
Fri, 22 Mar 2013 14:28:03 +0000 (15:28 +0100)
committerMarek Safar <marek.safar@gmail.com>
Fri, 22 Mar 2013 14:28:03 +0000 (15:28 +0100)
mcs/mcs/argument.cs
mcs/mcs/cs-parser.jay

index 22e28eaf7290267fa3754ecd6666cbd1e2f15cad..03b18b7f376fd00dd5f50e50739c5d74f8ce8a72 100644 (file)
@@ -47,9 +47,6 @@ namespace Mono.CSharp
 
                public Argument (Expression expr)
                {
-                       if (expr == null)
-                               throw new ArgumentNullException ();
-
                        this.Expr = expr;
                }
 
index f0d481aa5147d85b6f0f04d94492d44e5aa1b6c9..d32d28cd689511d765fd624d41a3b0179405e5fa 100644 (file)
@@ -3301,7 +3301,7 @@ member_initializer
          {
                report.Error (1920, GetLocation ($1), "An element initializer cannot be empty");
                $$ = null;
-         }       
+         }
        ;
 
 initializer_value
@@ -3417,22 +3417,18 @@ element_access
        ;
 
 expression_list
-       : expression
+       : expression_or_error
          {
                var list = new List<Expression> (4);
                list.Add ((Expression) $1);
                $$ = list;
          }
-       | expression_list COMMA expression
+       | expression_list COMMA expression_or_error
          {
                var list = (List<Expression>) $1;
                list.Add ((Expression) $3);
                $$ = list;
          }
-       | expression_list error {
-               Error_SyntaxError (yyToken);
-               $$ = $1;
-         }
        ;
        
 expression_list_arguments