Error code E0620
A cast to an unsized type was attempted.
Erroneous code example:
#![allow(unused)] fn main() { let x = &[1_usize, 2] as [usize]; // error: cast to unsized type: `&[usize; 2]` // as `[usize]` }
In Rust, some types don't have a known size at compile-time. For example, in a
slice type like [u32]
, the number of elements is not known at compile-time and
hence the overall size cannot be computed. As a result, such types can only be
manipulated through a reference (e.g., &T
or &mut T
) or other pointer-type
(e.g., Box
or Rc
). Try casting to a reference instead:
#![allow(unused)] fn main() { let x = &[1_usize, 2] as &[usize]; // ok! }