### What it does Checks for range expressions `x..y` where both `x` and `y` are constant and `x` is greater or equal to `y`. ### Why is this bad? Empty ranges yield no values so iterating them is a no-op. Moreover, trying to use a reversed range to index a slice will panic at run-time. ### Example ``` fn main() { (10..=0).for_each(|x| println!("{}", x)); let arr = [1, 2, 3, 4, 5]; let sub = &arr[3..1]; } ``` Use instead: ``` fn main() { (0..=10).rev().for_each(|x| println!("{}", x)); let arr = [1, 2, 3, 4, 5]; let sub = &arr[1..3]; } ```