Skip to content

Commit

Permalink
Merging the calculation of sugg and applicability
Browse files Browse the repository at this point in the history
  • Loading branch information
roife committed Feb 8, 2024
1 parent fb9fd51 commit 3c76b2c
Showing 1 changed file with 12 additions and 13 deletions.
25 changes: 12 additions & 13 deletions clippy_lints/src/methods/unnecessary_fallible_conversions.rs
Expand Up @@ -30,14 +30,19 @@ enum FunctionKind {
}

impl FunctionKind {
fn applicability(&self, parent_unwrap_call: &Option<Span>) -> Applicability {
if parent_unwrap_call.is_none() {
return Applicability::Unspecified;
}
fn appl_sugg(&self, parent_unwrap_call: Option<Span>, primary_span: Span) -> (Applicability, Vec<(Span, String)>) {
let Some(unwrap_span) = parent_unwrap_call else {
return (Applicability::Unspecified, self.default_sugg(primary_span));
};

match &self {
FunctionKind::TryFromFunction(None) | FunctionKind::TryIntoFunction(None) => Applicability::Unspecified,
_ => Applicability::MachineApplicable,
FunctionKind::TryFromFunction(None) | FunctionKind::TryIntoFunction(None) => {
(Applicability::Unspecified, self.default_sugg(primary_span))
},
_ => (
Applicability::MachineApplicable,
self.machine_applicable_sugg(primary_span, unwrap_span),
),
}
}

Expand Down Expand Up @@ -123,13 +128,7 @@ fn check<'tcx>(
FunctionKind::TryFromFunction(_) => (other_ty, self_ty),
};

let applicability = kind.applicability(&parent_unwrap_call);

let sugg = if applicability == Applicability::MachineApplicable {
kind.machine_applicable_sugg(primary_span, parent_unwrap_call.unwrap())
} else {
kind.default_sugg(primary_span)
};
let (applicability, sugg) = kind.appl_sugg(parent_unwrap_call, primary_span);

span_lint_and_then(
cx,
Expand Down

0 comments on commit 3c76b2c

Please sign in to comment.