on master help sign in
Handle --no-prelude flag in the Metadata.Prelude module rather than distributed across many modules

Good in case the meaning of —no-prelude changes

commit9ff26223d81ad048228a2e8232b9c0ca7930f4e9 authorEvan Czaplicki <info@elm-lang.org> dateSat 4 Jan 2014, 09:35 (13 years ago) parent9ccc707
4 files changed+10−8
compiler/Build/Source.hs+1−1 compiler/Compiler.hs+1−1 compiler/Elm/Internal/Utils.hs+1−1 compiler/Metadata/Prelude.hs+7−5
compiler/Build/Source.hs+1−1
@@ -26,7 +26,7 @@ import qualified Transform.Canonicalize as Canonical
2626
2727build :: Bool -> Interfaces -> String -> Either [Doc] MetadataModule
2828build noPrelude interfaces source =
29− do let add = if noPrelude then id else Prelude.add
29+ do let add = Prelude.add noPrelude
3030 infixes = Map.fromList . map (\(assoc,lvl,op) -> (op,(lvl,assoc)))
3131 . concatMap iFixities $ Map.elems interfaces
3232
compiler/Compiler.hs+1−1
@@ -31,7 +31,7 @@ compileArgs flags =
3131build :: Flag.Flags -> FilePath -> IO ()
3232build flags rootFile =
3333 do let noPrelude = Flag.no_prelude flags
34− builtIns <- if noPrelude then return Map.empty else Prelude.interfaces
34+ builtIns <- Prelude.interfaces noPrelude
3535
3636 files <- if Flag.make flags
3737 then getSortedDependencies (Flag.src_dir flags) builtIns rootFile
compiler/Elm/Internal/Utils.hs+1−1
@@ -21,7 +21,7 @@ compile source =
2121
2222{-# NOINLINE interfaces #-}
2323interfaces :: M.Interfaces
24−interfaces = unsafePerformIO $ Prelude.interfaces
24+interfaces = unsafePerformIO $ Prelude.interfaces False
2525
2626-- |This function extracts the module name of a given source program.
2727moduleName :: String -> Maybe String
compiler/Metadata/Prelude.hs+7−5
@@ -13,10 +13,10 @@ import qualified Data.ByteString.Lazy as BS
1313
1414import qualified InterfaceSerialization as IS
1515
16−add :: Module def -> Module def
17−add (Module name exs ims decls) = Module name exs (customIms ++ ims) decls
16+add :: Bool -> Module def -> Module def
17+add noPrelude (Module name exs ims decls) = Module name exs (customIms ++ ims) decls
1818 where
19− customIms = concatMap addModule prelude
19+ customIms = if noPrelude then [] else concatMap addModule prelude
2020
2121 addModule (n, method) = case lookup n ims of
2222 Nothing -> [(n, method)]
@@ -30,8 +30,10 @@ prelude = text ++ map (\n -> (n, Hiding [])) modules
3030 modules = [ "Basics", "Signal", "List", "Maybe", "Time", "Prelude"
3131 , "Graphics.Element", "Color", "Graphics.Collage" ]
3232
33−interfaces :: IO Interfaces
34−interfaces = safeReadDocs =<< Path.getDataFileName "interfaces.data"
33+interfaces :: Bool -> IO Interfaces
34+interfaces noPrelude =
35+ do ifaces <- safeReadDocs =<< Path.getDataFileName "interfaces.data"
36+ return $ if noPrelude then Map.empty else ifaces
3537
3638safeReadDocs :: FilePath -> IO Interfaces
3739safeReadDocs name =