summaryrefslogtreecommitdiff
path: root/compiler/main/HscStats.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/main/HscStats.hs')
-rw-r--r--compiler/main/HscStats.hs8
1 files changed, 5 insertions, 3 deletions
diff --git a/compiler/main/HscStats.hs b/compiler/main/HscStats.hs
index 78020f72bc..241dfd8095 100644
--- a/compiler/main/HscStats.hs
+++ b/compiler/main/HscStats.hs
@@ -16,6 +16,7 @@ import SrcLoc
import Util
import Data.Char
+import Data.Foldable (foldl')
-- | Source Statistics
ppSourceStats :: Bool -> Located (HsModule RdrName) -> SDoc
@@ -128,9 +129,10 @@ ppSourceStats short (L _ (HsModule _ exports imports ldecls _ _))
spec_info (Just (True, _)) = (0,0,0,0,0,0,1)
data_info (DataDecl { tcdDataDefn = HsDataDefn { dd_cons = cs
- , dd_derivs = derivs}})
- = (length cs, case derivs of Nothing -> 0
- Just (L _ ds) -> length ds)
+ , dd_derivs = L _ derivs}})
+ = ( length cs
+ , foldl' (\s dc -> length (deriv_clause_tys $ unLoc dc) + s)
+ 0 derivs )
data_info _ = (0,0)
class_info decl@(ClassDecl {})