Introduce the aux data field to Symbolic Value #50
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
This is determined statically in the type of the symbolic value, allowing us to encode additional information in the values for different stages of the analyzer.
In particular, it is designed to ensure that during execution we use semantic equality for values, while during type checking we use identity equality for values, where that identity equality is based on the associated type variable.
This means that our type checker will no longer equate values that are structurally equal but semantically different for typing purposes, and hopefully give us more accurate results.
Details
Please check the semantic equivalence of the refactor.
Checklist