blob: 0888019e101ce59bc87c675fa70022562cc42928 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
//@aux-build:proc_macros.rs
//@no-rustfix: overlapping suggestions
#![allow(clippy::no_effect, clippy::unnecessary_operation, clippy::useless_vec, unused)]
#![warn(clippy::single_range_in_vec_init)]
#[macro_use]
extern crate proc_macros;
macro_rules! a {
() => {
vec![0..200];
};
}
fn awa<T: PartialOrd>(start: T, end: T) {
[start..end];
}
fn awa_vec<T: PartialOrd>(start: T, end: T) {
vec![start..end];
}
fn main() {
// Lint
[0..200];
//~^ single_range_in_vec_init
vec![0..200];
//~^ single_range_in_vec_init
[0u8..200];
//~^ single_range_in_vec_init
[0usize..200];
//~^ single_range_in_vec_init
[0..200usize];
//~^ single_range_in_vec_init
vec![0u8..200];
//~^ single_range_in_vec_init
vec![0usize..200];
//~^ single_range_in_vec_init
vec![0..200usize];
//~^ single_range_in_vec_init
// Only suggest collect
[0..200isize];
//~^ single_range_in_vec_init
vec![0..200isize];
//~^ single_range_in_vec_init
// Do not lint
[0..200, 0..100];
vec![0..200, 0..100];
[0.0..200.0];
vec![0.0..200.0];
// `Copy` is not implemented for `Range`, so this doesn't matter
// FIXME: [0..200; 2];
// FIXME: [vec!0..200; 2];
// Unfortunately skips any macros
a!();
// Skip external macros and procedural macros
external! {
[0..200];
vec![0..200];
}
with_span! {
span
[0..200];
vec![0..200];
}
}
|