summaryrefslogtreecommitdiff
path: root/compiler/GHC/StgToJS/Linker
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/StgToJS/Linker')
-rw-r--r--compiler/GHC/StgToJS/Linker/Linker.hs16
1 files changed, 8 insertions, 8 deletions
diff --git a/compiler/GHC/StgToJS/Linker/Linker.hs b/compiler/GHC/StgToJS/Linker/Linker.hs
index 4f2ef2de5b..6ace7d6028 100644
--- a/compiler/GHC/StgToJS/Linker/Linker.hs
+++ b/compiler/GHC/StgToJS/Linker/Linker.hs
@@ -658,12 +658,12 @@ extractDeps ar_state units deps loc =
let selector n _ = n `IS.member` modUnits || isGlobalUnit n
x <- case loc of
ObjectFile o -> collectCode =<< readObjectFileKeys selector o
- ArchiveFile a -> collectCode
- . readObjectKeys (a ++ ':':moduleNameString (moduleName mod)) selector
+ ArchiveFile a -> (collectCode
+ <=< readObjectKeys (a ++ ':':moduleNameString (moduleName mod)) selector)
=<< readArObject ar_state mod a
-- error ("Ar.readObject: " ++ a ++ ':' : T.unpack mod))
-- Ar.readObject (mkModuleName $ T.unpack mod) a)
- InMemory n b -> collectCode $ readObjectKeys n selector b
+ InMemory n b -> collectCode =<< readObjectKeys n selector b
-- evaluate (rnf x) -- See FIXME Re: NFData instance on Safety and
-- ForeignJSRefs below
return x
@@ -963,15 +963,15 @@ loadArchiveDeps' :: [FilePath]
loadArchiveDeps' archives = do
archDeps <- forM archives $ \file -> do
(Ar.Archive entries) <- Ar.loadAr file
- pure (mapMaybe (readEntry file) entries)
+ catMaybes <$> mapM (readEntry file) entries
return (prepareLoadedDeps $ concat archDeps)
where
- readEntry :: FilePath -> Ar.ArchiveEntry -> Maybe (Deps, DepsLocation)
+ readEntry :: FilePath -> Ar.ArchiveEntry -> IO (Maybe (Deps, DepsLocation))
readEntry ar_file ar_entry
| isObjFile (Ar.filename ar_entry) =
- fmap (,ArchiveFile ar_file)
+ fmap (,ArchiveFile ar_file) <$>
(readDepsMaybe (ar_file ++ ':':Ar.filename ar_entry) (BL.fromStrict $ Ar.filedata ar_entry))
- | otherwise = Nothing
+ | otherwise = return Nothing
isObjFile :: FilePath -> Bool
@@ -993,7 +993,7 @@ requiredUnits d = map (depsModule d,) (IS.toList $ depsRequired d)
-- read dependencies from an object that might have already been into memory
-- pulls in all Deps from an archive
readDepsFile' :: LinkedObj -> IO (Deps, DepsLocation)
-readDepsFile' (ObjLoaded name bs) = pure . (,InMemory name bs) $
+readDepsFile' (ObjLoaded name bs) = (,InMemory name bs) <$>
readDeps name bs
readDepsFile' (ObjFile file) =
(,ObjectFile file) <$> readDepsFile file