2023-04-20 14:37:15 +00:00
|
|
|
//@run-rustfix
|
2018-07-28 15:34:52 +00:00
|
|
|
#![warn(clippy::useless_vec)]
|
2022-10-02 19:13:22 +00:00
|
|
|
#![allow(clippy::nonstandard_macro_braces, clippy::uninlined_format_args)]
|
2016-01-29 00:54:10 +00:00
|
|
|
|
2016-07-14 17:31:17 +00:00
|
|
|
#[derive(Debug)]
|
|
|
|
struct NonCopy;
|
|
|
|
|
2016-01-29 00:54:10 +00:00
|
|
|
fn on_slice(_: &[u8]) {}
|
2021-04-05 11:27:39 +00:00
|
|
|
|
|
|
|
fn on_mut_slice(_: &mut [u8]) {}
|
|
|
|
|
2018-07-28 15:34:52 +00:00
|
|
|
#[allow(clippy::ptr_arg)]
|
2016-01-29 00:54:10 +00:00
|
|
|
fn on_vec(_: &Vec<u8>) {}
|
|
|
|
|
2021-04-05 11:27:39 +00:00
|
|
|
fn on_mut_vec(_: &mut Vec<u8>) {}
|
|
|
|
|
2016-07-03 19:12:43 +00:00
|
|
|
struct Line {
|
|
|
|
length: usize,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Line {
|
|
|
|
fn length(&self) -> usize {
|
|
|
|
self.length
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-01-29 00:54:10 +00:00
|
|
|
fn main() {
|
|
|
|
on_slice(&vec![]);
|
|
|
|
on_slice(&[]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_slice(&mut vec![]);
|
2016-01-29 00:54:10 +00:00
|
|
|
|
|
|
|
on_slice(&vec![1, 2]);
|
|
|
|
on_slice(&[1, 2]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_slice(&mut vec![1, 2]);
|
2016-01-29 00:54:10 +00:00
|
|
|
|
2018-12-09 22:26:16 +00:00
|
|
|
on_slice(&vec![1, 2]);
|
2016-01-29 00:54:10 +00:00
|
|
|
on_slice(&[1, 2]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_slice(&mut vec![1, 2]);
|
2018-12-10 23:59:59 +00:00
|
|
|
#[rustfmt::skip]
|
|
|
|
on_slice(&vec!(1, 2));
|
2016-01-29 00:54:10 +00:00
|
|
|
on_slice(&[1, 2]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_slice(&mut vec![1, 2]);
|
2016-01-29 00:54:10 +00:00
|
|
|
|
|
|
|
on_slice(&vec![1; 2]);
|
|
|
|
on_slice(&[1; 2]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_slice(&mut vec![1; 2]);
|
2016-01-29 00:54:10 +00:00
|
|
|
|
|
|
|
on_vec(&vec![]);
|
|
|
|
on_vec(&vec![1, 2]);
|
|
|
|
on_vec(&vec![1; 2]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_vec(&mut vec![]);
|
|
|
|
on_mut_vec(&mut vec![1, 2]);
|
|
|
|
on_mut_vec(&mut vec![1; 2]);
|
2016-03-28 21:32:55 +00:00
|
|
|
|
2016-07-03 19:12:43 +00:00
|
|
|
// Now with non-constant expressions
|
|
|
|
let line = Line { length: 2 };
|
|
|
|
|
|
|
|
on_slice(&vec![2; line.length]);
|
|
|
|
on_slice(&vec![2; line.length()]);
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_slice(&mut vec![2; line.length]);
|
|
|
|
on_mut_slice(&mut vec![2; line.length()]);
|
2016-07-03 19:12:43 +00:00
|
|
|
|
2016-03-28 21:32:55 +00:00
|
|
|
for a in vec![1, 2, 3] {
|
2016-07-14 17:31:17 +00:00
|
|
|
println!("{:?}", a);
|
|
|
|
}
|
|
|
|
|
|
|
|
for a in vec![NonCopy, NonCopy] {
|
|
|
|
println!("{:?}", a);
|
2016-03-28 21:32:55 +00:00
|
|
|
}
|
2020-08-14 12:13:35 +00:00
|
|
|
|
|
|
|
on_vec(&vec![1; 201]); // Ok, size of `vec` higher than `too_large_for_stack`
|
2021-04-05 11:27:39 +00:00
|
|
|
on_mut_vec(&mut vec![1; 201]); // Ok, size of `vec` higher than `too_large_for_stack`
|
2020-08-14 12:13:35 +00:00
|
|
|
|
|
|
|
// Ok
|
|
|
|
for a in vec![1; 201] {
|
|
|
|
println!("{:?}", a);
|
|
|
|
}
|
2016-01-29 00:54:10 +00:00
|
|
|
}
|