summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Jakobi <simon.jakobi@gmail.com>2022-05-07 18:48:49 +0200
committerSimon Jakobi <simon.jakobi@gmail.com>2022-05-11 22:05:59 +0200
commit042f8c1eee36bdcb494d339ceb595a0db87d2ac8 (patch)
tree1cfd6c654cf67f16150096b0be8bdf72b5455c0a
parente3ca8dacf121f3831248775238be4807f53f7ceb (diff)
downloadhaskell-wip/sjakobi/tweak-addHMI.tar.gz
Tweak GHC.Unit.Env.addHomeModInfoToHugwip/sjakobi/tweak-addHMI
unitEnv_adjust is more efficient than unitEnv_alter. unitEvn_alter is exported now to silence a unused-top-binds warning.
-rw-r--r--compiler/GHC/Unit/Env.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/GHC/Unit/Env.hs b/compiler/GHC/Unit/Env.hs
index c3b7aaed4a..c2d035ea35 100644
--- a/compiler/GHC/Unit/Env.hs
+++ b/compiler/GHC/Unit/Env.hs
@@ -38,6 +38,7 @@ module GHC.Unit.Env
, unitEnv_insert
, unitEnv_delete
, unitEnv_adjust
+ , unitEnv_alter
, unitEnv_new
, unitEnv_singleton
, unitEnv_map
@@ -249,7 +250,7 @@ hugElts :: HomeUnitGraph -> [(UnitId, HomeUnitEnv)]
hugElts hug = unitEnv_elts hug
addHomeModInfoToHug :: HomeModInfo -> HomeUnitGraph -> HomeUnitGraph
-addHomeModInfoToHug hmi hug = unitEnv_alter go hmi_unit hug
+addHomeModInfoToHug hmi hug = unitEnv_adjust go hmi_unit hug
where
hmi_mod :: Module
hmi_mod = mi_module (hm_iface hmi)
@@ -257,9 +258,8 @@ addHomeModInfoToHug hmi hug = unitEnv_alter go hmi_unit hug
hmi_unit = toUnitId (moduleUnit hmi_mod)
_hmi_mn = moduleName hmi_mod
- go :: Maybe HomeUnitEnv -> Maybe HomeUnitEnv
- go Nothing = pprPanic "addHomeInfoToHug" (ppr hmi_mod)
- go (Just hue) = Just (updateHueHpt (addHomeModInfoToHpt hmi) hue)
+ go :: HomeUnitEnv -> HomeUnitEnv
+ go = updateHueHpt (addHomeModInfoToHpt hmi)
updateHueHpt :: (HomePackageTable -> HomePackageTable) -> HomeUnitEnv -> HomeUnitEnv
updateHueHpt f hue = hue { homeUnitEnv_hpt = f (homeUnitEnv_hpt hue)}