diff src/jscomp.sml @ 808:d8f58d488cfb

Mutual datatypes through Pathcheck
author Adam Chlipala <adamc@hcoop.net>
date Sat, 16 May 2009 15:55:15 -0400
parents 5f49a6b759cb
children c1f8963ebb18
line wrap: on
line diff
--- a/src/jscomp.sml	Sat May 16 15:45:12 2009 -0400
+++ b/src/jscomp.sml	Sat May 16 15:55:15 2009 -0400
@@ -176,13 +176,14 @@
                     | ((DValRec vis, _), (someTs, nameds)) =>
                       (someTs, foldl (fn ((_, n, _, e, _), nameds) => IM.insert (nameds, n, e))
                                      nameds vis)
-                    | ((DDatatype (_, _, cs), _), state as (someTs, nameds)) =>
-                      if ElabUtil.classifyDatatype cs = Option then
-                          (foldl (fn ((_, n, SOME t), someTs) => IM.insert (someTs, n, t)
-                                   | (_, someTs) => someTs) someTs cs,
-                           nameds)
-                      else
-                          state
+                    | ((DDatatype dts, _), state as (someTs, nameds)) =>
+                      (foldl (fn ((_, _, cs), someTs) =>
+                                 if ElabUtil.classifyDatatype cs = Option then
+                                     foldl (fn ((_, n, SOME t), someTs) => IM.insert (someTs, n, t)
+                                             | (_, someTs) => someTs) someTs cs
+                                 else
+                                     someTs) someTs dts,
+                       nameds)
                     | (_, state) => state)
                   (IM.empty, IM.empty) file