refactor(linter): use get_inner_expression in const-comparisons (#7627)

This commit is contained in:
camc314 2024-12-04 02:59:54 +00:00
parent 3b1e63ecab
commit b445654fbd

View file

@ -83,13 +83,13 @@ impl Rule for ConstComparisons {
} }
let Some((right_cmp_op, right_expr, right_const_expr, _)) = let Some((right_cmp_op, right_expr, right_const_expr, _)) =
comparison_to_const(logical_expr.right.without_parentheses()) comparison_to_const(logical_expr.right.get_inner_expression())
else { else {
return; return;
}; };
for (left_cmp_op, left_expr, left_const_expr, left_span) in for (left_cmp_op, left_expr, left_const_expr, left_span) in
all_and_comparison_to_const(logical_expr.left.without_parentheses()) all_and_comparison_to_const(logical_expr.left.get_inner_expression())
{ {
let Some(ordering) = left_const_expr.value.partial_cmp(&right_const_expr.value) else { let Some(ordering) = left_const_expr.value.partial_cmp(&right_const_expr.value) else {
return; return;
@ -138,7 +138,7 @@ impl Rule for ConstComparisons {
ctx.diagnostic(impossible( ctx.diagnostic(impossible(
left_span, left_span,
logical_expr.right.without_parentheses().span(), logical_expr.right.get_inner_expression().span(),
&format!( &format!(
"`{} {} {}` ", "`{} {} {}` ",
expr_str, expr_str,
@ -165,7 +165,7 @@ fn comparison_to_const<'a, 'b>(
) -> Option<(CmpOp, &'b Expression<'a>, &'b NumericLiteral<'a>, Span)> { ) -> Option<(CmpOp, &'b Expression<'a>, &'b NumericLiteral<'a>, Span)> {
if let Expression::BinaryExpression(bin_expr) = expr { if let Expression::BinaryExpression(bin_expr) = expr {
if let Ok(cmp_op) = CmpOp::try_from(bin_expr.operator) { if let Ok(cmp_op) = CmpOp::try_from(bin_expr.operator) {
match (&bin_expr.left.without_parentheses(), &bin_expr.right.without_parentheses()) { match (&bin_expr.left.get_inner_expression(), &bin_expr.right.get_inner_expression()) {
(Expression::NumericLiteral(lit), _) => { (Expression::NumericLiteral(lit), _) => {
return Some((cmp_op.reverse(), &bin_expr.right, lit, bin_expr.span)); return Some((cmp_op.reverse(), &bin_expr.right, lit, bin_expr.span));
} }
@ -187,8 +187,8 @@ fn all_and_comparison_to_const<'a, 'b>(
Expression::LogicalExpression(logical_expr) Expression::LogicalExpression(logical_expr)
if logical_expr.operator == LogicalOperator::And => if logical_expr.operator == LogicalOperator::And =>
{ {
let left_iter = all_and_comparison_to_const(logical_expr.left.without_parentheses()); let left_iter = all_and_comparison_to_const(logical_expr.left.get_inner_expression());
let right_iter = all_and_comparison_to_const(logical_expr.right.without_parentheses()); let right_iter = all_and_comparison_to_const(logical_expr.right.get_inner_expression());
Box::new(left_iter.chain(right_iter)) Box::new(left_iter.chain(right_iter))
} }
_ => { _ => {