Nadrieril
c6aa16c469
Use derivative
for better derive bounds
2023-12-23 00:04:20 +01:00
Nadrieril
2a87bae48d
Reveal opaque types in exhaustiveness checking
2023-12-20 14:43:00 +01:00
bors
3a539c0889
Auto merge of #118842 - Nadrieril:librarify-further, r=compiler-errors
...
Make exhaustiveness usable outside of rustc
With this PR, `rustc_pattern_analysis` compiles on stable (with the `stable` feature)! `rust-analyzer` will be able to use it to provide match-related diagnostics and refactors.
Two questions:
- Should I name the feature `nightly` instead of `rustc` for consistency with other crates? `rustc` makes more sense imo.
- `typed-arena` is an optional dependency but tidy made me add it to the allow-list anyway. Can I avoid that somehow?
r? `@compiler-errors`
2023-12-19 17:15:04 +00:00
Matthias Krüger
74d81d15b4
NFC: do not clone types that are copy
2023-12-15 23:19:51 +01:00
Nadrieril
3016c29628
s/MatchCx/TypeCx/
2023-12-15 17:26:19 +01:00
Nadrieril
4bcf66f875
Introduce MatchCtxt
2023-12-15 16:58:38 +01:00
Nadrieril
60ea14bfaa
s/PatCtxt/PlaceCtxt/
2023-12-15 16:58:38 +01:00
Nadrieril
1e89a38423
pattern_analysis
doesn't need to know what spans are
2023-12-15 16:58:38 +01:00
Nadrieril
8c5e89907c
Address review comments
2023-12-15 16:58:38 +01:00
Nadrieril
e10b165775
s/RustcCtxt/RustcMatchCheckCtxt/
2023-12-15 16:58:38 +01:00
Nadrieril
63c5b008e1
Make the crate compile on stable
2023-12-15 16:58:38 +01:00
Nadrieril
e646c9f723
Make the rustc_data_structures
dependency optional
2023-12-15 16:58:38 +01:00
Nadrieril
16bd6ac3ed
Gate rustc-specific code under a feature
2023-12-15 16:58:37 +01:00
Nadrieril
42f4393824
Iron out last rustc-specific details
2023-12-15 16:58:37 +01:00
Nadrieril
cb622f3994
Name rustc-specific things "rustc"
2023-12-15 16:58:37 +01:00
Nadrieril
3d7c4df326
Abstract MatchCheckCtxt
into a trait
2023-12-15 16:58:36 +01:00
Nadrieril
3ad76f9325
Disentangle the arena from MatchCheckCtxt
2023-12-15 16:57:36 +01:00
Nadrieril
081c3dcf43
Remove all matching on ty.kind()
outside cx
2023-12-15 16:57:36 +01:00
Nadrieril
b111b2e839
Split Single
ctor into more specific variants
2023-12-15 16:57:36 +01:00
Matthias Krüger
2a1acc26a0
Update compiler/rustc_pattern_analysis/src/constructor.rs
...
add note that `missing_empty` is cleared now
Co-authored-by: Nadrieril <Nadrieril@users.noreply.github.com>
2023-12-12 21:12:19 +01:00
Matthias Krüger
6892fcd690
simplify merging of two vecs
2023-12-12 18:42:37 +01:00
Nadrieril
43714edb6f
Fix doc links
2023-12-11 12:53:01 +01:00
Nadrieril
5d6c539c2d
Fix item visibilities
2023-12-11 11:20:55 +01:00
Nadrieril
de3f983bcd
Make MaybeInfiniteInt
rustc-independent
2023-12-11 11:20:55 +01:00
Nadrieril
24adca0a26
Move lints to their own module
2023-12-11 11:20:55 +01:00
Nadrieril
3691a0aee5
Gather rustc-specific functions around MatchCheckCtxt
2023-12-11 11:20:55 +01:00
Nadrieril
281002d42c
Extract exhaustiveness into its own crate
2023-12-11 11:20:55 +01:00