diff options
| author | y21 <30553356+y21@users.noreply.github.com> | 2023-07-28 12:52:06 +0200 |
|---|---|---|
| committer | y21 <30553356+y21@users.noreply.github.com> | 2023-07-28 12:52:06 +0200 |
| commit | 5e88003ddac563a8ffc912d6e69332d479a92cc3 (patch) | |
| tree | 3b12780b138ca34b27bae2373b746e01bcb52bbe | |
| parent | 205a3741c1659b5157a5dfdaec2476c8a151ada2 (diff) | |
| download | rust-5e88003ddac563a8ffc912d6e69332d479a92cc3.tar.gz rust-5e88003ddac563a8ffc912d6e69332d479a92cc3.zip | |
pattern match on local usage slice to avoid ICE
| -rw-r--r-- | clippy_lints/src/methods/readonly_write_lock.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/clippy_lints/src/methods/readonly_write_lock.rs b/clippy_lints/src/methods/readonly_write_lock.rs index 404ded2b013..e3ec921da0c 100644 --- a/clippy_lints/src/methods/readonly_write_lock.rs +++ b/clippy_lints/src/methods/readonly_write_lock.rs @@ -29,12 +29,13 @@ pub(super) fn check<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>, receiver && let Some((local, _)) = mir.local_decls.iter_enumerated().find(|(_, decl)| { local.span.contains(decl.source_info.span) }) - && let Some(usage) = visit_local_usage(&[local], mir, Location { + && let Some(usages) = visit_local_usage(&[local], mir, Location { block: START_BLOCK, statement_index: 0, }) + && let [usage] = usages.as_slice() { - let writer_never_mutated = usage[0].local_consume_or_mutate_locs.is_empty(); + let writer_never_mutated = usage.local_consume_or_mutate_locs.is_empty(); if writer_never_mutated { span_lint_and_sugg( |
