Rollup merge of #99891 - compiler-errors:suggest-slicing-carefully, r=oli-obk

Adjust an expr span to account for macros

Fix this erroneous suggestion:

```
error[E0529]: expected an array or slice, found `Vec<{integer}>`
 --> /home/gh-compiler-errors/test.rs:2:9
  |
2 |     let [..] = vec![1, 2, 3];
  |         ^^^^ pattern cannot match with input type `Vec<{integer}>`
  |
help: consider slicing here
 --> /home/gh-compiler-errors/rust2/library/alloc/src/macros.rs:50:36
  |
50~         $crate::__rust_force_expr!(<[_]>::into_vec(
51+             #[rustc_box]
52+             $crate::boxed::Box::new([$($x),+])
53~         )[..])
```
This commit is contained in:
Yuki Okushi 2022-07-30 07:39:55 +09:00 committed by GitHub
commit 735969eacd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 22 additions and 3 deletions

View file

@ -24,4 +24,8 @@ fn main() {
//~^ ERROR: expected an array or slice
_ => {}
}
let [..] = vec![1, 2, 3][..];
//~^ ERROR: expected an array or slice
//~| HELP: consider slicing here
}

View file

@ -24,4 +24,8 @@ fn main() {
//~^ ERROR: expected an array or slice
_ => {}
}
let [..] = vec![1, 2, 3];
//~^ ERROR: expected an array or slice
//~| HELP: consider slicing here
}

View file

@ -31,6 +31,14 @@ LL |
LL | [5] => {}
| ^^^ pattern cannot match with input type `Vec<_>`
error: aborting due to 4 previous errors
error[E0529]: expected an array or slice, found `Vec<{integer}>`
--> $DIR/pattern-slice-vec.rs:28:9
|
LL | let [..] = vec![1, 2, 3];
| ^^^^ ------------- help: consider slicing here: `vec![1, 2, 3][..]`
| |
| pattern cannot match with input type `Vec<{integer}>`
error: aborting due to 5 previous errors
For more information about this error, try `rustc --explain E0529`.