]> git.lizzy.rs Git - rust.git/commitdiff
add a build-pass test for issue 62220
authorDodo <kasper199914@gmail.com>
Sun, 29 Mar 2020 16:27:54 +0000 (18:27 +0200)
committerDodo <kasper199914@gmail.com>
Sun, 29 Mar 2020 16:27:54 +0000 (18:27 +0200)
src/test/ui/const-generics/issues/issue-62220.rs [new file with mode: 0644]

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 (file)
index 0000000..c95b306
--- /dev/null
@@ -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();
+}