Make lint span smaller for needless return (#14790)

Fixes rust-lang/rust-clippy#14750 by reducing the lint span for
needless_return.

changelog: [`needless_return`]: Lint span no longer wraps to previous
line
This commit is contained in:
Jason Newcomb 2025-05-20 09:23:56 +00:00 committed by GitHub
commit f00c58b374
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 62 additions and 74 deletions

View file

@ -423,7 +423,14 @@ fn check_final_expr<'tcx>(
_ => return,
}
emit_return_lint(cx, ret_span, semi_spans, &replacement, expr.hir_id);
emit_return_lint(
cx,
peeled_drop_expr.span,
ret_span,
semi_spans,
&replacement,
expr.hir_id,
);
},
ExprKind::If(_, then, else_clause_opt) => {
check_block_return(cx, &then.kind, peeled_drop_expr.span, semi_spans.clone());
@ -448,6 +455,7 @@ fn check_final_expr<'tcx>(
fn emit_return_lint(
cx: &LateContext<'_>,
lint_span: Span,
ret_span: Span,
semi_spans: Vec<Span>,
replacement: &RetReplacement<'_>,
@ -457,7 +465,7 @@ fn emit_return_lint(
cx,
NEEDLESS_RETURN,
at,
ret_span,
lint_span,
"unneeded `return` statement",
|diag| {
let suggestions = std::iter::once((ret_span, replacement.to_string()))

View file

@ -3,6 +3,6 @@
fn main() {
if (true) {
// anything一些中文
//~^^ needless_return
//~^ needless_return
}
}

View file

@ -4,6 +4,6 @@ fn main() {
if (true) {
// anything一些中文
return;
//~^^ needless_return
//~^ needless_return
}
}

View file

@ -1,10 +1,8 @@
error: unneeded `return` statement
--> tests/ui/crashes/ice-12491.rs:5:24
--> tests/ui/crashes/ice-12491.rs:6:9
|
LL | // anything一些中文
| ____________________________^
LL | | return;
| |______________^
LL | return;
| ^^^^^^
|
= note: `-D clippy::needless-return` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::needless_return)]`

View file

@ -84,14 +84,14 @@ fn test_macro_call() -> i32 {
}
fn test_void_fun() {
//~^^ needless_return
//~^ needless_return
}
fn test_void_if_fun(b: bool) {
if b {
//~^^ needless_return
//~^ needless_return
} else {
//~^^ needless_return
//~^ needless_return
}
}
@ -108,7 +108,7 @@ fn test_nested_match(x: u32) {
0 => (),
1 => {
let _ = 42;
//~^^ needless_return
//~^ needless_return
},
_ => (),
//~^ needless_return
@ -156,7 +156,7 @@ mod issue6501 {
fn test_closure() {
let _ = || {
//~^^ needless_return
//~^ needless_return
};
let _ = || {};
//~^ needless_return
@ -220,14 +220,14 @@ async fn async_test_macro_call() -> i32 {
}
async fn async_test_void_fun() {
//~^^ needless_return
//~^ needless_return
}
async fn async_test_void_if_fun(b: bool) {
if b {
//~^^ needless_return
//~^ needless_return
} else {
//~^^ needless_return
//~^ needless_return
}
}
@ -354,7 +354,7 @@ fn issue9503(x: usize) -> isize {
mod issue9416 {
pub fn with_newline() {
let _ = 42;
//~^^ needless_return
//~^ needless_return
}
#[rustfmt::skip]

View file

@ -85,16 +85,16 @@ fn test_macro_call() -> i32 {
fn test_void_fun() {
return;
//~^^ needless_return
//~^ needless_return
}
fn test_void_if_fun(b: bool) {
if b {
return;
//~^^ needless_return
//~^ needless_return
} else {
return;
//~^^ needless_return
//~^ needless_return
}
}
@ -112,7 +112,7 @@ fn test_nested_match(x: u32) {
1 => {
let _ = 42;
return;
//~^^ needless_return
//~^ needless_return
},
_ => return,
//~^ needless_return
@ -161,7 +161,7 @@ mod issue6501 {
fn test_closure() {
let _ = || {
return;
//~^^ needless_return
//~^ needless_return
};
let _ = || return;
//~^ needless_return
@ -226,16 +226,16 @@ async fn async_test_macro_call() -> i32 {
async fn async_test_void_fun() {
return;
//~^^ needless_return
//~^ needless_return
}
async fn async_test_void_if_fun(b: bool) {
if b {
return;
//~^^ needless_return
//~^ needless_return
} else {
return;
//~^^ needless_return
//~^ needless_return
}
}
@ -363,7 +363,7 @@ mod issue9416 {
pub fn with_newline() {
let _ = 42;
return;
//~^^ needless_return
//~^ needless_return
}
#[rustfmt::skip]

View file

@ -133,12 +133,10 @@ LL + the_answer!()
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:86:21
--> tests/ui/needless_return.rs:87:5
|
LL | fn test_void_fun() {
| _____________________^
LL | | return;
| |__________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -148,12 +146,10 @@ LL + fn test_void_fun() {
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:92:11
--> tests/ui/needless_return.rs:93:9
|
LL | if b {
| ___________^
LL | | return;
| |______________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -163,12 +159,10 @@ LL + if b {
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:95:13
--> tests/ui/needless_return.rs:96:9
|
LL | } else {
| _____________^
LL | | return;
| |______________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -190,12 +184,10 @@ LL + _ => (),
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:113:24
--> tests/ui/needless_return.rs:114:13
|
LL | let _ = 42;
| ________________________^
LL | | return;
| |__________________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -253,12 +245,10 @@ LL + bar.unwrap_or_else(|_| {})
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:162:21
--> tests/ui/needless_return.rs:163:13
|
LL | let _ = || {
| _____________________^
LL | | return;
| |__________________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -400,12 +390,10 @@ LL + the_answer!()
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:227:33
--> tests/ui/needless_return.rs:228:5
|
LL | async fn async_test_void_fun() {
| _________________________________^
LL | | return;
| |__________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -415,12 +403,10 @@ LL + async fn async_test_void_fun() {
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:233:11
--> tests/ui/needless_return.rs:234:9
|
LL | if b {
| ___________^
LL | | return;
| |______________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -430,12 +416,10 @@ LL + if b {
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:236:13
--> tests/ui/needless_return.rs:237:9
|
LL | } else {
| _____________^
LL | | return;
| |______________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -593,12 +577,10 @@ LL ~ }
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:364:20
--> tests/ui/needless_return.rs:365:9
|
LL | let _ = 42;
| ____________________^
LL | | return;
| |______________^
LL | return;
| ^^^^^^
|
help: remove `return`
|
@ -608,10 +590,10 @@ LL + let _ = 42;
|
error: unneeded `return` statement
--> tests/ui/needless_return.rs:371:20
--> tests/ui/needless_return.rs:371:21
|
LL | let _ = 42; return;
| ^^^^^^^
| ^^^^^^
|
help: remove `return`
|