summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core/Opt/CSE.hs
diff options
context:
space:
mode:
authorM Farkas-Dyck <strake888@proton.me>2022-10-22 15:04:11 -0800
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-11-23 21:59:03 -0500
commit040bfdc359fcc5415ab8836b38982c07c31ea6a2 (patch)
tree0787c8d7b473e6fca98231ce975209081c132573 /compiler/GHC/Core/Opt/CSE.hs
parent99aca26b652603bc62953157a48e419f737d352d (diff)
downloadhaskell-040bfdc359fcc5415ab8836b38982c07c31ea6a2.tar.gz
Scrub some no-warning pragmas.
Diffstat (limited to 'compiler/GHC/Core/Opt/CSE.hs')
-rw-r--r--compiler/GHC/Core/Opt/CSE.hs17
1 files changed, 7 insertions, 10 deletions
diff --git a/compiler/GHC/Core/Opt/CSE.hs b/compiler/GHC/Core/Opt/CSE.hs
index f8a129de85..2f7718709a 100644
--- a/compiler/GHC/Core/Opt/CSE.hs
+++ b/compiler/GHC/Core/Opt/CSE.hs
@@ -4,11 +4,6 @@
\section{Common subexpression}
-}
-
-
-{-# OPTIONS_GHC -Wno-incomplete-record-updates #-}
-{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
-
module GHC.Core.Opt.CSE (cseProgram, cseOneExpr) where
import GHC.Prelude
@@ -32,6 +27,7 @@ import GHC.Types.Tickish
import GHC.Core.Map.Expr
import GHC.Utils.Misc ( filterOut, equalLength )
import GHC.Utils.Panic
+import Data.Functor.Identity ( Identity (..) )
import Data.List ( mapAccumL )
{-
@@ -412,7 +408,7 @@ cseBind toplevel env (Rec [(in_id, rhs)])
= (extendCSRecEnv env1 out_id rhs'' id_expr', Rec [(zapped_id, rhs')])
where
- (env1, [out_id]) = addRecBinders env [in_id]
+ (env1, Identity out_id) = addRecBinders env (Identity in_id)
rhs' = cseExpr env1 rhs
rhs'' = stripTicksE tickishFloatable rhs'
ticks = stripTicksT tickishFloatable rhs'
@@ -916,7 +912,8 @@ addBinders cse vs = (cse { cs_subst = sub' }, vs')
where
(sub', vs') = substBndrs (cs_subst cse) vs
-addRecBinders :: CSEnv -> [Id] -> (CSEnv, [Id])
-addRecBinders cse vs = (cse { cs_subst = sub' }, vs')
- where
- (sub', vs') = substRecBndrs (cs_subst cse) vs
+addRecBinders :: Traversable f => CSEnv -> f Id -> (CSEnv, f Id)
+addRecBinders = \ cse vs ->
+ let (sub', vs') = substRecBndrs (cs_subst cse) vs
+ in (cse { cs_subst = sub' }, vs')
+{-# INLINE addRecBinders #-}