diff options
| author | bors <bors@rust-lang.org> | 2024-02-29 00:53:39 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-02-29 00:53:39 +0000 |
| commit | d3d145ea1cae47ad392173f890577788117da3d9 (patch) | |
| tree | 5e57dc9f22594182dc617cb12e80515903ee8519 /compiler/rustc_pattern_analysis/src | |
| parent | c475e2303b551d726307c646181e0677af1e0069 (diff) | |
| parent | 9f9daed889fec22f3e681b297f9eb50c488fdbcd (diff) | |
| download | rust-d3d145ea1cae47ad392173f890577788117da3d9.tar.gz rust-d3d145ea1cae47ad392173f890577788117da3d9.zip | |
Auto merge of #121770 - matthiaskrgr:rollup-wdher8r, r=matthiaskrgr
Rollup of 5 pull requests Successful merges: - #110543 (Make `ReentrantLock` public) - #121689 ([rustdoc] Prevent inclusion of whitespace character after macro_rules ident) - #121724 (Use `LitKind::Err` for malformed floats) - #121735 (pattern analysis: Don't panic when encountering unexpected constructor) - #121743 (Opportunistically resolve regions when processing region outlives obligations) Failed merges: - #121326 (Detect empty leading where clauses on type aliases) - #121416 (Improve error messages for generics with default parameters) - #121669 (Count stashed errors again) - #121723 (Two diagnostic things) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_pattern_analysis/src')
| -rw-r--r-- | compiler/rustc_pattern_analysis/src/constructor.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rustc_pattern_analysis/src/constructor.rs b/compiler/rustc_pattern_analysis/src/constructor.rs index 483986969d1..b1f910b947a 100644 --- a/compiler/rustc_pattern_analysis/src/constructor.rs +++ b/compiler/rustc_pattern_analysis/src/constructor.rs @@ -940,7 +940,7 @@ impl<Cx: TypeCx> ConstructorSet<Cx> { } ConstructorSet::Variants { variants, non_exhaustive } => { let mut seen_set = index::IdxSet::new_empty(variants.len()); - for idx in seen.iter().map(|c| c.as_variant().unwrap()) { + for idx in seen.iter().filter_map(|c| c.as_variant()) { seen_set.insert(idx); } let mut skipped_a_hidden_variant = false; @@ -969,7 +969,7 @@ impl<Cx: TypeCx> ConstructorSet<Cx> { ConstructorSet::Bool => { let mut seen_false = false; let mut seen_true = false; - for b in seen.iter().map(|ctor| ctor.as_bool().unwrap()) { + for b in seen.iter().filter_map(|ctor| ctor.as_bool()) { if b { seen_true = true; } else { @@ -989,7 +989,7 @@ impl<Cx: TypeCx> ConstructorSet<Cx> { } ConstructorSet::Integers { range_1, range_2 } => { let seen_ranges: Vec<_> = - seen.iter().map(|ctor| *ctor.as_int_range().unwrap()).collect(); + seen.iter().filter_map(|ctor| ctor.as_int_range()).copied().collect(); for (seen, splitted_range) in range_1.split(seen_ranges.iter().cloned()) { match seen { Presence::Unseen => missing.push(IntRange(splitted_range)), @@ -1006,7 +1006,7 @@ impl<Cx: TypeCx> ConstructorSet<Cx> { } } ConstructorSet::Slice { array_len, subtype_is_empty } => { - let seen_slices = seen.iter().map(|c| c.as_slice().unwrap()); + let seen_slices = seen.iter().filter_map(|c| c.as_slice()); let base_slice = Slice::new(*array_len, VarLen(0, 0)); for (seen, splitted_slice) in base_slice.split(seen_slices) { let ctor = Slice(splitted_slice); |
