on master help sign in
cosmetic: move parseDependencies lower in Elm.Compiler
74a1fd1Evan Czaplicki
src/Elm/Compiler.hs+41−41
@@ -1,12 +1,12 @@
1{-# OPTIONS_GHC -Wall #-}
1{-# OPTIONS_GHC -Wall #-}
2module Elm.Compiler
2module Elm.Compiler
3 ( version
3 ( version
4− , parseDependencies, Tag(..)
5 , compile, Context(..), Result(..)
4 , compile, Context(..), Result(..)
6 , generate
5 , generate
7 , Localizer, dummyLocalizer
6 , Localizer, dummyLocalizer
8 , Error, errorToDoc, errorToJson
7 , Error, errorToDoc, errorToJson
9 , Warning, warningToDoc, warningToJson
8 , Warning, warningToDoc, warningToJson
9+ , parseDependencies, Tag(..)
10 )
10 )
11 where
11 where
12
12
@@ -49,46 +49,6 @@ version =
49
49
50
50
51
51
52−-- DEPENDENCIES
53−
54−
55−data Tag = Normal | Effect | Port
56−
57−
58−parseDependencies :: Package.Name -> Text -> Either Error (Tag, Maybe M.Raw, [M.Raw])
59−parseDependencies pkgName sourceCode =
60− case Parse.run Parse.header sourceCode of
61− Right header ->
62− Right $ getDeps pkgName header
63−
64− Left err ->
65− Left (Error (A.map Error.Syntax err))
66−
67−
68−getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, Maybe M.Raw, [M.Raw])
69−getDeps pkgName (Module.Header maybeHeaderDecl imports) =
70− let
71− dependencies =
72− if pkgName == Package.core
73− then map (fst . A.drop) imports
74− else map (fst . A.drop) imports ++ map fst Imports.defaults
75− in
76− case maybeHeaderDecl of
77− Nothing ->
78− ( Normal, Nothing, dependencies )
79−
80− Just (Module.HeaderDecl sourceTag name _ _ _) ->
81− let
82− tag =
83− case sourceTag of
84− Module.Normal -> Normal
85− Module.Port _ -> Port
86− Module.Effect _ -> Effect
87− in
88− ( tag, Just name, dependencies )
89−
90−
91−
92-- COMPILATION
52-- COMPILATION
93
53
94
54
@@ -204,3 +164,43 @@ warningToDoc (Localizer localizer) location source (Warning (A.A region wrn)) =
204warningToJson :: Localizer -> String -> Warning -> Json.Value
164warningToJson :: Localizer -> String -> Warning -> Json.Value
205warningToJson (Localizer localizer) location (Warning wrn) =
165warningToJson (Localizer localizer) location (Warning wrn) =
206 Warning.toJson localizer location wrn
166 Warning.toJson localizer location wrn
167+
168+
169+
170+-- DEPENDENCIES
171+
172+
173+data Tag = Normal | Effect | Port
174+
175+
176+parseDependencies :: Package.Name -> Text -> Either Error (Tag, Maybe M.Raw, [M.Raw])
177+parseDependencies pkgName sourceCode =
178+ case Parse.run Parse.header sourceCode of
179+ Right header ->
180+ Right $ getDeps pkgName header
181+
182+ Left err ->
183+ Left (Error (A.map Error.Syntax err))
184+
185+
186+getDeps :: Package.Name -> Module.Header [Module.UserImport] -> (Tag, Maybe M.Raw, [M.Raw])
187+getDeps pkgName (Module.Header maybeHeaderDecl imports) =
188+ let
189+ dependencies =
190+ if pkgName == Package.core
191+ then map (fst . A.drop) imports
192+ else map (fst . A.drop) imports ++ map fst Imports.defaults
193+ in
194+ case maybeHeaderDecl of
195+ Nothing ->
196+ ( Normal, Nothing, dependencies )
197+
198+ Just (Module.HeaderDecl sourceTag name _ _ _) ->
199+ let
200+ tag =
201+ case sourceTag of
202+ Module.Normal -> Normal
203+ Module.Port _ -> Port
204+ Module.Effect _ -> Effect
205+ in
206+ ( tag, Just name, dependencies )