Skip to content

Commit

Permalink
Rollup merge of #74751 - GuillaumeGomez:cleanup-e0730, r=jyn514
Browse files Browse the repository at this point in the history
Clean up E0730 explanation

r? @Dylan-DPC
  • Loading branch information
Manishearth authored Jul 30, 2020
2 parents 6b09c37 + 89e4fe3 commit 7e86c8e
Showing 1 changed file with 21 additions and 7 deletions.
28 changes: 21 additions & 7 deletions src/librustc_error_codes/error_codes/E0730.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
An array without a fixed length was pattern-matched.

Example of erroneous code:
Erroneous code example:

```compile_fail,E0730
#![feature(const_generics)]
Expand All @@ -14,14 +14,28 @@ fn is_123<const N: usize>(x: [u32; N]) -> bool {
}
```

Ensure that the pattern is consistent with the size of the matched
array. Additional elements can be matched with `..`:
To fix this error, you have two solutions:
1. Use an array with a fixed length.
2. Use a slice.

Example with an array with a fixed length:

```
fn is_123(x: [u32; 3]) -> bool { // We use an array with a fixed size
match x {
[1, 2, ..] => true, // ok!
_ => false
}
}
```
let r = &[1, 2, 3, 4];
match r {
&[a, b, ..] => { // ok!
println!("a={}, b={}", a, b);

Example with a slice:

```
fn is_123(x: &[u32]) -> bool { // We use a slice
match x {
[1, 2, ..] => true, // ok!
_ => false
}
}
```

0 comments on commit 7e86c8e

Please sign in to comment.