Fix regeneration of multi-file dependencies
[hcoop/domtool2.git] / src / defaults.sml
index 43dced5..8ca63f7 100644 (file)
@@ -35,10 +35,27 @@ fun registerDefault (name, t, v) =
                 defaultV := SM.insert (!defaultV, name, v))
       | SOME _ => raise Fail "Duplicate default environment variable"
 
-fun tInit () = (TAction ((CRoot, dmy),
-                        !defaultT,
-                        StringMap.empty),
-               dmy)
+fun allSets (e, _) =
+    case e of
+       ESkip => true
+      | ESet _ => true
+      | ESeq es => List.all allSets es
+      | _ => false
+
+val dmy = ErrorMsg.dummyLoc
+
+fun bodyType (_, _, SOME e) =
+    if allSets e then
+       (CPrefix (CRoot, dmy), dmy)
+    else
+       (CRoot, dmy)
+  | bodyType _ = (CRoot, dmy)
+
+fun tInit p =
+    (TAction (bodyType p,
+             !defaultT,
+             StringMap.empty),
+     dmy)
 
 fun eInit () = SM.map (fn f => f ()) (!defaultV)