]>
Commit | Line | Data |
---|---|---|
3dfed10e | 1 | // check-pass |
1b1a35ee XL |
2 | // revisions: full min |
3 | #![cfg_attr(full, feature(const_generics))] | |
4 | #![cfg_attr(full, allow(incomplete_features))] | |
3dfed10e XL |
5 | |
6 | struct X; | |
7 | ||
8 | impl X { | |
9 | pub fn getn<const N: usize>(&self) -> [u8; N] { | |
10 | getn::<N>() | |
11 | } | |
12 | } | |
13 | ||
14 | fn getn<const N: usize>() -> [u8; N] { | |
15 | unsafe { | |
16 | std::mem::zeroed() | |
17 | } | |
18 | } | |
19 | ||
20 | fn main() { | |
21 | // works | |
22 | let [a,b,c] = getn::<3>(); | |
23 | ||
24 | // cannot pattern-match on an array without a fixed length | |
25 | let [a,b,c] = X.getn::<3>(); | |
26 | ||
27 | // mismatched types, expected array `[u8; 3]` found array `[u8; _]` | |
28 | let arr: [u8; 3] = X.getn::<3>(); | |
29 | } |