@@ -30,14 +30,19 @@ enum FunctionKind {
30
30
}
31
31
32
32
impl 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
+ } ;
37
37
38
38
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
+ ) ,
41
46
}
42
47
}
43
48
@@ -123,13 +128,7 @@ fn check<'tcx>(
123
128
FunctionKind :: TryFromFunction ( _) => ( other_ty, self_ty) ,
124
129
} ;
125
130
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) ;
133
132
134
133
span_lint_and_then (
135
134
cx,
0 commit comments