[svn] r7731: nemerle/trunk: ncc/misc/ExprWalker.n snippets/ants-icfp2004/serializer.n snippets/ants-icfp20...

nazgul svnadmin at nemerle.org
Wed Jul 4 10:33:08 CEST 2007


Log:
Compilation fixes after recent changes in void in generic argument restrictions

Author: nazgul
Date: Wed Jul  4 10:33:06 2007
New Revision: 7731

Modified:
   nemerle/trunk/ncc/misc/ExprWalker.n
   nemerle/trunk/snippets/ants-icfp2004/serializer.n
   nemerle/trunk/snippets/ants-icfp2004/unvar.n
   nemerle/trunk/snippets/nswiki.n

Modified: nemerle/trunk/ncc/misc/ExprWalker.n
==============================================================================
--- nemerle/trunk/ncc/misc/ExprWalker.n	(original)
+++ nemerle/trunk/ncc/misc/ExprWalker.n	Wed Jul  4 10:33:06 2007
@@ -380,7 +380,7 @@
       }
     }
 
-    private Sort[T] (lst : list[T]) : list[T] where T : Located
+    private static Sort[T] (lst : list[T]) : list[T] where T : Located
     {
       lst.Sort((i1, i2) =>
       {

Modified: nemerle/trunk/snippets/ants-icfp2004/serializer.n
==============================================================================
--- nemerle/trunk/snippets/ants-icfp2004/serializer.n	(original)
+++ nemerle/trunk/snippets/ants-icfp2004/serializer.n	Wed Jul  4 10:33:06 2007
@@ -138,6 +138,11 @@
     labels = Hashtable (100);
   }
 
+  errorv (msg : string) : void
+  {
+    throw UserErrorException (msg);
+  }  
+  
   error['a] (msg : string) : 'a
   {
     throw UserErrorException (msg);
@@ -252,7 +257,7 @@
       def name = l.StringValue;
       match (labels.Get (name)) {
         | Some (lnk) => l.Set (lnk); hash.Set (name, null)
-        | None => error ("undefined label " + name)
+        | None => errorv ("undefined label " + name)
       }
     });
     labels.Iter (fun (n, _) {

Modified: nemerle/trunk/snippets/ants-icfp2004/unvar.n
==============================================================================
--- nemerle/trunk/snippets/ants-icfp2004/unvar.n	(original)
+++ nemerle/trunk/snippets/ants-icfp2004/unvar.n	Wed Jul  4 10:33:06 2007
@@ -13,7 +13,7 @@
   variables : Hashtable [string, Variable] = Hashtable (100);
   mutable stmts : list [Stmt];
 
-  error['a] (msg : string) : 'a
+  error (msg : string) : void
   {
     throw UserErrorException (msg);
   }
@@ -87,7 +87,7 @@
         | BooleanFormula.Const (ConstantExpr.Const (1)) =>
           BooleanFormula.Const (ConstantExpr.Const (0))
         | BooleanFormula.Const =>
-          error ("invalid argument to !")
+          error ("invalid argument to !"); null
         | x => BooleanFormula.Not (x)
       }
     | BooleanFormula.And (x1, x2) =>
@@ -95,13 +95,13 @@
         | BooleanFormula.Const (ConstantExpr.Const (0)) => no_actions (x2); BooleanFormula.Const (ConstantExpr.Const (0))
         | BooleanFormula.Const (ConstantExpr.Const (1)) => fold_expr (x2)
         | BooleanFormula.Const =>
-          error ("invalid left argument to &&")
+          error ("invalid left argument to &&"); null
         | x1 =>
           match (fold_expr (x2)) {
             | BooleanFormula.Const (ConstantExpr.Const (0)) => no_actions (x1); BooleanFormula.Const (ConstantExpr.Const (0))
             | BooleanFormula.Const (ConstantExpr.Const (1)) => x1
             | BooleanFormula.Const =>
-              error ("invalid right argument to &&")
+              error ("invalid right argument to &&"); null
             | x2 => BooleanFormula.And (x1, x2)
           }
       }
@@ -111,13 +111,13 @@
         | BooleanFormula.Const (ConstantExpr.Const (0)) => fold_expr (x2)
         | BooleanFormula.Const (ConstantExpr.Const (1)) => no_actions (x2); BooleanFormula.Const (ConstantExpr.Const (1))
         | BooleanFormula.Const =>
-          error ("invalid left argument to ||")
+          error ("invalid left argument to ||"); null
         | x1 =>
           match (fold_expr (x2)) {
             | BooleanFormula.Const (ConstantExpr.Const (1)) => no_actions (x1); BooleanFormula.Const (ConstantExpr.Const (1))
             | BooleanFormula.Const (ConstantExpr.Const (0)) => x1
             | BooleanFormula.Const =>
-              error ("invalid right argument to ||")
+              error ("invalid right argument to ||"); null
             | x2 => BooleanFormula.Or (x1, x2)
           }
       }
@@ -126,12 +126,12 @@
   eval_const (expr : ConstantExpr) : int
   {
     match (expr) {
-      | ConstantExpr.Const (x) => if (x < 0) error ("negative literal") else x
+      | ConstantExpr.Const (x) => if (x < 0) { error ("negative literal"); 0 } else x
       | ConstantExpr.Ref (name) =>
         match (variables.Get (name)) {
           | Some (v) =>
             v.current_value
-          | None => error ("undef variable " + name)
+          | None => error ("undef variable " + name); 0
         }
       | ConstantExpr.Binary (op, e1, e2) =>
         def e1 = eval_const (e1);
@@ -139,7 +139,7 @@
         match (op) {
           | BinaryOperator.Plus => e1 + e2
           | BinaryOperator.Minus =>
-            if (e1 - e2 < 0) error ("negative `-' result")
+            if (e1 - e2 < 0) { error ("negative `-' result"); 0 }
             else e1 - e2
           | BinaryOperator.Equal =>
             if (e1 == e2) 1 else 0
@@ -151,7 +151,7 @@
 
       | ConstantExpr.Not (e) =>
         def e = eval_const (e);
-        if (e > 1) error ("non boolean arg to !")
+        if (e > 1) { error ("non boolean arg to !"); 0 }
         else if (e == 0) 1 else 0
     }
   }
@@ -222,7 +222,7 @@
             def e = 
               match (fold_expr (expr)) {
                 | BooleanFormula.Const (ConstantExpr.Const (x)) => x
-                | _ => error ("evil constant folding result")
+                | _ => error ("evil constant folding result"); 0
               };
             e % (v.max_value + 1);
           } else
@@ -239,7 +239,7 @@
                 error ("unused goto assign to `" + x + "'")
             });
             [Stmt.Goto ([], name)]
-          | None => error ("undef label " + name)
+          | None => error ("undef label " + name); null
         }
         
       | Stmt.Vars (newvars, body) =>
@@ -273,10 +273,10 @@
           | BooleanFormula.Const (ConstantExpr.Const (0)) =>
             [Stmt.If (BooleanFormula.Dummy_true (), unfolds (l2), unfolds (l1))]
             //unfolds (l2)
-          | BooleanFormula.Const => error ("evil constant folding result to if")
+          | BooleanFormula.Const => error ("evil constant folding result to if"); null
           | BooleanFormula.And
           | BooleanFormula.Or
-          | BooleanFormula.Not => error ("&&, || or ! survived!")
+          | BooleanFormula.Not => error ("&&, || or ! survived!"); null
           | (BooleanFormula.Cond) as c =>
             [Stmt.If (c, unfolds (l1), unfolds (l2))]
         }

Modified: nemerle/trunk/snippets/nswiki.n
==============================================================================
--- nemerle/trunk/snippets/nswiki.n	(original)
+++ nemerle/trunk/snippets/nswiki.n	Wed Jul  4 10:33:06 2007
@@ -168,7 +168,7 @@
       }
     }
 
-    fatal['a] (msg : string) : 'a
+    fatal (msg : string) : void
     {
       throw System.Exception (msg)
     }
@@ -181,7 +181,7 @@
         else page;
       regexp match (page) {
         | "^[A-Za-z0-9_-]+$" => page
-        | _ => fatal ($ "'$(page)' is an invalid page name")
+        | _ => fatal ($ "'$(page)' is an invalid page name"); ""
       }
     }
 
@@ -264,7 +264,7 @@
         def rev =
           regexp match (o.Replace ('\n', ' ')) {
             | @".*Revision: (?<n : int>[0-9]+).*" => n
-            | _ => fatal ($ "bad svn info format: $o [$e]")
+            | _ => fatal ($ "bad svn info format: $o [$e]"); 0
           };
         def content =
           using (f = System.IO.File.OpenText (fn + "content"))
@@ -385,7 +385,7 @@
       def page = get_page_name ();
       def msg = "Wiki page edit.";
 
-      inside_checkout (int.Parse (get_with_default (post, "rev")), fun (fn) {
+      _ = inside_checkout (int.Parse (get_with_default (post, "rev")), fun (fn) {
         using (f = System.IO.File.CreateText (fn + "content"))
           f.Write (get_with_default (post, "text"));
         // merge any changes
@@ -400,6 +400,7 @@
         display_headers ();
         print (wikize (f.ReadToEnd ()));
         display_footers ();
+        null
       })
     }
 



More information about the svn mailing list