[svn] r6483: nemerle/trunk/ncc: parsing/MainParser.n testsuite/negative/try-empty-catch.n

dragonfox svnadmin at nemerle.org
Sat Aug 5 10:47:14 CEST 2006


Log:
fix catch with no handlers (bug 726)

Author: dragonfox
Date: Sat Aug  5 10:47:06 2006
New Revision: 6483

Added:
   nemerle/trunk/ncc/testsuite/negative/try-empty-catch.n
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 Aug  5 10:47:06 2006
@@ -2057,9 +2057,11 @@
                       body = PExpr.Try (loc, body, [TryCase.Ellipsis (e)]);
                     | _ => Util.ice ()
                   }
-                | Token.BracesGroup (group) =>
+                | Token.BracesGroup (group) as x =>
                   def cases = List.FoldLeft (process_groups (group, "exception handlers", parse_match_case),
                                              [], mktry);
+                  when (cases is [])
+                    Error (x, "catch body must have at least one handler");
                   body = PExpr.Try (loc, body, cases.Rev ());
 
                 | x => Error (x, "expecting handlers of exceptions")

Added: nemerle/trunk/ncc/testsuite/negative/try-empty-catch.n
==============================================================================
--- (empty file)
+++ nemerle/trunk/ncc/testsuite/negative/try-empty-catch.n	Sat Aug  5 10:47:06 2006
@@ -0,0 +1,8 @@
+class M {
+  static f () : void {
+    try {
+      _ = 1
+    } catch { // E: catch body must have at least one handler
+    }
+  }
+}



More information about the svn mailing list