diff options
Diffstat (limited to 'tests/ui/const-generics/deref-into-array-generic.rs')
-rw-r--r-- | tests/ui/const-generics/deref-into-array-generic.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ui/const-generics/deref-into-array-generic.rs b/tests/ui/const-generics/deref-into-array-generic.rs new file mode 100644 index 000000000..7d75af12b --- /dev/null +++ b/tests/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(); +} |