Skip to content

Commit 73a19a0

Browse files
committed
Make lint span smaller for needless return
1 parent a67ee90 commit 73a19a0

File tree

4 files changed

+57
-67
lines changed

4 files changed

+57
-67
lines changed

clippy_lints/src/returns.rs

+10-2
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,14 @@ fn check_final_expr<'tcx>(
423423
_ => return,
424424
}
425425

426-
emit_return_lint(cx, ret_span, semi_spans, &replacement, expr.hir_id);
426+
emit_return_lint(
427+
cx,
428+
peeled_drop_expr.span,
429+
ret_span,
430+
semi_spans,
431+
&replacement,
432+
expr.hir_id,
433+
);
427434
},
428435
ExprKind::If(_, then, else_clause_opt) => {
429436
check_block_return(cx, &then.kind, peeled_drop_expr.span, semi_spans.clone());
@@ -448,6 +455,7 @@ fn check_final_expr<'tcx>(
448455

449456
fn emit_return_lint(
450457
cx: &LateContext<'_>,
458+
lint_span: Span,
451459
ret_span: Span,
452460
semi_spans: Vec<Span>,
453461
replacement: &RetReplacement<'_>,
@@ -457,7 +465,7 @@ fn emit_return_lint(
457465
cx,
458466
NEEDLESS_RETURN,
459467
at,
460-
ret_span,
468+
lint_span,
461469
"unneeded `return` statement",
462470
|diag| {
463471
let suggestions = std::iter::once((ret_span, replacement.to_string()))

tests/ui/needless_return.fixed

+9-9
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ fn test_macro_call() -> i32 {
8484
}
8585

8686
fn test_void_fun() {
87-
//~^^ needless_return
87+
//~^ needless_return
8888
}
8989

9090
fn test_void_if_fun(b: bool) {
9191
if b {
92-
//~^^ needless_return
92+
//~^ needless_return
9393
} else {
94-
//~^^ needless_return
94+
//~^ needless_return
9595
}
9696
}
9797

@@ -108,7 +108,7 @@ fn test_nested_match(x: u32) {
108108
0 => (),
109109
1 => {
110110
let _ = 42;
111-
//~^^ needless_return
111+
//~^ needless_return
112112
},
113113
_ => (),
114114
//~^ needless_return
@@ -156,7 +156,7 @@ mod issue6501 {
156156

157157
fn test_closure() {
158158
let _ = || {
159-
//~^^ needless_return
159+
//~^ needless_return
160160
};
161161
let _ = || {};
162162
//~^ needless_return
@@ -220,14 +220,14 @@ async fn async_test_macro_call() -> i32 {
220220
}
221221

222222
async fn async_test_void_fun() {
223-
//~^^ needless_return
223+
//~^ needless_return
224224
}
225225

226226
async fn async_test_void_if_fun(b: bool) {
227227
if b {
228-
//~^^ needless_return
228+
//~^ needless_return
229229
} else {
230-
//~^^ needless_return
230+
//~^ needless_return
231231
}
232232
}
233233

@@ -354,7 +354,7 @@ fn issue9503(x: usize) -> isize {
354354
mod issue9416 {
355355
pub fn with_newline() {
356356
let _ = 42;
357-
//~^^ needless_return
357+
//~^ needless_return
358358
}
359359

360360
#[rustfmt::skip]

tests/ui/needless_return.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -85,16 +85,16 @@ fn test_macro_call() -> i32 {
8585

8686
fn test_void_fun() {
8787
return;
88-
//~^^ needless_return
88+
//~^ needless_return
8989
}
9090

9191
fn test_void_if_fun(b: bool) {
9292
if b {
9393
return;
94-
//~^^ needless_return
94+
//~^ needless_return
9595
} else {
9696
return;
97-
//~^^ needless_return
97+
//~^ needless_return
9898
}
9999
}
100100

@@ -112,7 +112,7 @@ fn test_nested_match(x: u32) {
112112
1 => {
113113
let _ = 42;
114114
return;
115-
//~^^ needless_return
115+
//~^ needless_return
116116
},
117117
_ => return,
118118
//~^ needless_return
@@ -161,7 +161,7 @@ mod issue6501 {
161161
fn test_closure() {
162162
let _ = || {
163163
return;
164-
//~^^ needless_return
164+
//~^ needless_return
165165
};
166166
let _ = || return;
167167
//~^ needless_return
@@ -226,16 +226,16 @@ async fn async_test_macro_call() -> i32 {
226226

227227
async fn async_test_void_fun() {
228228
return;
229-
//~^^ needless_return
229+
//~^ needless_return
230230
}
231231

232232
async fn async_test_void_if_fun(b: bool) {
233233
if b {
234234
return;
235-
//~^^ needless_return
235+
//~^ needless_return
236236
} else {
237237
return;
238-
//~^^ needless_return
238+
//~^ needless_return
239239
}
240240
}
241241

@@ -363,7 +363,7 @@ mod issue9416 {
363363
pub fn with_newline() {
364364
let _ = 42;
365365
return;
366-
//~^^ needless_return
366+
//~^ needless_return
367367
}
368368

369369
#[rustfmt::skip]

tests/ui/needless_return.stderr

+29-47
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,10 @@ LL + the_answer!()
133133
|
134134

135135
error: unneeded `return` statement
136-
--> tests/ui/needless_return.rs:86:21
136+
--> tests/ui/needless_return.rs:87:5
137137
|
138-
LL | fn test_void_fun() {
139-
| _____________________^
140-
LL | | return;
141-
| |__________^
138+
LL | return;
139+
| ^^^^^^
142140
|
143141
help: remove `return`
144142
|
@@ -148,12 +146,10 @@ LL + fn test_void_fun() {
148146
|
149147

150148
error: unneeded `return` statement
151-
--> tests/ui/needless_return.rs:92:11
149+
--> tests/ui/needless_return.rs:93:9
152150
|
153-
LL | if b {
154-
| ___________^
155-
LL | | return;
156-
| |______________^
151+
LL | return;
152+
| ^^^^^^
157153
|
158154
help: remove `return`
159155
|
@@ -163,12 +159,10 @@ LL + if b {
163159
|
164160

165161
error: unneeded `return` statement
166-
--> tests/ui/needless_return.rs:95:13
162+
--> tests/ui/needless_return.rs:96:9
167163
|
168-
LL | } else {
169-
| _____________^
170-
LL | | return;
171-
| |______________^
164+
LL | return;
165+
| ^^^^^^
172166
|
173167
help: remove `return`
174168
|
@@ -190,12 +184,10 @@ LL + _ => (),
190184
|
191185

192186
error: unneeded `return` statement
193-
--> tests/ui/needless_return.rs:113:24
187+
--> tests/ui/needless_return.rs:114:13
194188
|
195-
LL | let _ = 42;
196-
| ________________________^
197-
LL | | return;
198-
| |__________________^
189+
LL | return;
190+
| ^^^^^^
199191
|
200192
help: remove `return`
201193
|
@@ -253,12 +245,10 @@ LL + bar.unwrap_or_else(|_| {})
253245
|
254246

255247
error: unneeded `return` statement
256-
--> tests/ui/needless_return.rs:162:21
248+
--> tests/ui/needless_return.rs:163:13
257249
|
258-
LL | let _ = || {
259-
| _____________________^
260-
LL | | return;
261-
| |__________________^
250+
LL | return;
251+
| ^^^^^^
262252
|
263253
help: remove `return`
264254
|
@@ -400,12 +390,10 @@ LL + the_answer!()
400390
|
401391

402392
error: unneeded `return` statement
403-
--> tests/ui/needless_return.rs:227:33
393+
--> tests/ui/needless_return.rs:228:5
404394
|
405-
LL | async fn async_test_void_fun() {
406-
| _________________________________^
407-
LL | | return;
408-
| |__________^
395+
LL | return;
396+
| ^^^^^^
409397
|
410398
help: remove `return`
411399
|
@@ -415,12 +403,10 @@ LL + async fn async_test_void_fun() {
415403
|
416404

417405
error: unneeded `return` statement
418-
--> tests/ui/needless_return.rs:233:11
406+
--> tests/ui/needless_return.rs:234:9
419407
|
420-
LL | if b {
421-
| ___________^
422-
LL | | return;
423-
| |______________^
408+
LL | return;
409+
| ^^^^^^
424410
|
425411
help: remove `return`
426412
|
@@ -430,12 +416,10 @@ LL + if b {
430416
|
431417

432418
error: unneeded `return` statement
433-
--> tests/ui/needless_return.rs:236:13
419+
--> tests/ui/needless_return.rs:237:9
434420
|
435-
LL | } else {
436-
| _____________^
437-
LL | | return;
438-
| |______________^
421+
LL | return;
422+
| ^^^^^^
439423
|
440424
help: remove `return`
441425
|
@@ -593,12 +577,10 @@ LL ~ }
593577
|
594578

595579
error: unneeded `return` statement
596-
--> tests/ui/needless_return.rs:364:20
580+
--> tests/ui/needless_return.rs:365:9
597581
|
598-
LL | let _ = 42;
599-
| ____________________^
600-
LL | | return;
601-
| |______________^
582+
LL | return;
583+
| ^^^^^^
602584
|
603585
help: remove `return`
604586
|
@@ -608,10 +590,10 @@ LL + let _ = 42;
608590
|
609591

610592
error: unneeded `return` statement
611-
--> tests/ui/needless_return.rs:371:20
593+
--> tests/ui/needless_return.rs:371:21
612594
|
613595
LL | let _ = 42; return;
614-
| ^^^^^^^
596+
| ^^^^^^
615597
|
616598
help: remove `return`
617599
|

0 commit comments

Comments
 (0)