From 6c3e16aca95a82fa6cd5bf09f0e671b488dfc91d Mon Sep 17 00:00:00 2001 From: Ada Alakbarova Date: Sun, 9 Nov 2025 20:49:29 +0100 Subject: [PATCH] perf(time_subtraction): avoid querying type/diag name of lhs twice --- clippy_lints/src/time_subtraction.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/clippy_lints/src/time_subtraction.rs b/clippy_lints/src/time_subtraction.rs index dbd4ec77fd5f..15c24c5764f2 100644 --- a/clippy_lints/src/time_subtraction.rs +++ b/clippy_lints/src/time_subtraction.rs @@ -119,7 +119,7 @@ impl LateLintPass<'_> for UncheckedTimeSubtraction { ); } else { // instant - duration - print_unchecked_duration_subtraction_sugg(cx, lhs, rhs, expr); + print_unchecked_duration_subtraction_sugg(cx, lhs, true, rhs, expr); } } } else if lhs_ty.is_diag_item(cx, sym::Duration) @@ -137,7 +137,7 @@ impl LateLintPass<'_> for UncheckedTimeSubtraction { ); } else { // duration - duration - print_unchecked_duration_subtraction_sugg(cx, lhs, rhs, expr); + print_unchecked_duration_subtraction_sugg(cx, lhs, false, rhs, expr); } } } @@ -188,13 +188,11 @@ fn print_manual_instant_elapsed_sugg(cx: &LateContext<'_>, expr: &Expr<'_>, sugg fn print_unchecked_duration_subtraction_sugg( cx: &LateContext<'_>, left_expr: &Expr<'_>, + left_is_instant: bool, right_expr: &Expr<'_>, expr: &Expr<'_>, ) { - let typeck = cx.typeck_results(); - let left_ty = typeck.expr_ty(left_expr); - - let lint_msg = if left_ty.is_diag_item(cx, sym::Instant) { + let lint_msg = if left_is_instant { "unchecked subtraction of a 'Duration' from an 'Instant'" } else { "unchecked subtraction between 'Duration' values"