diff options
| author | kyoto7250 <50972773+kyoto7250@users.noreply.github.com> | 2022-05-28 14:33:06 +0900 |
|---|---|---|
| committer | kyoto7250 <50972773+kyoto7250@users.noreply.github.com> | 2022-05-28 14:45:25 +0900 |
| commit | 6fd2c6de90423ff6096da4005229df3b2110629d (patch) | |
| tree | 82e253706906f34cf9c4f45b7b9a507b0f5053ec | |
| parent | b97784fd07b1981292703fb136cf6e4f7cddc113 (diff) | |
| download | rust-6fd2c6de90423ff6096da4005229df3b2110629d.tar.gz rust-6fd2c6de90423ff6096da4005229df3b2110629d.zip | |
fix(lint): check const context
https://github.com/rust-lang/rust-clippy/issues/8898
| -rw-r--r-- | clippy_lints/src/checked_conversions.rs | 3 | ||||
| -rw-r--r-- | tests/ui/checked_conversions.fixed | 5 | ||||
| -rw-r--r-- | tests/ui/checked_conversions.rs | 5 |
3 files changed, 12 insertions, 1 deletions
diff --git a/clippy_lints/src/checked_conversions.rs b/clippy_lints/src/checked_conversions.rs index 7eeaaa01921..df3485533b3 100644 --- a/clippy_lints/src/checked_conversions.rs +++ b/clippy_lints/src/checked_conversions.rs @@ -2,7 +2,7 @@ use clippy_utils::diagnostics::span_lint_and_sugg; 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 rustc_ast::ast::LitKind; use rustc_errors::Applicability; @@ -61,6 +61,7 @@ impl<'tcx> LateLintPass<'tcx> for CheckedConversions { } let result = if_chain! { + if !in_constant(cx, item.hir_id); if !in_external_macro(cx.sess(), item.span); if let ExprKind::Binary(op, left, right) = &item.kind; diff --git a/tests/ui/checked_conversions.fixed b/tests/ui/checked_conversions.fixed index 0983d393b56..cb7100bc9ef 100644 --- a/tests/ui/checked_conversions.fixed +++ b/tests/ui/checked_conversions.fixed @@ -71,4 +71,9 @@ pub fn i8_to_u8(value: i8) { let _ = value >= 0; } +// Do not lint +pub const fn issue_8898(i: u32) -> bool { + i <= i32::MAX as u32 +} + fn main() {} diff --git a/tests/ui/checked_conversions.rs b/tests/ui/checked_conversions.rs index 7d26ace47fd..ed4e0692388 100644 --- a/tests/ui/checked_conversions.rs +++ b/tests/ui/checked_conversions.rs @@ -71,4 +71,9 @@ pub fn i8_to_u8(value: i8) { let _ = value >= 0; } +// Do not lint +pub const fn issue_8898(i: u32) -> bool { + i <= i32::MAX as u32 +} + fn main() {} |
