[svn] r7223: nemerle/trunk/ncc/parsing/MainParser.n

VladD2 svnadmin at nemerle.org
Sat Jan 6 06:54:46 CET 2007


Log:
Fix parsing method without return type declaration.

Author: VladD2
Date: Sat Jan  6 06:54:44 2007
New Revision: 7223

Modified:
   nemerle/trunk/ncc/parsing/MainParser.n

Modified: nemerle/trunk/ncc/parsing/MainParser.n
==============================================================================
--- nemerle/trunk/ncc/parsing/MainParser.n	(original)
+++ nemerle/trunk/ncc/parsing/MainParser.n	Sat Jan  6 06:54:44 2007
@@ -1486,10 +1486,17 @@
 
     parse_return_type (allow_inference : bool) : PExpr {
       match (peek_token ()) {
-        | Token.Operator (":") =>
+        | Token.Operator (":") as colon =>
           shift ();
+          // Method can not contain type.
+          match (peek_token ()) // peek_second_token
+          {
+            | Token.BracesGroup | Token.Keyword ("where") 
+            | Token.Semicolon | Token.Operator ("=") => PExpr.Error (colon.Location.FromEnd())
+            | _ =>
           parse_expr (TokenStoppers.Braces | TokenStoppers.Dollar 
                       | TokenStoppers.Equal | TokenStoppers.Where)
+          }
           
         | _ when allow_inference => PExpr.Wildcard (last_tok.Location)
         | t => Error (t, "expecting `:' and type specifier for class member");



More information about the svn mailing list