-
Notifications
You must be signed in to change notification settings - Fork 274
replace_symbolt with bindings #6827
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
kroening
commented
Apr 24, 2022
- Each commit message has a non-empty body, explaining why the change was made.
- n/a Methods or procedures I have added are documented, following the guidelines provided in CODING_STANDARD.md.
- n/a The feature or user visible behaviour I have added or modified has been documented in the User Guide in doc/cprover-manual/
- Regression or unit tests are included, or existing tests cover the modified code (in this case I have detailed which ones those are in the commit message).
- n/a My commit message includes data points confirming performance improvements (if claimed).
- My PR is restricted to a single feature or bugfix.
- n/a White-space or formatting changes outside the feature-related changed lines are in commits of their own.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!! Would it make sense to explicitly document this behaviour in replace_symbol.h
?
I believe the failing tests just document that we aren't really using bindings the way they are supposed to work, but instead introduce symbols for quantified expressions in the front-end. |
The failures focus on the contracts code, which I don't think I can fix. May I suggest merging the variant in #6807 to unblock. |
I'll create a patch for |
replace_symbolt will cease to support bound variables, which presently is not well documented behaviour. See diffblue#6827 for upcoming changes.
Done in #6828. |
…tiate CONTRACTS: do not rely on replace_symbol for bound variables [blocks: #6827]
This adds a non-const variant of to_binding_expr.
As identified in #6810, to_binding_expr could also cover array_comprehension expressions.
This makes replace_symbolt aware of bound symbols, which may hide the symbols that are being replaced.
71434a7
to
e46d2f3
Compare
Many thanks -- note my comment there. It may be possible to simplify that code further. |
Codecov Report
@@ Coverage Diff @@
## develop #6827 +/- ##
========================================
Coverage 77.01% 77.01%
========================================
Files 1594 1594
Lines 184415 184436 +21
========================================
+ Hits 142019 142038 +19
- Misses 42396 42398 +2
Continue to review full report at Codecov.
|