Repository navigation
Point out the argument that decided a state a call does not allow - #419
Merged
Merged
Conversation
CatarinaGamboa
force-pushed
the
feat/error-categories
branch
from
October 24, 2026 21:19
c1673bb to
91055a1
Compare
CatarinaGamboa
force-pushed
the
feat/argument-picks-state
branch
from
October 24, 2026 21:19
b8cd48c to
4c22636
Compare
CatarinaGamboa
force-pushed
the
feat/error-categories
branch
from
October 24, 2026 21:41
91055a1 to
40e993a
Compare
CatarinaGamboa
force-pushed
the
feat/argument-picks-state
branch
from
October 24, 2026 21:41
4c22636 to
5988837
Compare
Each object now remembers the last call that changed its state, through constructors and state-preserving calls. When a call fails, the verifier follows that chain back to the last call that changed a state set the failing call checks. If that call's transition depends on its arguments or result, and the SMT solver finds values for which the failing call would have been allowed, the error gets the "Argument picks the state" category and a hint with those values. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CatarinaGamboa
force-pushed
the
feat/argument-picks-state
branch
from
October 24, 2026 22:31
5988837 to
c63ff78
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Description
Adds the Argument picks the state category (codebook C3.1) and a hint for it. These errors had no useful hint before: a transition that depends on an argument isn't part of the state machine, so the existing hints can't explain it.
StateChange). Method calls and constructors record their own call, and state-preserving calls keep the previous record. A join of branches records nothing, which ends the search below.DecidingArgumentfollows that chain back to the last call that changed a state set the failing call checks. If that call's transition depends on its arguments or result, the SMT solver looks for values that would have allowed the failing call: the state before the call, the call'stowith its parameters left free, and the failing call'sfrom. The model gives the values for the hint.ErrorArgumentCannotPickTheState).Example
Category: Argument picks the state (C3.1).
Measured against the codebook
Same runs as #418:
The category now finds 12 of the 15 C3.1 cases. The ones it misses:
fromthat changes no state;Type of change
Checklist
ErrorArgumentPicksTheState,ErrorConstructorArgumentPicksTheStateandErrorArgumentPicksTheStateEarlier(the decider is found past a call on another state set);ErrorArgumentCannotPickTheState(no value helps, so no category change);TestErrorCategoriesandTestStateHints.mvn testpasses locally🤖 Generated with Claude Code