#![allow(incomplete_features)] #![feature(const_generics)] pub struct Vector([T; N]); pub type TruncatedVector = Vector; impl Vector { /// Drop the last component and return the vector with one fewer dimension. pub fn trunc(self) -> (TruncatedVector, T) { //~^ ERROR constant expression depends on a generic parameter unimplemented!() } } fn vec4(a: T, b: T, c: T, d: T) -> Vector { Vector([a, b, c, d]) } fn main() { let (_xyz, _w): (TruncatedVector, u32) = vec4(0u32, 1, 2, 3).trunc(); }