@@ -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
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 =
59 (Result.Result _ _ answer) =
63 (Result.Result _ _ answer) =
60 Parse.parse sourceCode Parse.header
64 Parse.parse sourceCode Parse.header
66+ Result.answerToEither (Error . A.map Error.Syntax) (getDeps pkgName) answer
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) =
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
71− , name
82+ if pkgName == Package.core then
72− , map (fst . A.drop) imports
83+ map (fst . A.drop) imports
85+ map (fst . A.drop) imports ++ map fst Imports.defaults
75− Result.answerToEither (Error . A.map Error.Syntax) getDeps answer
87+ ( tag, name, deps )