about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/lib.rs
AgeCommit message (Collapse)AuthorLines
2024-01-17Rollup merge of #120039 - Nadrieril:remove-idx, r=compiler-errorsMatthias Krüger-2/+40
pat_analysis: Don't rely on contiguous `VariantId`s outside of rustc Today's pattern_analysis uses `BitSet` and `IndexVec` on the provided enum variant ids, which only makes sense if these ids count the variants from 0. In rust-analyzer, the variant ids are global interning ids, which would make `BitSet` and `IndexVec` ridiculously wasteful. In this PR I add some shims to use `FxHashSet`/`FxHashMap` instead outside of rustc. r? ```@compiler-errors```
2024-01-17Don't rely on contiguous `VariantId`s outside of rustcNadrieril-2/+40
2024-01-15Lint overlapping ranges directly from exhaustivenessNadrieril-11/+14
2024-01-12rustc_pattern_analysis no longer needs to be passed an arenaNadrieril-13/+2
2024-01-11Only lint ranges that really overlapNadrieril-1/+3
2024-01-11Factor out collection of overlapping rangesNadrieril-1/+1
2024-01-07Abort analysis on type errorNadrieril-1/+1
2024-01-07Add an error path to the algorithmNadrieril-5/+9
2024-01-01Statically enforce revealing of opaquesNadrieril-2/+1
2023-12-26Yeet some lifetimesMichael Goulet-1/+1
2023-12-23Clarify the situation with dummy patterns and `PatData`Nadrieril-3/+2
Use an explicit `Option` instead of requiring a `Default` bound
2023-12-23Use `derivative` for better derive boundsNadrieril-7/+6
2023-12-20Reveal opaque types in exhaustiveness checkingNadrieril-1/+2
2023-12-15s/MatchCx/TypeCx/Nadrieril-7/+7
2023-12-15Introduce `MatchCtxt`Nadrieril-12/+34
2023-12-15`pattern_analysis` doesn't need to know what spans areNadrieril-1/+4
2023-12-15Address review commentsNadrieril-4/+0
2023-12-15s/RustcCtxt/RustcMatchCheckCtxt/Nadrieril-2/+2
2023-12-15Make the `rustc_data_structures` dependency optionalNadrieril-0/+7
2023-12-15Gate rustc-specific code under a featureNadrieril-5/+15
2023-12-15Iron out last rustc-specific detailsNadrieril-1/+5
2023-12-15Name rustc-specific things "rustc"Nadrieril-6/+6
2023-12-15Abstract `MatchCheckCtxt` into a traitNadrieril-7/+42
2023-12-15Disentangle the arena from `MatchCheckCtxt`Nadrieril-3/+5
2023-12-11Move lints to their own moduleNadrieril-0/+42
2023-12-11Gather rustc-specific functions around `MatchCheckCtxt`Nadrieril-0/+1
2023-12-11Extract exhaustiveness into its own crateNadrieril-0/+13