Skip to content

Commit 15ec5d2

Browse files
committed
further refactor
1 parent bf8870e commit 15ec5d2

File tree

1 file changed

+22
-29
lines changed

1 file changed

+22
-29
lines changed

clippy_lints/src/returns.rs

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -232,36 +232,29 @@ fn emit_return_lint(
232232
if ret_span.from_expansion() {
233233
return;
234234
}
235-
if let Some(inner_span) = inner_span {
236-
let mut applicability = Applicability::MachineApplicable;
237-
span_lint_hir_and_then(
238-
cx,
239-
NEEDLESS_RETURN,
240-
emission_place,
241-
ret_span,
242-
"unneeded `return` statement",
243-
|diag| {
244-
let (snippet, _) = snippet_with_context(cx, inner_span, ret_span.ctxt(), "..", &mut applicability);
245-
diag.span_suggestion(ret_span, "remove `return`", snippet, applicability);
246-
},
247-
);
235+
let mut applicability = Applicability::MachineApplicable;
236+
let return_replacement = inner_span.map_or_else(
237+
|| replacement.to_string(),
238+
|inner_span| {
239+
let (snippet, _) = snippet_with_context(cx, inner_span, ret_span.ctxt(), "..", &mut applicability);
240+
snippet.to_string()
241+
},
242+
);
243+
let sugg_help = if inner_span.is_some() {
244+
"remove `return`"
248245
} else {
249-
span_lint_hir_and_then(
250-
cx,
251-
NEEDLESS_RETURN,
252-
emission_place,
253-
ret_span,
254-
"unneeded `return` statement",
255-
|diag| {
256-
diag.span_suggestion(
257-
ret_span,
258-
replacement.sugg_help(),
259-
replacement.to_string(),
260-
Applicability::MachineApplicable,
261-
);
262-
},
263-
)
264-
}
246+
replacement.sugg_help()
247+
};
248+
span_lint_hir_and_then(
249+
cx,
250+
NEEDLESS_RETURN,
251+
emission_place,
252+
ret_span,
253+
"unneeded `return` statement",
254+
|diag| {
255+
diag.span_suggestion(ret_span, sugg_help, return_replacement, applicability);
256+
},
257+
);
265258
}
266259

267260
fn last_statement_borrows<'tcx>(cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) -> bool {

0 commit comments

Comments
 (0)