Rust errors / Patterns and matching
Rust compiler error · checked with rustc 1.99.0
Rust error E0730: cannot pattern-match on an array without a fixed length
What it meansAn array without a fixed length was pattern-matched.
What rustc prints
error[E0730]: cannot pattern-match on an array without a fixed length
--> main.rs:3:9
|
3 | [1, 2, ..] => true, // error: cannot pattern-match on an
| ^^^^^^^^^^Real output of rustc 1.99.0 compiling the official example below (2021 edition). Your names and line numbers will differ; the first line is the part to match.
The compiler team's explanation
An array without a fixed length was pattern-matched.
Erroneous code example:
fn is_123<const N: usize>(x: [u32; N]) -> bool {
match x {
[1, 2, ..] => true, // error: cannot pattern-match on an
// array without a fixed length
_ => false
}
}
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
}
}
Example with a slice:
fn is_123(x: &[u32]) -> bool { // We use a slice
match x {
[1, 2, ..] => true, // ok!
_ => false
}
}From rustc --explain E0730 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0004non-exhaustive patterns
- E0533expected unit struct, unit variant or constant, found associated function `Tortoise::turtle`
- E0638This error indicates that the struct, enum or enum variant must be matched non-exhaustively as it has been marked as `non_exhaustive`
- E0748unterminated raw string
- E0769tuple variant `E::A` written as struct variant
Up next
Often hit nextE0004: non-exhaustive patternsA related error from the same family.Read it next →Did this answer your question?