blob: 0888019e101ce59bc87c675fa70022562cc42928 [file] [log] [blame]
//@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];
}
}