on master help sign in
Minor reformatting and removing unused dependencies
c9a1cc9Evan Czaplicki
compiler/Initialize.hs+8−22
@@ -1,15 +1,12 @@
1module Initialize (buildFromSource, getSortedModuleNames) where
1module Initialize (buildFromSource, getSortedModuleNames) where
2
2
3−import Control.Applicative ((<$>))
4−import Control.Monad.Error
5−import Data.List (nub)
6import qualified Data.Map as Map
3import qualified Data.Map as Map
7import Data.Data
4import Data.Data
8import qualified Data.Graph as Graph
5import qualified Data.Graph as Graph
9import qualified Data.List as List
6import qualified Data.List as List
10import System.Exit
7import System.Exit
11import System.FilePath as FP
8import System.FilePath as FP
12−import Text.PrettyPrint as P
9+import Text.PrettyPrint (Doc)
13
10
14import SourceSyntax.Everything
11import SourceSyntax.Everything
15import SourceSyntax.Declaration (Assoc)
12import SourceSyntax.Declaration (Assoc)
@@ -21,18 +18,17 @@ import qualified Transform.Check as Check
21import qualified Transform.SortDefinitions as SD
18import qualified Transform.SortDefinitions as SD
22import qualified Type.Inference as TI
19import qualified Type.Inference as TI
23import qualified Type.Constrain.Declaration as TcDecl
20import qualified Type.Constrain.Declaration as TcDecl
24−import qualified Type.Type as T
25
21
26−import System.IO.Unsafe
27
22
28−
29−buildFromSource :: (Data t, Data v) => Bool -> String -> Either [P.Doc] (MetadataModule t v)
23+buildFromSource :: (Data t, Data v) => Bool -> String -> Either [Doc] (MetadataModule t v)
30buildFromSource noPrelude src =
24buildFromSource noPrelude src =
31− do modul <- Parse.program src
25+ do modul@(Module _ _ _ decls) <- Parse.program src
32
26
33 -- check for structural errors
27 -- check for structural errors
34− Module names exs ims decls <- checkMistakes modul
28+ Module names exs ims decls <-
35−
29+ case Check.mistakes decls of
30+ [] -> return modul
31+ ms -> Left ms
36
32
37 let metaModule = MetadataModule {
33 let metaModule = MetadataModule {
38 names = names,
34 names = names,
@@ -51,17 +47,7 @@ buildFromSource noPrelude src =
51
47
52 types <- TI.infer metaModule
48 types <- TI.infer metaModule
53
49
54− let env = forM (Map.toList types) $ \(n,t) -> do
55− pt <- T.extraPretty t
56− print $ P.text n <+> P.text ":" <+> pt
57−
58− return $ unsafePerformIO env `seq` metaModule { types = types }
50+ return $ metaModule { types = types }
59−
60− where
61− checkMistakes modul@(Module _ _ _ decls) =
62− case Check.mistakes decls of
63− [] -> return modul
64− ms -> Left ms
65
51
66
52
67getSortedModuleNames :: FilePath -> IO [String]
53getSortedModuleNames :: FilePath -> IO [String]