Auto merge of #7118 - TaKO8Ki:fix-false-positive-in-comparison-chain, r=giraffate
Fix a false-positive inside const fn in `comparison_chain` closes https://github.com/rust-lang/rust-clippy/issues/7082 changelog: fix a false-positive inside const fn in [`comparison_chain`]
This commit is contained in:
commit
14f1551075
|
@ -1,6 +1,6 @@
|
|||
use clippy_utils::diagnostics::span_lint_and_help;
|
||||
use clippy_utils::ty::implements_trait;
|
||||
use clippy_utils::{get_trait_def_id, if_sequence, is_else_clause, paths, SpanlessEq};
|
||||
use clippy_utils::{get_trait_def_id, if_sequence, in_constant, is_else_clause, paths, SpanlessEq};
|
||||
use rustc_hir::{BinOpKind, Expr, ExprKind};
|
||||
use rustc_lint::{LateContext, LateLintPass};
|
||||
use rustc_session::{declare_lint_pass, declare_tool_lint};
|
||||
|
@ -64,6 +64,10 @@ impl<'tcx> LateLintPass<'tcx> for ComparisonChain {
|
|||
return;
|
||||
}
|
||||
|
||||
if in_constant(cx, expr.hir_id) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Check that there exists at least one explicit else condition
|
||||
let (conds, _) = if_sequence(expr);
|
||||
if conds.len() < 2 {
|
||||
|
|
|
@ -203,4 +203,32 @@ mod issue_5212 {
|
|||
}
|
||||
}
|
||||
|
||||
enum Sign {
|
||||
Negative,
|
||||
Positive,
|
||||
Zero,
|
||||
}
|
||||
|
||||
impl Sign {
|
||||
const fn sign_i8(n: i8) -> Self {
|
||||
if n == 0 {
|
||||
Sign::Zero
|
||||
} else if n > 0 {
|
||||
Sign::Positive
|
||||
} else {
|
||||
Sign::Negative
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const fn sign_i8(n: i8) -> Sign {
|
||||
if n == 0 {
|
||||
Sign::Zero
|
||||
} else if n > 0 {
|
||||
Sign::Positive
|
||||
} else {
|
||||
Sign::Negative
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
Loading…
Reference in a new issue