From 3e9a6d142ecf637edc02b74b8a1e5b9d0e612219 Mon Sep 17 00:00:00 2001 From: J-ZhengLi Date: Tue, 21 Nov 2023 16:18:18 +0800 Subject: [PATCH] stop warning never-returning calls and add more test cases --- clippy_lints/src/loops/infinite_loops.rs | 113 ++++++++++++++------ clippy_lints/src/loops/mod.rs | 34 ++---- tests/ui/infinite_loops.rs | 101 ++++++++++++++++++ tests/ui/infinite_loops.stderr | 126 +++++++++++++++++++++-- 4 files changed, 306 insertions(+), 68 deletions(-) diff --git a/clippy_lints/src/loops/infinite_loops.rs b/clippy_lints/src/loops/infinite_loops.rs index b97cd8bd00606..06f94c075ebec 100644 --- a/clippy_lints/src/loops/infinite_loops.rs +++ b/clippy_lints/src/loops/infinite_loops.rs @@ -1,7 +1,7 @@ use clippy_utils::diagnostics::span_lint_and_then; -use clippy_utils::is_lint_allowed; +use clippy_utils::{fn_def_id, is_lint_allowed}; use hir::intravisit::{walk_expr, Visitor}; -use hir::{Block, Destination, Expr, ExprKind, FnRetTy, Ty, TyKind}; +use hir::{Expr, ExprKind, FnRetTy, FnSig, Node}; use rustc_ast::Label; use rustc_errors::Applicability; use rustc_hir as hir; @@ -9,44 +9,56 @@ use rustc_lint::LateContext; use super::INFINITE_LOOPS; -pub(super) fn check( - cx: &LateContext<'_>, +pub(super) fn check<'tcx>( + cx: &LateContext<'tcx>, expr: &Expr<'_>, - loop_block: &Block<'_>, + loop_block: &'tcx hir::Block<'_>, label: Option