fix(naga): Improve validation of non-constructible types #8873
+588
−100
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.
Somewhat a follow-up to #8741. Fixes #4720, and fixes the test cases in #7393, but not the issue itself.
After studying the spec more and the related CTS test cases, I think the necessary zero-value validation can be simplified to "type must be constructible". So this changes the zero-value validation from #8741 to operate that way.
Also adds other validation in the WGSL front-end for non-constructible types in places they are not permitted.
This change is adjacent to the template-list discovery change (#8386), and may have some conflicts, but as best I could tell the two changes don't directly overlap.
Testing
Enables CTS tests and adds naga
wgsl_errorsandvalidationtests.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.