fix [type error] for error E0029 and E0277
check explicitly for the type references error if ty.references_error() is true change the error to be err.delay_as_bug() and prevent the error E0029 and E0277 from emitting out this fix #105946
This commit is contained in:
parent
df756439df
commit
10dbcf0630
5 changed files with 75 additions and 4 deletions
12
src/test/ui/typeck/issue-105946.rs
Normal file
12
src/test/ui/typeck/issue-105946.rs
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
fn digit() -> str {
|
||||
return {};
|
||||
//~^ ERROR: mismatched types [E0308]
|
||||
}
|
||||
fn main() {
|
||||
let [_y..] = [box 1, box 2];
|
||||
//~^ ERROR: cannot find value `_y` in this scope [E0425]
|
||||
//~| ERROR: `X..` patterns in slices are experimental [E0658]
|
||||
//~| ERROR: box expression syntax is experimental; you can call `Box::new` instead [E0658]
|
||||
//~| ERROR: box expression syntax is experimental; you can call `Box::new` instead [E0658]
|
||||
//~| ERROR: pattern requires 1 element but array has 2 [E0527]
|
||||
}
|
||||
49
src/test/ui/typeck/issue-105946.stderr
Normal file
49
src/test/ui/typeck/issue-105946.stderr
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
error[E0425]: cannot find value `_y` in this scope
|
||||
--> $DIR/issue-105946.rs:6:10
|
||||
|
|
||||
LL | let [_y..] = [box 1, box 2];
|
||||
| ^^ not found in this scope
|
||||
|
||||
error[E0658]: `X..` patterns in slices are experimental
|
||||
--> $DIR/issue-105946.rs:6:10
|
||||
|
|
||||
LL | let [_y..] = [box 1, box 2];
|
||||
| ^^^^
|
||||
|
|
||||
= note: see issue #67264 <https://github.com/rust-lang/rust/issues/67264> for more information
|
||||
= help: add `#![feature(half_open_range_patterns_in_slices)]` to the crate attributes to enable
|
||||
|
||||
error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
|
||||
--> $DIR/issue-105946.rs:6:19
|
||||
|
|
||||
LL | let [_y..] = [box 1, box 2];
|
||||
| ^^^^^
|
||||
|
|
||||
= note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
|
||||
= help: add `#![feature(box_syntax)]` to the crate attributes to enable
|
||||
|
||||
error[E0658]: box expression syntax is experimental; you can call `Box::new` instead
|
||||
--> $DIR/issue-105946.rs:6:26
|
||||
|
|
||||
LL | let [_y..] = [box 1, box 2];
|
||||
| ^^^^^
|
||||
|
|
||||
= note: see issue #49733 <https://github.com/rust-lang/rust/issues/49733> for more information
|
||||
= help: add `#![feature(box_syntax)]` to the crate attributes to enable
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-105946.rs:2:10
|
||||
|
|
||||
LL | return {};
|
||||
| ^^ expected `str`, found `()`
|
||||
|
||||
error[E0527]: pattern requires 1 element but array has 2
|
||||
--> $DIR/issue-105946.rs:6:9
|
||||
|
|
||||
LL | let [_y..] = [box 1, box 2];
|
||||
| ^^^^^^ expected 2 elements
|
||||
|
||||
error: aborting due to 6 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0308, E0425, E0527, E0658.
|
||||
For more information about an error, try `rustc --explain E0308`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue