From b72996e3220d4a32f1d2bd40c3e0b8ae5d87d351 Mon Sep 17 00:00:00 2001 From: "Christopher B. Speir" Date: Tue, 20 Feb 2024 20:07:54 -0600 Subject: [PATCH] Add check for 'in_external_macro' and 'is_from_proc_macro' inside [infinite_loop] lint. --- clippy_lints/src/loops/infinite_loop.rs | 11 +++++--- tests/ui/infinite_loops.rs | 27 ++++++++++++++++++++ tests/ui/infinite_loops.stderr | 34 ++++++++++++------------- 3 files changed, 52 insertions(+), 20 deletions(-) diff --git a/clippy_lints/src/loops/infinite_loop.rs b/clippy_lints/src/loops/infinite_loop.rs index 5e099f1e7..5b5bb88c1 100644 --- a/clippy_lints/src/loops/infinite_loop.rs +++ b/clippy_lints/src/loops/infinite_loop.rs @@ -1,17 +1,18 @@ use clippy_utils::diagnostics::span_lint_and_then; -use clippy_utils::{fn_def_id, is_lint_allowed}; +use clippy_utils::{fn_def_id, is_from_proc_macro, is_lint_allowed}; use hir::intravisit::{walk_expr, Visitor}; use hir::{Expr, ExprKind, FnRetTy, FnSig, Node}; use rustc_ast::Label; use rustc_errors::Applicability; use rustc_hir as hir; -use rustc_lint::LateContext; +use rustc_lint::{LateContext, LintContext}; +use rustc_middle::lint::in_external_macro; use super::INFINITE_LOOP; pub(super) fn check<'tcx>( cx: &LateContext<'tcx>, - expr: &Expr<'_>, + expr: &Expr<'tcx>, loop_block: &'tcx hir::Block<'_>, label: Option