SmallVec<[T; N]> is invariant over T.
Although [T; N] is covariant over T as expected.
This is due to SmallVec<A> having field of type <A as Array>::Item in underlying union.
I propose to change that field type to A and remove A: Array bound from type declaration.
SmallVec<[T; N]>is invariant overT.Although
[T; N]is covariant overTas expected.This is due to
SmallVec<A>having field of type<A as Array>::Itemin underlying union.I propose to change that field type to
Aand removeA: Arraybound from type declaration.