Provide details in `plusSimplCount` errors
authorJosh Meredith <joshmeredith2008@gmail.com>
Tue, 28 May 2019 11:15:56 +0000 (21:15 +1000)
committerMarge Bot <ben+marge-bot@smart-cactus.org>
Wed, 29 May 2019 14:43:03 +0000 (10:43 -0400)
compiler/simplCore/CoreMonad.hs

index 013b141..3a2277a 100644 (file)
@@ -78,6 +78,7 @@ import qualified Data.Map.Strict as MapStrict
 import Data.Word
 import Control.Monad
 import Control.Applicative ( Alternative(..) )
+import Panic (throwGhcException, GhcException(..))
 
 {-
 ************************************************************************
@@ -314,7 +315,13 @@ plusSimplCount sc1@(SimplCount { ticks = tks1, details = dts1 })
              | otherwise       = sc2
 
 plusSimplCount (VerySimplCount n) (VerySimplCount m) = VerySimplCount (n+m)
-plusSimplCount _                  _                  = panic "plusSimplCount"
+plusSimplCount lhs                rhs                =
+  throwGhcException . PprProgramError "plusSimplCount" $ vcat
+    [ text "lhs"
+    , pprSimplCount lhs
+    , text "rhs"
+    , pprSimplCount rhs
+    ]
        -- We use one or the other consistently
 
 pprSimplCount (VerySimplCount n) = text "Total ticks:" <+> int n