Debug info sequence points are not generated for some kind of statements. For example, calls to interops, builtins and syscalls don't have their own sequence points. Neotest coverage uses sequents points for coverage calculation, and missing points lead to untracked blocks of code in the contract:
Known cases are:
Current Behavior
Debug info sequence points are not generated for some kind of statements. For example, calls to interops, builtins and syscalls don't have their own sequence points. Neotest coverage uses sequents points for coverage calculation, and missing points lead to untracked blocks of code in the contract: Known cases are:
range
conditionsif
statementsExpected Behavior
Cover with sequence points as much as possible.
Possible Solution
We have a method that saves sequence points of the provided AST node to the debug info: https://github.com/nspcc-dev/neo-go/blob/86ed214e8a53859fd85482370be20eb613c61419/pkg/compiler/debug.go#L128
This method should be called everywhere where sequence point is required.