fix: add new BrilligFunctionUnsatisfiedConstrain
resolution error variant
#6
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.
this is an alternate solution to #5
it has more effects outside the scope of the debugger, but it feels more accurate
Description
When an assertion fails on Brillig mode, the debugger fails to indicate the user where the program failed
while when running on ACIR mode it provides enough information 👇
Summary
Context
assert
constraints are translated as "jump to trap" if the condition is not met when running in Brillig modeChanges
OpcodeResolutionError::BrilligFunctionUnsatisfiedConstrain
to represent failed constraints on BrilligTrap
failureACVM.map_brillig_error
fromOpcodeResolutionError::BrilligFunctionFailed
toOpcodeResolutionError::BrilligFunctionUnsatisfiedConstrain
since assertion errors will now fail with the latterBrilligFunctionFailed
for the other casesObservations
TODO:
should we return the solver ownership to the brillig context in all Err scenarios>?Documentation
Check one:
PR Checklist
cargo fmt
on default settings.