diff --git a/src/HpcUtils.hs b/src/HpcUtils.hs index d4cee8dd706c94bbc278d574b78750d198f4bb00..a3ee5a66bc273171db5399086d3a3db2011720ea 100644 --- a/src/HpcUtils.hs +++ b/src/HpcUtils.hs @@ -15,10 +15,11 @@ dropWhileEndLE p = foldr (\x r -> if null r && p x then [] else x : r) [] grabHpcPos :: Map.Map Int String -> HpcPos -> String grabHpcPos hsMap srcspan = case lns of + [] -> error "grabHpcPos: invalid source span" [ln] -> take ((c2 - c1) + 1) $ drop (c1 - 1) ln - _ -> - let lns1 = drop (c1 - 1) (head lns) : tail lns + hd : tl -> + let lns1 = drop (c1 - 1) hd : tl lns2 = init lns1 ++ [take (c2 + 1) (last lns1)] in foldl1 (\xs ys -> xs ++ "\n" ++ ys) lns2 where