Fix regressions in logical operator handling in const exprs #8721
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.
Fixes #8711
After #7339, some valid const expressions would be rejected because the LHS does not resolve directly to an
ir::Literal. This fixes that by using proper expression "evaluation" machinery. (I put evaluation in quotes, because it seems more like a lookup to me -- it's just retrieving already-resolved constant values.)There is a bunch of duplication in the
eval_expr_to_{u32,bool}code, but I decided not to try and refactor that at the same time as fixing a regression.Testing
Enables some CTS tests and updates some snapshots tests.
Squash or Rebase? Squash
Checklist
cargo fmt.taplo format.cargo clippy --tests. If applicable, add:--target wasm32-unknown-unknowncargo xtask testto run tests.CHANGELOG.mdentry.