on master help sign in
Update Elm.Header to include default imports a better way
commitd28423358b32ecd4e4e48f2d58559b8615d919e9 authorEvan Czaplicki <evancz@users.noreply.github.com> dateThu 25 Jan 2018, 13:28 (9 years ago) parentfd172c9
1 file changed+7−26
src/Elm/Header.hs+7−26
src/Elm/Header.hs+7−26
@@ -9,7 +9,6 @@ module Elm.Header
99import qualified Data.ByteString as B
1010
1111import qualified AST.Source as Src
12−import qualified Elm.Compiler.Imports as Imports
1312import qualified Elm.Compiler.Module as M
1413import qualified Elm.Name as N
1514import qualified Elm.Package as Pkg
@@ -31,45 +30,27 @@ data Tag = Normal | Effect | Port
3130
3231
3332parse :: Pkg.Name -> B.ByteString -> Either Error.Error (Maybe (Tag, M.Raw), [M.Raw])
34−parse pkg sourceCode =
35− case Parser.run chompHeader sourceCode of
33+parse pkgName sourceCode =
34+ let
35+ headerParser =
36+ Module.module_ pkgName (return ())
37+ in
38+ case Parser.run headerParser sourceCode of
3639 Right (Src.Module header imports _) ->
3740 Right
3841 ( fmap simplifyHeader header
39− , toDeps pkg imports
42+ , map getName imports
4043 )
4144
4245 Left err ->
4346 Left (Error.Syntax err)
4447
4548
46−chompHeader :: Parser.Parser (Src.Module ())
47−chompHeader =
48− Module.module_ $ return ()
49−
50−
51−
52−-- TO DEPS
53−
54−
55−toDeps :: Pkg.Name -> [Src.Import] -> [N.Name]
56−toDeps pkg imports =
57− if pkg == Pkg.core
58− then map getName imports
59− else map getName imports ++ defaultImports
60−
61−
6249getName :: Src.Import -> N.Name
6350getName (Src.Import (A.At _ name) _ _) =
6451 name
6552
6653
67−{-# NOINLINE defaultImports #-}
68−defaultImports :: [N.Name]
69−defaultImports =
70− map Imports._name Imports.defaults
71−
72−
7354
7455-- TO HEADER
7556