Fix integer_division false negative for NonZero denominators (#14664)
Close rust-lang/rust-clippy#14652 changelog: [`integer_division`]: fix false negative for NonZero denominators
This commit is contained in:
commit
16fd2a83d7
3 changed files with 24 additions and 5 deletions
|
|
@ -1,6 +1,8 @@
|
|||
use clippy_utils::diagnostics::span_lint_and_then;
|
||||
use clippy_utils::ty::is_type_diagnostic_item;
|
||||
use rustc_hir as hir;
|
||||
use rustc_lint::LateContext;
|
||||
use rustc_span::symbol::sym;
|
||||
|
||||
use super::INTEGER_DIVISION;
|
||||
|
||||
|
|
@ -13,7 +15,8 @@ pub(crate) fn check<'tcx>(
|
|||
) {
|
||||
if op == hir::BinOpKind::Div
|
||||
&& cx.typeck_results().expr_ty(left).is_integral()
|
||||
&& cx.typeck_results().expr_ty(right).is_integral()
|
||||
&& let right_ty = cx.typeck_results().expr_ty(right)
|
||||
&& (right_ty.is_integral() || is_type_diagnostic_item(cx, right_ty, sym::NonZero))
|
||||
{
|
||||
#[expect(clippy::collapsible_span_lint_calls, reason = "rust-clippy#7797")]
|
||||
span_lint_and_then(cx, INTEGER_DIVISION, expr.span, "integer division", |diag| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue