X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Futils%2FOutputable.lhs;h=e178e99f0ddd7237a54a6c5854eb0f16270e6423;hb=38113ad2138652700dc4461cd2d7ab073f9716ac;hp=37f116cfe0e31717c13e9eb0706e47237629832a;hpb=98bef4db89b57b01c8f557a027dbeb8ae72407c9;p=ghc-hetmet.git diff --git a/compiler/utils/Outputable.lhs b/compiler/utils/Outputable.lhs index 37f116c..e178e99 100644 --- a/compiler/utils/Outputable.lhs +++ b/compiler/utils/Outputable.lhs @@ -59,9 +59,9 @@ module Outputable ( mkUserStyle, cmdlineParserStyle, Depth(..), -- * Error handling and debugging utilities - pprPanic, assertPprPanic, pprPanicFastInt, pprPgmError, + pprPanic, pprSorry, assertPprPanic, pprPanicFastInt, pprPgmError, pprTrace, warnPprTrace, - trace, pgmError, panic, panicFastInt, assertPanic + trace, pgmError, panic, sorry, panicFastInt, assertPanic ) where import {-# SOURCE #-} Module( Module, ModuleName, moduleName ) @@ -82,12 +82,12 @@ import System.IO ( Handle, stderr, stdout, hFlush ) import System.FilePath -#if __GLASGOW_HASKELL__ >= 700 -import GHC.Show ( showMultiLineString ) +#if __GLASGOW_HASKELL__ >= 701 +import GHC.Show ( showMultiLineString ) #else showMultiLineString :: String -> [String] -- Crude version -showMultiLineString s = [s] +showMultiLineString s = [ showList s "" ] #endif \end{code} @@ -779,27 +779,35 @@ plural _ = char 's' %************************************************************************ \begin{code} + pprPanic :: String -> SDoc -> a -- ^ Throw an exception saying "bug in GHC" -pprPgmError :: String -> SDoc -> a --- ^ Throw an exception saying "bug in pgm being compiled" (used for unusual program errors) -pprTrace :: String -> SDoc -> a -> a --- ^ If debug output is on, show some 'SDoc' on the screen - pprPanic = pprAndThen panic +pprSorry :: String -> SDoc -> a +-- ^ Throw an exceptio saying "this isn't finished yet" +pprSorry = pprAndThen sorry + + +pprPgmError :: String -> SDoc -> a +-- ^ Throw an exception saying "bug in pgm being compiled" (used for unusual program errors) pprPgmError = pprAndThen pgmError + +pprTrace :: String -> SDoc -> a -> a +-- ^ If debug output is on, show some 'SDoc' on the screen pprTrace str doc x | opt_NoDebugOutput = x | otherwise = pprAndThen trace str doc x + pprPanicFastInt :: String -> SDoc -> FastInt -- ^ Specialization of pprPanic that can be safely used with 'FastInt' pprPanicFastInt heading pretty_msg = panicFastInt (show (doc PprDebug)) where doc = text heading <+> pretty_msg + pprAndThen :: (String -> a) -> String -> SDoc -> a pprAndThen cont heading pretty_msg = cont (show (doc PprDebug)) where