Sockeye: Show global and root module fails first
authorDaniel Schwyn <schwyda@student.ethz.ch>
Wed, 2 Aug 2017 11:09:58 +0000 (13:09 +0200)
committerDaniel Schwyn <schwyda@student.ethz.ch>
Wed, 2 Aug 2017 11:09:58 +0000 (13:09 +0200)
Signed-off-by: Daniel Schwyn <schwyda@student.ethz.ch>

tools/sockeye/SockeyeChecks.hs
tools/sockeye/SockeyeInstantiator.hs
tools/sockeye/SockeyeTypeChecker.hs

index 65f38ac..f43f998 100644 (file)
@@ -17,7 +17,7 @@ module SockeyeChecks where
 
 import Control.Monad.Writer
 
-import Data.List (nub)
+import Data.List (nub, sort)
 
 data FailedCheck t = FailedCheck
     { inModule :: !String
@@ -28,7 +28,7 @@ newtype FailedChecks t = FailedChecks [FailedCheck t]
 
 instance (Show t) => Show (FailedChecks t) where
     show (FailedChecks fs) = 
-        let modules = nub $ map inModule fs
+        let modules = sort  (nub $  map inModule fs)
         in unlines $ concat (map showFailsForModule modules)
         where
             showFailsForModule name =
@@ -36,7 +36,6 @@ instance (Show t) => Show (FailedChecks t) where
                     title = "\nIn module '" ++ name ++ "':"
                     fails = filter (\f -> name == inModule f) fs
                 in case name of
-                    ""      -> "":showFails 0 fails
                     ('@':_) -> "":showFails 0 fails
                     _       -> title:showFails 1 fails
             showFails indentLevel fs =
index 26d07b3..0e345b0 100644 (file)
@@ -217,7 +217,7 @@ instance Instantiatable CheckAST.ModuleInst [InstAST.ModuleInst] where
             checkSelfInst path name = do
                 case loop path of
                     [] -> return ()
-                    l  -> failCheck "" $ ModuleInstLoop (reverse $ name:l)
+                    l  -> failCheck "@all" $ ModuleInstLoop (reverse $ name:l)
                     where
                         loop [] = []
                         loop path@(p:ps)
index 540b6a1..a21b637 100644 (file)
@@ -95,7 +95,7 @@ instance SymbolSource ParseAST.SockeyeSpec where
         let mods = ParseAST.modules ast
         symbolTables <- mapM buildSymbolTable mods
         let names = concat $ map Map.keys symbolTables
-        checkDuplicates "" DuplicateModule names
+        checkDuplicates "@all" DuplicateModule names
         return $ Map.unions symbolTables
         
 instance SymbolSource ParseAST.Module where