@@ -30,14 +30,19 @@ enum FunctionKind {
3030}
3131
3232impl FunctionKind {
33- fn applicability ( & self , parent_unwrap_call : & Option < Span > ) -> Applicability {
34- if parent_unwrap_call . is_none ( ) {
35- return Applicability :: Unspecified ;
36- }
33+ fn appl_sugg ( & self , parent_unwrap_call : Option < Span > , primary_span : Span ) -> ( Applicability , Vec < ( Span , String ) > ) {
34+ let Some ( unwrap_span ) = parent_unwrap_call else {
35+ return ( Applicability :: Unspecified , self . default_sugg ( primary_span ) ) ;
36+ } ;
3737
3838 match & self {
39- FunctionKind :: TryFromFunction ( None ) | FunctionKind :: TryIntoFunction ( None ) => Applicability :: Unspecified ,
40- _ => Applicability :: MachineApplicable ,
39+ FunctionKind :: TryFromFunction ( None ) | FunctionKind :: TryIntoFunction ( None ) => {
40+ ( Applicability :: Unspecified , self . default_sugg ( primary_span) )
41+ } ,
42+ _ => (
43+ Applicability :: MachineApplicable ,
44+ self . machine_applicable_sugg ( primary_span, unwrap_span) ,
45+ ) ,
4146 }
4247 }
4348
@@ -123,13 +128,7 @@ fn check<'tcx>(
123128 FunctionKind :: TryFromFunction ( _) => ( other_ty, self_ty) ,
124129 } ;
125130
126- let applicability = kind. applicability ( & parent_unwrap_call) ;
127-
128- let sugg = if applicability == Applicability :: MachineApplicable {
129- kind. machine_applicable_sugg ( primary_span, parent_unwrap_call. unwrap ( ) )
130- } else {
131- kind. default_sugg ( primary_span)
132- } ;
131+ let ( applicability, sugg) = kind. appl_sugg ( parent_unwrap_call, primary_span) ;
133132
134133 span_lint_and_then (
135134 cx,
0 commit comments