Skip to content

Commit ff68673

Browse files
committed
add tests
1 parent 742b48d commit ff68673

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
fn main() {
2+
let x = vec![1i32];
3+
match &x[..] {
4+
[&v] => {}, //~ ERROR mismatched types
5+
_ => {},
6+
}
7+
match x {
8+
[&v] => {}, //~ ERROR expected an array or slice
9+
_ => {},
10+
}
11+
match &x[..] {
12+
[v] => {},
13+
_ => {},
14+
}
15+
match &x[..] {
16+
&[v] => {},
17+
_ => {},
18+
}
19+
match x {
20+
[v] => {}, //~ ERROR expected an array or slice
21+
_ => {},
22+
}
23+
let y = 1i32;
24+
match &y {
25+
&v => {},
26+
_ => {},
27+
}
28+
match y {
29+
&v => {}, //~ ERROR mismatched types
30+
_ => {},
31+
}
32+
match &y {
33+
v => {},
34+
_ => {},
35+
}
36+
match y {
37+
v => {},
38+
_ => {},
39+
}
40+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
error[E0308]: mismatched types
2+
--> $DIR/match-ergonomics.rs:4:10
3+
|
4+
LL | [&v] => {},
5+
| ^^
6+
| |
7+
| expected i32, found reference
8+
| help: you can probaly remove the explicit borrow: `v`
9+
|
10+
= note: expected type `i32`
11+
found type `&_`
12+
13+
error[E0529]: expected an array or slice, found `std::vec::Vec<i32>`
14+
--> $DIR/match-ergonomics.rs:8:9
15+
|
16+
LL | [&v] => {},
17+
| ^^^^ pattern cannot match with input type `std::vec::Vec<i32>`
18+
19+
error[E0529]: expected an array or slice, found `std::vec::Vec<i32>`
20+
--> $DIR/match-ergonomics.rs:20:9
21+
|
22+
LL | [v] => {},
23+
| ^^^ pattern cannot match with input type `std::vec::Vec<i32>`
24+
25+
error[E0308]: mismatched types
26+
--> $DIR/match-ergonomics.rs:29:9
27+
|
28+
LL | &v => {},
29+
| ^^ expected i32, found reference
30+
|
31+
= note: expected type `i32`
32+
found type `&_`
33+
help: you can rely on match ergonomics and remove the explicit borrow
34+
|
35+
LL | v => {},
36+
| ^
37+
38+
error: aborting due to 4 previous errors
39+
40+
Some errors have detailed explanations: E0308, E0529.
41+
For more information about an error, try `rustc --explain E0308`.

0 commit comments

Comments
 (0)