@@ -232,36 +232,29 @@ fn emit_return_lint(
232
232
if ret_span. from_expansion ( ) {
233
233
return ;
234
234
}
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`"
248
245
} 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
+ ) ;
265
258
}
266
259
267
260
fn last_statement_borrows < ' tcx > ( cx : & LateContext < ' tcx > , expr : & ' tcx Expr < ' tcx > ) -> bool {
0 commit comments