on master help sign in
Stop exposing defaultImports and do all import adding internally
2372433Evan Czaplicki
src/Elm/Compiler.hs+28−16
@@ -18,8 +18,9 @@ import qualified AST.Module as Module
18import qualified AST.Module.Name as ModuleName
18import qualified AST.Module.Name as ModuleName
19import qualified Compile
19import qualified Compile
20import qualified Docs.Check as Docs
20import qualified Docs.Check as Docs
21−import qualified Elm.Compiler.Version
21+import qualified Elm.Compiler.Imports as Imports
22import qualified Elm.Compiler.Module as PublicModule
22import qualified Elm.Compiler.Module as PublicModule
23+import qualified Elm.Compiler.Version
23import qualified Elm.Docs as Docs
24import qualified Elm.Docs as Docs
24import qualified Elm.Package as Package
25import qualified Elm.Package as Package
25import qualified Generate.JavaScript as JS
26import qualified Generate.JavaScript as JS
@@ -53,26 +54,37 @@ data Tag
53 | Port
54 | Port
54
55
55
56
57+parseDependencies
58+ :: Package.Name
59+ -> String
56−parseDependencies :: String -> Either [Error] (Tag, PublicModule.Raw, [PublicModule.Raw])
60+ -> Either [Error] (Tag, PublicModule.Raw, [PublicModule.Raw])
57−parseDependencies sourceCode =
61+parseDependencies pkgName sourceCode =
58 let
62 let
59 (Result.Result _ _ answer) =
63 (Result.Result _ _ answer) =
60 Parse.parse sourceCode Parse.header
64 Parse.parse sourceCode Parse.header
65+ in
66+ Result.answerToEither (Error . A.map Error.Syntax) (getDeps pkgName) answer
61
67
68+
69+getDeps
70+ :: Package.Name
71+ -> Module.Header [Module.UserImport]
72+ -> (Tag, PublicModule.Raw, [PublicModule.Raw])
62− getDeps (Module.Header sourceTag name _ _ _ imports) =
73+getDeps pkgName (Module.Header sourceTag name _ _ _ imports) =
63− let
74+ let
64− tag =
75+ tag =
65− case sourceTag of
76+ case sourceTag of
66− Module.Normal -> Normal
77+ Module.Normal -> Normal
67− Module.Port _ -> Port
78+ Module.Port _ -> Port
68− Module.Effect _ -> Effect
79+ Module.Effect _ -> Effect
69− in
80+
70− ( tag
81+ deps =
71− , name
82+ if pkgName == Package.core then
72− , map (fst . A.drop) imports
83+ map (fst . A.drop) imports
73− )
84+ else
85+ map (fst . A.drop) imports ++ map fst Imports.defaults
74 in
86 in
75− Result.answerToEither (Error . A.map Error.Syntax) getDeps answer
87+ ( tag, name, deps )
76
88
77
89
78
90
src/Elm/Compiler/Module.hs−7
@@ -6,7 +6,6 @@ module Elm.Compiler.Module
6 , nameToString, nameFromString
6 , nameToString, nameFromString
7 , hyphenate, dehyphenate
7 , hyphenate, dehyphenate
8 , RawForJson(RawForJson), fromJson
8 , RawForJson(RawForJson), fromJson
9− , defaultImports
10 , interfaceAliasedTypes, programTypes
9 , interfaceAliasedTypes, programTypes
11 , ModuleName.Canonical(..), qualifiedVar
10 , ModuleName.Canonical(..), qualifiedVar
12 )
11 )
@@ -21,7 +20,6 @@ import System.FilePath ((</>))
21
20
22import qualified AST.Module as Module
21import qualified AST.Module as Module
23import qualified AST.Module.Name as ModuleName
22import qualified AST.Module.Name as ModuleName
24−import qualified Elm.Compiler.Imports as Imports
25import qualified Elm.Compiler.Type as PublicType
23import qualified Elm.Compiler.Type as PublicType
26import qualified Elm.Compiler.Type.Extract as Extract
24import qualified Elm.Compiler.Type.Extract as Extract
27import qualified Generate.JavaScript.Variable as Gen
25import qualified Generate.JavaScript.Variable as Gen
@@ -64,11 +62,6 @@ qualifiedVar =
64 Gen.qualified
62 Gen.qualified
65
63
66
64
67−defaultImports :: [ModuleName.Raw]
68−defaultImports =
69− map fst Imports.defaults
70−
71−
72
65
73-- STRING CONVERSIONS for RAW NAMES
66-- STRING CONVERSIONS for RAW NAMES
74
67