diff options
Diffstat (limited to 'src/test/ui/const-generics/issues/issue-62220.rs')
| -rw-r--r-- | src/test/ui/const-generics/issues/issue-62220.rs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/issues/issue-62220.rs b/src/test/ui/const-generics/issues/issue-62220.rs new file mode 100644 index 00000000000..c95b3063201 --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-62220.rs @@ -0,0 +1,22 @@ +// build-pass +#![allow(incomplete_features)] + +#![feature(const_generics)] +pub struct Vector<T, const N: usize>([T; N]); + +pub type TruncatedVector<T, const N: usize> = Vector<T, { N - 1 }>; + +impl<T, const N: usize> Vector<T, { N }> { + /// Drop the last component and return the vector with one fewer dimension. + pub fn trunc(self) -> (TruncatedVector<T, { N }>, T) { + unimplemented!() + } +} + +fn vec4<T>(a: T, b: T, c: T, d: T) -> Vector<T, 4> { + Vector([a, b, c, d]) +} + +fn main() { + let (_xyz, _w): (TruncatedVector<u32, 4>, u32) = vec4(0u32, 1, 2, 3).trunc(); +} |
