Auto merge of #8907 - kyoto7250:fix_8898, r=giraffate

fix(lint): check const context

close: https://github.com/rust-lang/rust-clippy/issues/8898

This PR fixes a bug in checked_conversions.

Thank you in advance.

changelog: check const context in checked_conversions.
This commit is contained in:
bors 2022-06-09 00:04:09 +00:00
commit 919cf5083b
3 changed files with 12 additions and 1 deletions

View file

@ -2,7 +2,7 @@
use clippy_utils::diagnostics::span_lint_and_sugg; use clippy_utils::diagnostics::span_lint_and_sugg;
use clippy_utils::source::snippet_with_applicability; use clippy_utils::source::snippet_with_applicability;
use clippy_utils::{meets_msrv, msrvs, SpanlessEq}; use clippy_utils::{in_constant, meets_msrv, msrvs, SpanlessEq};
use if_chain::if_chain; use if_chain::if_chain;
use rustc_ast::ast::LitKind; use rustc_ast::ast::LitKind;
use rustc_errors::Applicability; use rustc_errors::Applicability;
@ -61,6 +61,7 @@ impl<'tcx> LateLintPass<'tcx> for CheckedConversions {
} }
let result = if_chain! { let result = if_chain! {
if !in_constant(cx, item.hir_id);
if !in_external_macro(cx.sess(), item.span); if !in_external_macro(cx.sess(), item.span);
if let ExprKind::Binary(op, left, right) = &item.kind; if let ExprKind::Binary(op, left, right) = &item.kind;

View file

@ -71,4 +71,9 @@ pub fn i8_to_u8(value: i8) {
let _ = value >= 0; let _ = value >= 0;
} }
// Do not lint
pub const fn issue_8898(i: u32) -> bool {
i <= i32::MAX as u32
}
fn main() {} fn main() {}

View file

@ -71,4 +71,9 @@ pub fn i8_to_u8(value: i8) {
let _ = value >= 0; let _ = value >= 0;
} }
// Do not lint
pub const fn issue_8898(i: u32) -> bool {
i <= i32::MAX as u32
}
fn main() {} fn main() {}