shithub: MicroHs

Download patch

ref: 12bac3e8b05c9fe9baa14e4d19bb5711ba9b2dc6
parent: 231d9ec8e59777f366a0f95ed8d7e5bf46742e4e
author: Lennart Augustsson <lennart.augustsson@epicgames.com>
date: Fri Sep 22 09:39:05 EDT 2023

Hack to force error messages.

--- a/src/MicroHs/TypeCheck.hs
+++ b/src/MicroHs/TypeCheck.hs
@@ -60,7 +60,17 @@
            (fexps, sexps) = unzip $ getFSExps impMap
 -}
            fexps = [ fe | TModule _ fe _ _ _ _ <- M.elems impMap ]
-         in  TModule mn (nubBy (eqIdent `on` fst) (concat fexps)) (concat texps) (concat sexps) (concat vexps) tds
+         in  tModule mn (nubBy (eqIdent `on` fst) (concat fexps)) (concat texps) (concat sexps) (concat vexps) tds
+
+-- A hack to force evaluation of errors.
+-- This should be redone to all happen in the T monad.
+tModule :: IdentModule -> [FixDef] -> [TypeExport] -> [SynDef] -> [ValueExport] -> [EDef] ->
+           TModule [EDef]
+tModule mn fs ts ss vs ds = seqL ts `seq` seqL vs `seq` TModule mn fs ts ss vs ds
+  where
+    seqL :: forall a . [a] -> ()
+    seqL [] = ()
+    seqL (x:xs) = x `seq` seqL xs
 
 filterImports :: forall a . (ImportSpec, TModule a) -> (ImportSpec, TModule a)
 filterImports it@(ImportSpec _ _ _ Nothing, _) = it
--