A new lint for shared code in if blocks
* Added expression check for shared_code_in_if_blocks * Finishing touches for the shared_code_in_if_blocks lint * Applying PR suggestions * Update lints yay * Moved test into subfolder
This commit is contained in:
parent
232e2b79f2
commit
d1df73228a
17 changed files with 780 additions and 207 deletions
|
|
@ -483,6 +483,15 @@ pub fn over<X>(left: &[X], right: &[X], mut eq_fn: impl FnMut(&X, &X) -> bool) -
|
|||
left.len() == right.len() && left.iter().zip(right).all(|(x, y)| eq_fn(x, y))
|
||||
}
|
||||
|
||||
/// Counts how many elements of the slices are equal as per `eq_fn`.
|
||||
pub fn count_eq<X: Sized>(
|
||||
left: &mut dyn Iterator<Item = X>,
|
||||
right: &mut dyn Iterator<Item = X>,
|
||||
mut eq_fn: impl FnMut(&X, &X) -> bool,
|
||||
) -> usize {
|
||||
left.zip(right).take_while(|(l, r)| eq_fn(l, r)).count()
|
||||
}
|
||||
|
||||
/// Checks if two expressions evaluate to the same value, and don't contain any side effects.
|
||||
pub fn eq_expr_value(cx: &LateContext<'_>, left: &Expr<'_>, right: &Expr<'_>) -> bool {
|
||||
SpanlessEq::new(cx).deny_side_effects().eq_expr(left, right)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue