Limit 'extern' to trusted code
[hcoop/domtool2.git] / src / main.sml
index 5b9ee57..2aa3da7 100644 (file)
@@ -58,7 +58,9 @@ fun basis () =
        if !ErrorMsg.anyErrors then
            Env.empty
        else
-           foldl (fn (fname, G) => check' G fname) Env.empty files
+           (Tycheck.allowExterns ();
+            foldl (fn (fname, G) => check' G fname) Env.empty files
+            before Tycheck.disallowExterns ())
     end
 
 fun check fname =
@@ -72,6 +74,7 @@ fun check fname =
            raise ErrorMsg.Error
        else
            let
+               val _ = Tycheck.disallowExterns ()
                val _ = ErrorMsg.reset ()
                val prog = Parse.parse fname
            in