diff src/shake.sml @ 1062:3bc726a822fb

Shake bug fix; pattern reduction in ReduceLocal
author Adam Chlipala <adamc@hcoop.net>
date Tue, 08 Dec 2009 11:45:19 -0500
parents 6f4f8b9c5023
children b2311dfb3158
line wrap: on
line diff
--- a/src/shake.sml	Tue Dec 08 10:46:50 2009 -0500
+++ b/src/shake.sml	Tue Dec 08 11:45:19 2009 -0500
@@ -67,7 +67,7 @@
 
         val (usedE, usedC) =
             List.foldl
-                (fn ((DExport (_, n), _), (usedE, usedC)) => (IS.add (usedE, n), usedE)
+                (fn ((DExport (_, n), _), (usedE, usedC)) => (IS.add (usedE, n), usedC)
                   | ((DTable (_, _, c, _, pe, pc, ce, cc), _), (usedE, usedC)) =>
                     let
                         val usedC = usedVarsC usedC c
@@ -170,7 +170,7 @@
 
         val s = IS.foldl (fn (n, s) =>
                              case IM.find (cdef, n) of
-                                 NONE => raise Fail "Shake: Couldn't find 'con'"
+                                 NONE => raise Fail ("Shake: Couldn't find 'con' " ^ Int.toString n)
                                | SOME cs => foldl (fn (c, s) => shakeCon s c) s cs) s usedC
     in
         List.filter (fn (DCon (_, n, _, _), _) => IS.member (#con s, n)