bors e20cb77021 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.
2023-10-12 21:33:31 +00:00
..
2023-05-24 19:35:59 -03:00
2023-05-24 19:35:59 -03:00
2023-07-01 02:28:15 -04:00
2023-09-07 11:07:33 +08:00
2023-09-07 11:07:33 +08:00
2023-07-17 22:06:32 +00:00
2023-07-17 22:06:32 +00:00
2023-07-17 22:06:32 +00:00
2023-07-28 11:20:11 +00:00