diff options
| author | bors <bors@rust-lang.org> | 2023-10-12 21:33:31 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-10-12 21:33:31 +0000 |
| commit | e20cb7702117f1ad8127a16406ba9edd230c4f65 (patch) | |
| tree | f53c0feda36d436436ab0f1213c8ef7071c0daae /compiler/rustc_codegen_llvm/src | |
| parent | df4379b4eb5357263f0cf75475953f9b5c48c31f (diff) | |
| parent | c1b29b338dc37f96f0695e393743ce35508d3704 (diff) | |
| download | rust-e20cb7702117f1ad8127a16406ba9edd230c4f65.tar.gz rust-e20cb7702117f1ad8127a16406ba9edd230c4f65.zip | |
Auto merge of #116391 - Nadrieril:constructorset, r=cjgillot
exhaustiveness: Rework constructor splitting `SplitWildcard` was pretty opaque. I replaced it with a more legible abstraction: `ConstructorSet` represents the set of constructors for patterns of a given type. This clarifies responsibilities: `ConstructorSet` handles one clear task, and diagnostic-related shenanigans can be done separately. I'm quite excited, I had has this in mind for years but could never quite introduce it. This opens up possibilities, including type-specific optimisations (like using a `FxHashSet` to collect enum variants, which had been [hackily attempted some years ago](https://github.com/rust-lang/rust/pull/76918)), my one-pass rewrite (https://github.com/rust-lang/rust/pull/116042), and future librarification.
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
