dont crash the resolver if expression could not be resolved
authorSimon Huber <hubsim@gmail.com>
Fri, 20 Mar 2015 13:54:48 +0000 (14:54 +0100)
committerSimon Huber <hubsim@gmail.com>
Fri, 20 Mar 2015 13:54:48 +0000 (14:54 +0100)
Resolver.hs

index 5b5aa5d181ad046e594743367ad5e9526baeee64..42d13e427d4492e99220ba233058e8e59c0c1a72 100644 (file)
@@ -199,6 +199,9 @@ resolveExp e = case e of
     CTT.mkWheres rdecls <$> local (insertIdents names) (resolveExp e)
   Path is e     -> paths is (resolveExp e)
   AppFormula e phi -> CTT.AppFormula <$> resolveExp e <*> resolveFormula phi
+  _             -> do
+    modName <- asks envModule
+    throwError ("Could not resolve " ++ show e ++ " in module " ++ modName)
 
 resolveWhere :: ExpWhere -> Resolver Ter
 resolveWhere = resolveExp . unWhere
@@ -216,7 +219,7 @@ resolveFace alpha =
                             | Face i d <- alpha ]
 
 resolveDir :: Dir -> Resolver C.Dir
-resolveDir Dir0 = return 0 
+resolveDir Dir0 = return 0
 resolveDir Dir1 = return 1
 
 resolveFormula :: Formula -> Resolver C.Formula