on master help sign in
Style fixes and -Walls for a couple files.
0e40a32Max New
compiler/Build/Dependencies.hs+2−20
@@ -1,37 +1,25 @@
1+{-# OPTIONS_GHC -Wall -fno-warn-name-shadowing #-}
1module Build.Dependencies (getSortedDependencies, readDeps) where
2module Build.Dependencies (getSortedDependencies, readDeps) where
2
3
3−import Data.Data
4import Control.Applicative
4import Control.Applicative
5import Control.Monad.Error
5import Control.Monad.Error
6import qualified Control.Monad.State as State
6import qualified Control.Monad.State as State
7import qualified Data.Aeson as Json
7import qualified Data.Aeson as Json
8import qualified Data.ByteString.Lazy.Char8 as BSC
8import qualified Data.ByteString.Lazy.Char8 as BSC
9−import qualified Data.Char as Char
10import qualified Data.Graph as Graph
9import qualified Data.Graph as Graph
11import qualified Data.List as List
10import qualified Data.List as List
12import qualified Data.Map as Map
11import qualified Data.Map as Map
13import qualified Data.Maybe as Maybe
12import qualified Data.Maybe as Maybe
14import qualified Data.Set as Set
13import qualified Data.Set as Set
15import System.Directory
14import System.Directory
16−import System.Exit
17import System.FilePath as FP
15import System.FilePath as FP
18−import System.IO
19−import Text.PrettyPrint (Doc)
20
16
21import Build.Print (failure)
17import Build.Print (failure)
22
18
23import qualified SourceSyntax.Module as Module
19import qualified SourceSyntax.Module as Module
24−import qualified SourceSyntax.Type as Type
25import qualified Parse.Parse as Parse
20import qualified Parse.Parse as Parse
26−import qualified Metadata.Prelude as Prelude
27−import qualified Transform.Check as Check
28−import qualified Transform.SortDefinitions as SD
29−import qualified Type.Inference as TI
30−import qualified Type.Constrain.Declaration as TcDecl
31−import qualified Transform.Canonicalize as Canonical
32import qualified Elm.Internal.Paths as Path
21import qualified Elm.Internal.Paths as Path
33import qualified Elm.Internal.Name as N
22import qualified Elm.Internal.Name as N
34−import qualified Elm.Internal.Version as V
35import qualified Elm.Internal.Dependencies as Deps
23import qualified Elm.Internal.Dependencies as Deps
36
24
37getSortedDependencies :: [FilePath] -> Module.Interfaces -> FilePath -> IO [String]
25getSortedDependencies :: [FilePath] -> Module.Interfaces -> FilePath -> IO [String]
@@ -125,13 +113,7 @@ findSrcFile dirs path = foldr tryDir notFound dirs
125 then return path'
113 then return path'
126 else next
114 else next
127
115
128−getFile (dir:dirs) path = do
116+isNative :: String -> Bool
129− let path' = dir </> path
130− exists <- liftIO $ doesFileExist path'
131− case exists of
132− True -> (,) path' `fmap` liftIO (readFile path')
133− False -> getFile dirs path
134−
135isNative name = List.isPrefixOf "Native." name
117isNative name = List.isPrefixOf "Native." name
136
118
137toFilePath :: String -> FilePath
119toFilePath :: String -> FilePath
compiler/Build/File.hs+8−8
@@ -1,17 +1,15 @@
1+{-# OPTIONS_GHC -Wall #-}
1module Build.File (build) where
2module Build.File (build) where
2
3
3−import Control.Applicative ((<$>), (<*>), pure)
4+import Control.Applicative ((<$>))
4−import Control.Monad (when)
5import Control.Monad.Error (runErrorT)
5import Control.Monad.Error (runErrorT)
6import Control.Monad.RWS.Strict
6import Control.Monad.RWS.Strict
7−import Data.Monoid (Last(..))
8import System.Directory
7import System.Directory
9import System.Exit
8import System.Exit
10import System.FilePath
9import System.FilePath
11import System.IO
10import System.IO
12
11
13import qualified Data.Binary as Binary
12import qualified Data.Binary as Binary
14−import qualified Data.List as List
15import qualified Data.Maybe as Maybe
13import qualified Data.Maybe as Maybe
16import qualified Data.Map as Map
14import qualified Data.Map as Map
17import qualified Data.ByteString.Lazy as L
15import qualified Data.ByteString.Lazy as L
@@ -37,10 +35,11 @@ type Build a = BuildT IO a
37type BInterfaces = Map.Map String (Bool, M.ModuleInterface)
35type BInterfaces = Map.Map String (Bool, M.ModuleInterface)
38
36
39evalBuild :: Flag.Flags -> M.Interfaces -> Build () -> IO (Maybe String)
37evalBuild :: Flag.Flags -> M.Interfaces -> Build () -> IO (Maybe String)
40−evalBuild fs is b = do
38+evalBuild flags interfaces b = do
41− (_, s) <- evalRWST b fs (fmap notUpdated is)
39+ (_, s) <- evalRWST b flags (fmap notUpdated interfaces)
42 return . getLast $ s
40 return . getLast $ s
41+ where
43− where notUpdated i = (False, i)
42+ notUpdated i = (False, i)
44
43
45-- | Builds a list of files, returning the moduleName of the last one.
44-- | Builds a list of files, returning the moduleName of the last one.
46-- Returns \"\" if the list is empty
45-- Returns \"\" if the list is empty
@@ -49,7 +48,8 @@ build flags is = fmap (Maybe.fromMaybe "") . evalBuild flags is . buildAll
49
48
50buildAll :: [FilePath] -> Build ()
49buildAll :: [FilePath] -> Build ()
51buildAll fs = mapM_ (uncurry build1) (zip [1..] fs)
50buildAll fs = mapM_ (uncurry build1) (zip [1..] fs)
51+ where build1 :: Integer -> FilePath -> Build ()
52− where build1 num fname = do
52+ build1 num fname = do
53 shouldCompile <- shouldBeCompiled fname
53 shouldCompile <- shouldBeCompiled fname
54 if shouldCompile
54 if shouldCompile
55 then compile number fname
55 then compile number fname