Report assertion errors at the assertion keyword #6012
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 was changed?
When asserting a condition, do not use just condition's origin as an origin for that condition, but also the context in which it occurs. For example, let the origin be
|e|nsures <expr>
instead of<expr>
, where the bars denote the center. This way, the origin for failing to prove the assertion is different than for failing to prove the condition's precondition, which is<expr>
.The most interesting changes are for calc statements. When the comparison between two expressions fails, the origin changes as follows. The
|
indicates the center and the^
s indicate the range.Old:
New:
When there is an explicit operator, it is used as the center:
How has this been tested?
By submitting this pull request, I confirm that my contribution is made under the terms of the MIT license.