Separate branch and statement splitting #1657
Draft
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.
What I did
I ran into some issues as described in #1087 and had a look into the code. I believe that I found the solution in order to show all functions of a contract and if they have been fully covered.
Related issue: #1087, #1642, #1562, #1536
How I did it
I created a sample project using
brownie bake token
.In
brownie
version 1.19.2 when you runbrownie test -C
, the coverage report shows only results fortransferFrom
and_transfer
.approve
,balanceOf
andtransfer
are not shown in the results.So I went down the rabbit hole and realized, that the modified code has the following statement:
branches.keys() & statements.keys()
The
approve
function has no branches and is therefore not included in thebranches.keys()
list.By using the
&
, we are excluding functions which do not contain branches.I saw that version 1.14.6 did not have the issue. So, I took the code from v1.14.6 and it all works now.
How to verify it
See the previous section.
Checklist