Skip to content

Commit 2a61f59

Browse files
committed
Auto merge of rust-lang#13393 - vHugoObject:master, r=Alexendoo
fix: Specifying reason in expect(clippy::needless_return) no longer triggers false positive fixes rust-lang#13366 changelog: none
2 parents 169adfc + ae5f857 commit 2a61f59

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed

clippy_lints/src/returns.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -421,7 +421,7 @@ fn check_final_expr<'tcx>(
421421
if matches!(Level::from_attr(attr), Some(Level::Expect(_)))
422422
&& let metas = attr.meta_item_list()
423423
&& let Some(lst) = metas
424-
&& let [NestedMetaItem::MetaItem(meta_item)] = lst.as_slice()
424+
&& let [NestedMetaItem::MetaItem(meta_item), ..] = lst.as_slice()
425425
&& let [tool, lint_name] = meta_item.path.segments.as_slice()
426426
&& tool.ident.name == sym::clippy
427427
&& matches!(

tests/ui/needless_return.fixed

+20
Original file line numberDiff line numberDiff line change
@@ -360,3 +360,23 @@ fn issue12907() -> String {
360360
}
361361

362362
fn main() {}
363+
364+
fn a(x: Option<u8>) -> Option<u8> {
365+
match x {
366+
Some(_) => None,
367+
None => {
368+
#[expect(clippy::needless_return, reason = "Use early return for errors.")]
369+
return None;
370+
},
371+
}
372+
}
373+
374+
fn b(x: Option<u8>) -> Option<u8> {
375+
match x {
376+
Some(_) => None,
377+
None => {
378+
#[expect(clippy::needless_return)]
379+
return None;
380+
},
381+
}
382+
}

tests/ui/needless_return.rs

+20
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,23 @@ fn issue12907() -> String {
370370
}
371371

372372
fn main() {}
373+
374+
fn a(x: Option<u8>) -> Option<u8> {
375+
match x {
376+
Some(_) => None,
377+
None => {
378+
#[expect(clippy::needless_return, reason = "Use early return for errors.")]
379+
return None;
380+
},
381+
}
382+
}
383+
384+
fn b(x: Option<u8>) -> Option<u8> {
385+
match x {
386+
Some(_) => None,
387+
None => {
388+
#[expect(clippy::needless_return)]
389+
return None;
390+
},
391+
}
392+
}

0 commit comments

Comments
 (0)