on master help sign in
Make sure types defined in REPL get localized when printed
commita843469720ec2c748f6a485c2fb392e836177708 authorEvan Czaplicki <evancz@users.noreply.github.com> dateTue 24 Apr 2018, 13:36 (9 years ago) parent3b5c227
5 files changed+15−5
builder/src/Elm/Project.hs+1−1 builder/src/Generate/Output.hs+1−1 compiler/src/Elm/Name.hs+6 compiler/src/Reporting/Render/Type/Localizer.hs+3−2 ui/terminal/src/Repl.hs+4−1
builder/src/Elm/Project.hs+1−1
@@ -78,7 +78,7 @@ compileForRepl localizer source maybeName =
7878 (dirty, ifaces) <- Plan.plan Nothing summary graph
7979 answers <- Compile.compile project Nothing ifaces dirty
8080 results <- Artifacts.write root answers
81− let (Compiler.Artifacts elmi _ _) = results ! "Elm_Repl"
81+ let (Compiler.Artifacts elmi _ _) = results ! N.replModule
8282 traverse (Output.generateReplFile localizer summary graph elmi) maybeName
8383
8484
builder/src/Generate/Output.hs+1−1
@@ -155,7 +155,7 @@ generateReplFile localizer summary@(Summary.Summary _ project _ _ _) graph iface
155155 do
156156 objectGraph <- organize summary graph
157157
158− let home = Module.Canonical (Project.getName project) "Elm_Repl"
158+ let home = Module.Canonical (Project.getName project) N.replModule
159159 let builder = Obj.generateForRepl True localizer objectGraph iface home name
160160
161161 liftIO $ IO.writeBuilder (Paths.temp "js") $
compiler/src/Elm/Name.hs+6
@@ -30,6 +30,7 @@ module Elm.Name
3030 , shader, debug, debugger, bitwise, basics
3131 , utils, negate, value
3232 , node, program, main, dollar, identity
33+ , replModule
3334 )
3435 where
3536
@@ -329,3 +330,8 @@ dollar = "$"
329330{-# NOINLINE identity #-}
330331identity :: Name
331332identity = "identity"
333+
334+
335+{-# NOINLINE replModule #-}
336+replModule :: Name
337+replModule = "Elm_Repl"
compiler/src/Reporting/Render/Type/Localizer.hs+3−2
@@ -122,8 +122,9 @@ addType (A.At _ exposed) types =
122122
123123replEmpty :: Localizer
124124replEmpty =
125− Localizer $ Map.fromList $ map toPair $
126− Imports.addDefaults Pkg.dummyName []
125+ Localizer $
126+ Map.insert N.replModule (Import Nothing All) $
127+ Map.fromList $ map toPair $ Imports.addDefaults Pkg.dummyName []
127128
128129
129130replAdd :: N.Name -> Maybe N.Name -> Src.Exposing -> Localizer -> Localizer
ui/terminal/src/Repl.hs+4−1
@@ -234,8 +234,11 @@ initialState =
234234compile :: Output -> State -> Task.Task (Maybe FilePath)
235235compile output (State count imports types defs tricks localizer) =
236236 let
237+ header =
238+ "module " <> N.toBuilder N.replModule <> " exposing (..)\n\n"
239+
237240 elmSourceCode =
238− (<>) "module Elm_Repl exposing (..)\n\n" $
241+ (<>) header $
239242 addLines imports $ addLines types $ addLines defs $
240243 List.foldr (<>) mempty (map Text.encodeUtf8Builder tricks)
241244 in