diff options
author | Sylvain Henry <sylvain@haskus.fr> | 2020-09-14 19:46:45 +0200 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-09-17 20:04:08 -0400 |
commit | e45c85446de7589e17acf5654c2b33f766043eb1 (patch) | |
tree | db36adba8d53eb3b9cc8e6cbfd37d43f7c8445b7 /compiler/GHC/Cmm/Ppr.hs | |
parent | ca48076ae866665913b9c81cbc0c76f0afef7a00 (diff) | |
download | haskell-e45c85446de7589e17acf5654c2b33f766043eb1.tar.gz |
Generalize OutputableP
Add a type parameter for the environment required by OutputableP. It
avoids tying Platform with OutputableP.
Diffstat (limited to 'compiler/GHC/Cmm/Ppr.hs')
-rw-r--r-- | compiler/GHC/Cmm/Ppr.hs | 27 |
1 files changed, 16 insertions, 11 deletions
diff --git a/compiler/GHC/Cmm/Ppr.hs b/compiler/GHC/Cmm/Ppr.hs index b791b78d70..479dee7430 100644 --- a/compiler/GHC/Cmm/Ppr.hs +++ b/compiler/GHC/Cmm/Ppr.hs @@ -1,5 +1,10 @@ -{-# LANGUAGE GADTs, TypeFamilies, FlexibleContexts, FlexibleInstances #-} +{-# LANGUAGE GADTs #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} + {-# OPTIONS_GHC -fno-warn-orphans #-} ---------------------------------------------------------------------------- @@ -63,11 +68,11 @@ import GHC.Cmm.Dataflow.Graph instance Outputable CmmStackInfo where ppr = pprStackInfo -instance OutputableP CmmTopInfo where +instance OutputableP Platform CmmTopInfo where pdoc = pprTopInfo -instance OutputableP (CmmNode e x) where +instance OutputableP Platform (CmmNode e x) where pdoc = pprNode instance Outputable Convention where @@ -76,25 +81,25 @@ instance Outputable Convention where instance Outputable ForeignConvention where ppr = pprForeignConvention -instance OutputableP ForeignTarget where +instance OutputableP Platform ForeignTarget where pdoc = pprForeignTarget instance Outputable CmmReturnInfo where ppr = pprReturnInfo -instance OutputableP (Block CmmNode C C) where +instance OutputableP Platform (Block CmmNode C C) where pdoc = pprBlock -instance OutputableP (Block CmmNode C O) where +instance OutputableP Platform (Block CmmNode C O) where pdoc = pprBlock -instance OutputableP (Block CmmNode O C) where +instance OutputableP Platform (Block CmmNode O C) where pdoc = pprBlock -instance OutputableP (Block CmmNode O O) where +instance OutputableP Platform (Block CmmNode O O) where pdoc = pprBlock -instance OutputableP (Graph CmmNode e x) where +instance OutputableP Platform (Graph CmmNode e x) where pdoc = pprGraph -instance OutputableP CmmGraph where +instance OutputableP Platform CmmGraph where pdoc = pprCmmGraph ---------------------------------------------------------- @@ -130,7 +135,7 @@ pprGraph platform = \case text "{" $$ nest 2 (pprMaybeO entry $$ (vcat $ map (pdoc platform) $ bodyToBlockList body) $$ pprMaybeO exit) $$ text "}" - where pprMaybeO :: OutputableP (Block CmmNode e x) + where pprMaybeO :: OutputableP Platform (Block CmmNode e x) => MaybeO ex (Block CmmNode e x) -> SDoc pprMaybeO NothingO = empty pprMaybeO (JustO block) = pdoc platform block |