mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-28 20:16:58 +03:00
reversed_empty_ranges: don't lint N..N except in for loop arg
This commit is contained in:
@@ -4,8 +4,6 @@
|
||||
const ANSWER: i32 = 42;
|
||||
|
||||
fn main() {
|
||||
let arr = [1, 2, 3, 4, 5];
|
||||
|
||||
// These should be linted:
|
||||
|
||||
(21..=42).rev().for_each(|x| println!("{}", x));
|
||||
@@ -14,16 +12,18 @@ fn main() {
|
||||
for _ in (-42..=-21).rev() {}
|
||||
for _ in (21u32..42u32).rev() {}
|
||||
|
||||
let _ = &[] as &[i32];
|
||||
|
||||
// These should be ignored as they are not empty ranges:
|
||||
|
||||
(21..=42).for_each(|x| println!("{}", x));
|
||||
(21..42).for_each(|x| println!("{}", x));
|
||||
|
||||
let arr = [1, 2, 3, 4, 5];
|
||||
let _ = &arr[1..=3];
|
||||
let _ = &arr[1..3];
|
||||
|
||||
for _ in 21..=42 {}
|
||||
for _ in 21..42 {}
|
||||
|
||||
// This range is empty but should be ignored, see issue #5689
|
||||
let _ = &arr[0..0];
|
||||
}
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
const ANSWER: i32 = 42;
|
||||
|
||||
fn main() {
|
||||
let arr = [1, 2, 3, 4, 5];
|
||||
|
||||
// These should be linted:
|
||||
|
||||
(42..=21).for_each(|x| println!("{}", x));
|
||||
@@ -14,16 +12,18 @@ fn main() {
|
||||
for _ in -21..=-42 {}
|
||||
for _ in 42u32..21u32 {}
|
||||
|
||||
let _ = &arr[3..3];
|
||||
|
||||
// These should be ignored as they are not empty ranges:
|
||||
|
||||
(21..=42).for_each(|x| println!("{}", x));
|
||||
(21..42).for_each(|x| println!("{}", x));
|
||||
|
||||
let arr = [1, 2, 3, 4, 5];
|
||||
let _ = &arr[1..=3];
|
||||
let _ = &arr[1..3];
|
||||
|
||||
for _ in 21..=42 {}
|
||||
for _ in 21..42 {}
|
||||
|
||||
// This range is empty but should be ignored, see issue #5689
|
||||
let _ = &arr[0..0];
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
error: this range is empty so it will yield no values
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:11:5
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:9:5
|
||||
|
|
||||
LL | (42..=21).for_each(|x| println!("{}", x));
|
||||
| ^^^^^^^^^
|
||||
@@ -11,7 +11,7 @@ LL | (21..=42).rev().for_each(|x| println!("{}", x));
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
||||
error: this range is empty so it will yield no values
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:12:13
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:10:13
|
||||
|
|
||||
LL | let _ = (ANSWER..21).filter(|x| x % 2 == 0).take(10).collect::<Vec<_>>();
|
||||
| ^^^^^^^^^^^^
|
||||
@@ -22,7 +22,7 @@ LL | let _ = (21..ANSWER).rev().filter(|x| x % 2 == 0).take(10).collect::<Ve
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: this range is empty so it will yield no values
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:14:14
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:12:14
|
||||
|
|
||||
LL | for _ in -21..=-42 {}
|
||||
| ^^^^^^^^^
|
||||
@@ -33,7 +33,7 @@ LL | for _ in (-42..=-21).rev() {}
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: this range is empty so it will yield no values
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:15:14
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:13:14
|
||||
|
|
||||
LL | for _ in 42u32..21u32 {}
|
||||
| ^^^^^^^^^^^^
|
||||
@@ -43,11 +43,5 @@ help: consider using the following if you are attempting to iterate over this ra
|
||||
LL | for _ in (21u32..42u32).rev() {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
error: this range is empty and using it to index a slice will always yield an empty slice
|
||||
--> $DIR/reversed_empty_ranges_fixable.rs:17:18
|
||||
|
|
||||
LL | let _ = &arr[3..3];
|
||||
| ----^^^^- help: if you want an empty slice, use: `[] as &[i32]`
|
||||
|
||||
error: aborting due to 5 previous errors
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
|
||||
@@ -4,11 +4,12 @@
|
||||
const SOME_NUM: usize = 3;
|
||||
|
||||
fn main() {
|
||||
let _ = (42 + 10..42 + 10).map(|x| x / 2).find(|&x| x == 21);
|
||||
|
||||
let arr = [1, 2, 3, 4, 5];
|
||||
let _ = &arr[3usize..=1usize];
|
||||
let _ = &arr[SOME_NUM..1];
|
||||
|
||||
for _ in ANSWER..ANSWER {}
|
||||
|
||||
// Should not be linted, see issue #5689
|
||||
let _ = (42 + 10..42 + 10).map(|x| x / 2).find(|&x| x == 21);
|
||||
}
|
||||
|
||||
@@ -1,28 +1,22 @@
|
||||
error: this range is empty so it will yield no values
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:7:13
|
||||
error: this range is reversed and using it to index a slice will panic at run-time
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:8:18
|
||||
|
|
||||
LL | let _ = (42 + 10..42 + 10).map(|x| x / 2).find(|&x| x == 21);
|
||||
| ^^^^^^^^^^^^^^^^^^
|
||||
LL | let _ = &arr[3usize..=1usize];
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
|
||||
= note: `-D clippy::reversed-empty-ranges` implied by `-D warnings`
|
||||
|
||||
error: this range is reversed and using it to index a slice will panic at run-time
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:10:18
|
||||
|
|
||||
LL | let _ = &arr[3usize..=1usize];
|
||||
| ^^^^^^^^^^^^^^^
|
||||
|
||||
error: this range is reversed and using it to index a slice will panic at run-time
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:11:18
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:9:18
|
||||
|
|
||||
LL | let _ = &arr[SOME_NUM..1];
|
||||
| ^^^^^^^^^^^
|
||||
|
||||
error: this range is empty so it will yield no values
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:13:14
|
||||
--> $DIR/reversed_empty_ranges_unfixable.rs:11:14
|
||||
|
|
||||
LL | for _ in ANSWER..ANSWER {}
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
|
||||
Reference in New Issue
Block a user