error: useless use of `vec!`
  --> $DIR/vec.rs:30:14
   |
LL |     on_slice(&vec![]);
   |              ^^^^^^^ help: you can use a slice directly: `&[]`
   |
   = note: `-D clippy::useless-vec` implied by `-D warnings`
   = help: to override `-D warnings` add `#[allow(clippy::useless_vec)]`

error: useless use of `vec!`
  --> $DIR/vec.rs:32:18
   |
LL |     on_mut_slice(&mut vec![]);
   |                  ^^^^^^^^^^^ help: you can use a slice directly: `&mut []`

error: useless use of `vec!`
  --> $DIR/vec.rs:34:14
   |
LL |     on_slice(&vec![1, 2]);
   |              ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:36:18
   |
LL |     on_mut_slice(&mut vec![1, 2]);
   |                  ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&mut [1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:38:14
   |
LL |     on_slice(&vec![1, 2]);
   |              ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:40:18
   |
LL |     on_mut_slice(&mut vec![1, 2]);
   |                  ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&mut [1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:42:14
   |
LL |     on_slice(&vec!(1, 2));
   |              ^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:44:18
   |
LL |     on_mut_slice(&mut vec![1, 2]);
   |                  ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&mut [1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:46:14
   |
LL |     on_slice(&vec![1; 2]);
   |              ^^^^^^^^^^^ help: you can use a slice directly: `&[1; 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:48:18
   |
LL |     on_mut_slice(&mut vec![1; 2]);
   |                  ^^^^^^^^^^^^^^^ help: you can use a slice directly: `&mut [1; 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:74:19
   |
LL |     let _x: i32 = vec![1, 2, 3].iter().sum();
   |                   ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]`

error: useless use of `vec!`
  --> $DIR/vec.rs:77:17
   |
LL |     let mut x = vec![1, 2, 3];
   |                 ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]`

error: useless use of `vec!`
  --> $DIR/vec.rs:83:22
   |
LL |     let _x: &[i32] = &vec![1, 2, 3];
   |                      ^^^^^^^^^^^^^^ help: you can use a slice directly: `&[1, 2, 3]`

error: useless use of `vec!`
  --> $DIR/vec.rs:85:14
   |
LL |     for _ in vec![1, 2, 3] {}
   |              ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]`

error: useless use of `vec!`
  --> $DIR/vec.rs:124:20
   |
LL |     for _string in vec![repro!(true), repro!(null)] {
   |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[repro!(true), repro!(null)]`

error: useless use of `vec!`
  --> $DIR/vec.rs:141:18
   |
LL |     in_macro!(1, vec![1, 2], vec![1; 2]);
   |                  ^^^^^^^^^^ help: you can use an array directly: `[1, 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:141:30
   |
LL |     in_macro!(1, vec![1, 2], vec![1; 2]);
   |                              ^^^^^^^^^^ help: you can use an array directly: `[1; 2]`

error: useless use of `vec!`
  --> $DIR/vec.rs:160:14
   |
LL |     for a in vec![1, 2, 3] {
   |              ^^^^^^^^^^^^^ help: you can use an array directly: `[1, 2, 3]`

error: useless use of `vec!`
  --> $DIR/vec.rs:164:14
   |
LL |     for a in vec![String::new(), String::new()] {
   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[String::new(), String::new()]`

error: aborting due to 19 previous errors

