Don't lint manual_clamp
in const contexts.
This commit is contained in:
parent
b0e2e7bdb4
commit
797d8bff08
@ -6,7 +6,8 @@
|
|||||||
use clippy_utils::visitors::is_const_evaluatable;
|
use clippy_utils::visitors::is_const_evaluatable;
|
||||||
use clippy_utils::MaybePath;
|
use clippy_utils::MaybePath;
|
||||||
use clippy_utils::{
|
use clippy_utils::{
|
||||||
eq_expr_value, is_diag_trait_item, is_trait_method, path_res, path_to_local_id, peel_blocks, peel_blocks_with_stmt,
|
eq_expr_value, in_constant, is_diag_trait_item, is_trait_method, path_res, path_to_local_id, peel_blocks,
|
||||||
|
peel_blocks_with_stmt,
|
||||||
};
|
};
|
||||||
use itertools::Itertools;
|
use itertools::Itertools;
|
||||||
use rustc_errors::Applicability;
|
use rustc_errors::Applicability;
|
||||||
@ -117,7 +118,7 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
|
|||||||
if !self.msrv.meets(msrvs::CLAMP) {
|
if !self.msrv.meets(msrvs::CLAMP) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if !expr.span.from_expansion() {
|
if !expr.span.from_expansion() && !in_constant(cx, expr.hir_id) {
|
||||||
let suggestion = is_if_elseif_else_pattern(cx, expr)
|
let suggestion = is_if_elseif_else_pattern(cx, expr)
|
||||||
.or_else(|| is_max_min_pattern(cx, expr))
|
.or_else(|| is_max_min_pattern(cx, expr))
|
||||||
.or_else(|| is_call_max_min_pattern(cx, expr))
|
.or_else(|| is_call_max_min_pattern(cx, expr))
|
||||||
@ -130,7 +131,7 @@ fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) {
|
fn check_block(&mut self, cx: &LateContext<'tcx>, block: &'tcx Block<'tcx>) {
|
||||||
if !self.msrv.meets(msrvs::CLAMP) {
|
if !self.msrv.meets(msrvs::CLAMP) || in_constant(cx, block.hir_id) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for suggestion in is_two_if_pattern(cx, block) {
|
for suggestion in is_two_if_pattern(cx, block) {
|
||||||
|
@ -326,3 +326,22 @@ fn msrv_1_50() {
|
|||||||
input
|
input
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const fn _const() {
|
||||||
|
let (input, min, max) = (0, -1, 2);
|
||||||
|
let _ = if input < min {
|
||||||
|
min
|
||||||
|
} else if input > max {
|
||||||
|
max
|
||||||
|
} else {
|
||||||
|
input
|
||||||
|
};
|
||||||
|
|
||||||
|
let mut x = input;
|
||||||
|
if max < x {
|
||||||
|
let x = max;
|
||||||
|
}
|
||||||
|
if min > x {
|
||||||
|
x = min;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user