- let tabStop = 1 -- <tab> counts as a normal char in GHC's location ranges.
-
- createDirectoryIfMissing True hpc_dir
-
- mixCreate hpc_dir mod_name (Mix orig_file modTime tabStop $ reverse $ mixEntries st)
+ when opt_Hpc $ do
+ let hpc_dir = hpcDir dflags
+ let tabStop = 1 -- <tab> counts as a normal char in GHC's location ranges.
+ createDirectoryIfMissing True hpc_dir
+ modTime <- getModificationTime' orig_file
+ let entries' = [ (hpcPos, box)
+ | (span,_,box) <- entries, Just hpcPos <- [mkHpcPos span] ]
+ mixCreate hpc_dir mod_name (Mix orig_file modTime tabStop entries')
+
+ -- Todo: use proper src span type
+ breakArray <- newBreakArray $ length entries
+
+ let locsTicks = listArray (0,tickBoxCount st-1)
+ [ span | (span,_,_) <- entries ]
+ varsTicks = listArray (0,tickBoxCount st-1)
+ [ vars | (_,vars,_) <- entries ]
+ modBreaks = emptyModBreaks
+ { modBreaks_flags = breakArray
+ , modBreaks_locs = locsTicks
+ , modBreaks_vars = varsTicks
+ }