summaryrefslogtreecommitdiffstats
path: root/src/test/ui/const-generics/deref-into-array-generic.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/const-generics/deref-into-array-generic.rs')
-rw-r--r--src/test/ui/const-generics/deref-into-array-generic.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/deref-into-array-generic.rs b/src/test/ui/const-generics/deref-into-array-generic.rs
new file mode 100644
index 000000000..7d75af12b
--- /dev/null
+++ b/src/test/ui/const-generics/deref-into-array-generic.rs
@@ -0,0 +1,27 @@
+// check-pass
+
+struct Test<T, const N: usize>([T; N]);
+
+impl<T: Copy + Default, const N: usize> Default for Test<T, N> {
+ fn default() -> Self {
+ Self([T::default(); N])
+ }
+}
+
+impl<T, const N: usize> std::ops::Deref for Test<T, N> {
+ type Target = [T; N];
+
+ fn deref(&self) -> &[T; N] {
+ &self.0
+ }
+}
+
+fn test() -> Test<u64, 16> {
+ let test = Test::default();
+ println!("{}", test.len());
+ test
+}
+
+fn main() {
+ test();
+}