diff options
author | bors <bors@rust-lang.org> | 2021-09-29 00:16:17 +0000 |
---|---|---|
committer | bors <bors@rust-lang.org> | 2021-09-29 00:16:17 +0000 |
commit | 6df1d82869d06b88ff413e63a1e8efbb311e3b5c (patch) | |
tree | 22d0ccf49286fc65743e82737db0f731b8f504af /tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs | |
parent | 8f8092cc32ec171becef8ceacec7dbb06c5d7d7e (diff) | |
parent | b7e358ee17a5794603b2324858de078c4586acfc (diff) | |
download | rust-6df1d82869d06b88ff413e63a1e8efbb311e3b5c.tar.gz |
Auto merge of #88950 - Nadrieril:deconstruct-pat, r=oli-obk
Add an intermediate representation to exhaustiveness checking
The exhaustiveness checking algorithm keeps deconstructing patterns into a `Constructor` and some `Fields`, but does so a bit all over the place. This PR introduces a new representation for patterns that already has that information, so we only compute it once at the start.
I find this makes code easier to follow. In particular `DeconstructedPat::specialize` is a lot simpler than what happened before, and more closely matches the description of the algorithm. I'm also hoping this could help for the project of librarifying exhaustiveness for rust_analyzer since it decouples the algorithm from `rustc_middle::Pat`.
Diffstat (limited to 'tests/codegen/src-hash-algorithm/src-hash-algorithm-sha1.rs')
0 files changed, 0 insertions, 0 deletions