diff options
Diffstat (limited to 'compiler/GHC')
293 files changed, 685 insertions, 302 deletions
diff --git a/compiler/GHC/Builtin/Types.hs b/compiler/GHC/Builtin/Types.hs index ce506000ac..44a61dc2cb 100644 --- a/compiler/GHC/Builtin/Types.hs +++ b/compiler/GHC/Builtin/Types.hs @@ -181,9 +181,11 @@ import GHC.Types.SrcLoc ( noSrcSpan ) import GHC.Types.Unique import Data.Array import GHC.Data.FastString +import GHC.Data.BooleanFormula ( mkAnd ) + import GHC.Utils.Outputable import GHC.Utils.Misc -import GHC.Data.BooleanFormula ( mkAnd ) +import GHC.Utils.Panic import qualified Data.ByteString.Char8 as BS diff --git a/compiler/GHC/Builtin/Types/Prim.hs b/compiler/GHC/Builtin/Types/Prim.hs index 511af6f217..20c0ab634d 100644 --- a/compiler/GHC/Builtin/Types/Prim.hs +++ b/compiler/GHC/Builtin/Types/Prim.hs @@ -121,6 +121,7 @@ import GHC.Types.Unique import GHC.Builtin.Names import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.TyCo.Rep -- Doesn't need special access, but this is easier to avoid -- import loops which show up if you import Type instead diff --git a/compiler/GHC/Builtin/Uniques.hs b/compiler/GHC/Builtin/Uniques.hs index 5c0e29b7de..326467566f 100644 --- a/compiler/GHC/Builtin/Uniques.hs +++ b/compiler/GHC/Builtin/Uniques.hs @@ -33,10 +33,12 @@ import GHC.Core.TyCon import GHC.Core.DataCon import GHC.Types.Id import GHC.Types.Basic -import GHC.Utils.Outputable import GHC.Types.Unique import GHC.Types.Name + +import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import Data.Bits import Data.Maybe diff --git a/compiler/GHC/Builtin/Utils.hs b/compiler/GHC/Builtin/Utils.hs index 9874edc9b7..208b630e2e 100644 --- a/compiler/GHC/Builtin/Utils.hs +++ b/compiler/GHC/Builtin/Utils.hs @@ -72,6 +72,7 @@ import GHC.Core.Class import GHC.Core.TyCon import GHC.Types.Unique.FM import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Builtin.Types.Literals ( typeNatTyCons ) import GHC.Hs.Doc diff --git a/compiler/GHC/ByteCode/Asm.hs b/compiler/GHC/ByteCode/Asm.hs index 48b6dc980d..e27af3ad1b 100644 --- a/compiler/GHC/ByteCode/Asm.hs +++ b/compiler/GHC/ByteCode/Asm.hs @@ -33,6 +33,7 @@ import GHC.StgToCmm.Layout ( ArgRep(..) ) import GHC.Runtime.Heap.Layout import GHC.Driver.Session import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Utils.Misc import GHC.Types.Unique diff --git a/compiler/GHC/Cmm/CLabel.hs b/compiler/GHC/Cmm/CLabel.hs index 602e3d38fc..5f2eb565c5 100644 --- a/compiler/GHC/Cmm/CLabel.hs +++ b/compiler/GHC/Cmm/CLabel.hs @@ -127,6 +127,7 @@ import GHC.Types.Unique import GHC.Builtin.PrimOps import GHC.Types.CostCentre import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Driver.Session import GHC.Driver.Backend diff --git a/compiler/GHC/Cmm/CallConv.hs b/compiler/GHC/Cmm/CallConv.hs index 09d1d26924..5d591a0dd3 100644 --- a/compiler/GHC/Cmm/CallConv.hs +++ b/compiler/GHC/Cmm/CallConv.hs @@ -16,6 +16,7 @@ import GHC.Driver.Session import GHC.Platform import GHC.Platform.Profile import GHC.Utils.Outputable +import GHC.Utils.Panic -- Calculate the 'GlobalReg' or stack locations for function call -- parameters as used by the Cmm calling convention. diff --git a/compiler/GHC/Cmm/CommonBlockElim.hs b/compiler/GHC/Cmm/CommonBlockElim.hs index cc6cb2d40b..d88745ad21 100644 --- a/compiler/GHC/Cmm/CommonBlockElim.hs +++ b/compiler/GHC/Cmm/CommonBlockElim.hs @@ -24,6 +24,7 @@ import qualified Data.List as List import Data.Word import qualified Data.Map as M import GHC.Utils.Outputable +import GHC.Utils.Panic import qualified GHC.Data.TrieMap as TM import GHC.Types.Unique.FM import GHC.Types.Unique diff --git a/compiler/GHC/Cmm/DebugBlock.hs b/compiler/GHC/Cmm/DebugBlock.hs index fbd64b55b0..4e39fb7ecd 100644 --- a/compiler/GHC/Cmm/DebugBlock.hs +++ b/compiler/GHC/Cmm/DebugBlock.hs @@ -36,6 +36,7 @@ import GHC.Core import GHC.Data.FastString ( nilFS, mkFastString ) import GHC.Unit.Module import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Cmm.Ppr.Expr ( pprExpr ) import GHC.Types.SrcLoc import GHC.Utils.Misc ( seqList ) diff --git a/compiler/GHC/Cmm/Expr.hs b/compiler/GHC/Cmm/Expr.hs index 43d6734633..9b6f160a53 100644 --- a/compiler/GHC/Cmm/Expr.hs +++ b/compiler/GHC/Cmm/Expr.hs @@ -39,7 +39,7 @@ import GHC.Cmm.CLabel import GHC.Cmm.MachOp import GHC.Cmm.Type import GHC.Driver.Session -import GHC.Utils.Outputable (panic) +import GHC.Utils.Panic (panic) import GHC.Types.Unique import Data.Set (Set) diff --git a/compiler/GHC/Cmm/Info/Build.hs b/compiler/GHC/Cmm/Info/Build.hs index 8e91c2636e..84c7999f69 100644 --- a/compiler/GHC/Cmm/Info/Build.hs +++ b/compiler/GHC/Cmm/Info/Build.hs @@ -29,6 +29,7 @@ import GHC.Cmm.Utils import GHC.Driver.Session import GHC.Data.Maybe import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Runtime.Heap.Layout import GHC.Types.Unique.Supply import GHC.Types.CostCentre diff --git a/compiler/GHC/Cmm/LayoutStack.hs b/compiler/GHC/Cmm/LayoutStack.hs index f1137cf4fe..9cf4638001 100644 --- a/compiler/GHC/Cmm/LayoutStack.hs +++ b/compiler/GHC/Cmm/LayoutStack.hs @@ -35,6 +35,7 @@ import GHC.Utils.Misc import GHC.Driver.Session import GHC.Data.FastString import GHC.Utils.Outputable hiding ( isEmpty ) +import GHC.Utils.Panic import qualified Data.Set as Set import Control.Monad.Fix import Data.Array as Array diff --git a/compiler/GHC/Cmm/Liveness.hs b/compiler/GHC/Cmm/Liveness.hs index c229e48529..c8b7993736 100644 --- a/compiler/GHC/Cmm/Liveness.hs +++ b/compiler/GHC/Cmm/Liveness.hs @@ -25,6 +25,7 @@ import GHC.Cmm.Dataflow.Label import GHC.Data.Maybe import GHC.Utils.Outputable +import GHC.Utils.Panic ----------------------------------------------------------------------------- -- Calculating what variables are live on entry to a basic block diff --git a/compiler/GHC/Cmm/Opt.hs b/compiler/GHC/Cmm/Opt.hs index 493122024c..fc75e1901e 100644 --- a/compiler/GHC/Cmm/Opt.hs +++ b/compiler/GHC/Cmm/Opt.hs @@ -19,7 +19,7 @@ import GHC.Cmm.Utils import GHC.Cmm import GHC.Utils.Misc -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Data.Bits diff --git a/compiler/GHC/Cmm/Parser.y b/compiler/GHC/Cmm/Parser.y index f03383833c..0be73b66f8 100644 --- a/compiler/GHC/Cmm/Parser.y +++ b/compiler/GHC/Cmm/Parser.y @@ -247,6 +247,7 @@ import GHC.Types.Unique import GHC.Types.Unique.FM import GHC.Types.SrcLoc import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Error import GHC.Data.StringBuffer import GHC.Data.FastString @@ -1047,7 +1048,7 @@ callishMachOps = listToUFM $ args' = init args align = case last args of CmmLit (CmmInt alignInteger _) -> fromInteger alignInteger - e -> pprPgmError "Non-constant alignment in memcpy-like function:" (ppr e) + e -> pgmErrorDoc "Non-constant alignment in memcpy-like function:" (ppr e) -- The alignment of memcpy-ish operations must be a -- compile-time constant. We verify this here, passing it around -- in the MO_* constructor. In order to do this, however, we diff --git a/compiler/GHC/Cmm/Ppr/Decl.hs b/compiler/GHC/Cmm/Ppr/Decl.hs index 43a341bf85..94216a537b 100644 --- a/compiler/GHC/Cmm/Ppr/Decl.hs +++ b/compiler/GHC/Cmm/Ppr/Decl.hs @@ -46,6 +46,7 @@ import GHC.Platform import GHC.Cmm.Ppr.Expr import GHC.Cmm +import GHC.Driver.Ppr import GHC.Driver.Session import GHC.Utils.Outputable import GHC.Data.FastString diff --git a/compiler/GHC/Cmm/Ppr/Expr.hs b/compiler/GHC/Cmm/Ppr/Expr.hs index 5bed66d537..4bb8021541 100644 --- a/compiler/GHC/Cmm/Ppr/Expr.hs +++ b/compiler/GHC/Cmm/Ppr/Expr.hs @@ -41,8 +41,10 @@ where import GHC.Prelude -import GHC.Platform import GHC.Driver.Session (targetPlatform) +import GHC.Driver.Ppr + +import GHC.Platform import GHC.Cmm.Expr import GHC.Utils.Outputable diff --git a/compiler/GHC/Cmm/ProcPoint.hs b/compiler/GHC/Cmm/ProcPoint.hs index cca69310b7..2de355deb3 100644 --- a/compiler/GHC/Cmm/ProcPoint.hs +++ b/compiler/GHC/Cmm/ProcPoint.hs @@ -24,6 +24,7 @@ import Data.List (sortBy) import GHC.Data.Maybe import Control.Monad import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Unique.Supply import GHC.Cmm.Dataflow.Block diff --git a/compiler/GHC/Cmm/Switch.hs b/compiler/GHC/Cmm/Switch.hs index ee0d5a07df..7bef1e293a 100644 --- a/compiler/GHC/Cmm/Switch.hs +++ b/compiler/GHC/Cmm/Switch.hs @@ -16,6 +16,7 @@ import GHC.Prelude import GHC.Utils.Outputable import GHC.Driver.Backend +import GHC.Utils.Panic import GHC.Cmm.Dataflow.Label (Label) import Data.Maybe diff --git a/compiler/GHC/Cmm/Type.hs b/compiler/GHC/Cmm/Type.hs index 0e7601cf3a..8a750cd10d 100644 --- a/compiler/GHC/Cmm/Type.hs +++ b/compiler/GHC/Cmm/Type.hs @@ -34,6 +34,7 @@ import GHC.Prelude import GHC.Platform import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.Word import Data.Int diff --git a/compiler/GHC/Cmm/Utils.hs b/compiler/GHC/Cmm/Utils.hs index d762f0d9b0..356fb4e138 100644 --- a/compiler/GHC/Cmm/Utils.hs +++ b/compiler/GHC/Cmm/Utils.hs @@ -79,6 +79,7 @@ import GHC.Cmm import GHC.Cmm.BlockId import GHC.Cmm.CLabel import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique import GHC.Platform.Regs diff --git a/compiler/GHC/CmmToAsm.hs b/compiler/GHC/CmmToAsm.hs index b27db24a7b..b37f8e9549 100644 --- a/compiler/GHC/CmmToAsm.hs +++ b/compiler/GHC/CmmToAsm.hs @@ -87,12 +87,14 @@ import GHC.Cmm.CLabel import GHC.Types.Unique.FM import GHC.Types.Unique.Supply import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Misc import GHC.Types.Basic ( Alignment ) import qualified GHC.Utils.Ppr as Pretty import GHC.Utils.BufHandle import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Types.Unique.Set import GHC.Utils.Error diff --git a/compiler/GHC/CmmToAsm/BlockLayout.hs b/compiler/GHC/CmmToAsm/BlockLayout.hs index 57d265782b..d93b84887e 100644 --- a/compiler/GHC/CmmToAsm/BlockLayout.hs +++ b/compiler/GHC/CmmToAsm/BlockLayout.hs @@ -16,6 +16,9 @@ where #include "HsVersions.h" import GHC.Prelude +import GHC.Driver.Session (gopt, GeneralFlag(..), DynFlags, targetPlatform) +import GHC.Driver.Ppr (pprTrace) + import GHC.CmmToAsm.Instr import GHC.CmmToAsm.Monad import GHC.CmmToAsm.CFG @@ -26,12 +29,12 @@ import GHC.Cmm.Dataflow.Collections import GHC.Cmm.Dataflow.Label import GHC.Platform -import GHC.Driver.Session (gopt, GeneralFlag(..), DynFlags, targetPlatform) import GHC.Types.Unique.FM import GHC.Utils.Misc import GHC.Data.Graph.Directed import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Maybe -- DEBUGGING ONLY diff --git a/compiler/GHC/CmmToAsm/CFG.hs b/compiler/GHC/CmmToAsm/CFG.hs index 5db10ce93f..dd46393649 100644 --- a/compiler/GHC/CmmToAsm/CFG.hs +++ b/compiler/GHC/CmmToAsm/CFG.hs @@ -73,6 +73,7 @@ import Data.Tree import Data.Bifunctor import GHC.Utils.Outputable +import GHC.Utils.Panic -- DEBUGGING ONLY --import GHC.Cmm.DebugBlock --import GHC.Data.OrdList diff --git a/compiler/GHC/CmmToAsm/CPrim.hs b/compiler/GHC/CmmToAsm/CPrim.hs index 826a6e2224..4de946686d 100644 --- a/compiler/GHC/CmmToAsm/CPrim.hs +++ b/compiler/GHC/CmmToAsm/CPrim.hs @@ -20,6 +20,7 @@ import GHC.Prelude import GHC.Cmm.Type import GHC.Cmm.MachOp import GHC.Utils.Outputable +import GHC.Utils.Panic popCntLabel :: Width -> String popCntLabel w = "hs_popcnt" ++ pprWidth w diff --git a/compiler/GHC/CmmToAsm/Dwarf.hs b/compiler/GHC/CmmToAsm/Dwarf.hs index c0da6977a9..ccf2cf8758 100644 --- a/compiler/GHC/CmmToAsm/Dwarf.hs +++ b/compiler/GHC/CmmToAsm/Dwarf.hs @@ -4,12 +4,14 @@ module GHC.CmmToAsm.Dwarf ( import GHC.Prelude +import GHC.Driver.Session +import GHC.Driver.Ppr + import GHC.Cmm.CLabel import GHC.Cmm.Expr ( GlobalReg(..) ) import GHC.Settings.Config ( cProjectName, cProjectVersion ) import GHC.Core ( Tickish(..) ) import GHC.Cmm.DebugBlock -import GHC.Driver.Session import GHC.Unit.Module import GHC.Utils.Outputable import GHC.Platform diff --git a/compiler/GHC/CmmToAsm/Format.hs b/compiler/GHC/CmmToAsm/Format.hs index 0049d2c987..207de095ae 100644 --- a/compiler/GHC/CmmToAsm/Format.hs +++ b/compiler/GHC/CmmToAsm/Format.hs @@ -24,6 +24,7 @@ import GHC.Prelude import GHC.Cmm import GHC.Utils.Outputable +import GHC.Utils.Panic -- It looks very like the old MachRep, but it's now of purely local -- significance, here in the native code generator. You can change it diff --git a/compiler/GHC/CmmToAsm/Monad.hs b/compiler/GHC/CmmToAsm/Monad.hs index 68bb46acd0..04921f7022 100644 --- a/compiler/GHC/CmmToAsm/Monad.hs +++ b/compiler/GHC/CmmToAsm/Monad.hs @@ -69,7 +69,8 @@ import GHC.Unit.Module import Control.Monad ( ap ) import GHC.CmmToAsm.Instr -import GHC.Utils.Outputable (SDoc, pprPanic, ppr) +import GHC.Utils.Outputable (SDoc, ppr) +import GHC.Utils.Panic (pprPanic) import GHC.Cmm (RawCmmDecl, RawCmmStatics) import GHC.CmmToAsm.CFG diff --git a/compiler/GHC/CmmToAsm/PIC.hs b/compiler/GHC/CmmToAsm/PIC.hs index 77ffcfd930..419f8eb9d8 100644 --- a/compiler/GHC/CmmToAsm/PIC.hs +++ b/compiler/GHC/CmmToAsm/PIC.hs @@ -68,6 +68,7 @@ import GHC.Types.Basic import GHC.Unit.Module import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString diff --git a/compiler/GHC/CmmToAsm/PPC/CodeGen.hs b/compiler/GHC/CmmToAsm/PPC/CodeGen.hs index 367faa25bc..e704beb61f 100644 --- a/compiler/GHC/CmmToAsm/PPC/CodeGen.hs +++ b/compiler/GHC/CmmToAsm/PPC/CodeGen.hs @@ -62,6 +62,7 @@ import GHC.Types.SrcLoc ( srcSpanFile, srcSpanStartLine, srcSpanStartCol ) -- The rest: import GHC.Data.OrdList import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad ( mapAndUnzipM, when ) import Data.Bits diff --git a/compiler/GHC/CmmToAsm/PPC/Instr.hs b/compiler/GHC/CmmToAsm/PPC/Instr.hs index 26c50bcdc8..29655647fa 100644 --- a/compiler/GHC/CmmToAsm/PPC/Instr.hs +++ b/compiler/GHC/CmmToAsm/PPC/Instr.hs @@ -43,7 +43,7 @@ import GHC.Cmm import GHC.Cmm.Info import GHC.Data.FastString import GHC.Cmm.CLabel -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Unique.FM (listToUFM, lookupUFM) import GHC.Types.Unique.Supply diff --git a/compiler/GHC/CmmToAsm/PPC/Ppr.hs b/compiler/GHC/CmmToAsm/PPC/Ppr.hs index bb8d412f52..99cb22ba28 100644 --- a/compiler/GHC/CmmToAsm/PPC/Ppr.hs +++ b/compiler/GHC/CmmToAsm/PPC/Ppr.hs @@ -34,6 +34,7 @@ import GHC.Types.Unique ( pprUniqueAlways, getUnique ) import GHC.Platform import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Driver.Session (targetPlatform) import Data.Word diff --git a/compiler/GHC/CmmToAsm/PPC/Regs.hs b/compiler/GHC/CmmToAsm/PPC/Regs.hs index a92c7f00ef..3068be7ac5 100644 --- a/compiler/GHC/CmmToAsm/PPC/Regs.hs +++ b/compiler/GHC/CmmToAsm/PPC/Regs.hs @@ -62,6 +62,7 @@ import GHC.Types.Unique import GHC.Platform.Regs import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Data.Word ( Word8, Word16, Word32, Word64 ) diff --git a/compiler/GHC/CmmToAsm/Ppr.hs b/compiler/GHC/CmmToAsm/Ppr.hs index 405bab9fff..cec114e499 100644 --- a/compiler/GHC/CmmToAsm/Ppr.hs +++ b/compiler/GHC/CmmToAsm/Ppr.hs @@ -29,6 +29,7 @@ import GHC.Cmm import GHC.CmmToAsm.Config import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import qualified Data.Array.Unsafe as U ( castSTUArray ) diff --git a/compiler/GHC/CmmToAsm/Reg/Graph.hs b/compiler/GHC/CmmToAsm/Reg/Graph.hs index fad2750ef4..c544d9ff8a 100644 --- a/compiler/GHC/CmmToAsm/Reg/Graph.hs +++ b/compiler/GHC/CmmToAsm/Reg/Graph.hs @@ -22,6 +22,7 @@ import GHC.Platform.Reg import GHC.Data.Bag import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Unique.FM import GHC.Types.Unique.Set diff --git a/compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs b/compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs index 6226c1c269..b3c06cefcc 100644 --- a/compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs +++ b/compiler/GHC/CmmToAsm/Reg/Graph/Spill.hs @@ -24,6 +24,7 @@ import GHC.Types.Unique.FM import GHC.Types.Unique.Set import GHC.Types.Unique.Supply import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Data.List diff --git a/compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs b/compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs index fec35cb6bc..af0e8d970f 100644 --- a/compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs +++ b/compiler/GHC/CmmToAsm/Reg/Graph/SpillClean.hs @@ -46,6 +46,7 @@ import GHC.Types.Unique.FM import GHC.Types.Unique import GHC.Utils.Monad.State import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Cmm.Dataflow.Collections diff --git a/compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs b/compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs index 1ea380fabf..a5d09d5eea 100644 --- a/compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs +++ b/compiler/GHC/CmmToAsm/Reg/Graph/SpillCost.hs @@ -29,6 +29,7 @@ import GHC.Types.Unique.FM import GHC.Types.Unique.Set import GHC.Data.Graph.Directed (flattenSCCs) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Utils.Monad.State import GHC.CmmToAsm.CFG diff --git a/compiler/GHC/CmmToAsm/Reg/Linear.hs b/compiler/GHC/CmmToAsm/Reg/Linear.hs index f777a21ca6..4d666bc557 100644 --- a/compiler/GHC/CmmToAsm/Reg/Linear.hs +++ b/compiler/GHC/CmmToAsm/Reg/Linear.hs @@ -134,6 +134,7 @@ import GHC.Types.Unique.Set import GHC.Types.Unique.FM import GHC.Types.Unique.Supply import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Data.Maybe diff --git a/compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs b/compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs index 8d3a46f490..de489b342b 100644 --- a/compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs +++ b/compiler/GHC/CmmToAsm/Reg/Linear/JoinToTargets.hs @@ -24,6 +24,7 @@ import GHC.Cmm.BlockId import GHC.Cmm.Dataflow.Collections import GHC.Data.Graph.Directed import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique import GHC.Types.Unique.FM import GHC.Types.Unique.Set diff --git a/compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs b/compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs index fd0719c656..0cc155aa07 100644 --- a/compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs +++ b/compiler/GHC/CmmToAsm/Reg/Linear/PPC.hs @@ -10,6 +10,7 @@ import GHC.Platform.Reg.Class import GHC.Platform.Reg import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Data.Word diff --git a/compiler/GHC/CmmToAsm/Reg/Linear/SPARC.hs b/compiler/GHC/CmmToAsm/Reg/Linear/SPARC.hs index 063a8836b3..0bb4448d6e 100644 --- a/compiler/GHC/CmmToAsm/Reg/Linear/SPARC.hs +++ b/compiler/GHC/CmmToAsm/Reg/Linear/SPARC.hs @@ -12,6 +12,7 @@ import GHC.Platform.Reg import GHC.Platform.Regs import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Data.Word diff --git a/compiler/GHC/CmmToAsm/Reg/Liveness.hs b/compiler/GHC/CmmToAsm/Reg/Liveness.hs index 13dbcc5f70..00adf1cc34 100644 --- a/compiler/GHC/CmmToAsm/Reg/Liveness.hs +++ b/compiler/GHC/CmmToAsm/Reg/Liveness.hs @@ -52,6 +52,7 @@ import GHC.Cmm hiding (RegSet, emptyRegSet) import GHC.Data.Graph.Directed import GHC.Utils.Monad import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Unique.Set import GHC.Types.Unique.FM diff --git a/compiler/GHC/CmmToAsm/Reg/Target.hs b/compiler/GHC/CmmToAsm/Reg/Target.hs index d4bc561faa..c925816e24 100644 --- a/compiler/GHC/CmmToAsm/Reg/Target.hs +++ b/compiler/GHC/CmmToAsm/Reg/Target.hs @@ -28,6 +28,7 @@ import GHC.Platform.Reg.Class import GHC.CmmToAsm.Format import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique import GHC.Platform diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen.hs index 9ecb0fcc76..fcebf9c487 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen.hs @@ -55,7 +55,7 @@ import GHC.CmmToAsm.CPrim import GHC.Types.Basic import GHC.Data.FastString import GHC.Data.OrdList -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import Control.Monad ( mapAndUnzipM ) diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Base.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Base.hs index 0662fd06af..dc132211bc 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Base.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Base.hs @@ -28,6 +28,7 @@ import GHC.Cmm.Ppr.Expr () -- For Outputable instances import GHC.Platform import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.OrdList -------------------------------------------------------------------------------- diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen/CondCode.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen/CondCode.hs index 0a6de1a034..42d71a022c 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen/CondCode.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen/CondCode.hs @@ -22,6 +22,7 @@ import GHC.Cmm import GHC.Data.OrdList import GHC.Utils.Outputable +import GHC.Utils.Panic getCondCode :: CmmExpr -> NatM CondCode diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Expand.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Expand.hs index 495a973c90..c1660f989b 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Expand.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Expand.hs @@ -18,8 +18,8 @@ import GHC.Platform.Reg import GHC.CmmToAsm.Format import GHC.Cmm - import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.OrdList -- | Expand out synthetic instructions in this top level thing diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen32.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen32.hs index e5b5990150..f07cbec9a8 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen32.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen32.hs @@ -27,7 +27,7 @@ import GHC.Cmm import Control.Monad (liftM) import GHC.Data.OrdList -import GHC.Utils.Outputable +import GHC.Utils.Panic -- | The dual to getAnyReg: compute an expression into a register, but -- we don't mind which one it is. diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen64.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen64.hs index 00a94ceb24..52d4f125b5 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen64.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Gen64.hs @@ -26,6 +26,7 @@ import GHC.Cmm import GHC.Data.OrdList import GHC.Utils.Outputable +import GHC.Utils.Panic -- | Code to assign a 64 bit value to memory. assignMem_I64Code diff --git a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Sanity.hs b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Sanity.hs index f6ec24434c..a1060e5cf2 100644 --- a/compiler/GHC/CmmToAsm/SPARC/CodeGen/Sanity.hs +++ b/compiler/GHC/CmmToAsm/SPARC/CodeGen/Sanity.hs @@ -15,6 +15,7 @@ import GHC.CmmToAsm.Instr import GHC.Cmm import GHC.Utils.Outputable +import GHC.Utils.Panic -- | Enforce intra-block invariants. diff --git a/compiler/GHC/CmmToAsm/SPARC/Imm.hs b/compiler/GHC/CmmToAsm/SPARC/Imm.hs index fd4185565c..35ff7a31cd 100644 --- a/compiler/GHC/CmmToAsm/SPARC/Imm.hs +++ b/compiler/GHC/CmmToAsm/SPARC/Imm.hs @@ -13,6 +13,7 @@ import GHC.Cmm import GHC.Cmm.CLabel import GHC.Utils.Outputable +import GHC.Utils.Panic -- | An immediate value. -- Not all of these are directly representable by the machine. diff --git a/compiler/GHC/CmmToAsm/SPARC/Instr.hs b/compiler/GHC/CmmToAsm/SPARC/Instr.hs index 6da02818db..7f0db3c18d 100644 --- a/compiler/GHC/CmmToAsm/SPARC/Instr.hs +++ b/compiler/GHC/CmmToAsm/SPARC/Instr.hs @@ -44,7 +44,7 @@ import GHC.Platform.Regs import GHC.Cmm.BlockId import GHC.Cmm import GHC.Data.FastString -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform diff --git a/compiler/GHC/CmmToAsm/SPARC/Ppr.hs b/compiler/GHC/CmmToAsm/SPARC/Ppr.hs index d1e7dbfa38..98f6096ac1 100644 --- a/compiler/GHC/CmmToAsm/SPARC/Ppr.hs +++ b/compiler/GHC/CmmToAsm/SPARC/Ppr.hs @@ -47,6 +47,7 @@ import GHC.Cmm.Dataflow.Collections import GHC.Types.Unique ( pprUniqueAlways ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Data.FastString diff --git a/compiler/GHC/CmmToAsm/SPARC/Regs.hs b/compiler/GHC/CmmToAsm/SPARC/Regs.hs index fe2de7f544..949701cf2d 100644 --- a/compiler/GHC/CmmToAsm/SPARC/Regs.hs +++ b/compiler/GHC/CmmToAsm/SPARC/Regs.hs @@ -41,6 +41,7 @@ import GHC.CmmToAsm.Format import GHC.Types.Unique import GHC.Utils.Outputable +import GHC.Utils.Panic {- The SPARC has 64 registers of interest; 32 integer registers and 32 diff --git a/compiler/GHC/CmmToAsm/SPARC/Stack.hs b/compiler/GHC/CmmToAsm/SPARC/Stack.hs index 4333f767f7..be51164da1 100644 --- a/compiler/GHC/CmmToAsm/SPARC/Stack.hs +++ b/compiler/GHC/CmmToAsm/SPARC/Stack.hs @@ -16,6 +16,7 @@ import GHC.CmmToAsm.SPARC.Imm import GHC.CmmToAsm.Config import GHC.Utils.Outputable +import GHC.Utils.Panic -- | Get an AddrMode relative to the address in sp. -- This gives us a stack relative addressing mode for volatile diff --git a/compiler/GHC/CmmToAsm/X86/CodeGen.hs b/compiler/GHC/CmmToAsm/X86/CodeGen.hs index f210cebb2d..85343f0666 100644 --- a/compiler/GHC/CmmToAsm/X86/CodeGen.hs +++ b/compiler/GHC/CmmToAsm/X86/CodeGen.hs @@ -83,6 +83,7 @@ import GHC.Types.SrcLoc ( srcSpanFile, srcSpanStartLine, srcSpanStartCol ) import GHC.Types.ForeignCall ( CCallConv(..) ) import GHC.Data.OrdList import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Driver.Session import GHC.Utils.Misc diff --git a/compiler/GHC/CmmToAsm/X86/Instr.hs b/compiler/GHC/CmmToAsm/X86/Instr.hs index eafe7198e6..ae9d45462e 100644 --- a/compiler/GHC/CmmToAsm/X86/Instr.hs +++ b/compiler/GHC/CmmToAsm/X86/Instr.hs @@ -36,6 +36,7 @@ import GHC.Platform.Regs import GHC.Cmm import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Basic (Alignment) diff --git a/compiler/GHC/CmmToAsm/X86/Ppr.hs b/compiler/GHC/CmmToAsm/X86/Ppr.hs index 49e4de8ad5..a733290733 100644 --- a/compiler/GHC/CmmToAsm/X86/Ppr.hs +++ b/compiler/GHC/CmmToAsm/X86/Ppr.hs @@ -45,6 +45,7 @@ import GHC.Types.Unique ( pprUniqueAlways ) import GHC.Platform import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.Word import Data.Bits diff --git a/compiler/GHC/CmmToAsm/X86/RegInfo.hs b/compiler/GHC/CmmToAsm/X86/RegInfo.hs index 3f7d50d319..0b5071ab97 100644 --- a/compiler/GHC/CmmToAsm/X86/RegInfo.hs +++ b/compiler/GHC/CmmToAsm/X86/RegInfo.hs @@ -14,6 +14,7 @@ import GHC.CmmToAsm.Format import GHC.Platform.Reg import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Unique diff --git a/compiler/GHC/CmmToAsm/X86/Regs.hs b/compiler/GHC/CmmToAsm/X86/Regs.hs index 8e6f215d3c..a815ad0450 100644 --- a/compiler/GHC/CmmToAsm/X86/Regs.hs +++ b/compiler/GHC/CmmToAsm/X86/Regs.hs @@ -58,6 +58,7 @@ import GHC.Platform.Reg.Class import GHC.Cmm import GHC.Cmm.CLabel ( CLabel ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import qualified Data.Array as A diff --git a/compiler/GHC/CmmToC.hs b/compiler/GHC/CmmToC.hs index 54b50577c8..daf98f71a5 100644 --- a/compiler/GHC/CmmToC.hs +++ b/compiler/GHC/CmmToC.hs @@ -43,8 +43,10 @@ import GHC.Cmm.Switch -- Utils import GHC.CmmToAsm.CPrim import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.Unique.Set import GHC.Types.Unique.FM diff --git a/compiler/GHC/CmmToLlvm.hs b/compiler/GHC/CmmToLlvm.hs index 13a557dcd9..22c2eb01df 100644 --- a/compiler/GHC/CmmToLlvm.hs +++ b/compiler/GHC/CmmToLlvm.hs @@ -34,6 +34,7 @@ import GHC.Platform ( platformArch, Arch(..) ) import GHC.Utils.Error import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.SysTools ( figureLlvmVersion ) import qualified GHC.Data.Stream as Stream diff --git a/compiler/GHC/CmmToLlvm/CodeGen.hs b/compiler/GHC/CmmToLlvm/CodeGen.hs index 5581928a55..916931eefa 100644 --- a/compiler/GHC/CmmToLlvm/CodeGen.hs +++ b/compiler/GHC/CmmToLlvm/CodeGen.hs @@ -10,6 +10,9 @@ module GHC.CmmToLlvm.CodeGen ( genLlvmProc ) where import GHC.Prelude +import GHC.Driver.Session +import GHC.Driver.Ppr + import GHC.Llvm import GHC.CmmToLlvm.Base import GHC.CmmToLlvm.Regs @@ -25,11 +28,11 @@ import GHC.Cmm.Dataflow.Block import GHC.Cmm.Dataflow.Graph import GHC.Cmm.Dataflow.Collections -import GHC.Driver.Session import GHC.Data.FastString import GHC.Types.ForeignCall -import GHC.Utils.Outputable hiding (panic, pprPanic) -import qualified GHC.Utils.Outputable as Outputable +import GHC.Utils.Outputable +import GHC.Utils.Panic (assertPanic) +import qualified GHC.Utils.Panic as Panic import GHC.Platform import GHC.Data.OrdList import GHC.Types.Unique.Supply @@ -2001,10 +2004,10 @@ toIWord platform = mkIntLit (llvmWord platform) -- | Error functions panic :: HasCallStack => String -> a -panic s = Outputable.panic $ "GHC.CmmToLlvm.CodeGen." ++ s +panic s = Panic.panic $ "GHC.CmmToLlvm.CodeGen." ++ s pprPanic :: HasCallStack => String -> SDoc -> a -pprPanic s d = Outputable.pprPanic ("GHC.CmmToLlvm.CodeGen." ++ s) d +pprPanic s d = Panic.pprPanic ("GHC.CmmToLlvm.CodeGen." ++ s) d -- | Returns TBAA meta data by unique diff --git a/compiler/GHC/CmmToLlvm/Data.hs b/compiler/GHC/CmmToLlvm/Data.hs index ac155179d1..79e2e1a28b 100644 --- a/compiler/GHC/CmmToLlvm/Data.hs +++ b/compiler/GHC/CmmToLlvm/Data.hs @@ -20,7 +20,7 @@ import GHC.Cmm import GHC.Platform import GHC.Data.FastString -import GHC.Utils.Outputable +import GHC.Utils.Panic import qualified Data.ByteString as BS -- ---------------------------------------------------------------------------- diff --git a/compiler/GHC/CmmToLlvm/Ppr.hs b/compiler/GHC/CmmToLlvm/Ppr.hs index 49374a9869..6519eee637 100644 --- a/compiler/GHC/CmmToLlvm/Ppr.hs +++ b/compiler/GHC/CmmToLlvm/Ppr.hs @@ -11,6 +11,8 @@ module GHC.CmmToLlvm.Ppr ( import GHC.Prelude +import GHC.Driver.Ppr + import GHC.Llvm import GHC.CmmToLlvm.Base import GHC.CmmToLlvm.Data diff --git a/compiler/GHC/CmmToLlvm/Regs.hs b/compiler/GHC/CmmToLlvm/Regs.hs index dc878fce30..411ec22bbb 100644 --- a/compiler/GHC/CmmToLlvm/Regs.hs +++ b/compiler/GHC/CmmToLlvm/Regs.hs @@ -18,7 +18,7 @@ import GHC.Llvm import GHC.Cmm.Expr import GHC.Platform import GHC.Data.FastString -import GHC.Utils.Outputable ( panic ) +import GHC.Utils.Panic ( panic ) import GHC.Types.Unique -- | Get the LlvmVar function variable storing the real register diff --git a/compiler/GHC/Core.hs b/compiler/GHC/Core.hs index 5e13b4e275..c99182f978 100644 --- a/compiler/GHC/Core.hs +++ b/compiler/GHC/Core.hs @@ -114,11 +114,15 @@ import GHC.Types.Literal import GHC.Core.DataCon import GHC.Unit.Module import GHC.Types.Basic -import GHC.Utils.Outputable -import GHC.Utils.Misc import GHC.Types.Unique.Set import GHC.Types.SrcLoc ( RealSrcSpan, containsSpan ) + import GHC.Utils.Binary +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + +import GHC.Driver.Ppr import Data.Data hiding (TyCon) import Data.Int diff --git a/compiler/GHC/Core/Class.hs b/compiler/GHC/Core/Class.hs index 25df472486..f5d24aaf3c 100644 --- a/compiler/GHC/Core/Class.hs +++ b/compiler/GHC/Core/Class.hs @@ -33,6 +33,7 @@ import GHC.Types.Name import GHC.Types.Basic import GHC.Types.Unique import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Utils.Outputable import GHC.Data.BooleanFormula (BooleanFormula, mkTrue) diff --git a/compiler/GHC/Core/Coercion.hs b/compiler/GHC/Core/Coercion.hs index a408373eea..6e19cbdd7a 100644 --- a/compiler/GHC/Core/Coercion.hs +++ b/compiler/GHC/Core/Coercion.hs @@ -139,9 +139,7 @@ import GHC.Types.Var import GHC.Types.Var.Env import GHC.Types.Var.Set import GHC.Types.Name hiding ( varName ) -import GHC.Utils.Misc import GHC.Types.Basic -import GHC.Utils.Outputable import GHC.Types.Unique import GHC.Data.Pair import GHC.Types.SrcLoc @@ -151,6 +149,10 @@ import GHC.Data.List.SetOps import GHC.Data.Maybe import GHC.Types.Unique.FM +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + import Control.Monad (foldM, zipWithM) import Data.Function ( on ) import Data.Char( isDigit ) diff --git a/compiler/GHC/Core/Coercion/Axiom.hs b/compiler/GHC/Core/Coercion/Axiom.hs index 7046273ae5..a1ace3ccfd 100644 --- a/compiler/GHC/Core/Coercion/Axiom.hs +++ b/compiler/GHC/Core/Coercion/Axiom.hs @@ -41,6 +41,7 @@ import GHC.Types.Unique import GHC.Types.Var import GHC.Utils.Misc import GHC.Utils.Binary +import GHC.Utils.Panic import GHC.Data.Pair import GHC.Types.Basic import Data.Typeable ( Typeable ) diff --git a/compiler/GHC/Core/Coercion/Opt.hs b/compiler/GHC/Core/Coercion/Opt.hs index bb99f93ac6..2de2089904 100644 --- a/compiler/GHC/Core/Coercion/Opt.hs +++ b/compiler/GHC/Core/Coercion/Opt.hs @@ -9,6 +9,8 @@ module GHC.Core.Coercion.Opt ( optCoercion, checkAxInstCo ) where import GHC.Prelude import GHC.Driver.Session +import GHC.Driver.Ppr + import GHC.Core.TyCo.Rep import GHC.Core.TyCo.Subst import GHC.Core.Coercion @@ -18,15 +20,17 @@ import GHC.Core.TyCon import GHC.Core.Coercion.Axiom import GHC.Types.Var.Set import GHC.Types.Var.Env -import GHC.Utils.Outputable import GHC.Core.FamInstEnv ( flattenTys ) import GHC.Data.Pair import GHC.Data.List.SetOps ( getNth ) -import GHC.Utils.Misc import GHC.Core.Unify import GHC.Core.InstEnv import Control.Monad ( zipWithM ) +import GHC.Utils.Outputable +import GHC.Utils.Misc +import GHC.Utils.Panic + {- %************************************************************************ %* * diff --git a/compiler/GHC/Core/DataCon.hs b/compiler/GHC/Core/DataCon.hs index 3afa8180d8..6eb9723fe7 100644 --- a/compiler/GHC/Core/DataCon.hs +++ b/compiler/GHC/Core/DataCon.hs @@ -78,8 +78,6 @@ import GHC.Types.Name import GHC.Builtin.Names import GHC.Core.Predicate import GHC.Types.Var -import GHC.Utils.Outputable -import GHC.Utils.Misc import GHC.Types.Basic import GHC.Data.FastString import GHC.Unit @@ -87,6 +85,10 @@ import GHC.Utils.Binary import GHC.Types.Unique.Set import GHC.Types.Unique( mkAlphaTyVarUnique ) +import GHC.Utils.Outputable +import GHC.Utils.Misc +import GHC.Utils.Panic + import Data.ByteString (ByteString) import qualified Data.ByteString.Builder as BSB import qualified Data.ByteString.Lazy as LBS diff --git a/compiler/GHC/Core/FVs.hs b/compiler/GHC/Core/FVs.hs index b3fb267816..d3cbe267f6 100644 --- a/compiler/GHC/Core/FVs.hs +++ b/compiler/GHC/Core/FVs.hs @@ -79,10 +79,11 @@ import GHC.Core.FamInstEnv import GHC.Builtin.Types( unrestrictedFunTyConName ) import GHC.Builtin.Types.Prim( funTyConName ) import GHC.Data.Maybe( orElse ) -import GHC.Utils.Misc import GHC.Types.Basic( Activation ) -import GHC.Utils.Outputable + import GHC.Utils.FV as FV +import GHC.Utils.Misc +import GHC.Utils.Panic {- ************************************************************************ diff --git a/compiler/GHC/Core/FamInstEnv.hs b/compiler/GHC/Core/FamInstEnv.hs index a693927db4..75ad0a5574 100644 --- a/compiler/GHC/Core/FamInstEnv.hs +++ b/compiler/GHC/Core/FamInstEnv.hs @@ -53,11 +53,9 @@ import GHC.Types.Var.Set import GHC.Types.Var.Env import GHC.Types.Name import GHC.Types.Unique.DFM -import GHC.Utils.Outputable import GHC.Data.Maybe import GHC.Core.Map import GHC.Types.Unique -import GHC.Utils.Misc import GHC.Types.Var import GHC.Types.SrcLoc import GHC.Data.FastString @@ -65,6 +63,10 @@ import Control.Monad import Data.List( mapAccumL ) import Data.Array( Array, assocs ) +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + {- ************************************************************************ * * diff --git a/compiler/GHC/Core/InstEnv.hs b/compiler/GHC/Core/InstEnv.hs index 74295a738f..16c40cc73d 100644 --- a/compiler/GHC/Core/InstEnv.hs +++ b/compiler/GHC/Core/InstEnv.hs @@ -44,15 +44,17 @@ import GHC.Types.Name import GHC.Types.Name.Set import GHC.Types.Unique (getUnique) import GHC.Core.Unify -import GHC.Utils.Outputable -import GHC.Utils.Error import GHC.Types.Basic import GHC.Types.Unique.DFM -import GHC.Utils.Misc import GHC.Types.Id import Data.Data ( Data ) import Data.Maybe ( isJust, isNothing ) +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Error +import GHC.Utils.Panic + {- ************************************************************************ * * diff --git a/compiler/GHC/Core/Lint.hs b/compiler/GHC/Core/Lint.hs index 04a839c6cd..a3582de953 100644 --- a/compiler/GHC/Core/Lint.hs +++ b/compiler/GHC/Core/Lint.hs @@ -64,6 +64,7 @@ import GHC.Utils.Error as Err import GHC.Data.List.SetOps import GHC.Builtin.Names import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Misc import GHC.Core.InstEnv ( instanceDFunId ) @@ -73,6 +74,7 @@ import GHC.Types.Demand ( splitStrictSig, isDeadEndDiv ) import GHC.Driver.Types hiding (Usage) import GHC.Driver.Session +import GHC.Driver.Ppr import Control.Monad import GHC.Utils.Monad import Data.Foldable ( toList ) diff --git a/compiler/GHC/Core/Make.hs b/compiler/GHC/Core/Make.hs index 7bc9c161a5..c242c776e6 100644 --- a/compiler/GHC/Core/Make.hs +++ b/compiler/GHC/Core/Make.hs @@ -83,6 +83,7 @@ import GHC.Data.FastString import GHC.Types.Unique.Supply import GHC.Types.Basic import GHC.Utils.Misc +import GHC.Utils.Panic import Data.List import Data.Char ( ord ) diff --git a/compiler/GHC/Core/Map.hs b/compiler/GHC/Core/Map.hs index bf0b56ae40..092a5a9773 100644 --- a/compiler/GHC/Core/Map.hs +++ b/compiler/GHC/Core/Map.hs @@ -48,13 +48,15 @@ import GHC.Core.Type import GHC.Core.TyCo.Rep import GHC.Types.Var import GHC.Data.FastString(FastString) + import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic import qualified Data.Map as Map import qualified Data.IntMap as IntMap import GHC.Types.Var.Env import GHC.Types.Name.Env -import GHC.Utils.Outputable import Control.Monad( (>=>) ) {- diff --git a/compiler/GHC/Core/Opt/Arity.hs b/compiler/GHC/Core/Opt/Arity.hs index 7891012792..829673433c 100644 --- a/compiler/GHC/Core/Opt/Arity.hs +++ b/compiler/GHC/Core/Opt/Arity.hs @@ -26,6 +26,8 @@ where import GHC.Prelude +import GHC.Driver.Ppr + import GHC.Core import GHC.Core.FVs import GHC.Core.Utils @@ -44,6 +46,7 @@ import GHC.Types.Basic import GHC.Types.Unique import GHC.Driver.Session ( DynFlags, GeneralFlag(..), gopt ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Misc ( lengthAtLeast ) diff --git a/compiler/GHC/Core/Opt/CSE.hs b/compiler/GHC/Core/Opt/CSE.hs index 019b578db2..3f826621a6 100644 --- a/compiler/GHC/Core/Opt/CSE.hs +++ b/compiler/GHC/Core/Opt/CSE.hs @@ -32,6 +32,7 @@ import GHC.Utils.Outputable import GHC.Types.Basic import GHC.Core.Map import GHC.Utils.Misc ( filterOut, equalLength, debugIsOn ) +import GHC.Utils.Panic import Data.List ( mapAccumL ) {- diff --git a/compiler/GHC/Core/Opt/ConstantFold.hs b/compiler/GHC/Core/Opt/ConstantFold.hs index e6d23f3d0a..94d469a515 100644 --- a/compiler/GHC/Core/Opt/ConstantFold.hs +++ b/compiler/GHC/Core/Opt/ConstantFold.hs @@ -29,6 +29,8 @@ where import GHC.Prelude +import GHC.Driver.Ppr + import {-# SOURCE #-} GHC.Types.Id.Make ( mkPrimOpId, magicDictId ) import GHC.Core @@ -61,6 +63,7 @@ import GHC.Data.FastString import GHC.Types.Basic import GHC.Platform import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Core.Coercion (mkUnbranchedAxInstCo,mkSymCo,Role(..)) import Control.Applicative ( Alternative(..) ) diff --git a/compiler/GHC/Core/Opt/DmdAnal.hs b/compiler/GHC/Core/Opt/DmdAnal.hs index e11d220773..386a417cf9 100644 --- a/compiler/GHC/Core/Opt/DmdAnal.hs +++ b/compiler/GHC/Core/Opt/DmdAnal.hs @@ -35,6 +35,7 @@ import GHC.Core.Type import GHC.Core.Coercion ( Coercion, coVarsOfCo ) import GHC.Core.FamInstEnv import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.Maybe ( isJust ) import GHC.Builtin.PrimOps import GHC.Builtin.Types.Prim ( realWorldStatePrimTy ) diff --git a/compiler/GHC/Core/Opt/FloatIn.hs b/compiler/GHC/Core/Opt/FloatIn.hs index 896507d77a..d539e4f386 100644 --- a/compiler/GHC/Core/Opt/FloatIn.hs +++ b/compiler/GHC/Core/Opt/FloatIn.hs @@ -35,7 +35,7 @@ import GHC.Core.Type import GHC.Types.Var.Set import GHC.Utils.Misc import GHC.Driver.Session -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Basic ( RecFlag(..), isRec ) {- diff --git a/compiler/GHC/Core/Opt/FloatOut.hs b/compiler/GHC/Core/Opt/FloatOut.hs index 479bc1a9ce..be3cd1f1c4 100644 --- a/compiler/GHC/Core/Opt/FloatOut.hs +++ b/compiler/GHC/Core/Opt/FloatOut.hs @@ -28,6 +28,7 @@ import GHC.Data.Bag import GHC.Utils.Misc import GHC.Data.Maybe import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.Type import qualified Data.IntMap as M diff --git a/compiler/GHC/Core/Opt/Monad.hs b/compiler/GHC/Core/Opt/Monad.hs index aa651355f4..400cb00c83 100644 --- a/compiler/GHC/Core/Opt/Monad.hs +++ b/compiler/GHC/Core/Opt/Monad.hs @@ -78,7 +78,7 @@ import qualified Data.Map.Strict as MapStrict import Data.Word import Control.Monad import Control.Applicative ( Alternative(..) ) -import GHC.Utils.Panic (throwGhcException, GhcException(..)) +import GHC.Utils.Panic (throwGhcException, GhcException(..), panic) {- ************************************************************************ diff --git a/compiler/GHC/Core/Opt/OccurAnal.hs b/compiler/GHC/Core/Opt/OccurAnal.hs index 12ffcbb587..0180bec651 100644 --- a/compiler/GHC/Core/Opt/OccurAnal.hs +++ b/compiler/GHC/Core/Opt/OccurAnal.hs @@ -20,6 +20,8 @@ module GHC.Core.Opt.OccurAnal ( occurAnalysePgm, occurAnalyseExpr ) where import GHC.Prelude +import GHC.Driver.Ppr + import GHC.Core import GHC.Core.FVs import GHC.Core.Utils ( exprIsTrivial, isDefaultAlt, isExpandableApp, @@ -46,6 +48,7 @@ import GHC.Types.Unique.Set import GHC.Utils.Misc import GHC.Data.Maybe( orElse, isJust ) import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.List {- diff --git a/compiler/GHC/Core/Opt/Pipeline.hs b/compiler/GHC/Core/Opt/Pipeline.hs index 76be316a3e..a9dc3ec4a5 100644 --- a/compiler/GHC/Core/Opt/Pipeline.hs +++ b/compiler/GHC/Core/Opt/Pipeline.hs @@ -13,6 +13,7 @@ module GHC.Core.Opt.Pipeline ( core2core, simplifyExpr ) where import GHC.Prelude import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Core import GHC.Driver.Types import GHC.Core.Opt.CSE ( cseProgram ) @@ -58,6 +59,7 @@ import GHC.Runtime.Loader -- ( initializePlugins ) import GHC.Types.Unique.Supply ( UniqSupply, mkSplitUniqSupply, splitUniqSupply ) import GHC.Types.Unique.FM import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad import qualified GHC.LanguageExtensions as LangExt {- diff --git a/compiler/GHC/Core/Opt/SetLevels.hs b/compiler/GHC/Core/Opt/SetLevels.hs index efcf96e6df..f678433568 100644 --- a/compiler/GHC/Core/Opt/SetLevels.hs +++ b/compiler/GHC/Core/Opt/SetLevels.hs @@ -77,6 +77,8 @@ module GHC.Core.Opt.SetLevels ( import GHC.Prelude +import GHC.Driver.Ppr + import GHC.Core import GHC.Core.Opt.Monad ( FloatOutSwitches(..) ) import GHC.Core.Utils ( exprType, exprIsHNF @@ -114,6 +116,7 @@ import GHC.Builtin.Names ( runRWKey ) import GHC.Types.Unique.Supply import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Types.Unique.DFM import GHC.Utils.FV diff --git a/compiler/GHC/Core/Opt/Simplify.hs b/compiler/GHC/Core/Opt/Simplify.hs index f9e9c57640..a529a8b0a4 100644 --- a/compiler/GHC/Core/Opt/Simplify.hs +++ b/compiler/GHC/Core/Opt/Simplify.hs @@ -15,6 +15,7 @@ import GHC.Prelude import GHC.Platform import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Core.Opt.Simplify.Monad import GHC.Core.Type hiding ( substTy, substTyVar, extendTvSubst, extendCvSubst ) import GHC.Core.Opt.Simplify.Env @@ -58,6 +59,7 @@ import GHC.Types.Var ( isTyCoVar ) import GHC.Data.Maybe ( orElse ) import Control.Monad import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Misc import GHC.Utils.Error diff --git a/compiler/GHC/Core/Opt/Simplify/Env.hs b/compiler/GHC/Core/Opt/Simplify/Env.hs index 237739e23c..b0245162ee 100644 --- a/compiler/GHC/Core/Opt/Simplify/Env.hs +++ b/compiler/GHC/Core/Opt/Simplify/Env.hs @@ -59,6 +59,7 @@ import GHC.Data.OrdList import GHC.Types.Id as Id import GHC.Core.Make ( mkWildValBinder ) import GHC.Driver.Session ( DynFlags ) +import GHC.Driver.Ppr import GHC.Builtin.Types import GHC.Core.TyCo.Rep ( TyCoBinder(..) ) import qualified GHC.Core.Type as Type @@ -68,6 +69,7 @@ import GHC.Core.Coercion hiding ( substCo, substCoVar, substCoVarBndr ) import GHC.Types.Basic import GHC.Utils.Monad import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Types.Unique.FM ( pprUniqFM ) diff --git a/compiler/GHC/Core/Opt/Simplify/Utils.hs b/compiler/GHC/Core/Opt/Simplify/Utils.hs index 210fd73701..febd937fdf 100644 --- a/compiler/GHC/Core/Opt/Simplify/Utils.hs +++ b/compiler/GHC/Core/Opt/Simplify/Utils.hs @@ -44,6 +44,7 @@ import GHC.Prelude import GHC.Core.Opt.Simplify.Env import GHC.Core.Opt.Monad ( SimplMode(..), Tick(..) ) import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Core import qualified GHC.Core.Subst import GHC.Core.Ppr @@ -68,6 +69,7 @@ import GHC.Utils.Misc import GHC.Data.OrdList ( isNilOL ) import GHC.Utils.Monad import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.Opt.ConstantFold import GHC.Data.FastString ( fsLit ) diff --git a/compiler/GHC/Core/Opt/SpecConstr.hs b/compiler/GHC/Core/Opt/SpecConstr.hs index 37f85c3822..6f7d61894e 100644 --- a/compiler/GHC/Core/Opt/SpecConstr.hs +++ b/compiler/GHC/Core/Opt/SpecConstr.hs @@ -42,6 +42,7 @@ import GHC.Types.Name import GHC.Types.Basic import GHC.Driver.Session ( DynFlags(..), GeneralFlag( Opt_SpecConstrKeen ) , gopt, hasPprDebug ) +import GHC.Driver.Ppr import GHC.Data.Maybe ( orElse, catMaybes, isJust, isNothing ) import GHC.Types.Demand import GHC.Types.Cpr @@ -49,6 +50,7 @@ import GHC.Utils.Misc import GHC.Data.Pair import GHC.Types.Unique.Supply import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Types.Unique.FM import GHC.Utils.Monad diff --git a/compiler/GHC/Core/Opt/Specialise.hs b/compiler/GHC/Core/Opt/Specialise.hs index 935ba04bb5..a002630c08 100644 --- a/compiler/GHC/Core/Opt/Specialise.hs +++ b/compiler/GHC/Core/Opt/Specialise.hs @@ -46,8 +46,10 @@ import GHC.Types.Basic import GHC.Driver.Types import GHC.Data.Bag import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Monad.State import GHC.Types.Unique.DFM diff --git a/compiler/GHC/Core/Opt/StaticArgs.hs b/compiler/GHC/Core/Opt/StaticArgs.hs index d4b76dc0d8..91c8646f19 100644 --- a/compiler/GHC/Core/Opt/StaticArgs.hs +++ b/compiler/GHC/Core/Opt/StaticArgs.hs @@ -68,6 +68,7 @@ import GHC.Types.Var.Set import GHC.Types.Unique import GHC.Types.Unique.Set import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.List (mapAccumL) import GHC.Data.FastString diff --git a/compiler/GHC/Core/Opt/WorkWrap.hs b/compiler/GHC/Core/Opt/WorkWrap.hs index acffd58c43..b1af5f9d62 100644 --- a/compiler/GHC/Core/Opt/WorkWrap.hs +++ b/compiler/GHC/Core/Opt/WorkWrap.hs @@ -21,11 +21,13 @@ import GHC.Core.Type import GHC.Types.Unique.Supply import GHC.Types.Basic import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Types.Demand import GHC.Types.Cpr import GHC.Core.Opt.WorkWrap.Utils import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.FamInstEnv import GHC.Utils.Monad diff --git a/compiler/GHC/Core/Opt/WorkWrap/Utils.hs b/compiler/GHC/Core/Opt/WorkWrap/Utils.hs index 2ccc743047..8cc0eaa503 100644 --- a/compiler/GHC/Core/Opt/WorkWrap/Utils.hs +++ b/compiler/GHC/Core/Opt/WorkWrap/Utils.hs @@ -46,6 +46,7 @@ import GHC.Data.Maybe import GHC.Utils.Misc import GHC.Utils.Outputable import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.FastString import GHC.Data.List.SetOps diff --git a/compiler/GHC/Core/PatSyn.hs b/compiler/GHC/Core/PatSyn.hs index 3902bb6b18..b07b8265a7 100644 --- a/compiler/GHC/Core/PatSyn.hs +++ b/compiler/GHC/Core/PatSyn.hs @@ -30,13 +30,15 @@ import GHC.Prelude import GHC.Core.Type import GHC.Core.TyCo.Ppr import GHC.Types.Name -import GHC.Utils.Outputable import GHC.Types.Unique -import GHC.Utils.Misc import GHC.Types.Basic import GHC.Types.Var import GHC.Types.FieldLabel +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + import qualified Data.Data as Data import Data.Function import Data.List (find) diff --git a/compiler/GHC/Core/Ppr/TyThing.hs b/compiler/GHC/Core/Ppr/TyThing.hs index a9231f8499..5a7a60acd2 100644 --- a/compiler/GHC/Core/Ppr/TyThing.hs +++ b/compiler/GHC/Core/Ppr/TyThing.hs @@ -26,6 +26,7 @@ import GHC.Iface.Syntax ( ShowSub(..), ShowHowMuch(..), AltPpr(..) , showToHeader, pprIfaceDecl ) import GHC.Core.Coercion.Axiom ( coAxiomTyCon ) import GHC.Driver.Types( tyThingParent_maybe ) +import GHC.Driver.Ppr import GHC.Iface.Make ( tyThingToIfaceDecl ) import GHC.Core.FamInstEnv( FamInst(..), FamFlavor(..) ) import GHC.Core.TyCo.Ppr ( pprUserForAll, pprTypeApp, pprSigmaType ) diff --git a/compiler/GHC/Core/Predicate.hs b/compiler/GHC/Core/Predicate.hs index dda9e24db2..eb31c1be06 100644 --- a/compiler/GHC/Core/Predicate.hs +++ b/compiler/GHC/Core/Predicate.hs @@ -35,13 +35,14 @@ import GHC.Core.Class import GHC.Core.TyCon import GHC.Types.Var import GHC.Core.Coercion +import GHC.Core.Multiplicity ( scaledThing ) import GHC.Builtin.Names import GHC.Data.FastString import GHC.Utils.Outputable import GHC.Utils.Misc -import GHC.Core.Multiplicity ( scaledThing ) +import GHC.Utils.Panic import Control.Monad ( guard ) diff --git a/compiler/GHC/Core/Rules.hs b/compiler/GHC/Core/Rules.hs index acfa93efaa..4ad942c212 100644 --- a/compiler/GHC/Core/Rules.hs +++ b/compiler/GHC/Core/Rules.hs @@ -60,8 +60,10 @@ import GHC.Types.Unique.FM import GHC.Core.Unify as Unify ( ruleMatchTyKiX ) import GHC.Types.Basic import GHC.Driver.Session ( DynFlags, gopt, targetPlatform ) +import GHC.Driver.Ppr import GHC.Driver.Flags import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.Maybe import GHC.Data.Bag diff --git a/compiler/GHC/Core/SimpleOpt.hs b/compiler/GHC/Core/SimpleOpt.hs index ab3eed4b60..b040626f63 100644 --- a/compiler/GHC/Core/SimpleOpt.hs +++ b/compiler/GHC/Core/SimpleOpt.hs @@ -54,7 +54,9 @@ import GHC.Types.Basic import GHC.Unit.Module ( Module ) import GHC.Utils.Error import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Pair import GHC.Utils.Misc import GHC.Data.Maybe ( orElse ) diff --git a/compiler/GHC/Core/Subst.hs b/compiler/GHC/Core/Subst.hs index 04ef9ef150..f1d104df66 100644 --- a/compiler/GHC/Core/Subst.hs +++ b/compiler/GHC/Core/Subst.hs @@ -39,6 +39,8 @@ module GHC.Core.Subst ( import GHC.Prelude +import GHC.Driver.Ppr + import GHC.Core import GHC.Core.FVs import GHC.Core.Seq @@ -63,6 +65,7 @@ import GHC.Types.Unique.Supply import GHC.Data.Maybe import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.List diff --git a/compiler/GHC/Core/TyCo/Ppr.hs b/compiler/GHC/Core/TyCo/Ppr.hs index d48cf84c4e..dcfb9f2557 100644 --- a/compiler/GHC/Core/TyCo/Ppr.hs +++ b/compiler/GHC/Core/TyCo/Ppr.hs @@ -52,6 +52,7 @@ import GHC.Types.Var.Set import GHC.Types.Var.Env import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Basic ( PprPrec(..), topPrec, sigPrec, opPrec , funPrec, appPrec, maybeParen ) diff --git a/compiler/GHC/Core/TyCo/Rep.hs b/compiler/GHC/Core/TyCo/Rep.hs index 61a374b38e..5931d8c94a 100644 --- a/compiler/GHC/Core/TyCo/Rep.hs +++ b/compiler/GHC/Core/TyCo/Rep.hs @@ -99,6 +99,7 @@ import GHC.Types.Unique ( hasKey ) import GHC.Utils.Outputable import GHC.Data.FastString import GHC.Utils.Misc +import GHC.Utils.Panic -- libraries import qualified Data.Data as Data hiding ( TyCon ) diff --git a/compiler/GHC/Core/TyCo/Subst.hs b/compiler/GHC/Core/TyCo/Subst.hs index b3f51739b5..3e8ef37bba 100644 --- a/compiler/GHC/Core/TyCo/Subst.hs +++ b/compiler/GHC/Core/TyCo/Subst.hs @@ -81,6 +81,7 @@ import GHC.Types.Unique import GHC.Types.Unique.FM import GHC.Types.Unique.Set import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.List (mapAccumL) diff --git a/compiler/GHC/Core/TyCon.hs b/compiler/GHC/Core/TyCon.hs index e4f31e9fe0..2c7cd2d5de 100644 --- a/compiler/GHC/Core/TyCon.hs +++ b/compiler/GHC/Core/TyCon.hs @@ -162,6 +162,7 @@ import GHC.Core.Coercion.Axiom import GHC.Builtin.Names import GHC.Data.Maybe import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString.Env import GHC.Types.FieldLabel import GHC.Settings.Constants diff --git a/compiler/GHC/Core/Type.hs b/compiler/GHC/Core/Type.hs index c00c818ca5..3c6114ebd5 100644 --- a/compiler/GHC/Core/Type.hs +++ b/compiler/GHC/Core/Type.hs @@ -276,6 +276,7 @@ import {-# SOURCE #-} GHC.Core.Coercion import GHC.Utils.Misc import GHC.Utils.FV import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.Pair import GHC.Data.List.SetOps diff --git a/compiler/GHC/Core/Unfold.hs b/compiler/GHC/Core/Unfold.hs index 5795ca0036..4792545df7 100644 --- a/compiler/GHC/Core/Unfold.hs +++ b/compiler/GHC/Core/Unfold.hs @@ -47,6 +47,7 @@ module GHC.Core.Unfold ( import GHC.Prelude import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Core import GHC.Core.Opt.OccurAnal ( occurAnalyseExpr ) import GHC.Core.SimpleOpt @@ -65,6 +66,7 @@ import GHC.Builtin.Types.Prim ( realWorldStatePrimTy ) import GHC.Data.Bag import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.ForeignCall import GHC.Types.Name import GHC.Utils.Error diff --git a/compiler/GHC/Core/UsageEnv.hs b/compiler/GHC/Core/UsageEnv.hs index 867b9533f0..e88b55560d 100644 --- a/compiler/GHC/Core/UsageEnv.hs +++ b/compiler/GHC/Core/UsageEnv.hs @@ -9,6 +9,7 @@ import GHC.Core.Multiplicity import GHC.Types.Name import GHC.Types.Name.Env import GHC.Utils.Outputable +import GHC.Utils.Panic -- -- * Usage environments diff --git a/compiler/GHC/Core/Utils.hs b/compiler/GHC/Core/Utils.hs index 0095eef0fe..3feb275843 100644 --- a/compiler/GHC/Core/Utils.hs +++ b/compiler/GHC/Core/Utils.hs @@ -71,6 +71,8 @@ module GHC.Core.Utils ( import GHC.Prelude import GHC.Platform +import GHC.Driver.Ppr + import GHC.Core import GHC.Builtin.Names ( makeStaticName, unsafeEqualityProofName ) import GHC.Core.Ppr @@ -94,6 +96,7 @@ import GHC.Core.TyCon import GHC.Core.Multiplicity import GHC.Types.Unique import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Builtin.Types.Prim import GHC.Data.FastString import GHC.Data.Maybe diff --git a/compiler/GHC/CoreToIface.hs b/compiler/GHC/CoreToIface.hs index 2992fa5c0f..f9a11fe716 100644 --- a/compiler/GHC/CoreToIface.hs +++ b/compiler/GHC/CoreToIface.hs @@ -48,6 +48,7 @@ module GHC.CoreToIface import GHC.Prelude +import GHC.Driver.Ppr import GHC.Iface.Syntax import GHC.Core.DataCon import GHC.Types.Id @@ -66,6 +67,7 @@ import GHC.Core.Type import GHC.Core.Multiplicity import GHC.Core.PatSyn import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Misc import GHC.Types.Var diff --git a/compiler/GHC/CoreToStg.hs b/compiler/GHC/CoreToStg.hs index 871dd1d139..1abeb56fb7 100644 --- a/compiler/GHC/CoreToStg.hs +++ b/compiler/GHC/CoreToStg.hs @@ -41,8 +41,10 @@ import GHC.Utils.Outputable import GHC.Utils.Monad import GHC.Data.FastString import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Driver.Session import GHC.Platform.Ways +import GHC.Driver.Ppr import GHC.Types.ForeignCall import GHC.Types.Demand ( isUsedOnce ) import GHC.Builtin.PrimOps ( PrimCall(..) ) diff --git a/compiler/GHC/CoreToStg/Prep.hs b/compiler/GHC/CoreToStg/Prep.hs index 823d5418aa..831517f21c 100644 --- a/compiler/GHC/CoreToStg/Prep.hs +++ b/compiler/GHC/CoreToStg/Prep.hs @@ -24,6 +24,7 @@ import GHC.Platform import GHC.Core.Opt.OccurAnal import GHC.Driver.Types +import GHC.Driver.Ppr import GHC.Builtin.Names import GHC.Types.Id.Make ( realWorldPrimId ) import GHC.Core.Utils @@ -55,6 +56,7 @@ import GHC.Utils.Error import GHC.Driver.Session import GHC.Platform.Ways import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Utils.Outputable import GHC.Data.FastString import GHC.Types.Name ( NamedThing(..), nameSrcSpan, isInternalName ) diff --git a/compiler/GHC/Data/Graph/Color.hs b/compiler/GHC/Data/Graph/Color.hs index e4189acb61..4f7d74df40 100644 --- a/compiler/GHC/Data/Graph/Color.hs +++ b/compiler/GHC/Data/Graph/Color.hs @@ -25,6 +25,7 @@ import GHC.Types.Unique import GHC.Types.Unique.FM import GHC.Types.Unique.Set import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.Maybe import Data.List diff --git a/compiler/GHC/Data/Graph/Directed.hs b/compiler/GHC/Data/Graph/Directed.hs index 5bd08b9641..806460d6df 100644 --- a/compiler/GHC/Data/Graph/Directed.hs +++ b/compiler/GHC/Data/Graph/Directed.hs @@ -46,6 +46,7 @@ import GHC.Prelude import GHC.Utils.Misc ( minWith, count ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Maybe ( expectJust ) -- std interfaces diff --git a/compiler/GHC/Data/Graph/Ops.hs b/compiler/GHC/Data/Graph/Ops.hs index 99e4a7eea0..b6bce8a97c 100644 --- a/compiler/GHC/Data/Graph/Ops.hs +++ b/compiler/GHC/Data/Graph/Ops.hs @@ -41,6 +41,7 @@ import GHC.Prelude import GHC.Data.Graph.Base import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique import GHC.Types.Unique.Set import GHC.Types.Unique.FM diff --git a/compiler/GHC/Data/List/SetOps.hs b/compiler/GHC/Data/List/SetOps.hs index 15b370582c..a2fe5744f7 100644 --- a/compiler/GHC/Data/List/SetOps.hs +++ b/compiler/GHC/Data/List/SetOps.hs @@ -28,7 +28,9 @@ module GHC.Data.List.SetOps ( import GHC.Prelude import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc +import GHC.Driver.Ppr import qualified Data.List as L import qualified Data.List.NonEmpty as NE diff --git a/compiler/GHC/Data/OrdList.hs b/compiler/GHC/Data/OrdList.hs index 5476055f05..cc80b18d14 100644 --- a/compiler/GHC/Data/OrdList.hs +++ b/compiler/GHC/Data/OrdList.hs @@ -22,6 +22,7 @@ import GHC.Prelude import Data.Foldable import GHC.Utils.Outputable +import GHC.Utils.Panic import qualified Data.Semigroup as Semigroup diff --git a/compiler/GHC/Driver/Backpack.hs b/compiler/GHC/Driver/Backpack.hs index acde752f66..c103955ab8 100644 --- a/compiler/GHC/Driver/Backpack.hs +++ b/compiler/GHC/Driver/Backpack.hs @@ -29,6 +29,7 @@ import GHC.Parser import GHC.Parser.Lexer import GHC.Driver.Monad import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Tc.Utils.Monad import GHC.Tc.Module import GHC.Unit @@ -561,7 +562,7 @@ type PackageNameMap a = Map PackageName a -- to use this for anything unitDefines :: UnitState -> LHsUnit PackageName -> (PackageName, HsComponentId) unitDefines pkgstate (L _ HsUnit{ hsunitName = L _ pn@(PackageName fs) }) - = (pn, HsComponentId pn (mkIndefUnitId pkgstate fs)) + = (pn, HsComponentId pn (updateIndefUnitId pkgstate (Indefinite (UnitId fs) Nothing))) bkpPackageNameMap :: UnitState -> [LHsUnit PackageName] -> PackageNameMap HsComponentId bkpPackageNameMap pkgstate units = Map.fromList (map (unitDefines pkgstate) units) diff --git a/compiler/GHC/Driver/CodeOutput.hs b/compiler/GHC/Driver/CodeOutput.hs index 19485eaf5c..f752449210 100644 --- a/compiler/GHC/Driver/CodeOutput.hs +++ b/compiler/GHC/Driver/CodeOutput.hs @@ -30,12 +30,14 @@ import GHC.Cmm ( RawCmmGroup ) import GHC.Cmm.CLabel import GHC.Driver.Types import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.Stream ( Stream ) import qualified GHC.Data.Stream as Stream import GHC.SysTools.FileCleanup import GHC.Utils.Error import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Unit import GHC.Types.SrcLoc import GHC.Types.CostCentre diff --git a/compiler/GHC/Driver/Finder.hs b/compiler/GHC/Driver/Finder.hs index f572fa41db..22408ca149 100644 --- a/compiler/GHC/Driver/Finder.hs +++ b/compiler/GHC/Driver/Finder.hs @@ -44,6 +44,7 @@ import GHC.Builtin.Names ( gHC_PRIM ) import GHC.Driver.Session import GHC.Platform.Ways import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Data.Maybe ( expectJust ) import Data.IORef ( IORef, readIORef, atomicModifyIORef' ) diff --git a/compiler/GHC/Driver/MakeFile.hs b/compiler/GHC/Driver/MakeFile.hs index cd1a2d6ffa..a393bdbba4 100644 --- a/compiler/GHC/Driver/MakeFile.hs +++ b/compiler/GHC/Driver/MakeFile.hs @@ -20,6 +20,7 @@ import GHC.Prelude import qualified GHC import GHC.Driver.Monad import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Misc import GHC.Driver.Types import qualified GHC.SysTools as SysTools diff --git a/compiler/GHC/Driver/Phases.hs b/compiler/GHC/Driver/Phases.hs index cfca2e87c1..4892b20c60 100644 --- a/compiler/GHC/Driver/Phases.hs +++ b/compiler/GHC/Driver/Phases.hs @@ -42,6 +42,7 @@ module GHC.Driver.Phases ( import GHC.Prelude import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Platform import System.FilePath import GHC.Utils.Binary diff --git a/compiler/GHC/Driver/Pipeline.hs b/compiler/GHC/Driver/Pipeline.hs index e422624fa6..f87fd1380d 100644 --- a/compiler/GHC/Driver/Pipeline.hs +++ b/compiler/GHC/Driver/Pipeline.hs @@ -55,6 +55,7 @@ import GHC.Unit.Module import GHC.Utils.Error import GHC.Driver.Session import GHC.Driver.Backend +import GHC.Driver.Ppr import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Data.StringBuffer ( hGetStringBuffer, hPutStringBuffer ) diff --git a/compiler/GHC/Driver/Ppr.hs b/compiler/GHC/Driver/Ppr.hs new file mode 100644 index 0000000000..fe95b56860 --- /dev/null +++ b/compiler/GHC/Driver/Ppr.hs @@ -0,0 +1,132 @@ +-- | Printing related functions that depend on session state (DynFlags) +module GHC.Driver.Ppr + ( showSDoc + , showSDocForUser + , showSDocDebug + , showSDocDump + , showPpr + , showPprUnsafe + , pprDebugAndThen + , printForUser + , printForC + -- ** Trace + , warnPprTrace + , pprTrace + , pprTraceWithFlags + , pprTraceM + , pprTraceDebug + , pprTraceIt + , pprSTrace + , pprTraceException + ) +where + +import GHC.Prelude + +import {-# SOURCE #-} GHC.Driver.Session + +import GHC.Utils.Exception +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic +import GHC.Utils.Ppr ( Mode(..) ) + +import System.IO ( Handle ) +import Control.Monad.IO.Class + +-- | Show a SDoc as a String with the default user style +showSDoc :: DynFlags -> SDoc -> String +showSDoc dflags sdoc = renderWithStyle (initSDocContext dflags defaultUserStyle) sdoc + +showPpr :: Outputable a => DynFlags -> a -> String +showPpr dflags thing = showSDoc dflags (ppr thing) + +showPprUnsafe :: Outputable a => a -> String +showPprUnsafe a = showPpr unsafeGlobalDynFlags a + +-- | Allows caller to specify the PrintUnqualified to use +showSDocForUser :: DynFlags -> PrintUnqualified -> SDoc -> String +showSDocForUser dflags unqual doc = renderWithStyle (initSDocContext dflags (mkUserStyle unqual AllTheWay)) doc + +showSDocDump :: DynFlags -> SDoc -> String +showSDocDump dflags d = renderWithStyle (initSDocContext dflags defaultDumpStyle) d + +showSDocDebug :: DynFlags -> SDoc -> String +showSDocDebug dflags d = renderWithStyle ctx d + where + ctx = (initSDocContext dflags defaultDumpStyle) + { sdocPprDebug = True + } + +printForUser :: DynFlags -> Handle -> PrintUnqualified -> Depth -> SDoc -> IO () +printForUser dflags handle unqual depth doc + = printSDocLn ctx PageMode handle doc + where ctx = initSDocContext dflags (mkUserStyle unqual depth) + +-- | Like 'printSDocLn' but specialized with 'LeftMode' and +-- @'PprCode' 'CStyle'@. This is typically used to output C-- code. +printForC :: DynFlags -> Handle -> SDoc -> IO () +printForC dflags handle doc = + printSDocLn ctx LeftMode handle doc + where ctx = initSDocContext dflags (PprCode CStyle) + +pprDebugAndThen :: DynFlags -> (String -> a) -> SDoc -> SDoc -> a +pprDebugAndThen dflags cont heading pretty_msg + = cont (showSDocDump dflags doc) + where + doc = sep [heading, nest 2 pretty_msg] + +-- | If debug output is on, show some 'SDoc' on the screen +pprTraceWithFlags :: DynFlags -> String -> SDoc -> a -> a +pprTraceWithFlags dflags str doc x + | hasNoDebugOutput dflags = x + | otherwise = pprDebugAndThen dflags trace (text str) doc x + +-- | If debug output is on, show some 'SDoc' on the screen +pprTrace :: String -> SDoc -> a -> a +pprTrace str doc x = pprTraceWithFlags unsafeGlobalDynFlags str doc x + +pprTraceM :: Applicative f => String -> SDoc -> f () +pprTraceM str doc = pprTrace str doc (pure ()) + +pprTraceDebug :: String -> SDoc -> a -> a +pprTraceDebug str doc x + | debugIsOn && hasPprDebug unsafeGlobalDynFlags = pprTrace str doc x + | otherwise = x + +-- | @pprTraceWith desc f x@ is equivalent to @pprTrace desc (f x) x@. +-- This allows you to print details from the returned value as well as from +-- ambient variables. +pprTraceWith :: String -> (a -> SDoc) -> a -> a +pprTraceWith desc f x = pprTrace desc (f x) x + +-- | @pprTraceIt desc x@ is equivalent to @pprTrace desc (ppr x) x@ +pprTraceIt :: Outputable a => String -> a -> a +pprTraceIt desc x = pprTraceWith desc ppr x + +-- | @pprTraceException desc x action@ runs action, printing a message +-- if it throws an exception. +pprTraceException :: ExceptionMonad m => String -> SDoc -> m a -> m a +pprTraceException heading doc = + handleGhcException $ \exc -> liftIO $ do + putStrLn $ showSDocDump unsafeGlobalDynFlags (sep [text heading, nest 2 doc]) + throwGhcExceptionIO exc + +-- | If debug output is on, show some 'SDoc' on the screen along +-- with a call stack when available. +pprSTrace :: HasCallStack => SDoc -> a -> a +pprSTrace doc = pprTrace "" (doc $$ callStackDoc) + +warnPprTrace :: HasCallStack => Bool -> String -> Int -> SDoc -> a -> a +-- ^ Just warn about an assertion failure, recording the given file and line number. +-- Should typically be accessed with the WARN macros +warnPprTrace _ _ _ _ x | not debugIsOn = x +warnPprTrace _ _file _line _msg x + | hasNoDebugOutput unsafeGlobalDynFlags = x +warnPprTrace False _file _line _msg x = x +warnPprTrace True file line msg x + = pprDebugAndThen unsafeGlobalDynFlags trace heading + (msg $$ callStackDoc ) + x + where + heading = hsep [text "WARNING: file", text file <> comma, text "line", int line] diff --git a/compiler/GHC/Driver/Ppr.hs-boot b/compiler/GHC/Driver/Ppr.hs-boot new file mode 100644 index 0000000000..a1f864bda8 --- /dev/null +++ b/compiler/GHC/Driver/Ppr.hs-boot @@ -0,0 +1,9 @@ +module GHC.Driver.Ppr where + +import GHC.Prelude +import GHC.Stack +import {-# SOURCE #-} GHC.Driver.Session +import {-# SOURCE #-} GHC.Utils.Outputable + +showSDoc :: DynFlags -> SDoc -> String +warnPprTrace :: HasCallStack => Bool -> String -> Int -> SDoc -> a -> a diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs index 69972fdef4..5ec163c54a 100644 --- a/compiler/GHC/Driver/Session.hs +++ b/compiler/GHC/Driver/Session.hs @@ -244,6 +244,7 @@ import GHC.UniqueSubdir (uniqueSubdir) import GHC.Unit.Types import GHC.Unit.Parser import GHC.Unit.Module +import GHC.Driver.Ppr import {-# SOURCE #-} GHC.Driver.Plugins import {-# SOURCE #-} GHC.Driver.Hooks import GHC.Builtin.Names ( mAIN ) @@ -5129,7 +5130,6 @@ data FilesToClean = FilesToClean { emptyFilesToClean :: FilesToClean emptyFilesToClean = FilesToClean Set.empty Set.empty - -- | Initialize the pretty-printing options initSDocContext :: DynFlags -> PprStyle -> SDocContext initSDocContext dflags style = SDC @@ -5172,3 +5172,4 @@ initSDocContext dflags style = SDC -- | Initialize the pretty-printing options using the default user style initDefaultSDocContext :: DynFlags -> SDocContext initDefaultSDocContext dflags = initSDocContext dflags defaultUserStyle + diff --git a/compiler/GHC/Driver/Types.hs b/compiler/GHC/Driver/Types.hs index 4029ab1c2c..e6cc556121 100644 --- a/compiler/GHC/Driver/Types.hs +++ b/compiler/GHC/Driver/Types.hs @@ -161,6 +161,10 @@ module GHC.Driver.Types ( import GHC.Prelude +import GHC.Driver.Ppr +import GHC.Driver.CmdLine +import GHC.Driver.Session + import GHC.ByteCode.Types import GHC.Runtime.Eval.Types ( Resume ) import GHC.Runtime.Interpreter.Types (Interp) @@ -193,8 +197,6 @@ import GHC.Core.PatSyn import GHC.Builtin.Names ( gHC_PRIM, ioTyConName, printName, mkInteractiveModule ) import GHC.Builtin.Types import GHC.Driver.Backend -import GHC.Driver.CmdLine -import GHC.Driver.Session import GHC.Runtime.Linker.Types ( DynLinker, Linkable(..), Unlinked(..), SptEntry(..) ) import GHC.Driver.Phases ( Phase, HscSource(..), hscSourceString @@ -214,6 +216,7 @@ import GHC.Utils.Monad import GHC.Data.Bag import GHC.Utils.Binary import GHC.Utils.Error +import GHC.Utils.Panic import GHC.Types.Name.Cache import GHC.Platform import GHC.Utils.Misc diff --git a/compiler/GHC/Hs/Binds.hs b/compiler/GHC/Hs/Binds.hs index 07b561ce08..0933e9ba7e 100644 --- a/compiler/GHC/Hs/Binds.hs +++ b/compiler/GHC/Hs/Binds.hs @@ -38,13 +38,15 @@ import GHC.Tc.Types.Evidence import GHC.Core.Type import GHC.Types.Name.Set import GHC.Types.Basic -import GHC.Utils.Outputable import GHC.Types.SrcLoc as SrcLoc import GHC.Types.Var import GHC.Data.Bag import GHC.Data.FastString import GHC.Data.BooleanFormula (LBooleanFormula) +import GHC.Utils.Outputable +import GHC.Utils.Panic + import Data.Data hiding ( Fixity ) import Data.List hiding ( foldr ) import Data.Function diff --git a/compiler/GHC/Hs/Decls.hs b/compiler/GHC/Hs/Decls.hs index ca8d36c479..aa4d41b4b9 100644 --- a/compiler/GHC/Hs/Decls.hs +++ b/compiler/GHC/Hs/Decls.hs @@ -117,6 +117,7 @@ import GHC.Types.Name.Set import GHC.Core.Class import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Core.Type diff --git a/compiler/GHC/Hs/Expr.hs b/compiler/GHC/Hs/Expr.hs index cb1b75a725..d08e2079b0 100644 --- a/compiler/GHC/Hs/Expr.hs +++ b/compiler/GHC/Hs/Expr.hs @@ -48,6 +48,7 @@ import GHC.Types.SrcLoc import GHC.Unit.Module (ModuleName) import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Core.Type import GHC.Builtin.Types (mkTupleStr) diff --git a/compiler/GHC/Hs/Extension.hs b/compiler/GHC/Hs/Extension.hs index cb235cdf37..4f7ba57552 100644 --- a/compiler/GHC/Hs/Extension.hs +++ b/compiler/GHC/Hs/Extension.hs @@ -33,6 +33,7 @@ import GHC.Types.Name.Reader import GHC.Types.Var import GHC.Utils.Outputable import GHC.Types.SrcLoc (Located, unLoc, noLoc) +import GHC.Utils.Panic import Data.Kind diff --git a/compiler/GHC/Hs/ImpExp.hs b/compiler/GHC/Hs/ImpExp.hs index 190dd63604..aeb9131e30 100644 --- a/compiler/GHC/Hs/ImpExp.hs +++ b/compiler/GHC/Hs/ImpExp.hs @@ -25,6 +25,7 @@ import GHC.Types.Basic ( SourceText(..), StringLiteral(..), pprWithSource import GHC.Types.FieldLabel ( FieldLbl(..) ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Types.SrcLoc import GHC.Hs.Extension diff --git a/compiler/GHC/Hs/Lit.hs b/compiler/GHC/Hs/Lit.hs index 4396e78004..a529b138fb 100644 --- a/compiler/GHC/Hs/Lit.hs +++ b/compiler/GHC/Hs/Lit.hs @@ -28,6 +28,7 @@ import GHC.Types.Basic , PprPrec(..), topPrec ) import GHC.Core.Type import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Hs.Extension diff --git a/compiler/GHC/Hs/Stats.hs b/compiler/GHC/Hs/Stats.hs index 9d7f8e8384..d0737859c1 100644 --- a/compiler/GHC/Hs/Stats.hs +++ b/compiler/GHC/Hs/Stats.hs @@ -14,9 +14,11 @@ import GHC.Prelude import GHC.Data.Bag import GHC.Hs -import GHC.Utils.Outputable import GHC.Types.SrcLoc + +import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import Data.Char diff --git a/compiler/GHC/Hs/Utils.hs b/compiler/GHC/Hs/Utils.hs index 04554ef2f9..188f9e63fd 100644 --- a/compiler/GHC/Hs/Utils.hs +++ b/compiler/GHC/Hs/Utils.hs @@ -131,11 +131,13 @@ import GHC.Types.Name.Env import GHC.Types.Basic import GHC.Types.SrcLoc import GHC.Data.FastString -import GHC.Utils.Misc import GHC.Data.Bag -import GHC.Utils.Outputable import GHC.Settings.Constants +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + import Data.Either import Data.Function import Data.List diff --git a/compiler/GHC/HsToCore.hs b/compiler/GHC/HsToCore.hs index 39301cf41b..3d96b38ccc 100644 --- a/compiler/GHC/HsToCore.hs +++ b/compiler/GHC/HsToCore.hs @@ -61,6 +61,7 @@ import GHC.Types.Var.Set import GHC.Data.FastString import GHC.Utils.Error import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.HsToCore.Coverage import GHC.Utils.Misc diff --git a/compiler/GHC/HsToCore/Arrows.hs b/compiler/GHC/HsToCore/Arrows.hs index 4f9871d412..6668e9a11b 100644 --- a/compiler/GHC/HsToCore/Arrows.hs +++ b/compiler/GHC/HsToCore/Arrows.hs @@ -52,6 +52,7 @@ import GHC.Builtin.Types import GHC.Types.Basic import GHC.Builtin.Names import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Var.Set import GHC.Types.SrcLoc import GHC.Data.List.SetOps( assocMaybe ) diff --git a/compiler/GHC/HsToCore/Binds.hs b/compiler/GHC/HsToCore/Binds.hs index 03164c5b25..2a61406792 100644 --- a/compiler/GHC/HsToCore/Binds.hs +++ b/compiler/GHC/HsToCore/Binds.hs @@ -63,6 +63,7 @@ import GHC.Core.Rules import GHC.Types.Var.Env import GHC.Types.Var( EvVar ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Unit.Module import GHC.Types.SrcLoc import GHC.Data.Maybe @@ -70,6 +71,7 @@ import GHC.Data.OrdList import GHC.Data.Bag import GHC.Types.Basic import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.FastString import GHC.Utils.Misc import GHC.Types.Unique.Set( nonDetEltsUniqSet ) diff --git a/compiler/GHC/HsToCore/Coverage.hs b/compiler/GHC/HsToCore/Coverage.hs index fefbf2b707..35cf0d4b96 100644 --- a/compiler/GHC/HsToCore/Coverage.hs +++ b/compiler/GHC/HsToCore/Coverage.hs @@ -23,8 +23,10 @@ import GHC.Core.Type import GHC.Hs import GHC.Unit import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Driver.Session import GHC.Driver.Backend +import GHC.Driver.Ppr import GHC.Core.ConLike import Control.Monad import GHC.Types.SrcLoc diff --git a/compiler/GHC/HsToCore/Expr.hs b/compiler/GHC/HsToCore/Expr.hs index ffa4e9323f..be6c207dd6 100644 --- a/compiler/GHC/HsToCore/Expr.hs +++ b/compiler/GHC/HsToCore/Expr.hs @@ -66,6 +66,7 @@ import GHC.Types.SrcLoc import GHC.Utils.Misc import GHC.Data.Bag import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Core.PatSyn import Control.Monad diff --git a/compiler/GHC/HsToCore/Foreign/Call.hs b/compiler/GHC/HsToCore/Foreign/Call.hs index 102f2b3697..317c0b9477 100644 --- a/compiler/GHC/HsToCore/Foreign/Call.hs +++ b/compiler/GHC/HsToCore/Foreign/Call.hs @@ -50,6 +50,7 @@ import GHC.Builtin.Names import GHC.Driver.Session import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import Data.Maybe diff --git a/compiler/GHC/HsToCore/Foreign/Decl.hs b/compiler/GHC/HsToCore/Foreign/Decl.hs index 71d9eff7f2..2790137912 100644 --- a/compiler/GHC/HsToCore/Foreign/Decl.hs +++ b/compiler/GHC/HsToCore/Foreign/Decl.hs @@ -43,6 +43,7 @@ import GHC.Tc.Utils.TcType import GHC.Cmm.Expr import GHC.Cmm.Utils import GHC.Driver.Types +import GHC.Driver.Ppr import GHC.Types.ForeignCall import GHC.Builtin.Types import GHC.Builtin.Types.Prim @@ -55,6 +56,7 @@ import GHC.Driver.Session import GHC.Platform import GHC.Data.OrdList import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Driver.Hooks import GHC.Utils.Encoding diff --git a/compiler/GHC/HsToCore/GuardedRHSs.hs b/compiler/GHC/HsToCore/GuardedRHSs.hs index 8a991e9ceb..88439c9e0c 100644 --- a/compiler/GHC/HsToCore/GuardedRHSs.hs +++ b/compiler/GHC/HsToCore/GuardedRHSs.hs @@ -30,6 +30,7 @@ import GHC.Core.Type ( Type ) import GHC.Utils.Misc import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.Multiplicity import Control.Monad ( zipWithM ) import Data.List.NonEmpty ( NonEmpty, toList ) diff --git a/compiler/GHC/HsToCore/ListComp.hs b/compiler/GHC/HsToCore/ListComp.hs index 174d0a27af..0ecff073fc 100644 --- a/compiler/GHC/HsToCore/ListComp.hs +++ b/compiler/GHC/HsToCore/ListComp.hs @@ -35,6 +35,7 @@ import GHC.HsToCore.Match import GHC.Builtin.Names import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Tc.Utils.TcType import GHC.Data.List.SetOps( getNth ) import GHC.Utils.Misc diff --git a/compiler/GHC/HsToCore/Match.hs b/compiler/GHC/HsToCore/Match.hs index 5dc7328879..bc28e2110d 100644 --- a/compiler/GHC/HsToCore/Match.hs +++ b/compiler/GHC/HsToCore/Match.hs @@ -59,6 +59,7 @@ import GHC.Data.Maybe import GHC.Utils.Misc import GHC.Types.Name import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Basic ( isGenerated, il_value, fl_value, Boxity(..) ) import GHC.Data.FastString import GHC.Types.Unique diff --git a/compiler/GHC/HsToCore/Match/Constructor.hs b/compiler/GHC/HsToCore/Match/Constructor.hs index 96ab10fa4c..107c072580 100644 --- a/compiler/GHC/HsToCore/Match/Constructor.hs +++ b/compiler/GHC/HsToCore/Match/Constructor.hs @@ -36,6 +36,7 @@ import GHC.Types.Name.Env import GHC.Types.FieldLabel ( flSelector ) import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad(liftM) import Data.List (groupBy) import Data.List.NonEmpty (NonEmpty(..)) diff --git a/compiler/GHC/HsToCore/Match/Literal.hs b/compiler/GHC/HsToCore/Match/Literal.hs index 8b651443d2..a56f729f5e 100644 --- a/compiler/GHC/HsToCore/Match/Literal.hs +++ b/compiler/GHC/HsToCore/Match/Literal.hs @@ -53,6 +53,7 @@ import GHC.Utils.Outputable as Outputable import GHC.Types.Basic import GHC.Driver.Session import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.FastString import qualified GHC.LanguageExtensions as LangExt import GHC.Core.FamInstEnv ( FamInstEnvs, normaliseType ) diff --git a/compiler/GHC/HsToCore/Monad.hs b/compiler/GHC/HsToCore/Monad.hs index f803939da6..c78b35f6f2 100644 --- a/compiler/GHC/HsToCore/Monad.hs +++ b/compiler/GHC/HsToCore/Monad.hs @@ -84,7 +84,9 @@ import GHC.Types.Unique.Supply import GHC.Types.Name import GHC.Types.Name.Env import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Error +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Types.Unique.FM ( lookupWithDefaultUFM_Directly ) import GHC.Types.Literal ( mkLitString ) diff --git a/compiler/GHC/HsToCore/PmCheck.hs b/compiler/GHC/HsToCore/PmCheck.hs index 67667ab90f..564aa12f04 100644 --- a/compiler/GHC/HsToCore/PmCheck.hs +++ b/compiler/GHC/HsToCore/PmCheck.hs @@ -41,6 +41,7 @@ import GHC.Builtin.Types import GHC.Types.SrcLoc import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.DataCon import GHC.Core.TyCon import GHC.Types.Var (EvVar) diff --git a/compiler/GHC/HsToCore/PmCheck/Oracle.hs b/compiler/GHC/HsToCore/PmCheck/Oracle.hs index 361ea04971..0a03b05228 100644 --- a/compiler/GHC/HsToCore/PmCheck/Oracle.hs +++ b/compiler/GHC/HsToCore/PmCheck/Oracle.hs @@ -33,6 +33,7 @@ import GHC.Driver.Session import GHC.Utils.Outputable import GHC.Utils.Error import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.Bag import GHC.Types.Unique.Set import GHC.Types.Unique.DSet diff --git a/compiler/GHC/HsToCore/PmCheck/Ppr.hs b/compiler/GHC/HsToCore/PmCheck/Ppr.hs index e4358e78b6..99ec5de4af 100644 --- a/compiler/GHC/HsToCore/PmCheck/Ppr.hs +++ b/compiler/GHC/HsToCore/PmCheck/Ppr.hs @@ -20,6 +20,7 @@ import GHC.Core.ConLike import GHC.Core.DataCon import GHC.Builtin.Types import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad.Trans.RWS.CPS import GHC.Utils.Misc import GHC.Data.Maybe diff --git a/compiler/GHC/HsToCore/PmCheck/Types.hs b/compiler/GHC/HsToCore/PmCheck/Types.hs index 2d551fc1aa..f632c723da 100644 --- a/compiler/GHC/HsToCore/PmCheck/Types.hs +++ b/compiler/GHC/HsToCore/PmCheck/Types.hs @@ -55,6 +55,7 @@ import GHC.Types.Name import GHC.Core.DataCon import GHC.Core.ConLike import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.List.SetOps (unionLists) import GHC.Data.Maybe import GHC.Core.Type diff --git a/compiler/GHC/HsToCore/Quote.hs b/compiler/GHC/HsToCore/Quote.hs index 1972b3bec0..5710521665 100644 --- a/compiler/GHC/HsToCore/Quote.hs +++ b/compiler/GHC/HsToCore/Quote.hs @@ -62,6 +62,7 @@ import GHC.Types.SrcLoc as SrcLoc import GHC.Types.Unique import GHC.Types.Basic import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Bag import GHC.Driver.Session import GHC.Data.FastString diff --git a/compiler/GHC/HsToCore/Usage.hs b/compiler/GHC/HsToCore/Usage.hs index 12f4c950cb..ef42890302 100644 --- a/compiler/GHC/HsToCore/Usage.hs +++ b/compiler/GHC/HsToCore/Usage.hs @@ -25,6 +25,7 @@ import GHC.Utils.Misc import GHC.Types.Unique.Set import GHC.Types.Unique.FM import GHC.Utils.Fingerprint +import GHC.Utils.Panic import GHC.Data.Maybe import GHC.Driver.Finder diff --git a/compiler/GHC/HsToCore/Utils.hs b/compiler/GHC/HsToCore/Utils.hs index 1b0face052..4f0da28586 100644 --- a/compiler/GHC/HsToCore/Utils.hs +++ b/compiler/GHC/HsToCore/Utils.hs @@ -77,9 +77,11 @@ import GHC.Unit.Module import GHC.Builtin.Names import GHC.Types.Name( isInternalName ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Utils.Misc import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.FastString import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/Iface/Ext/Binary.hs b/compiler/GHC/Iface/Ext/Binary.hs index 4fc3b9a331..84ee0af60b 100644 --- a/compiler/GHC/Iface/Ext/Binary.hs +++ b/compiler/GHC/Iface/Ext/Binary.hs @@ -28,6 +28,7 @@ import GHC.Data.FastString ( FastString ) import GHC.Types.Name import GHC.Types.Name.Cache import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Builtin.Utils import GHC.Types.SrcLoc as SrcLoc import GHC.Types.Unique.Supply ( takeUniqFromSupply ) diff --git a/compiler/GHC/Iface/Ext/Types.hs b/compiler/GHC/Iface/Ext/Types.hs index ce6b564b13..fe11bd094c 100644 --- a/compiler/GHC/Iface/Ext/Types.hs +++ b/compiler/GHC/Iface/Ext/Types.hs @@ -27,6 +27,7 @@ import GHC.Types.Avail import GHC.Types.Unique import qualified GHC.Utils.Outputable as O ( (<>) ) import GHC.Utils.Misc +import GHC.Utils.Panic import qualified Data.Array as A import qualified Data.Map as M diff --git a/compiler/GHC/Iface/Ext/Utils.hs b/compiler/GHC/Iface/Ext/Utils.hs index 102f6db656..d1b6db6fb7 100644 --- a/compiler/GHC/Iface/Ext/Utils.hs +++ b/compiler/GHC/Iface/Ext/Utils.hs @@ -10,6 +10,7 @@ import GHC.Prelude import GHC.Core.Map import GHC.Driver.Session ( DynFlags ) +import GHC.Driver.Ppr import GHC.Data.FastString ( FastString, mkFastString ) import GHC.Iface.Type import GHC.Core.Multiplicity @@ -54,7 +55,7 @@ generateReferencesMap = foldr (\ast m -> M.unionWith (++) (go ast) m) M.empty this = fmap (pure . (nodeSpan ast,)) $ sourcedNodeIdents $ sourcedNodeInfo ast renderHieType :: DynFlags -> HieTypeFix -> String -renderHieType dflags ht = renderWithStyle (initSDocContext dflags defaultUserStyle) (ppr $ hieTypeToIface ht) +renderHieType dflags ht = showSDoc dflags (ppr $ hieTypeToIface ht) resolveVisibility :: Type -> [Type] -> [(Bool,Type)] resolveVisibility kind ty_args diff --git a/compiler/GHC/Iface/Load.hs b/compiler/GHC/Iface/Load.hs index 119a0e23c4..b7ed66734e 100644 --- a/compiler/GHC/Iface/Load.hs +++ b/compiler/GHC/Iface/Load.hs @@ -42,6 +42,7 @@ import {-# SOURCE #-} GHC.IfaceToCore import GHC.Driver.Session import GHC.Driver.Backend +import GHC.Driver.Ppr import GHC.Iface.Syntax import GHC.Iface.Env import GHC.Driver.Types diff --git a/compiler/GHC/Iface/Make.hs b/compiler/GHC/Iface/Make.hs index 59c93ef95c..3c33c0a3b6 100644 --- a/compiler/GHC/Iface/Make.hs +++ b/compiler/GHC/Iface/Make.hs @@ -49,6 +49,7 @@ import GHC.Hs import GHC.Driver.Types import GHC.Driver.Backend import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Types.Var.Env import GHC.Types.Var import GHC.Types.Name @@ -59,6 +60,7 @@ import GHC.Types.Name.Set import GHC.Unit.Module import GHC.Utils.Error import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Basic hiding ( SuccessFlag(..) ) import GHC.Utils.Misc hiding ( eqListBy ) import GHC.Data.FastString diff --git a/compiler/GHC/Iface/Recomp.hs b/compiler/GHC/Iface/Recomp.hs index 4d680f4aca..7c8dc9722c 100644 --- a/compiler/GHC/Iface/Recomp.hs +++ b/compiler/GHC/Iface/Recomp.hs @@ -27,10 +27,12 @@ import GHC.Driver.Backend import GHC.Driver.Types import GHC.Driver.Finder import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Types.Name import GHC.Types.Name.Set import GHC.Unit.Module import GHC.Utils.Error +import GHC.Utils.Panic import GHC.Data.Graph.Directed import GHC.Types.SrcLoc import GHC.Utils.Outputable as Outputable diff --git a/compiler/GHC/Iface/Rename.hs b/compiler/GHC/Iface/Rename.hs index ff3604f597..ed8ac78761 100644 --- a/compiler/GHC/Iface/Rename.hs +++ b/compiler/GHC/Iface/Rename.hs @@ -34,6 +34,7 @@ import GHC.Types.Name import GHC.Tc.Utils.Monad import GHC.Utils.Misc import GHC.Utils.Fingerprint +import GHC.Utils.Panic import GHC.Types.Basic -- a bit vexing diff --git a/compiler/GHC/Iface/Syntax.hs b/compiler/GHC/Iface/Syntax.hs index 5bc777e465..842bb2815a 100644 --- a/compiler/GHC/Iface/Syntax.hs +++ b/compiler/GHC/Iface/Syntax.hs @@ -60,20 +60,22 @@ import GHC.Types.Literal import GHC.Types.ForeignCall import GHC.Types.Annotations( AnnPayload, AnnTarget ) import GHC.Types.Basic -import GHC.Utils.Outputable as Outputable import GHC.Unit.Module import GHC.Types.SrcLoc -import GHC.Utils.Fingerprint -import GHC.Utils.Binary import GHC.Data.BooleanFormula ( BooleanFormula, pprBooleanFormula, isTrue ) import GHC.Types.Var( VarBndr(..), binderVar, tyVarSpecToBinders ) import GHC.Core.TyCon ( Role (..), Injectivity(..), tyConBndrVisArgFlag ) -import GHC.Utils.Misc( dropList, filterByList, notNull, unzipWith, debugIsOn, - seqList, zipWithEqual ) import GHC.Core.DataCon (SrcStrictness(..), SrcUnpackedness(..)) -import GHC.Utils.Lexeme (isLexSym) import GHC.Builtin.Types ( constraintKindTyConName ) +import GHC.Utils.Lexeme (isLexSym) +import GHC.Utils.Fingerprint +import GHC.Utils.Binary +import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic +import GHC.Utils.Misc( dropList, filterByList, notNull, unzipWith, debugIsOn, + seqList, zipWithEqual ) + import Control.Monad import System.IO.Unsafe import Control.DeepSeq diff --git a/compiler/GHC/Iface/Tidy.hs b/compiler/GHC/Iface/Tidy.hs index 3c3fb4b488..f687f2951b 100644 --- a/compiler/GHC/Iface/Tidy.hs +++ b/compiler/GHC/Iface/Tidy.hs @@ -19,6 +19,7 @@ import GHC.Prelude import GHC.Tc.Types import GHC.Driver.Session import GHC.Driver.Backend +import GHC.Driver.Ppr import GHC.Core import GHC.Core.Unfold import GHC.Core.FVs @@ -59,6 +60,7 @@ import GHC.Data.Maybe import GHC.Types.Unique.Supply import GHC.Utils.Outputable import GHC.Utils.Misc( filterOut ) +import GHC.Utils.Panic import qualified GHC.Utils.Error as Err import Control.Monad diff --git a/compiler/GHC/Iface/Tidy/StaticPtrTable.hs b/compiler/GHC/Iface/Tidy/StaticPtrTable.hs index fe9c77d8a8..99320cd7ad 100644 --- a/compiler/GHC/Iface/Tidy/StaticPtrTable.hs +++ b/compiler/GHC/Iface/Tidy/StaticPtrTable.hs @@ -135,6 +135,7 @@ import GHC.Core.Make (mkStringExprFSWith) import GHC.Unit.Module import GHC.Types.Name import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Builtin.Names import GHC.Tc.Utils.Env (lookupGlobal) diff --git a/compiler/GHC/Iface/Type.hs b/compiler/GHC/Iface/Type.hs index 2a152074f0..52d07f0fcb 100644 --- a/compiler/GHC/Iface/Type.hs +++ b/compiler/GHC/Iface/Type.hs @@ -91,6 +91,7 @@ import GHC.Utils.Binary import GHC.Utils.Outputable import GHC.Data.FastString import GHC.Utils.Misc +import GHC.Utils.Panic import Data.Maybe( isJust ) import qualified Data.Semigroup as Semi diff --git a/compiler/GHC/Iface/UpdateIdInfos.hs b/compiler/GHC/Iface/UpdateIdInfos.hs index b4a6acfc67..9079bcae56 100644 --- a/compiler/GHC/Iface/UpdateIdInfos.hs +++ b/compiler/GHC/Iface/UpdateIdInfos.hs @@ -18,6 +18,7 @@ import GHC.Types.Name.Set import GHC.Types.Var import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic #include "HsVersions.h" diff --git a/compiler/GHC/IfaceToCore.hs b/compiler/GHC/IfaceToCore.hs index 9f8ba03bc1..de32ae9e15 100644 --- a/compiler/GHC/IfaceToCore.hs +++ b/compiler/GHC/IfaceToCore.hs @@ -73,6 +73,7 @@ import GHC.Data.Maybe import GHC.Types.SrcLoc import GHC.Driver.Session import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Types.Basic hiding ( SuccessFlag(..) ) import GHC.Data.List.SetOps diff --git a/compiler/GHC/Llvm/Ppr.hs b/compiler/GHC/Llvm/Ppr.hs index 283a2993d6..5d32473796 100644 --- a/compiler/GHC/Llvm/Ppr.hs +++ b/compiler/GHC/Llvm/Ppr.hs @@ -41,6 +41,7 @@ import GHC.Llvm.Types import Data.Int import Data.List ( intersperse ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique import GHC.Data.FastString diff --git a/compiler/GHC/Llvm/Types.hs b/compiler/GHC/Llvm/Types.hs index 3fbff4837c..e628fe6b1b 100644 --- a/compiler/GHC/Llvm/Types.hs +++ b/compiler/GHC/Llvm/Types.hs @@ -18,6 +18,7 @@ import GHC.Platform import GHC.Driver.Session import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique -- from NCG diff --git a/compiler/GHC/Parser/Header.hs b/compiler/GHC/Parser/Header.hs index dfc7aec2ad..e6818fceb2 100644 --- a/compiler/GHC/Parser/Header.hs +++ b/compiler/GHC/Parser/Header.hs @@ -40,6 +40,7 @@ import GHC.Driver.Session import GHC.Utils.Error import GHC.Utils.Misc import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Data.Maybe import GHC.Data.Bag ( emptyBag, listToBag, unitBag ) import GHC.Utils.Monad diff --git a/compiler/GHC/Parser/Lexer.x b/compiler/GHC/Parser/Lexer.x index 7395c53b80..dafc1e0fb0 100644 --- a/compiler/GHC/Parser/Lexer.x +++ b/compiler/GHC/Parser/Lexer.x @@ -92,21 +92,19 @@ import Data.ByteString (ByteString) import Data.Map (Map) import qualified Data.Map as Map --- compiler/utils +-- compiler import GHC.Data.Bag import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.StringBuffer import GHC.Data.FastString import GHC.Types.Unique.FM import GHC.Data.Maybe import GHC.Data.OrdList import GHC.Utils.Misc ( readRational, readHexRational ) - --- compiler/main import GHC.Utils.Error import GHC.Driver.Session as DynFlags --- compiler/basicTypes import GHC.Types.SrcLoc import GHC.Unit import GHC.Types.Basic ( InlineSpec(..), RuleMatchInfo(..), @@ -114,7 +112,6 @@ import GHC.Types.Basic ( InlineSpec(..), RuleMatchInfo(..), SourceText(..) ) import GHC.Hs.Doc --- compiler/parser import GHC.Parser.CharClass import GHC.Parser.Annotation diff --git a/compiler/GHC/Parser/PostProcess.hs b/compiler/GHC/Parser/PostProcess.hs index 55e464fad1..c86d1f69c6 100644 --- a/compiler/GHC/Parser/PostProcess.hs +++ b/compiler/GHC/Parser/PostProcess.hs @@ -141,6 +141,7 @@ import Data.List import Data.Foldable import GHC.Driver.Session ( WarningFlag(..), DynFlags ) import GHC.Utils.Error ( Messages ) +import GHC.Utils.Panic import Control.Monad import Text.ParserCombinators.ReadP as ReadP diff --git a/compiler/GHC/Parser/PostProcess/Haddock.hs b/compiler/GHC/Parser/PostProcess/Haddock.hs index 8c4e061e86..7dc36db037 100644 --- a/compiler/GHC/Parser/PostProcess/Haddock.hs +++ b/compiler/GHC/Parser/PostProcess/Haddock.hs @@ -57,6 +57,7 @@ import GHC.Hs import GHC.Types.SrcLoc import GHC.Driver.Session ( WarningFlag(..) ) import GHC.Utils.Outputable hiding ( (<>) ) +import GHC.Utils.Panic import GHC.Data.Bag import Data.Semigroup diff --git a/compiler/GHC/Platform/Reg.hs b/compiler/GHC/Platform/Reg.hs index c6679c8a70..1ecca9fe47 100644 --- a/compiler/GHC/Platform/Reg.hs +++ b/compiler/GHC/Platform/Reg.hs @@ -30,6 +30,7 @@ where import GHC.Prelude import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique import GHC.Platform.Reg.Class import Data.List (intersect) diff --git a/compiler/GHC/Plugins.hs b/compiler/GHC/Plugins.hs index 99fb30d7d2..87363c3a89 100644 --- a/compiler/GHC/Plugins.hs +++ b/compiler/GHC/Plugins.hs @@ -26,6 +26,7 @@ module GHC.Plugins , module GHC.Core.Rules , module GHC.Types.Annotations , module GHC.Driver.Session + , module GHC.Driver.Ppr , module GHC.Unit.State , module GHC.Unit.Module , module GHC.Core.Type @@ -46,6 +47,7 @@ module GHC.Plugins , module GHC.Serialized , module GHC.Types.SrcLoc , module GHC.Utils.Outputable + , module GHC.Utils.Panic , module GHC.Types.Unique.Supply , module GHC.Data.FastString , module GHC.Tc.Errors.Hole.FitTypes -- for hole-fit plugins @@ -111,6 +113,8 @@ import GHC.Utils.Misc import GHC.Serialized import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic +import GHC.Driver.Ppr import GHC.Types.Unique.Supply import GHC.Types.Unique ( Unique, Uniquable(..) ) import GHC.Data.FastString diff --git a/compiler/GHC/Rename/Bind.hs b/compiler/GHC/Rename/Bind.hs index da4213acee..9215ef26fc 100644 --- a/compiler/GHC/Rename/Bind.hs +++ b/compiler/GHC/Rename/Bind.hs @@ -58,6 +58,7 @@ import GHC.Data.Graph.Directed ( SCC(..) ) import GHC.Data.Bag import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique.Set import GHC.Data.Maybe ( orElse ) import GHC.Data.OrdList diff --git a/compiler/GHC/Rename/Env.hs b/compiler/GHC/Rename/Env.hs index 2b0a2e5ae9..13978bf4f1 100644 --- a/compiler/GHC/Rename/Env.hs +++ b/compiler/GHC/Rename/Env.hs @@ -75,6 +75,7 @@ import GHC.Types.SrcLoc as SrcLoc import GHC.Utils.Outputable as Outputable import GHC.Types.Unique.Set ( uniqSetAny ) import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.Maybe import GHC.Driver.Session import GHC.Data.FastString diff --git a/compiler/GHC/Rename/Expr.hs b/compiler/GHC/Rename/Expr.hs index 27d914e971..57e6aa68a4 100644 --- a/compiler/GHC/Rename/Expr.hs +++ b/compiler/GHC/Rename/Expr.hs @@ -58,6 +58,7 @@ import Data.Maybe (isJust, isNothing) import GHC.Utils.Misc import GHC.Data.List.SetOps ( removeDups ) import GHC.Utils.Error +import GHC.Utils.Panic import GHC.Utils.Outputable as Outputable import GHC.Types.SrcLoc import GHC.Data.FastString diff --git a/compiler/GHC/Rename/Fixity.hs b/compiler/GHC/Rename/Fixity.hs index eb9e59035b..89bc90e025 100644 --- a/compiler/GHC/Rename/Fixity.hs +++ b/compiler/GHC/Rename/Fixity.hs @@ -30,6 +30,7 @@ import GHC.Types.Basic ( Fixity(..), FixityDirection(..), minPrecedence, defaultFixity, SourceText(..) ) import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Maybe import Data.List import Data.Function ( on ) diff --git a/compiler/GHC/Rename/HsType.hs b/compiler/GHC/Rename/HsType.hs index e7ba37c2b6..06dac08f4c 100644 --- a/compiler/GHC/Rename/HsType.hs +++ b/compiler/GHC/Rename/HsType.hs @@ -63,6 +63,7 @@ import GHC.Types.Basic ( compareFixity, funTyFixity, negateFixity , Fixity(..), FixityDirection(..), LexicalFixity(..) , TypeOrKind(..) ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.Maybe import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/Rename/Module.hs b/compiler/GHC/Rename/Module.hs index 5e82ebdb7f..8920027e66 100644 --- a/compiler/GHC/Rename/Module.hs +++ b/compiler/GHC/Rename/Module.hs @@ -61,6 +61,7 @@ import GHC.Data.FastString import GHC.Types.SrcLoc as SrcLoc import GHC.Driver.Session import GHC.Utils.Misc ( debugIsOn, lengthExceeds, partitionWith ) +import GHC.Utils.Panic import GHC.Driver.Types ( HscEnv, hsc_dflags ) import GHC.Data.List.SetOps ( findDupsEq, removeDups, equivClasses ) import GHC.Data.Graph.Directed ( SCC, flattenSCC, flattenSCCs, Node(..) diff --git a/compiler/GHC/Rename/Names.hs b/compiler/GHC/Rename/Names.hs index fb91f940ba..391c464fdb 100644 --- a/compiler/GHC/Rename/Names.hs +++ b/compiler/GHC/Rename/Names.hs @@ -35,6 +35,7 @@ module GHC.Rename.Names ( import GHC.Prelude import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Core.TyCo.Ppr import GHC.Hs import GHC.Tc.Utils.Env @@ -58,6 +59,7 @@ import GHC.Data.Maybe import GHC.Types.SrcLoc as SrcLoc import GHC.Types.Basic ( TopLevelFlag(..), StringLiteral(..) ) import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.FastString.Env import GHC.Types.Id diff --git a/compiler/GHC/Rename/Pat.hs b/compiler/GHC/Rename/Pat.hs index 06a1036b5c..f0cd54358f 100644 --- a/compiler/GHC/Rename/Pat.hs +++ b/compiler/GHC/Rename/Pat.hs @@ -70,6 +70,7 @@ import GHC.Types.Basic import GHC.Utils.Misc import GHC.Data.List.SetOps( removeDups ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Types.Literal ( inCharRange ) import GHC.Builtin.Types ( nilDataCon ) diff --git a/compiler/GHC/Rename/Splice.hs b/compiler/GHC/Rename/Splice.hs index e49ff87db2..cbbe38070c 100644 --- a/compiler/GHC/Rename/Splice.hs +++ b/compiler/GHC/Rename/Splice.hs @@ -43,6 +43,7 @@ import GHC.Builtin.Names.TH ( liftName ) import GHC.Driver.Session import GHC.Data.FastString import GHC.Utils.Error ( dumpIfSet_dyn_printer, DumpFormat (..) ) +import GHC.Utils.Panic import GHC.Tc.Utils.Env ( tcMetaTy ) import GHC.Driver.Hooks import GHC.Builtin.Names.TH ( quoteExpName, quotePatName, quoteDecName, quoteTypeName diff --git a/compiler/GHC/Rename/Unbound.hs b/compiler/GHC/Rename/Unbound.hs index ec0084fa4c..f9c8dc4e22 100644 --- a/compiler/GHC/Rename/Unbound.hs +++ b/compiler/GHC/Rename/Unbound.hs @@ -31,6 +31,7 @@ import GHC.Builtin.Names ( mkUnboundName, isUnboundName, getUnique) import GHC.Utils.Misc import GHC.Data.Maybe import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.FastString import Data.List import Data.Function ( on ) diff --git a/compiler/GHC/Rename/Utils.hs b/compiler/GHC/Rename/Utils.hs index 301aa4e081..64b86e1e94 100644 --- a/compiler/GHC/Rename/Utils.hs +++ b/compiler/GHC/Rename/Utils.hs @@ -49,6 +49,7 @@ import GHC.Types.Name.Env import GHC.Core.DataCon import GHC.Types.SrcLoc as SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Types.Basic ( TopLevelFlag(..) ) import GHC.Data.List.SetOps ( removeDups ) diff --git a/compiler/GHC/Runtime/Debugger.hs b/compiler/GHC/Runtime/Debugger.hs index 43aacc2085..9daa62d58d 100644 --- a/compiler/GHC/Runtime/Debugger.hs +++ b/compiler/GHC/Runtime/Debugger.hs @@ -37,6 +37,7 @@ import GHC.Core.Ppr.TyThing import GHC.Utils.Error import GHC.Utils.Monad import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Exception import Control.Monad diff --git a/compiler/GHC/Runtime/Eval.hs b/compiler/GHC/Runtime/Eval.hs index 6871073eea..2ee3143f76 100644 --- a/compiler/GHC/Runtime/Eval.hs +++ b/compiler/GHC/Runtime/Eval.hs @@ -80,6 +80,7 @@ import GHC.Types.Var.Env import GHC.ByteCode.Types import GHC.Runtime.Linker as Linker import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.LanguageExtensions import GHC.Types.Unique import GHC.Types.Unique.Supply diff --git a/compiler/GHC/Runtime/Heap/Inspect.hs b/compiler/GHC/Runtime/Heap/Inspect.hs index b7e9a1b104..ea682702c6 100644 --- a/compiler/GHC/Runtime/Heap/Inspect.hs +++ b/compiler/GHC/Runtime/Heap/Inspect.hs @@ -57,7 +57,9 @@ import GHC.Types.Basic ( Boxity(..) ) import GHC.Builtin.Types.Prim import GHC.Builtin.Types import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Outputable as Ppr +import GHC.Utils.Panic import GHC.Char import GHC.Exts.Heap import GHC.Runtime.Heap.Layout ( roundUpTo ) diff --git a/compiler/GHC/Runtime/Heap/Layout.hs b/compiler/GHC/Runtime/Heap/Layout.hs index cd09ad0163..7e4d5af136 100644 --- a/compiler/GHC/Runtime/Heap/Layout.hs +++ b/compiler/GHC/Runtime/Heap/Layout.hs @@ -48,12 +48,14 @@ import GHC.Prelude import GHC.Types.Basic( ConTagZ ) import GHC.Driver.Session -import GHC.Utils.Outputable import GHC.Platform import GHC.Platform.Profile import GHC.Data.FastString import GHC.StgToCmm.Types +import GHC.Utils.Outputable +import GHC.Utils.Panic + import Data.Word import Data.Bits import Data.ByteString (ByteString) diff --git a/compiler/GHC/Runtime/Interpreter.hs b/compiler/GHC/Runtime/Interpreter.hs index 561b4e2a6a..bcfd34ee15 100644 --- a/compiler/GHC/Runtime/Interpreter.hs +++ b/compiler/GHC/Runtime/Interpreter.hs @@ -70,7 +70,8 @@ import GHC.Types.Basic import GHC.Data.FastString import GHC.Utils.Misc import GHC.Runtime.Eval.Types(BreakInfo(..)) -import GHC.Utils.Outputable(brackets, ppr, showSDocUnqual) +import GHC.Utils.Outputable(brackets, ppr) +import GHC.Driver.Ppr (showSDoc) import GHC.Types.SrcLoc import GHC.Data.Maybe import GHC.Unit.Module @@ -413,7 +414,7 @@ handleSeqHValueStatus hsc_env eval_status = do | otherwise = Just (BreakInfo modl ix) sdocBpLoc = brackets . ppr . getSeqBpSpan putStrLn ("*** Ignoring breakpoint " ++ - (showSDocUnqual (hsc_dflags hsc_env) $ sdocBpLoc bp)) + (showSDoc (hsc_dflags hsc_env) $ sdocBpLoc bp)) -- resume the seq (:force) processing in the iserv process withForeignRef resume_ctxt_fhv $ \hval -> iservCmd hsc_env (ResumeSeq hval) >>= handleSeqHValueStatus hsc_env diff --git a/compiler/GHC/Runtime/Linker.hs b/compiler/GHC/Runtime/Linker.hs index face7068d4..8c05c38c6c 100644 --- a/compiler/GHC/Runtime/Linker.hs +++ b/compiler/GHC/Runtime/Linker.hs @@ -50,6 +50,7 @@ import GHC.Unit.Module import GHC.Data.List.SetOps import GHC.Runtime.Linker.Types (DynLinker(..), PersistentLinkerState(..)) import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Types.Basic import GHC.Utils.Outputable import GHC.Utils.Panic diff --git a/compiler/GHC/Runtime/Loader.hs b/compiler/GHC/Runtime/Loader.hs index 5d286587ef..728b5ca84d 100644 --- a/compiler/GHC/Runtime/Loader.hs +++ b/compiler/GHC/Runtime/Loader.hs @@ -22,6 +22,7 @@ module GHC.Runtime.Loader ( import GHC.Prelude import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Runtime.Linker ( linkModule, getHValue ) import GHC.Runtime.Interpreter ( wormhole, withInterp ) diff --git a/compiler/GHC/Settings/IO.hs b/compiler/GHC/Settings/IO.hs index a3479ca2b5..b5defa0ee2 100644 --- a/compiler/GHC/Settings/IO.hs +++ b/compiler/GHC/Settings/IO.hs @@ -17,7 +17,7 @@ import GHC.Settings.Config import GHC.Utils.CliOption import GHC.Utils.Fingerprint import GHC.Platform -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Settings import GHC.SysTools.BaseDir diff --git a/compiler/GHC/Stg/CSE.hs b/compiler/GHC/Stg/CSE.hs index abe0b6e482..61362053f5 100644 --- a/compiler/GHC/Stg/CSE.hs +++ b/compiler/GHC/Stg/CSE.hs @@ -96,6 +96,7 @@ import GHC.Core.DataCon import GHC.Types.Id import GHC.Stg.Syntax import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Basic (isWeakLoopBreaker) import GHC.Types.Var.Env import GHC.Core (AltCon(..)) diff --git a/compiler/GHC/Stg/DepAnal.hs b/compiler/GHC/Stg/DepAnal.hs index 2325cbab09..223ab0c5bb 100644 --- a/compiler/GHC/Stg/DepAnal.hs +++ b/compiler/GHC/Stg/DepAnal.hs @@ -9,6 +9,7 @@ import GHC.Types.Id import GHC.Types.Name (Name, nameIsLocalOrFrom) import GHC.Types.Name.Env import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique.Set (nonDetEltsUniqSet) import GHC.Types.Var.Set import GHC.Unit.Module (Module) diff --git a/compiler/GHC/Stg/FVs.hs b/compiler/GHC/Stg/FVs.hs index 7fd7a3cae6..211a0cb315 100644 --- a/compiler/GHC/Stg/FVs.hs +++ b/compiler/GHC/Stg/FVs.hs @@ -50,6 +50,7 @@ import GHC.Types.Var.Set import GHC.Core ( Tickish(Breakpoint) ) import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import Data.Maybe ( mapMaybe ) diff --git a/compiler/GHC/Stg/Lift.hs b/compiler/GHC/Stg/Lift.hs index 6a75d20dd0..8abd6fc67d 100644 --- a/compiler/GHC/Stg/Lift.hs +++ b/compiler/GHC/Stg/Lift.hs @@ -29,6 +29,7 @@ import GHC.Stg.Syntax import GHC.Utils.Outputable import GHC.Types.Unique.Supply import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.Var.Set import Control.Monad ( when ) import Data.Maybe ( isNothing ) diff --git a/compiler/GHC/Stg/Lift/Analysis.hs b/compiler/GHC/Stg/Lift/Analysis.hs index 80883b9312..c0e4086f11 100644 --- a/compiler/GHC/Stg/Lift/Analysis.hs +++ b/compiler/GHC/Stg/Lift/Analysis.hs @@ -35,6 +35,7 @@ import qualified GHC.StgToCmm.ArgRep as StgToCmm.ArgRep import qualified GHC.StgToCmm.Closure as StgToCmm.Closure import qualified GHC.StgToCmm.Layout as StgToCmm.Layout import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Types.Var.Set diff --git a/compiler/GHC/Stg/Lift/Monad.hs b/compiler/GHC/Stg/Lift/Monad.hs index 04a3cbd470..4b99521066 100644 --- a/compiler/GHC/Stg/Lift/Monad.hs +++ b/compiler/GHC/Stg/Lift/Monad.hs @@ -37,6 +37,7 @@ import GHC.Stg.Syntax import GHC.Core.Utils import GHC.Types.Unique.Supply import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.Var.Env import GHC.Types.Var.Set import GHC.Core.Multiplicity diff --git a/compiler/GHC/Stg/Pipeline.hs b/compiler/GHC/Stg/Pipeline.hs index 64c7e74979..3891346dab 100644 --- a/compiler/GHC/Stg/Pipeline.hs +++ b/compiler/GHC/Stg/Pipeline.hs @@ -29,6 +29,7 @@ import GHC.Driver.Session import GHC.Utils.Error import GHC.Types.Unique.Supply import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad import Control.Monad.IO.Class import Control.Monad.Trans.State.Strict diff --git a/compiler/GHC/Stg/Subst.hs b/compiler/GHC/Stg/Subst.hs index ba3550b330..dce2859262 100644 --- a/compiler/GHC/Stg/Subst.hs +++ b/compiler/GHC/Stg/Subst.hs @@ -9,8 +9,12 @@ import GHC.Prelude import GHC.Types.Id import GHC.Types.Var.Env import Control.Monad.Trans.State.Strict + import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic + +import GHC.Driver.Ppr -- | A renaming substitution from 'Id's to 'Id's. Like 'RnEnv2', but not -- maintaining pairs of substitutions. Like 'GHC.Core.Subst.Subst', but diff --git a/compiler/GHC/Stg/Syntax.hs b/compiler/GHC/Stg/Syntax.hs index 6d5baf7173..dcc9847ed4 100644 --- a/compiler/GHC/Stg/Syntax.hs +++ b/compiler/GHC/Stg/Syntax.hs @@ -88,6 +88,7 @@ import GHC.Core.TyCon ( PrimRep(..), TyCon ) import GHC.Core.Type ( Type ) import GHC.Types.RepType ( typePrimRep1 ) import GHC.Utils.Misc +import GHC.Utils.Panic import Data.List.NonEmpty ( NonEmpty, toList ) diff --git a/compiler/GHC/Stg/Unarise.hs b/compiler/GHC/Stg/Unarise.hs index cea52d6cc3..85c022f799 100644 --- a/compiler/GHC/Stg/Unarise.hs +++ b/compiler/GHC/Stg/Unarise.hs @@ -214,6 +214,7 @@ import GHC.Core.Make (aBSENT_SUM_FIELD_ERROR_ID) import GHC.Types.Id.Make (voidPrimId, voidArgId) import GHC.Utils.Monad (mapAccumLM) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.RepType import GHC.Stg.Syntax import GHC.Core.Type diff --git a/compiler/GHC/StgToCmm.hs b/compiler/GHC/StgToCmm.hs index 1060043fbc..7447a1feeb 100644 --- a/compiler/GHC/StgToCmm.hs +++ b/compiler/GHC/StgToCmm.hs @@ -47,6 +47,7 @@ import GHC.Core.TyCon import GHC.Core.Multiplicity import GHC.Unit.Module import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Stream import GHC.Types.Basic import GHC.Types.Var.Set ( isEmptyDVarSet ) diff --git a/compiler/GHC/StgToCmm/Bind.hs b/compiler/GHC/StgToCmm/Bind.hs index 28f2050f35..dbb32aa0d5 100644 --- a/compiler/GHC/StgToCmm/Bind.hs +++ b/compiler/GHC/StgToCmm/Bind.hs @@ -50,8 +50,10 @@ import GHC.Utils.Misc import GHC.Types.Var.Set import GHC.Types.Basic import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Driver.Session +import GHC.Driver.Ppr import Control.Monad diff --git a/compiler/GHC/StgToCmm/CgUtils.hs b/compiler/GHC/StgToCmm/CgUtils.hs index 36ba21cb15..6722a4c288 100644 --- a/compiler/GHC/StgToCmm/CgUtils.hs +++ b/compiler/GHC/StgToCmm/CgUtils.hs @@ -26,7 +26,7 @@ import GHC.Cmm.Dataflow.Block import GHC.Cmm.Dataflow.Graph import GHC.Cmm.Utils import GHC.Cmm.CLabel -import GHC.Utils.Outputable +import GHC.Utils.Panic -- ----------------------------------------------------------------------------- -- Information about global registers diff --git a/compiler/GHC/StgToCmm/Closure.hs b/compiler/GHC/StgToCmm/Closure.hs index 4e0e5b8ea3..cc299e58ca 100644 --- a/compiler/GHC/StgToCmm/Closure.hs +++ b/compiler/GHC/StgToCmm/Closure.hs @@ -90,6 +90,7 @@ import GHC.Core.TyCon import GHC.Types.RepType import GHC.Types.Basic import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import Data.Coerce (coerce) diff --git a/compiler/GHC/StgToCmm/DataCon.hs b/compiler/GHC/StgToCmm/DataCon.hs index fdd4214b51..8e11bffad3 100644 --- a/compiler/GHC/StgToCmm/DataCon.hs +++ b/compiler/GHC/StgToCmm/DataCon.hs @@ -48,7 +48,7 @@ import GHC.Types.Name (isInternalName) import GHC.Types.RepType (countConRepArgs) import GHC.Types.Literal import GHC.Builtin.Utils -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Utils.Monad (mapMaybeM) diff --git a/compiler/GHC/StgToCmm/Env.hs b/compiler/GHC/StgToCmm/Env.hs index e1a1e3c184..3ad42fd19d 100644 --- a/compiler/GHC/StgToCmm/Env.hs +++ b/compiler/GHC/StgToCmm/Env.hs @@ -37,18 +37,22 @@ import GHC.Cmm.CLabel import GHC.Cmm.BlockId import GHC.Cmm.Expr import GHC.Cmm.Utils -import GHC.Driver.Session import GHC.Types.Id import GHC.Cmm.Graph import GHC.Types.Name -import GHC.Utils.Outputable import GHC.Stg.Syntax import GHC.Core.Type import GHC.Builtin.Types.Prim import GHC.Types.Unique.FM -import GHC.Utils.Misc import GHC.Types.Var.Env +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + +import GHC.Driver.Session + + ------------------------------------- -- Manipulating CgIdInfo ------------------------------------- diff --git a/compiler/GHC/StgToCmm/Expr.hs b/compiler/GHC/StgToCmm/Expr.hs index 61a4da571c..72f8941740 100644 --- a/compiler/GHC/StgToCmm/Expr.hs +++ b/compiler/GHC/StgToCmm/Expr.hs @@ -50,6 +50,7 @@ import GHC.Data.Maybe import GHC.Utils.Misc import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad ( unless, void ) import Control.Arrow ( first ) diff --git a/compiler/GHC/StgToCmm/Foreign.hs b/compiler/GHC/StgToCmm/Foreign.hs index ecab35714f..9c7866efae 100644 --- a/compiler/GHC/StgToCmm/Foreign.hs +++ b/compiler/GHC/StgToCmm/Foreign.hs @@ -44,7 +44,7 @@ import GHC.Cmm.CLabel import GHC.Runtime.Heap.Layout import GHC.Types.ForeignCall import GHC.Data.Maybe -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.Unique.Supply import GHC.Types.Basic diff --git a/compiler/GHC/StgToCmm/Layout.hs b/compiler/GHC/StgToCmm/Layout.hs index 9ba0b2cb6e..89175caf93 100644 --- a/compiler/GHC/StgToCmm/Layout.hs +++ b/compiler/GHC/StgToCmm/Layout.hs @@ -34,6 +34,9 @@ module GHC.StgToCmm.Layout ( import GHC.Prelude hiding ((<*>)) +import GHC.Driver.Session +import GHC.Driver.Ppr + import GHC.StgToCmm.Closure import GHC.StgToCmm.Env import GHC.StgToCmm.ArgRep -- notably: ( slowCallPattern ) @@ -52,7 +55,6 @@ import GHC.Stg.Syntax import GHC.Types.Id import GHC.Core.TyCon ( PrimRep(..), primRepSizeB ) import GHC.Types.Basic ( RepArity ) -import GHC.Driver.Session import GHC.Platform import GHC.Platform.Profile import GHC.Unit @@ -60,6 +62,7 @@ import GHC.Unit import GHC.Utils.Misc import Data.List import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import Control.Monad diff --git a/compiler/GHC/StgToCmm/Monad.hs b/compiler/GHC/StgToCmm/Monad.hs index 802f3ae54d..da68c578fb 100644 --- a/compiler/GHC/StgToCmm/Monad.hs +++ b/compiler/GHC/StgToCmm/Monad.hs @@ -82,6 +82,7 @@ import GHC.Types.Unique import GHC.Types.Unique.Supply import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import Control.Monad diff --git a/compiler/GHC/StgToCmm/Prim.hs b/compiler/GHC/StgToCmm/Prim.hs index 374b5241fc..e967222d61 100644 --- a/compiler/GHC/StgToCmm/Prim.hs +++ b/compiler/GHC/StgToCmm/Prim.hs @@ -54,8 +54,8 @@ import GHC.Cmm.Utils import GHC.Builtin.PrimOps import GHC.Runtime.Heap.Layout import GHC.Data.FastString -import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import Data.Maybe import Data.Bits ((.&.), bit) diff --git a/compiler/GHC/StgToCmm/Prof.hs b/compiler/GHC/StgToCmm/Prof.hs index d58f20cfd1..355cc6a781 100644 --- a/compiler/GHC/StgToCmm/Prof.hs +++ b/compiler/GHC/StgToCmm/Prof.hs @@ -25,6 +25,9 @@ module GHC.StgToCmm.Prof ( import GHC.Prelude +import GHC.Driver.Session +import GHC.Driver.Ppr + import GHC.Platform import GHC.Platform.Profile import GHC.StgToCmm.Closure @@ -38,10 +41,10 @@ import GHC.Cmm.Utils import GHC.Cmm.CLabel import GHC.Types.CostCentre -import GHC.Driver.Session import GHC.Data.FastString import GHC.Unit.Module as Module import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.Monad import Data.Char (ord) diff --git a/compiler/GHC/StgToCmm/Ticky.hs b/compiler/GHC/StgToCmm/Ticky.hs index 733af2db96..b7f43665cd 100644 --- a/compiler/GHC/StgToCmm/Ticky.hs +++ b/compiler/GHC/StgToCmm/Ticky.hs @@ -122,9 +122,11 @@ import GHC.Types.Id import GHC.Types.Basic import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Driver.Session +import GHC.Driver.Ppr -- Turgid imports for showTypeCategory import GHC.Builtin.Names diff --git a/compiler/GHC/StgToCmm/Utils.hs b/compiler/GHC/StgToCmm/Utils.hs index f1a68eeb28..5b9cd98b27 100644 --- a/compiler/GHC/StgToCmm/Utils.hs +++ b/compiler/GHC/StgToCmm/Utils.hs @@ -76,6 +76,7 @@ import GHC.Types.Unique.Supply (MonadUnique(..)) import GHC.Driver.Session import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.RepType import GHC.Types.CostCentre diff --git a/compiler/GHC/SysTools.hs b/compiler/GHC/SysTools.hs index b72c375545..e309b839f7 100644 --- a/compiler/GHC/SysTools.hs +++ b/compiler/GHC/SysTools.hs @@ -43,8 +43,8 @@ import GHC.Prelude import GHC.Settings.Utils import GHC.Unit -import GHC.Utils.Outputable import GHC.Utils.Error +import GHC.Utils.Panic import GHC.Platform import GHC.Driver.Session import GHC.Platform.Ways diff --git a/compiler/GHC/SysTools/ExtraObj.hs b/compiler/GHC/SysTools/ExtraObj.hs index 643ccdff18..c4247d8496 100644 --- a/compiler/GHC/SysTools/ExtraObj.hs +++ b/compiler/GHC/SysTools/ExtraObj.hs @@ -16,6 +16,7 @@ module GHC.SysTools.ExtraObj ( import GHC.Utils.Asm import GHC.Utils.Error import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Unit.State import GHC.Platform import GHC.Utils.Outputable as Outputable diff --git a/compiler/GHC/Tc/Deriv.hs b/compiler/GHC/Tc/Deriv.hs index 9fe439e42e..02c885ce51 100644 --- a/compiler/GHC/Tc/Deriv.hs +++ b/compiler/GHC/Tc/Deriv.hs @@ -61,6 +61,7 @@ import GHC.Builtin.Names import GHC.Types.SrcLoc import GHC.Utils.Misc import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.Bag import GHC.Utils.FV as FV (fvVarList, unionFV, mkFVs) diff --git a/compiler/GHC/Tc/Deriv/Functor.hs b/compiler/GHC/Tc/Deriv/Functor.hs index c0566c0ede..324e51370c 100644 --- a/compiler/GHC/Tc/Deriv/Functor.hs +++ b/compiler/GHC/Tc/Deriv/Functor.hs @@ -30,7 +30,7 @@ import GHC.Data.Bag import GHC.Core.DataCon import GHC.Data.FastString import GHC.Hs -import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Builtin.Names import GHC.Types.Name.Reader import GHC.Types.SrcLoc diff --git a/compiler/GHC/Tc/Deriv/Generate.hs b/compiler/GHC/Tc/Deriv/Generate.hs index 141acdc3a6..3585c9ad70 100644 --- a/compiler/GHC/Tc/Deriv/Generate.hs +++ b/compiler/GHC/Tc/Deriv/Generate.hs @@ -73,6 +73,7 @@ import GHC.Types.Var.Env import GHC.Utils.Misc import GHC.Types.Var import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Lexeme import GHC.Data.FastString import GHC.Data.Pair diff --git a/compiler/GHC/Tc/Deriv/Generics.hs b/compiler/GHC/Tc/Deriv/Generics.hs index ea9862d305..9821d040e3 100644 --- a/compiler/GHC/Tc/Deriv/Generics.hs +++ b/compiler/GHC/Tc/Deriv/Generics.hs @@ -49,6 +49,7 @@ import GHC.Data.Bag import GHC.Types.Var.Env import GHC.Types.Var.Set (elemVarSet) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Misc diff --git a/compiler/GHC/Tc/Deriv/Infer.hs b/compiler/GHC/Tc/Deriv/Infer.hs index 370c06f779..fb038b23fb 100644 --- a/compiler/GHC/Tc/Deriv/Infer.hs +++ b/compiler/GHC/Tc/Deriv/Infer.hs @@ -25,6 +25,7 @@ import GHC.Core.DataCon import GHC.Utils.Error import GHC.Tc.Utils.Instantiate import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Pair import GHC.Builtin.Names import GHC.Tc.Deriv.Utils diff --git a/compiler/GHC/Tc/Deriv/Utils.hs b/compiler/GHC/Tc/Deriv/Utils.hs index 471aedf690..e14d1ca7d8 100644 --- a/compiler/GHC/Tc/Deriv/Utils.hs +++ b/compiler/GHC/Tc/Deriv/Utils.hs @@ -38,6 +38,7 @@ import GHC.Iface.Load (loadInterfaceForName) import GHC.Unit.Module (getModule) import GHC.Types.Name import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Builtin.Names import GHC.Types.SrcLoc import GHC.Tc.Deriv.Generate diff --git a/compiler/GHC/Tc/Errors.hs b/compiler/GHC/Tc/Errors.hs index 69d4654316..d597c95b72 100644 --- a/compiler/GHC/Tc/Errors.hs +++ b/compiler/GHC/Tc/Errors.hs @@ -58,8 +58,10 @@ import GHC.Core.ConLike ( ConLike(..)) import GHC.Utils.Misc import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.List.SetOps ( equivClasses ) import GHC.Data.Maybe import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/Tc/Errors/Hole.hs b/compiler/GHC/Tc/Errors/Hole.hs index 25c7e8839a..600a84eb94 100644 --- a/compiler/GHC/Tc/Errors/Hole.hs +++ b/compiler/GHC/Tc/Errors/Hole.hs @@ -29,6 +29,7 @@ import GHC.Types.Var.Env import GHC.Data.Bag import GHC.Core.ConLike ( ConLike(..) ) import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Tc.Utils.Env (tcLookup) import GHC.Utils.Outputable import GHC.Driver.Session diff --git a/compiler/GHC/Tc/Gen/Arrow.hs b/compiler/GHC/Tc/Gen/Arrow.hs index 7fe507c1b2..1cbdcc005b 100644 --- a/compiler/GHC/Tc/Gen/Arrow.hs +++ b/compiler/GHC/Tc/Gen/Arrow.hs @@ -38,6 +38,7 @@ import GHC.Builtin.Types.Prim import GHC.Types.Basic( Arity ) import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import Control.Monad diff --git a/compiler/GHC/Tc/Gen/Bind.hs b/compiler/GHC/Tc/Gen/Bind.hs index 1944c61af5..7cf3126bbf 100644 --- a/compiler/GHC/Tc/Gen/Bind.hs +++ b/compiler/GHC/Tc/Gen/Bind.hs @@ -65,6 +65,7 @@ import GHC.Data.Maybe import GHC.Utils.Misc import GHC.Types.Basic import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Builtin.Names( ipClassName ) import GHC.Tc.Validity (checkValidType) import GHC.Types.Unique.FM diff --git a/compiler/GHC/Tc/Gen/Default.hs b/compiler/GHC/Tc/Gen/Default.hs index 9f31d7938a..1bd06ddc63 100644 --- a/compiler/GHC/Tc/Gen/Default.hs +++ b/compiler/GHC/Tc/Gen/Default.hs @@ -22,6 +22,7 @@ import GHC.Tc.Utils.TcType import GHC.Builtin.Names import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/Tc/Gen/Export.hs b/compiler/GHC/Tc/Gen/Export.hs index 3aed54a802..fc0f993f03 100644 --- a/compiler/GHC/Tc/Gen/Export.hs +++ b/compiler/GHC/Tc/Gen/Export.hs @@ -30,6 +30,7 @@ import GHC.Core.TyCon import GHC.Types.SrcLoc as SrcLoc import GHC.Driver.Types import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.ConLike import GHC.Core.DataCon import GHC.Core.PatSyn diff --git a/compiler/GHC/Tc/Gen/Expr.hs b/compiler/GHC/Tc/Gen/Expr.hs index a6d2427f8d..f1030538e0 100644 --- a/compiler/GHC/Tc/Gen/Expr.hs +++ b/compiler/GHC/Tc/Gen/Expr.hs @@ -80,6 +80,7 @@ import GHC.Types.Var.Env ( emptyTidyEnv, mkInScopeSet ) import GHC.Data.List.SetOps import GHC.Data.Maybe import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Data.FastString import Control.Monad import GHC.Core.Class(classTyCon) diff --git a/compiler/GHC/Tc/Gen/Foreign.hs b/compiler/GHC/Tc/Gen/Foreign.hs index 7a388d7263..040a246091 100644 --- a/compiler/GHC/Tc/Gen/Foreign.hs +++ b/compiler/GHC/Tc/Gen/Foreign.hs @@ -63,6 +63,7 @@ import GHC.Builtin.Names import GHC.Driver.Session import GHC.Driver.Backend import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Platform import GHC.Types.SrcLoc import GHC.Data.Bag diff --git a/compiler/GHC/Tc/Gen/HsType.hs b/compiler/GHC/Tc/Gen/HsType.hs index de8a85b37a..410844793f 100644 --- a/compiler/GHC/Tc/Gen/HsType.hs +++ b/compiler/GHC/Tc/Gen/HsType.hs @@ -114,6 +114,7 @@ import GHC.Types.Unique.Set import GHC.Utils.Misc import GHC.Types.Unique.Supply import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Builtin.Names hiding ( wildCardName ) import GHC.Driver.Session diff --git a/compiler/GHC/Tc/Gen/Match.hs b/compiler/GHC/Tc/Gen/Match.hs index ee428cbc42..b68e0db87c 100644 --- a/compiler/GHC/Tc/Gen/Match.hs +++ b/compiler/GHC/Tc/Gen/Match.hs @@ -60,6 +60,7 @@ import GHC.Core.TyCon import GHC.Builtin.Types.Prim import GHC.Tc.Types.Evidence import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Types.SrcLoc diff --git a/compiler/GHC/Tc/Gen/Pat.hs b/compiler/GHC/Tc/Gen/Pat.hs index e827e1215d..f01f67b39b 100644 --- a/compiler/GHC/Tc/Gen/Pat.hs +++ b/compiler/GHC/Tc/Gen/Pat.hs @@ -63,6 +63,7 @@ import GHC.Types.SrcLoc import GHC.Types.Var.Set import GHC.Utils.Misc import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import qualified GHC.LanguageExtensions as LangExt import Control.Arrow ( second ) import Control.Monad ( when ) diff --git a/compiler/GHC/Tc/Gen/Rule.hs b/compiler/GHC/Tc/Gen/Rule.hs index d5bca7a7c0..5ee65b6e05 100644 --- a/compiler/GHC/Tc/Gen/Rule.hs +++ b/compiler/GHC/Tc/Gen/Rule.hs @@ -34,6 +34,7 @@ import GHC.Types.Var.Set import GHC.Types.Basic ( RuleName ) import GHC.Types.SrcLoc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.Bag diff --git a/compiler/GHC/Tc/Gen/Sig.hs b/compiler/GHC/Tc/Gen/Sig.hs index 35f6951ae1..a1d4277287 100644 --- a/compiler/GHC/Tc/Gen/Sig.hs +++ b/compiler/GHC/Tc/Gen/Sig.hs @@ -44,6 +44,7 @@ import GHC.Core.Multiplicity import GHC.Driver.Session import GHC.Driver.Backend +import GHC.Driver.Ppr import GHC.Types.Var ( TyVar, Specificity(..), tyVarKind, binderVars ) import GHC.Types.Id ( Id, idName, idType, idInlinePragma, setInlinePragma, mkLocalId ) import GHC.Builtin.Names( mkUnboundName ) @@ -52,6 +53,7 @@ import GHC.Unit.Module( getModule ) import GHC.Types.Name import GHC.Types.Name.Env import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Utils.Misc( singleton ) import GHC.Data.Maybe( orElse ) diff --git a/compiler/GHC/Tc/Instance/Class.hs b/compiler/GHC/Tc/Instance/Class.hs index c5fc5bcdbe..278b63f03c 100644 --- a/compiler/GHC/Tc/Instance/Class.hs +++ b/compiler/GHC/Tc/Instance/Class.hs @@ -42,6 +42,7 @@ import GHC.Core.TyCon import GHC.Core.Class import GHC.Driver.Session import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc( splitAtList, fstOf3 ) import Data.Maybe diff --git a/compiler/GHC/Tc/Instance/FunDeps.hs b/compiler/GHC/Tc/Instance/FunDeps.hs index aba9031be6..c89a13dae8 100644 --- a/compiler/GHC/Tc/Instance/FunDeps.hs +++ b/compiler/GHC/Tc/Instance/FunDeps.hs @@ -38,11 +38,13 @@ import GHC.Types.Var.Set import GHC.Types.Var.Env import GHC.Core.TyCo.FVs import GHC.Core.TyCo.Ppr( pprWithExplicitKindsWhen ) -import GHC.Utils.FV +import GHC.Types.SrcLoc + import GHC.Utils.Outputable +import GHC.Utils.FV import GHC.Utils.Error( Validity(..), allValid ) -import GHC.Types.SrcLoc import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.Pair ( Pair(..) ) import Data.List ( nubBy ) diff --git a/compiler/GHC/Tc/Instance/Typeable.hs b/compiler/GHC/Tc/Instance/Typeable.hs index d49d820a45..42112b4a30 100644 --- a/compiler/GHC/Tc/Instance/Typeable.hs +++ b/compiler/GHC/Tc/Instance/Typeable.hs @@ -43,6 +43,7 @@ import GHC.Core.Map import GHC.Settings.Constants import GHC.Utils.Fingerprint(Fingerprint(..), fingerprintString, fingerprintFingerprints) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString ( FastString, mkFastString, fsLit ) import Control.Monad.Trans.State diff --git a/compiler/GHC/Tc/Module.hs b/compiler/GHC/Tc/Module.hs index 069fc1d3a6..d642a15147 100644 --- a/compiler/GHC/Tc/Module.hs +++ b/compiler/GHC/Tc/Module.hs @@ -121,6 +121,7 @@ import GHC.Types.SrcLoc import GHC.Driver.Types import GHC.Data.List.SetOps import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Core.ConLike import GHC.Core.DataCon import GHC.Core.Type diff --git a/compiler/GHC/Tc/Solver.hs b/compiler/GHC/Tc/Solver.hs index 8327b39e6d..96fe5cbca2 100644 --- a/compiler/GHC/Tc/Solver.hs +++ b/compiler/GHC/Tc/Solver.hs @@ -53,6 +53,7 @@ import GHC.Core.Type import GHC.Builtin.Types ( liftedRepTy, manyDataConTy ) import GHC.Core.Unify ( tcMatchTyKi ) import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.Var import GHC.Types.Var.Set import GHC.Types.Unique.Set diff --git a/compiler/GHC/Tc/Solver/Canonical.hs b/compiler/GHC/Tc/Solver/Canonical.hs index cf0255b6c5..ce663d9764 100644 --- a/compiler/GHC/Tc/Solver/Canonical.hs +++ b/compiler/GHC/Tc/Solver/Canonical.hs @@ -36,6 +36,7 @@ import GHC.Types.Var import GHC.Types.Var.Env( mkInScopeSet ) import GHC.Types.Var.Set( delVarSetList ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Driver.Session( DynFlags ) import GHC.Types.Name.Set import GHC.Types.Name.Reader diff --git a/compiler/GHC/Tc/Solver/Flatten.hs b/compiler/GHC/Tc/Solver/Flatten.hs index 00bf2579f0..2a4c7be1bb 100644 --- a/compiler/GHC/Tc/Solver/Flatten.hs +++ b/compiler/GHC/Tc/Solver/Flatten.hs @@ -28,6 +28,7 @@ import GHC.Types.Var import GHC.Types.Var.Set import GHC.Types.Var.Env import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Tc.Solver.Monad as TcS import GHC.Types.Basic( SwapFlag(..) ) diff --git a/compiler/GHC/Tc/Solver/Interact.hs b/compiler/GHC/Tc/Solver/Interact.hs index 8d4dabc367..adc28d994a 100644 --- a/compiler/GHC/Tc/Solver/Interact.hs +++ b/compiler/GHC/Tc/Solver/Interact.hs @@ -37,6 +37,7 @@ import GHC.Core.Unify ( tcUnifyTyWithTFs, ruleMatchTyKiX ) import GHC.Tc.Types.Evidence import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Tc.Types import GHC.Tc.Types.Constraint diff --git a/compiler/GHC/Tc/Solver/Monad.hs b/compiler/GHC/Tc/Solver/Monad.hs index 14695fdd5a..49a3fb5c46 100644 --- a/compiler/GHC/Tc/Solver/Monad.hs +++ b/compiler/GHC/Tc/Solver/Monad.hs @@ -162,6 +162,7 @@ import GHC.Types.Var import GHC.Types.Var.Env import GHC.Types.Var.Set import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Bag as Bag import GHC.Types.Unique.Supply import GHC.Utils.Misc diff --git a/compiler/GHC/Tc/TyCl.hs b/compiler/GHC/Tc/TyCl.hs index 0b8ec842b2..ccc23c3930 100644 --- a/compiler/GHC/Tc/TyCl.hs +++ b/compiler/GHC/Tc/TyCl.hs @@ -67,6 +67,7 @@ import GHC.Types.Name import GHC.Types.Name.Set import GHC.Types.Name.Env import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.Maybe import GHC.Core.Unify import GHC.Utils.Misc diff --git a/compiler/GHC/Tc/TyCl/Build.hs b/compiler/GHC/Tc/TyCl/Build.hs index da17266c45..93f5eedb50 100644 --- a/compiler/GHC/Tc/TyCl/Build.hs +++ b/compiler/GHC/Tc/TyCl/Build.hs @@ -43,6 +43,7 @@ import GHC.Tc.Utils.Monad import GHC.Types.Unique.Supply import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic mkNewTyConRhs :: Name -> TyCon -> DataCon -> TcRnIf m n AlgTyConRhs diff --git a/compiler/GHC/Tc/TyCl/Class.hs b/compiler/GHC/Tc/TyCl/Class.hs index 4430e0e682..5fa26c2c57 100644 --- a/compiler/GHC/Tc/TyCl/Class.hs +++ b/compiler/GHC/Tc/TyCl/Class.hs @@ -59,6 +59,7 @@ import GHC.Types.Name.Set import GHC.Types.Var import GHC.Types.Var.Env import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Core.TyCon import GHC.Data.Maybe diff --git a/compiler/GHC/Tc/TyCl/Instance.hs b/compiler/GHC/Tc/TyCl/Instance.hs index fbcb2e0363..074fb22329 100644 --- a/compiler/GHC/Tc/TyCl/Instance.hs +++ b/compiler/GHC/Tc/TyCl/Instance.hs @@ -65,6 +65,7 @@ import GHC.Types.Var.Set import GHC.Data.Bag import GHC.Types.Basic import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Error import GHC.Data.FastString import GHC.Types.Id @@ -72,6 +73,7 @@ import GHC.Data.List.SetOps import GHC.Types.Name import GHC.Types.Name.Set import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc import GHC.Utils.Misc import GHC.Data.BooleanFormula ( isUnsatisfied, pprBooleanFormulaNice ) diff --git a/compiler/GHC/Tc/TyCl/Utils.hs b/compiler/GHC/Tc/TyCl/Utils.hs index a9557a2351..699e601777 100644 --- a/compiler/GHC/Tc/TyCl/Utils.hs +++ b/compiler/GHC/Tc/TyCl/Utils.hs @@ -61,6 +61,7 @@ import GHC.Types.Basic import GHC.Types.SrcLoc import GHC.Types.Unique ( mkBuiltinUnique ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import GHC.Data.Maybe import GHC.Data.Bag diff --git a/compiler/GHC/Tc/Types.hs b/compiler/GHC/Tc/Types.hs index 611d89954b..b782dceee8 100644 --- a/compiler/GHC/Tc/Types.hs +++ b/compiler/GHC/Tc/Types.hs @@ -127,6 +127,7 @@ import GHC.Utils.Outputable import GHC.Data.List.SetOps import GHC.Utils.Fingerprint import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Builtin.Names ( isUnboundName ) import GHC.Types.CostCentre.State diff --git a/compiler/GHC/Tc/Types/Constraint.hs b/compiler/GHC/Tc/Types/Constraint.hs index 45266c831e..fd2d1f00ce 100644 --- a/compiler/GHC/Tc/Types/Constraint.hs +++ b/compiler/GHC/Tc/Types/Constraint.hs @@ -97,6 +97,7 @@ import GHC.Utils.Outputable import GHC.Types.SrcLoc import GHC.Data.Bag import GHC.Utils.Misc +import GHC.Utils.Panic import Control.Monad ( msum ) diff --git a/compiler/GHC/Tc/Types/Evidence.hs b/compiler/GHC/Tc/Types/Evidence.hs index b9d460b8ec..985cbae01b 100644 --- a/compiler/GHC/Tc/Types/Evidence.hs +++ b/compiler/GHC/Tc/Types/Evidence.hs @@ -82,9 +82,11 @@ import GHC.Core.Class ( classSCSelId ) import GHC.Core.FVs ( exprSomeFreeVars ) import GHC.Utils.Misc +import GHC.Utils.Panic +import GHC.Utils.Outputable + import GHC.Data.Bag import qualified Data.Data as Data -import GHC.Utils.Outputable import GHC.Types.SrcLoc import Data.IORef( IORef ) import GHC.Types.Unique.Set diff --git a/compiler/GHC/Tc/Types/Origin.hs b/compiler/GHC/Tc/Types/Origin.hs index cf43905ffb..b2fdefa4cd 100644 --- a/compiler/GHC/Tc/Types/Origin.hs +++ b/compiler/GHC/Tc/Types/Origin.hs @@ -28,7 +28,6 @@ import GHC.Tc.Utils.TcType import GHC.Hs -import GHC.Types.Id import GHC.Core.DataCon import GHC.Core.ConLike import GHC.Core.TyCon @@ -37,13 +36,17 @@ import GHC.Core.PatSyn import GHC.Core.Multiplicity ( scaledThing ) import GHC.Unit.Module +import GHC.Types.Id import GHC.Types.Name import GHC.Types.Name.Reader - +import GHC.Types.Basic import GHC.Types.SrcLoc + import GHC.Data.FastString + import GHC.Utils.Outputable -import GHC.Types.Basic +import GHC.Utils.Panic +import GHC.Driver.Ppr {- ********************************************************************* * * diff --git a/compiler/GHC/Tc/Utils/Backpack.hs b/compiler/GHC/Tc/Utils/Backpack.hs index f90c6923c8..bddda199a8 100644 --- a/compiler/GHC/Tc/Utils/Backpack.hs +++ b/compiler/GHC/Tc/Utils/Backpack.hs @@ -24,6 +24,7 @@ import GHC.Types.Basic (defaultFixity, TypeOrKind(..)) import GHC.Unit.State import GHC.Tc.Gen.Export import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Hs import GHC.Types.Name.Reader import GHC.Tc.Utils.Monad @@ -49,6 +50,7 @@ import GHC.Types.Avail import GHC.Types.SrcLoc import GHC.Driver.Types import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Core.Type import GHC.Core.Multiplicity import GHC.Data.FastString diff --git a/compiler/GHC/Tc/Utils/Env.hs b/compiler/GHC/Tc/Utils/Env.hs index 76ebb79e1e..0b92d7b3d2 100644 --- a/compiler/GHC/Tc/Utils/Env.hs +++ b/compiler/GHC/Tc/Utils/Env.hs @@ -107,6 +107,7 @@ import GHC.Types.SrcLoc import GHC.Types.Basic hiding( SuccessFlag(..) ) import GHC.Unit.Module import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Encoding import GHC.Data.FastString import GHC.Data.Bag diff --git a/compiler/GHC/Tc/Utils/Instantiate.hs b/compiler/GHC/Tc/Utils/Instantiate.hs index 385cd634e8..8a9c791da3 100644 --- a/compiler/GHC/Tc/Utils/Instantiate.hs +++ b/compiler/GHC/Tc/Utils/Instantiate.hs @@ -76,6 +76,7 @@ import GHC.Builtin.Names import GHC.Types.SrcLoc as SrcLoc import GHC.Driver.Session import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Utils.Outputable import GHC.Types.Basic ( TypeOrKind(..) ) import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/Tc/Utils/Monad.hs b/compiler/GHC/Tc/Utils/Monad.hs index 18cdfdf935..47e1ab8a9d 100644 --- a/compiler/GHC/Tc/Utils/Monad.hs +++ b/compiler/GHC/Tc/Utils/Monad.hs @@ -149,6 +149,8 @@ module GHC.Tc.Utils.Monad( import GHC.Prelude +import GHC.Driver.Ppr + import GHC.Tc.Types -- Re-export all import GHC.Data.IOEnv -- Re-export all import GHC.Tc.Types.Constraint diff --git a/compiler/GHC/Tc/Utils/TcMType.hs b/compiler/GHC/Tc/Utils/TcMType.hs index e8ae500075..0995eb51e9 100644 --- a/compiler/GHC/Tc/Utils/TcMType.hs +++ b/compiler/GHC/Tc/Utils/TcMType.hs @@ -120,11 +120,13 @@ import GHC.Types.Var.Env import GHC.Types.Name.Env import GHC.Utils.Misc import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.Bag import GHC.Data.Pair import GHC.Types.Unique.Set import GHC.Driver.Session +import GHC.Driver.Ppr import qualified GHC.LanguageExtensions as LangExt import GHC.Types.Basic ( TypeOrKind(..) ) diff --git a/compiler/GHC/Tc/Utils/TcType.hs b/compiler/GHC/Tc/Utils/TcType.hs index 6b0df55f46..357858cf9a 100644 --- a/compiler/GHC/Tc/Utils/TcType.hs +++ b/compiler/GHC/Tc/Utils/TcType.hs @@ -226,6 +226,7 @@ import GHC.Utils.Misc import GHC.Data.Maybe import GHC.Data.List.SetOps ( getNth, findDupsEq ) import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Utils.Error( Validity(..), MsgDoc, isValid ) import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/Tc/Utils/Unify.hs b/compiler/GHC/Tc/Utils/Unify.hs index 2aa47748cb..6a83348b2a 100644 --- a/compiler/GHC/Tc/Utils/Unify.hs +++ b/compiler/GHC/Tc/Utils/Unify.hs @@ -71,6 +71,7 @@ import GHC.Data.Bag import GHC.Utils.Misc import qualified GHC.LanguageExtensions as LangExt import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import Control.Monad import Control.Arrow ( second ) diff --git a/compiler/GHC/Tc/Utils/Zonk.hs b/compiler/GHC/Tc/Utils/Zonk.hs index 63a46dda14..42a89cf633 100644 --- a/compiler/GHC/Tc/Utils/Zonk.hs +++ b/compiler/GHC/Tc/Utils/Zonk.hs @@ -79,6 +79,7 @@ import GHC.Types.SrcLoc import GHC.Data.Bag import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.Unique.FM import GHC.Core.Multiplicity import GHC.Core diff --git a/compiler/GHC/Tc/Validity.hs b/compiler/GHC/Tc/Validity.hs index 080132c080..b7a9876144 100644 --- a/compiler/GHC/Tc/Validity.hs +++ b/compiler/GHC/Tc/Validity.hs @@ -66,6 +66,7 @@ import GHC.Utils.Misc import GHC.Data.List.SetOps import GHC.Types.SrcLoc import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import GHC.Types.Unique ( mkAlphaTyVarUnique ) import GHC.Data.Bag ( emptyBag ) import qualified GHC.LanguageExtensions as LangExt diff --git a/compiler/GHC/ThToHs.hs b/compiler/GHC/ThToHs.hs index eebb0c7974..d6ecba4149 100644 --- a/compiler/GHC/ThToHs.hs +++ b/compiler/GHC/ThToHs.hs @@ -50,6 +50,7 @@ import GHC.Utils.Lexeme import GHC.Utils.Misc import GHC.Data.FastString import GHC.Utils.Outputable as Outputable +import GHC.Utils.Panic import qualified Data.ByteString as BS import Control.Monad( unless, ap ) diff --git a/compiler/GHC/Types/Avail.hs b/compiler/GHC/Types/Avail.hs index bee35d9395..adc3ffa391 100644 --- a/compiler/GHC/Types/Avail.hs +++ b/compiler/GHC/Types/Avail.hs @@ -38,6 +38,7 @@ import GHC.Types.FieldLabel import GHC.Utils.Binary import GHC.Data.List.SetOps import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Utils.Misc import Data.Data ( Data ) diff --git a/compiler/GHC/Types/Basic.hs b/compiler/GHC/Types/Basic.hs index a0693b3f86..e89196c1a6 100644 --- a/compiler/GHC/Types/Basic.hs +++ b/compiler/GHC/Types/Basic.hs @@ -115,6 +115,7 @@ import GHC.Prelude import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Types.SrcLoc ( Located,unLoc ) import Data.Data hiding (Fixity, Prefix, Infix) import Data.Function (on) diff --git a/compiler/GHC/Types/Demand.hs b/compiler/GHC/Types/Demand.hs index 51acdf3d8e..ef22c98315 100644 --- a/compiler/GHC/Types/Demand.hs +++ b/compiler/GHC/Types/Demand.hs @@ -59,13 +59,10 @@ module GHC.Types.Demand ( import GHC.Prelude -import GHC.Utils.Outputable import GHC.Types.Var ( Var ) import GHC.Types.Var.Env import GHC.Types.Unique.FM -import GHC.Utils.Misc import GHC.Types.Basic -import GHC.Utils.Binary import GHC.Data.Maybe ( orElse ) import GHC.Core.Type ( Type ) @@ -73,6 +70,13 @@ import GHC.Core.TyCon ( isNewTyCon, isClassTyCon ) import GHC.Core.DataCon ( splitDataProductType_maybe ) import GHC.Core.Multiplicity ( scaledThing ) +import GHC.Utils.Binary +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + +import GHC.Driver.Ppr + {- ************************************************************************ * * diff --git a/compiler/GHC/Types/ForeignCall.hs b/compiler/GHC/Types/ForeignCall.hs index b6f0e0b21f..e811604efb 100644 --- a/compiler/GHC/Types/ForeignCall.hs +++ b/compiler/GHC/Types/ForeignCall.hs @@ -23,6 +23,7 @@ import GHC.Prelude import GHC.Data.FastString import GHC.Utils.Binary import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Unit.Module import GHC.Types.Basic ( SourceText, pprWithSourceText ) diff --git a/compiler/GHC/Types/Id.hs b/compiler/GHC/Types/Id.hs index 81b7cf20d2..cbf566a5fe 100644 --- a/compiler/GHC/Types/Id.hs +++ b/compiler/GHC/Types/Id.hs @@ -152,13 +152,17 @@ import {-# SOURCE #-} GHC.Builtin.PrimOps (PrimOp) import GHC.Types.ForeignCall import GHC.Data.Maybe import GHC.Types.SrcLoc -import GHC.Utils.Outputable import GHC.Types.Unique import GHC.Types.Unique.Supply import GHC.Data.FastString -import GHC.Utils.Misc import GHC.Core.Multiplicity +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + +import GHC.Driver.Ppr + -- infixl so you can say (id `set` a `set` b) infixl 1 `setIdUnfolding`, `setIdArity`, diff --git a/compiler/GHC/Types/Id/Info.hs b/compiler/GHC/Types/Id/Info.hs index f67f581b74..028a277a42 100644 --- a/compiler/GHC/Types/Id/Info.hs +++ b/compiler/GHC/Types/Id/Info.hs @@ -104,11 +104,13 @@ import GHC.Core.TyCon import GHC.Core.PatSyn import GHC.Core.Type import GHC.Types.ForeignCall -import GHC.Utils.Outputable import GHC.Unit.Module import GHC.Types.Demand import GHC.Types.Cpr + import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.Word import Data.Bits diff --git a/compiler/GHC/Types/Id/Make.hs b/compiler/GHC/Types/Id/Make.hs index 6d49479807..bd25be0ce0 100644 --- a/compiler/GHC/Types/Id/Make.hs +++ b/compiler/GHC/Types/Id/Make.hs @@ -74,7 +74,9 @@ import GHC.Builtin.Names import GHC.Types.Basic hiding ( SuccessFlag(..) ) import GHC.Utils.Misc import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import GHC.Data.List.SetOps import GHC.Types.Var (VarBndr(Bndr)) diff --git a/compiler/GHC/Types/Literal.hs b/compiler/GHC/Types/Literal.hs index 93b8bd9b9d..2c5471c52b 100644 --- a/compiler/GHC/Types/Literal.hs +++ b/compiler/GHC/Types/Literal.hs @@ -65,6 +65,7 @@ import GHC.Settings.Constants import GHC.Platform import GHC.Types.Unique.FM import GHC.Utils.Misc +import GHC.Utils.Panic import Data.ByteString (ByteString) import Data.Int diff --git a/compiler/GHC/Types/Name.hs b/compiler/GHC/Types/Name.hs index 9d74dee606..4a03a5bfc9 100644 --- a/compiler/GHC/Types/Name.hs +++ b/compiler/GHC/Types/Name.hs @@ -94,6 +94,7 @@ import GHC.Data.Maybe import GHC.Utils.Binary import GHC.Data.FastString import GHC.Utils.Outputable +import GHC.Utils.Panic import Control.DeepSeq import Data.Data diff --git a/compiler/GHC/Types/Name/Cache.hs b/compiler/GHC/Types/Name/Cache.hs index 0506c5747c..b33e5c2ddf 100644 --- a/compiler/GHC/Types/Name/Cache.hs +++ b/compiler/GHC/Types/Name/Cache.hs @@ -16,9 +16,11 @@ import GHC.Unit.Module import GHC.Types.Name import GHC.Types.Unique.Supply import GHC.Builtin.Types +import GHC.Builtin.Names + import GHC.Utils.Misc import GHC.Utils.Outputable -import GHC.Builtin.Names +import GHC.Utils.Panic #include "HsVersions.h" diff --git a/compiler/GHC/Types/Name/Reader.hs b/compiler/GHC/Types/Name/Reader.hs index 32b59eaa30..826137f76f 100644 --- a/compiler/GHC/Types/Name/Reader.hs +++ b/compiler/GHC/Types/Name/Reader.hs @@ -85,6 +85,7 @@ import GHC.Types.Unique import GHC.Types.Unique.FM import GHC.Types.Unique.Set import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Types.Name.Env import Data.Data diff --git a/compiler/GHC/Types/Name/Shape.hs b/compiler/GHC/Types/Name/Shape.hs index d4ad316887..96b7073cce 100644 --- a/compiler/GHC/Types/Name/Shape.hs +++ b/compiler/GHC/Types/Name/Shape.hs @@ -26,6 +26,7 @@ import GHC.Types.Name import GHC.Types.Name.Env import GHC.Tc.Utils.Monad import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Iface.Env import Control.Monad diff --git a/compiler/GHC/Types/RepType.hs b/compiler/GHC/Types/RepType.hs index 6ab4387f38..98ba865a95 100644 --- a/compiler/GHC/Types/RepType.hs +++ b/compiler/GHC/Types/RepType.hs @@ -27,16 +27,18 @@ import GHC.Prelude import GHC.Types.Basic (Arity, RepArity) import GHC.Core.DataCon -import GHC.Utils.Outputable import GHC.Builtin.Names import GHC.Core.Coercion import GHC.Core.TyCon import GHC.Core.TyCo.Rep import GHC.Core.Type -import GHC.Utils.Misc import GHC.Builtin.Types.Prim import {-# SOURCE #-} GHC.Builtin.Types ( anyTypeOfKind ) +import GHC.Utils.Misc +import GHC.Utils.Outputable +import GHC.Utils.Panic + import Data.List (sort) import qualified Data.IntSet as IS diff --git a/compiler/GHC/Types/SrcLoc.hs b/compiler/GHC/Types/SrcLoc.hs index 2ac2a13b04..46a362026f 100644 --- a/compiler/GHC/Types/SrcLoc.hs +++ b/compiler/GHC/Types/SrcLoc.hs @@ -120,6 +120,7 @@ import GHC.Prelude import GHC.Utils.Misc import GHC.Utils.Json import GHC.Utils.Outputable +import GHC.Utils.Panic import GHC.Data.FastString import Control.DeepSeq diff --git a/compiler/GHC/Types/Unique.hs b/compiler/GHC/Types/Unique.hs index 36d85ff9f2..c97f7a9553 100644 --- a/compiler/GHC/Types/Unique.hs +++ b/compiler/GHC/Types/Unique.hs @@ -81,6 +81,7 @@ import GHC.Types.Basic import GHC.Data.FastString import GHC.Utils.Outputable import GHC.Utils.Misc +import GHC.Utils.Panic -- just for implementing a fast [0,61) -> Char function import GHC.Exts (indexCharOffAddr#, Char(..), Int(..)) diff --git a/compiler/GHC/Types/Var.hs b/compiler/GHC/Types/Var.hs index 058b6ffc03..b5892a70da 100644 --- a/compiler/GHC/Types/Var.hs +++ b/compiler/GHC/Types/Var.hs @@ -109,6 +109,7 @@ import GHC.Types.Unique ( Uniquable, Unique, getKey, getUnique import GHC.Utils.Misc import GHC.Utils.Binary import GHC.Utils.Outputable +import GHC.Utils.Panic import Data.Data diff --git a/compiler/GHC/Types/Var/Env.hs b/compiler/GHC/Types/Var/Env.hs index 47cdc8734b..ed58c413f4 100644 --- a/compiler/GHC/Types/Var/Env.hs +++ b/compiler/GHC/Types/Var/Env.hs @@ -86,6 +86,7 @@ import GHC.Types.Unique.FM import GHC.Types.Unique.DFM import GHC.Types.Unique import GHC.Utils.Misc +import GHC.Utils.Panic import GHC.Data.Maybe import GHC.Utils.Outputable diff --git a/compiler/GHC/Unit/State.hs-boot b/compiler/GHC/Unit/State.hs-boot index f03c12fac3..a3bc8fa7d6 100644 --- a/compiler/GHC/Unit/State.hs-boot +++ b/compiler/GHC/Unit/State.hs-boot @@ -1,6 +1,5 @@ module GHC.Unit.State where -import GHC.Data.FastString import {-# SOURCE #-} GHC.Utils.Outputable import {-# SOURCE #-} GHC.Unit.Types (IndefUnitId, UnitId) @@ -8,6 +7,5 @@ data UnitState data UnitDatabase unit emptyUnitState :: UnitState -mkIndefUnitId :: UnitState -> FastString -> IndefUnitId pprUnitIdForUser :: UnitState -> UnitId -> SDoc updateIndefUnitId :: UnitState -> IndefUnitId -> IndefUnitId diff --git a/compiler/GHC/Utils/Error.hs b/compiler/GHC/Utils/Error.hs index 4c72c052d7..e3d3cde2f7 100644 --- a/compiler/GHC/Utils/Error.hs +++ b/compiler/GHC/Utils/Error.hs @@ -73,6 +73,7 @@ import GHC.Utils.Panic import qualified GHC.Utils.Ppr.Colour as Col import GHC.Types.SrcLoc as SrcLoc import GHC.Driver.Session +import GHC.Driver.Ppr import GHC.Data.FastString (unpackFS) import GHC.Data.StringBuffer (atLine, hGetStringBuffer, len, lexemeToString) import GHC.Utils.Json diff --git a/compiler/GHC/Utils/Misc.hs b/compiler/GHC/Utils/Misc.hs index 50ac5dc9e8..8fba20a3c3 100644 --- a/compiler/GHC/Utils/Misc.hs +++ b/compiler/GHC/Utils/Misc.hs @@ -172,7 +172,8 @@ import qualified Data.Set as Set import Data.Time #if defined(DEBUG) -import {-# SOURCE #-} GHC.Utils.Outputable ( warnPprTrace, text ) +import {-# SOURCE #-} GHC.Utils.Outputable ( text ) +import {-# SOURCE #-} GHC.Driver.Ppr ( warnPprTrace ) #endif infixr 9 `thenCmp` diff --git a/compiler/GHC/Utils/Outputable.hs b/compiler/GHC/Utils/Outputable.hs index b3d1772076..e83f0af927 100644 --- a/compiler/GHC/Utils/Outputable.hs +++ b/compiler/GHC/Utils/Outputable.hs @@ -16,7 +16,7 @@ module GHC.Utils.Outputable ( Outputable(..), OutputableBndr(..), -- * Pretty printing combinators - SDoc, runSDoc, initSDocContext, + SDoc, runSDoc, docToSDoc, interppSP, interpp'SP, pprQuotedList, pprWithCommas, quotedListWithOr, quotedListWithNor, @@ -43,12 +43,10 @@ module GHC.Utils.Outputable ( coloured, keyword, -- * Converting 'SDoc' into strings and outputting it - printSDoc, printSDocLn, printForUser, - printForC, bufLeftRenderSDoc, + printSDoc, printSDocLn, + bufLeftRenderSDoc, pprCode, mkCodeStyle, - showSDoc, showSDocUnsafe, showSDocOneLine, - showSDocForUser, showSDocDebug, showSDocDump, showSDocDumpOneLine, - showSDocUnqual, showPpr, + showSDocOneLine, renderWithStyle, pprInfixVar, pprPrefixVar, @@ -84,20 +82,11 @@ module GHC.Utils.Outputable ( ifPprDebug, whenPprDebug, getPprDebug, - -- * Error handling and debugging utilities - pprPanic, pprSorry, assertPprPanic, pprPgmError, - pprTrace, pprTraceDebug, pprTraceWith, pprTraceIt, warnPprTrace, - pprSTrace, pprTraceException, pprTraceM, pprTraceWithFlags, - trace, pgmError, panic, sorry, assertPanic, - pprDebugAndThen, callStackDoc, ) where import GHC.Prelude -import {-# SOURCE #-} GHC.Driver.Session - ( DynFlags, hasPprDebug, hasNoDebugOutput - , unsafeGlobalDynFlags, initSDocContext - ) +import {-# SOURCE #-} GHC.Driver.Session ( DynFlags ) import {-# SOURCE #-} GHC.Unit.Types ( Unit, Module, moduleName ) import {-# SOURCE #-} GHC.Unit.Module.Name( ModuleName ) import {-# SOURCE #-} GHC.Types.Name.Occurrence( OccName ) @@ -105,10 +94,8 @@ import {-# SOURCE #-} GHC.Types.Name.Occurrence( OccName ) import GHC.Utils.BufHandle (BufHandle) import GHC.Data.FastString import qualified GHC.Utils.Ppr as Pretty -import GHC.Utils.Misc import qualified GHC.Utils.Ppr.Colour as Col import GHC.Utils.Ppr ( Doc, Mode(..) ) -import GHC.Utils.Panic import GHC.Serialized import GHC.LanguageExtensions (Extension) @@ -133,8 +120,6 @@ import qualified Data.List.NonEmpty as NEL import GHC.Fingerprint import GHC.Show ( showMultiLineString ) -import GHC.Stack ( callStack, prettyCallStack ) -import Control.Monad.IO.Class import GHC.Utils.Exception {- @@ -493,18 +478,6 @@ printSDocLn :: SDocContext -> Mode -> Handle -> SDoc -> IO () printSDocLn ctx mode handle doc = printSDoc ctx mode handle (doc $$ text "") -printForUser :: DynFlags -> Handle -> PrintUnqualified -> Depth -> SDoc -> IO () -printForUser dflags handle unqual depth doc - = printSDocLn ctx PageMode handle doc - where ctx = initSDocContext dflags (mkUserStyle unqual depth) - --- | Like 'printSDocLn' but specialized with 'LeftMode' and --- @'PprCode' 'CStyle'@. This is typically used to output C-- code. -printForC :: DynFlags -> Handle -> SDoc -> IO () -printForC dflags handle doc = - printSDocLn ctx LeftMode handle doc - where ctx = initSDocContext dflags (PprCode CStyle) - -- | An efficient variant of 'printSDoc' specialized for 'LeftMode' that -- outputs to a 'BufHandle'. bufLeftRenderSDoc :: SDocContext -> BufHandle -> SDoc -> IO () @@ -517,39 +490,6 @@ pprCode cs d = withPprStyle (PprCode cs) d mkCodeStyle :: CodeStyle -> PprStyle mkCodeStyle = PprCode --- Can't make SDoc an instance of Show because SDoc is just a function type --- However, Doc *is* an instance of Show --- showSDoc just blasts it out as a string -showSDoc :: DynFlags -> SDoc -> String -showSDoc dflags sdoc = renderWithStyle (initSDocContext dflags defaultUserStyle) sdoc - --- showSDocUnsafe is unsafe, because `unsafeGlobalDynFlags` might not be --- initialised yet. -showSDocUnsafe :: SDoc -> String -showSDocUnsafe sdoc = showSDoc unsafeGlobalDynFlags sdoc - -showPpr :: Outputable a => DynFlags -> a -> String -showPpr dflags thing = showSDoc dflags (ppr thing) - -showSDocUnqual :: DynFlags -> SDoc -> String --- Only used by Haddock -showSDocUnqual dflags sdoc = showSDoc dflags sdoc - -showSDocForUser :: DynFlags -> PrintUnqualified -> SDoc -> String --- Allows caller to specify the PrintUnqualified to use -showSDocForUser dflags unqual doc - = renderWithStyle (initSDocContext dflags (mkUserStyle unqual AllTheWay)) doc - -showSDocDump :: DynFlags -> SDoc -> String -showSDocDump dflags d = renderWithStyle (initSDocContext dflags defaultDumpStyle) d - -showSDocDebug :: DynFlags -> SDoc -> String -showSDocDebug dflags d = renderWithStyle ctx d - where - ctx = (initSDocContext dflags defaultDumpStyle) - { sdocPprDebug = True - } - renderWithStyle :: SDocContext -> SDoc -> String renderWithStyle ctx sdoc = let s = Pretty.style{ Pretty.mode = PageMode, @@ -566,17 +506,6 @@ showSDocOneLine ctx d Pretty.renderStyle s $ runSDoc d ctx -showSDocDumpOneLine :: DynFlags -> SDoc -> String -showSDocDumpOneLine dflags d - = let s = Pretty.style{ Pretty.mode = OneLineMode, - Pretty.lineLength = irrelevantNCols } in - Pretty.renderStyle s $ - runSDoc d (initSDocContext dflags defaultDumpStyle) - -irrelevantNCols :: Int --- Used for OneLineMode and LeftMode when number of cols isn't used -irrelevantNCols = 1 - isEmpty :: SDocContext -> SDoc -> Bool isEmpty ctx sdoc = Pretty.isEmpty $ runSDoc sdoc (ctx {sdocPprDebug = True}) @@ -641,10 +570,11 @@ quotes d = sdocOption sdocCanUseUnicode $ \case False -> SDoc $ \sty -> let pp_d = runSDoc d sty str = show pp_d - in case (str, lastMaybe str) of - (_, Just '\'') -> pp_d - ('\'' : _, _) -> pp_d - _other -> Pretty.quotes pp_d + in case str of + [] -> Pretty.quotes pp_d + '\'' : _ -> pp_d + _ | '\'' <- last str -> pp_d + | otherwise -> Pretty.quotes pp_d semi, comma, colon, equals, space, dcolon, underscore, dot, vbar :: SDoc arrow, lollipop, larrow, darrow, arrowt, larrowt, arrowtt, larrowtt :: SDoc @@ -1210,96 +1140,3 @@ doOrDoes _ = text "do" itsOrTheir :: [a] -> SDoc itsOrTheir [_] = text "its" itsOrTheir _ = text "their" - -{- -************************************************************************ -* * -\subsection{Error handling} -* * -************************************************************************ --} - -callStackDoc :: HasCallStack => SDoc -callStackDoc = - hang (text "Call stack:") - 4 (vcat $ map text $ lines (prettyCallStack callStack)) - -pprPanic :: HasCallStack => String -> SDoc -> a --- ^ Throw an exception saying "bug in GHC" -pprPanic s doc = panicDoc s (doc $$ callStackDoc) - -pprSorry :: String -> SDoc -> a --- ^ Throw an exception saying "this isn't finished yet" -pprSorry = sorryDoc - - -pprPgmError :: String -> SDoc -> a --- ^ Throw an exception saying "bug in pgm being compiled" (used for unusual program errors) -pprPgmError = pgmErrorDoc - -pprTraceDebug :: String -> SDoc -> a -> a -pprTraceDebug str doc x - | debugIsOn && hasPprDebug unsafeGlobalDynFlags = pprTrace str doc x - | otherwise = x - --- | If debug output is on, show some 'SDoc' on the screen -pprTrace :: String -> SDoc -> a -> a -pprTrace str doc x = pprTraceWithFlags unsafeGlobalDynFlags str doc x - --- | If debug output is on, show some 'SDoc' on the screen -pprTraceWithFlags :: DynFlags -> String -> SDoc -> a -> a -pprTraceWithFlags dflags str doc x - | hasNoDebugOutput dflags = x - | otherwise = pprDebugAndThen dflags trace (text str) doc x - -pprTraceM :: Applicative f => String -> SDoc -> f () -pprTraceM str doc = pprTrace str doc (pure ()) - --- | @pprTraceWith desc f x@ is equivalent to @pprTrace desc (f x) x@. --- This allows you to print details from the returned value as well as from --- ambient variables. -pprTraceWith :: String -> (a -> SDoc) -> a -> a -pprTraceWith desc f x = pprTrace desc (f x) x - --- | @pprTraceIt desc x@ is equivalent to @pprTrace desc (ppr x) x@ -pprTraceIt :: Outputable a => String -> a -> a -pprTraceIt desc x = pprTraceWith desc ppr x - --- | @pprTraceException desc x action@ runs action, printing a message --- if it throws an exception. -pprTraceException :: ExceptionMonad m => String -> SDoc -> m a -> m a -pprTraceException heading doc = - handleGhcException $ \exc -> liftIO $ do - putStrLn $ showSDocDump unsafeGlobalDynFlags (sep [text heading, nest 2 doc]) - throwGhcExceptionIO exc - --- | If debug output is on, show some 'SDoc' on the screen along --- with a call stack when available. -pprSTrace :: HasCallStack => SDoc -> a -> a -pprSTrace doc = pprTrace "" (doc $$ callStackDoc) - -warnPprTrace :: HasCallStack => Bool -> String -> Int -> SDoc -> a -> a --- ^ Just warn about an assertion failure, recording the given file and line number. --- Should typically be accessed with the WARN macros -warnPprTrace _ _ _ _ x | not debugIsOn = x -warnPprTrace _ _file _line _msg x - | hasNoDebugOutput unsafeGlobalDynFlags = x -warnPprTrace False _file _line _msg x = x -warnPprTrace True file line msg x - = pprDebugAndThen unsafeGlobalDynFlags trace heading - (msg $$ callStackDoc ) - x - where - heading = hsep [text "WARNING: file", text file <> comma, text "line", int line] - --- | Panic with an assertion failure, recording the given file and --- line number. Should typically be accessed with the ASSERT family of macros -assertPprPanic :: HasCallStack => String -> Int -> SDoc -> a -assertPprPanic _file _line msg - = pprPanic "ASSERT failed!" msg - -pprDebugAndThen :: DynFlags -> (String -> a) -> SDoc -> SDoc -> a -pprDebugAndThen dflags cont heading pretty_msg - = cont (showSDocDump dflags doc) - where - doc = sep [heading, nest 2 pretty_msg] diff --git a/compiler/GHC/Utils/Outputable.hs-boot b/compiler/GHC/Utils/Outputable.hs-boot index dee3d2039c..e99b5e4f15 100644 --- a/compiler/GHC/Utils/Outputable.hs-boot +++ b/compiler/GHC/Utils/Outputable.hs-boot @@ -1,14 +1,9 @@ module GHC.Utils.Outputable where import GHC.Prelude -import GHC.Stack( HasCallStack ) data SDoc data PprStyle data SDocContext -showSDocUnsafe :: SDoc -> String - -warnPprTrace :: HasCallStack => Bool -> String -> Int -> SDoc -> a -> a - text :: String -> SDoc diff --git a/compiler/GHC/Utils/Panic.hs b/compiler/GHC/Utils/Panic.hs index 551e9337de..9f7d81abab 100644 --- a/compiler/GHC/Utils/Panic.hs +++ b/compiler/GHC/Utils/Panic.hs @@ -10,27 +10,45 @@ -- -- It's hard to put these functions anywhere else without causing -- some unnecessary loops in the module dependency graph. -module GHC.Utils.Panic ( - GhcException(..), showGhcException, - throwGhcException, throwGhcExceptionIO, - handleGhcException, - GHC.Utils.Panic.Plain.progName, - pgmError, - - panic, sorry, assertPanic, trace, - panicDoc, sorryDoc, pgmErrorDoc, - - cmdLineError, cmdLineErrorIO, - - Exception.Exception(..), showException, safeShowException, - try, tryMost, throwTo, - - withSignalHandlers, -) where +module GHC.Utils.Panic + ( GhcException(..) + , showGhcException + , showGhcExceptionUnsafe + , throwGhcException + , throwGhcExceptionIO + , handleGhcException + + , GHC.Utils.Panic.Plain.progName + , pgmError + , panic + , pprPanic + , assertPanic + , assertPprPanic + , sorry + , trace + , panicDoc + , sorryDoc + , pgmErrorDoc + , cmdLineError + , cmdLineErrorIO + , callStackDoc + + , Exception.Exception(..) + , showException + , safeShowException + , try + , tryMost + , throwTo + , withSignalHandlers + ) +where import GHC.Prelude +import GHC.Stack -import {-# SOURCE #-} GHC.Utils.Outputable (SDoc, showSDocUnsafe) +import GHC.Utils.Outputable +import {-# SOURCE #-} GHC.Driver.Session (DynFlags, unsafeGlobalDynFlags) +import {-# SOURCE #-} GHC.Driver.Ppr (showSDoc) import GHC.Utils.Panic.Plain import GHC.Utils.Exception as Exception @@ -105,9 +123,9 @@ instance Exception GhcException where | otherwise = Nothing instance Show GhcException where - showsPrec _ e@(ProgramError _) = showGhcException e - showsPrec _ e@(CmdLineError _) = showString "<command line>: " . showGhcException e - showsPrec _ e = showString progName . showString ": " . showGhcException e + showsPrec _ e@(ProgramError _) = showGhcExceptionUnsafe e + showsPrec _ e@(CmdLineError _) = showString "<command line>: " . showGhcExceptionUnsafe e + showsPrec _ e = showString progName . showString ": " . showGhcExceptionUnsafe e -- | Show an exception as a string. showException :: Exception e => e -> String @@ -132,8 +150,12 @@ safeShowException e = do -- uninitialized fields if invoked before 'GHC.initGhcMonad' has been called. -- If the error message to be printed includes a pretty-printer document -- which forces one of these fields this call may bottom. -showGhcException :: GhcException -> ShowS -showGhcException = showPlainGhcException . \case +showGhcExceptionUnsafe :: GhcException -> ShowS +showGhcExceptionUnsafe = showGhcException unsafeGlobalDynFlags + +-- | Append a description of the given exception to this string. +showGhcException :: DynFlags -> GhcException -> ShowS +showGhcException dflags = showPlainGhcException . \case Signal n -> PlainSignal n UsageError str -> PlainUsageError str CmdLineError str -> PlainCmdLineError str @@ -143,11 +165,11 @@ showGhcException = showPlainGhcException . \case ProgramError str -> PlainProgramError str PprPanic str sdoc -> PlainPanic $ - concat [str, "\n\n", showSDocUnsafe sdoc] + concat [str, "\n\n", showSDoc dflags sdoc] PprSorry str sdoc -> PlainProgramError $ - concat [str, "\n\n", showSDocUnsafe sdoc] + concat [str, "\n\n", showSDoc dflags sdoc] PprProgramError str sdoc -> PlainProgramError $ - concat [str, "\n\n", showSDocUnsafe sdoc] + concat [str, "\n\n", showSDoc dflags sdoc] throwGhcException :: GhcException -> a throwGhcException = Exception.throw @@ -158,9 +180,20 @@ throwGhcExceptionIO = Exception.throwIO handleGhcException :: ExceptionMonad m => (GhcException -> m a) -> m a -> m a handleGhcException = MC.handle -panicDoc, sorryDoc, pgmErrorDoc :: String -> SDoc -> a -panicDoc x doc = throwGhcException (PprPanic x doc) -sorryDoc x doc = throwGhcException (PprSorry x doc) +-- | Throw an exception saying "bug in GHC" with a callstack +pprPanic :: HasCallStack => String -> SDoc -> a +pprPanic s doc = panicDoc s (doc $$ callStackDoc) + +-- | Throw an exception saying "bug in GHC" +panicDoc :: String -> SDoc -> a +panicDoc x doc = throwGhcException (PprPanic x doc) + +-- | Throw an exception saying "this isn't finished yet" +sorryDoc :: String -> SDoc -> a +sorryDoc x doc = throwGhcException (PprSorry x doc) + +-- | Throw an exception saying "bug in pgm being compiled" (used for unusual program errors) +pgmErrorDoc :: String -> SDoc -> a pgmErrorDoc x doc = throwGhcException (PprProgramError x doc) -- | Like try, but pass through UserInterrupt and Panic exceptions. @@ -258,3 +291,14 @@ withSignalHandlers act = do mayInstallHandlers act `MC.finally` mayUninstallHandlers + +callStackDoc :: HasCallStack => SDoc +callStackDoc = + hang (text "Call stack:") + 4 (vcat $ map text $ lines (prettyCallStack callStack)) + +-- | Panic with an assertion failure, recording the given file and +-- line number. Should typically be accessed with the ASSERT family of macros +assertPprPanic :: HasCallStack => String -> Int -> SDoc -> a +assertPprPanic _file _line msg + = pprPanic "ASSERT failed!" msg |