Nadrieril
c918893b63
Rename Skip
to PrivateUninhabited
2024-02-28 17:56:01 +01:00
Nadrieril
ea38166390
Don't filter out skipped fields
2024-02-28 17:47:19 +01:00
Nadrieril
4f7f06777b
Add special Skip
constructor
2024-02-28 17:47:19 +01:00
Nadrieril
ab06037269
Push the decision to skip fields further down
2024-02-28 17:47:19 +01:00
Nadrieril
be29cd173a
Use a unique id instead of by-address indexing
2024-02-07 23:16:47 +01:00
Nadrieril
8465c82b64
Cleanup comments and dead code
2024-02-07 23:16:47 +01:00
Nadrieril
cb3ce6645f
Move usefulness-specific pattern computations to usefulness
2024-02-07 23:10:51 +01:00
Matthias Krüger
ce32d4862b
Rollup merge of #120331 - Nadrieril:no-arena, r=compiler-errors
...
pattern_analysis: use a plain `Vec` in `DeconstructedPat`
The use of an arena-allocated slice in `DeconstructedPat` dates to when we needed the arena anyway for lifetime reasons. Now that we don't, I'm thinking that if `thir::Pat` can use plain old `Vec`s, maybe so can I.
r? ```@ghost```
2024-02-06 22:45:40 +01:00
Matthias Krüger
f3ebf1e50f
Rollup merge of #120516 - Nadrieril:cleanup-impls, r=compiler-errors
...
pattern_analysis: cleanup manual impls
https://github.com/rust-lang/rust/pull/120420 introduced some unneeded manual impls. I remove them here.
r? ```@Nilstrieb```
2024-02-03 22:25:14 +01:00
Nadrieril
be77cf86ba
Use a Vec
instead of a slice in DeconstructedPat
2024-01-31 19:25:40 +01:00
Nadrieril
40402cbada
Manual Debug
impls are not needed since TypeCx: Debug
2024-01-31 01:32:05 +01:00
Nadrieril
cb0e8c508c
Limit the use of PlaceCtxt
2024-01-30 17:06:30 +01:00
Laurențiu Nicola
f5c78955c8
Stop using derivative in rustc_pattern_analysis
2024-01-27 14:21:01 +02:00
Matthias Krüger
a1ecced532
Rollup merge of #120318 - Nadrieril:share-debug-impl, r=compiler-errors
...
pattern_analysis: Reuse most of the `DeconstructedPat` `Debug` impl
The `DeconstructedPat: Debug` is best-effort because we'd need `tcx` to get things like field names etc. Since rust-analyzer has a similar constraint, this PR moves most the impl to be shared between the two. While I was at it I also fixed a nit in the `IntRange: Debug` impl.
r? `@compiler-errors`
2024-01-25 08:39:45 +01:00
Nadrieril
bdab213993
Most of the DeconstructedPat
Debug
impl is reusable
2024-01-24 20:04:33 +01:00
Nadrieril
e088016f9d
Let ctor_sub_tys
return any Iterator they want
...
Since we always clone and allocate the types somewhere else ourselves,
no need to ask for `Cx` to do the allocation.
2024-01-24 16:55:26 +01:00
Nadrieril
796cdc590c
Remove Ty: Copy bound
2024-01-20 15:22:14 +01:00
Nadrieril
db36304102
rustc_pattern_analysis no longer needs to be passed an arena
2024-01-12 18:55:27 +01:00
Nadrieril
5c65e9fdaf
Avoid PatOrWild
glob import
2024-01-09 16:22:11 +01:00
Nadrieril
1a3edc169b
We only need the arity of the subtype list now
2024-01-07 19:20:19 +01:00
Nadrieril
4ae2840e84
Use special enum to represent algorithm-generated wildcards in the matrix
2024-01-07 19:20:19 +01:00
Nadrieril
50b197c6ee
Reuse ctor_sub_tys
when we have one around
2024-01-06 18:03:13 +01:00
Michael Goulet
ae40f6a7ff
Clean up more lifetimes
2023-12-26 02:06:39 +00:00
Michael Goulet
eebb2abe0b
Yeet some lifetimes
2023-12-26 01:59:18 +00:00
Nadrieril
5fccaee59c
Clarify the situation with dummy patterns and PatData
...
Use an explicit `Option` instead of requiring a `Default` bound
2023-12-23 00:08:38 +01:00
Nadrieril
c6aa16c469
Use derivative
for better derive bounds
2023-12-23 00:04:20 +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
e646c9f723
Make the rustc_data_structures
dependency optional
2023-12-15 16:58:38 +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
5d6c539c2d
Fix item visibilities
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