diff src/shake.sml @ 1294:b4480a56cab7

Server-side 'onError'
author Adam Chlipala <adam@chlipala.net>
date Tue, 07 Sep 2010 08:28:07 -0400
parents e8d68fd8ed4b
children e15234fbb163
line wrap: on
line diff
--- a/src/shake.sml	Sun Sep 05 14:00:57 2010 -0400
+++ b/src/shake.sml	Tue Sep 07 08:28:07 2010 -0400
@@ -101,6 +101,11 @@
                         st
                     else
                         usedVars st e1
+                  | ((DOnError n, _), st as (usedE, usedC)) =>
+                    if !sliceDb then
+                        st
+                    else
+                        (IS.add (usedE, n), usedC)
                   | (_, acc) => acc) (IS.empty, IS.empty) file
 
         val (cdef, edef) = foldl (fn ((DCon (_, n, _, c), _), (cdef, edef)) => (IM.insert (cdef, n, [c]), edef)
@@ -128,7 +133,8 @@
                                    | ((DStyle (_, n, _), _), (cdef, edef)) =>
                                      (cdef, IM.insert (edef, n, ([], dummyt, dummye)))
                                    | ((DTask _, _), acc) => acc
-                                   | ((DPolicy _, _), acc) => acc)
+                                   | ((DPolicy _, _), acc) => acc
+                                   | ((DOnError _, _), acc) => acc)
                                  (IM.empty, IM.empty) file
 
         fun kind (_, s) = s
@@ -216,7 +222,8 @@
                       | (DCookie _, _) => not (!sliceDb)
                       | (DStyle _, _) => not (!sliceDb)
                       | (DTask _, _) => not (!sliceDb)
-                      | (DPolicy _, _) => not (!sliceDb)) file
+                      | (DPolicy _, _) => not (!sliceDb)
+                      | (DOnError _, _) => not (!sliceDb)) file
     end
 
 end