@@ -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
267260fn last_statement_borrows < ' tcx > ( cx : & LateContext < ' tcx > , expr : & ' tcx Expr < ' tcx > ) -> bool {
0 commit comments