on master help sign in
Show type errors in the order they appear in the source file
da346eaEvan Czaplicki
compiler/Type/Inference.hs+2−4
@@ -27,8 +27,6 @@ infer interfaces' modul = unsafePerformIO $ do
27 localImports = foldr insert Map.empty (imports modul)
27 localImports = foldr insert Map.empty (imports modul)
28 interfaces = Map.intersectionWithKey Module.canonicalize localImports interfaces'
28 interfaces = Map.intersectionWithKey Module.canonicalize localImports interfaces'
29
29
30−-- mapM print (concatMap iAdts (Map.elems interfaces))
31−
32 env <- Env.initialEnvironment
30 env <- Env.initialEnvironment
33 (datatypes modul ++ concatMap iAdts (Map.elems interfaces))
31 (datatypes modul ++ concatMap iAdts (Map.elems interfaces))
34 (aliases modul ++ concatMap iAliases (Map.elems interfaces))
32 (aliases modul ++ concatMap iAliases (Map.elems interfaces))
@@ -36,7 +34,7 @@ infer interfaces' modul = unsafePerformIO $ do
36 do (_, vars, args, result) <- Env.freshDataScheme env name
34 do (_, vars, args, result) <- Env.freshDataScheme env name
37 return (name, (vars, foldr (T.==>) result args))
35 return (name, (vars, foldr (T.==>) result args))
38
36
39−-- mapM print (map Map.toList $ Map.elems locals)
37+-- mapM print . Map.toList $ Env.aliases env
40-- mapM print (imports modul)
38-- mapM print (imports modul)
41
39
42 importedVars <-
40 importedVars <-
@@ -56,5 +54,5 @@ infer interfaces' modul = unsafePerformIO $ do
56 let errors = TS.sErrors state
54 let errors = TS.sErrors state
57 if null errors
55 if null errors
58 then return $ Right (Map.difference (TS.sSavedEnv state) header)
56 then return $ Right (Map.difference (TS.sSavedEnv state) header)
59− else Left `fmap` sequence errors
57+ else Left `fmap` sequence (reverse errors)
60
58