diff options
Diffstat (limited to 'src/test/ui/const-generics/defaults/const-param-as-default-value.rs')
-rw-r--r-- | src/test/ui/const-generics/defaults/const-param-as-default-value.rs | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/defaults/const-param-as-default-value.rs b/src/test/ui/const-generics/defaults/const-param-as-default-value.rs new file mode 100644 index 000000000..c1c955d87 --- /dev/null +++ b/src/test/ui/const-generics/defaults/const-param-as-default-value.rs @@ -0,0 +1,21 @@ +// run-pass +struct Foo<const N: usize, const M: usize = N>([u8; N], [u8; M]); + +fn foo<const N: usize>() -> Foo<N> { + let x = [0; N]; + Foo(x, x) +} + +// To check that we actually apply the correct substs for const param defaults. +fn concrete_foo() -> Foo<13> { + Foo(Default::default(), Default::default()) +} + + +fn main() { + let val = foo::<13>(); + assert_eq!(val.0, val.1); + + let val = concrete_foo(); + assert_eq!(val.0, val.1); +} |