fix: forget() and scoped assumptions now properly clear values #280
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.
Summary
forget()now properly clears values from the evaluation context when a symbol is forgottenpopScope()- values set by assumptions are properly scopedChanges
Bug #24: forget() Doesn't Clear Assumed Values
After
ce.assume(['Equal', 'x', 5])andce.forget('x'), the symbol now correctly evaluates to'x'instead of persisting as5.Bug #25: Scoped Assumptions Don't Clean Up
Assumptions made inside
pushScope()/popScope()blocks now properly clean up when the scope exits.Implementation
_setCurrentContextValue()method to store values directly in the current contextassumeEquality()to use scoped value storageforget()to delete values from all context framesTest plan
test/compute-engine/bug-fixes.test.tswith tests for both bugs