Case statements should be counted as branches #493
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The readme mentions that branch coverage includes if/else, pattern matching, partial functions and try/catch/finally. But currently, it only supports if/else and try/catch/finally. All the
case
statements are not covered as branches. This means pattern matching, partial functions, catch blocks and any ad-hoc match statement that functionally acts as an if/else block.This change follows what was done in the early versions of the repo and instruments the case statements as branches. Since case statements are also used as sentinels, it is necessary to parameterize the
transformCases
helper to distinguish when to actually instrument with branching or not.This addresses #96 which has been open for quite a while already.