-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
Description
Work branch: https://github.com/guillaume-nargeot/codecov-haskell/tree/expression-level-coverage
Some initial changes were made in a420f6f and 2c8ca35 to propagate additional information required to compute expression level coverage.
The remaining work consist in performing the following transformations:
- split coverage entries which cover multiple lines into ones that cover only a single line
- in the case of TopLevelEntry, discard all but the first line in case it is hit at least once
- splitted lines will have their start column adjusted to the first non-blank character of the covered code
- "unnest" coverage entries (see this gist for details)
Below are examples html outputs produced by hpc, which is what codecov-haskell should try to reproduce.
These html reports were generated for the same peace of code, with differing variations of coverage.
Coverage when tested with takeUntil (> 1) [] ~=? []:

Coverage when tested with takeUntil (> 1) [2] ~=? [2]:

Coverage when tested with takeUntil (> 1) [1, 2] ~=? [1, 2]:

