@@ -1,37 +1,25 @@
1+{-# OPTIONS_GHC -Wall -fno-warn-name-shadowing #-}
1module Build.Dependencies (getSortedDependencies, readDeps) where
2module Build.Dependencies (getSortedDependencies, readDeps) where
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
17import System.FilePath as FP
15import System.FilePath as FP
19−import Text.PrettyPrint (Doc)
21import Build.Print (failure)
17import Build.Print (failure)
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
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
128−getFile (dir:dirs) path = do
116+isNative :: String -> Bool
129− let path' = dir </> path
130− exists <- liftIO $ doesFileExist path'
132− True -> (,) path' `fmap` liftIO (readFile path')
133− False -> getFile dirs path
135isNative name = List.isPrefixOf "Native." name
117isNative name = List.isPrefixOf "Native." name
137toFilePath :: String -> FilePath
119toFilePath :: String -> FilePath