diff options
| author | Mark Rousskov <mark.simulacrum@gmail.com> | 2021-06-16 22:21:55 -0400 |
|---|---|---|
| committer | Mark Rousskov <mark.simulacrum@gmail.com> | 2021-06-16 22:23:26 -0400 |
| commit | 8e78f4a03f89ebb9da42cb74a4f3acf0ce7d4ea5 (patch) | |
| tree | 4b4474b40f74d854823fbfc5f8a7cbf79ee0a7fb | |
| parent | dbe03e256bc27420c34ab146b3d3859be0b69967 (diff) | |
Backport 572c405da063d2628378b74a8f659ce90e0e7779 to 1.53
This fixes a Clippy ICE on rustc std and the crates.io codebase (and potentially others).
| -rw-r--r-- | src/tools/clippy/clippy_lints/src/matches.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/tools/clippy/clippy_lints/src/matches.rs b/src/tools/clippy/clippy_lints/src/matches.rs index 50e2898bdaa..a70e8b26087 100644 --- a/src/tools/clippy/clippy_lints/src/matches.rs +++ b/src/tools/clippy/clippy_lints/src/matches.rs @@ -1590,9 +1590,9 @@ fn is_none_arm(cx: &LateContext<'_>, arm: &Arm<'_>) -> bool { // Checks if arm has the form `Some(ref v) => Some(v)` (checks for `ref` and `ref mut`) fn is_ref_some_arm(cx: &LateContext<'_>, arm: &Arm<'_>) -> Option<BindingAnnotation> { if_chain! { - if let PatKind::TupleStruct(ref qpath, pats, _) = arm.pat.kind; + if let PatKind::TupleStruct(ref qpath, [first_pat, ..], _) = arm.pat.kind; if is_lang_ctor(cx, qpath, OptionSome); - if let PatKind::Binding(rb, .., ident, _) = pats[0].kind; + if let PatKind::Binding(rb, .., ident, _) = first_pat.kind; if rb == BindingAnnotation::Ref || rb == BindingAnnotation::RefMut; if let ExprKind::Call(e, args) = remove_blocks(arm.body).kind; if let ExprKind::Path(ref some_path) = e.kind; |
