Rust errors / Types and traits
Rust compiler error · checked with rustc 1.99.0
Rust error E0529: expected an array or slice, found `f32`
What it meansAn array or slice pattern was matched against some other type.
What rustc prints
error[E0529]: expected an array or slice, found `f32`
--> main.rs:5:5
|
5 | [a, b] => { // error: expected an array or slice, found `f32`
| ^^^^^^ pattern cannot match with input type `f32`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 or slice pattern was matched against some other type.
Example of erroneous code:
let r: f32 = 1.0;
match r {
[a, b] => { // error: expected an array or slice, found `f32`
println!("a={}, b={}", a, b);
}
}
Ensure that the pattern and the expression being matched on are of consistent types:
let r = [1.0, 2.0];
match r {
[a, b] => { // ok!
println!("a={}, b={}", a, b);
}
}From rustc --explain E0529 (1.99.0), part of the Rust project, MIT or Apache-2.0. Official page.
Related errors
- E0308mismatched types
- E0277the trait bound is not satisfied
- E0599no method named X found in the current scope
- E0433failed to resolve
- E0520`fly` specializes an item from a parent `impl`, but that item is not marked `default`
- E0525expected a closure that implements the `Fn` trait, but this closure only implements `FnOnce`
- E0531cannot find tuple struct or tuple variant `Type` in this scope
- E0561patterns aren't allowed in function pointer types
Up next
Often hit nextE0308: mismatched typesA related error from the same family.Read it next →Did this answer your question?