]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
Improve error message for declaration in embedded statement
authorJürg Billeter <j@bitron.ch>
Sat, 16 Oct 2010 14:02:04 +0000 (16:02 +0200)
committerJürg Billeter <j@bitron.ch>
Sat, 16 Oct 2010 14:02:04 +0000 (16:02 +0200)
Fixes bug 615230.

vala/valaparser.vala

index 43dd8e09b057d75010ce1554ea375569614ab8d1..e73ca755d978f1606731562decafb08323080ce6 100644 (file)
@@ -1628,7 +1628,23 @@ public class Vala.Parser : CodeVisitor {
                case TokenType.TRY:       return parse_try_statement ();
                case TokenType.LOCK:      return parse_lock_statement ();
                case TokenType.DELETE:    return parse_delete_statement ();
-               default:                  return parse_expression_statement ();
+               case TokenType.VAR:
+               case TokenType.CONST:
+                       throw new ParseError.SYNTAX (get_error ("embedded statement cannot be declaration "));
+               case TokenType.OP_INC:
+               case TokenType.OP_DEC:
+               case TokenType.BASE:
+               case TokenType.THIS:
+               case TokenType.OPEN_PARENS:
+               case TokenType.STAR:
+               case TokenType.NEW:
+                       return parse_expression_statement ();
+               default:
+                       if (is_expression ()) {
+                               return parse_expression_statement ();
+                       } else {
+                               throw new ParseError.SYNTAX (get_error ("embedded statement cannot be declaration"));
+                       }
                }
        }