error: unconstrained generic constant --> $DIR/array-trait.rs:23:23 | LL | pub struct T([S::Lane; S::SIZE]); | ^^^^^^^^^^^^^^^^^^ | = help: try adding a `where` bound using this expression: `where [(); S::SIZE]:` error[E0077]: SIMD vector element type should be a primitive scalar (integer/float/pointer) type --> $DIR/array-trait.rs:23:1 | LL | pub struct T([S::Lane; S::SIZE]); | ^^^^^^^^^^^^^^^^^^^^^ error: unconstrained generic constant --> $DIR/array-trait.rs:23:23 | LL | #[derive(Copy, Clone)] | ----- in this derive macro expansion LL | pub struct T([S::Lane; S::SIZE]); | ^^^^^^^^^^^^^^^^^^ | = help: try adding a `where` bound using this expression: `where [(); S::SIZE]:` = note: this error originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) error[E0382]: use of moved value: `t` --> $DIR/array-trait.rs:40:40 | LL | let mut t = T::([0; 4]); | ----- move occurs because `t` has type `T`, which does not implement the `Copy` trait ... LL | for i in 0_i32..4 { | ----------------- inside of this loop LL | assert_eq!(i, simd_extract(t, i as u32)); | ^ value moved here, in previous iteration of loop error: aborting due to 4 previous errors Some errors have detailed explanations: E0077, E0382. For more information about an error, try `rustc --explain E0077`.