You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Only the first error in a method is reported; later errors in the same method are hidden #428
Impact: real bugs are hidden (false negatives): after the first error in a method, later errors in the same method are not reported, so fixing one bug and re-running is the only way to see the next.
Description
Errors in different methods are all reported, but within one method verification stops at the first error. In one of our benchmark exercises (E_A2_07_PortPairBinder, modelled on a real port-binding bug), two ServerSockets created already bound are bound again in the same method (bulk.bind(...) and health.bind(...)); only the first is reported.
Expected: two State Refinement Errors, at first.readLine() and at second.reset().
Actual: only the first:
State Refinement Error: found closed(first²¹) but expected open(first²¹) || marked(first²¹)
9 | first.readLine(); // error 1: reported
Control: with the two calls in two methods, both are reported.
Suggestion: after reporting a refused call, continue as if the call had succeeded (assume its to state, or the precondition), so later calls are checked against a sensible state rather than cascading errors from the first.
Activity