]> git.lizzy.rs Git - rust.git/blob - src/test/ui/const-generics/issue-70180-1-stalled_on.rs
Auto merge of #79342 - CDirkx:ipaddr-const, r=oli-obk
[rust.git] / src / test / ui / const-generics / issue-70180-1-stalled_on.rs
1 // build-pass
2 // revisions: full min
3
4 #![cfg_attr(full, feature(const_generics))]
5 #![cfg_attr(full, allow(incomplete_features))]
6 #![cfg_attr(min, feature(min_const_generics))]
7
8 pub fn works() {
9     let array/*: [_; _]*/ = default_array();
10     let _: [_; 4] = array;
11     Foo::foo(&array);
12 }
13
14 pub fn didnt_work() {
15     let array/*: [_; _]*/ = default_array();
16     Foo::foo(&array);
17     let _: [_; 4] = array;
18 }
19
20 trait Foo {
21     fn foo(&self) {}
22 }
23
24 impl Foo for [i32; 4] {}
25 impl Foo for [i64; 8] {}
26
27 // Only needed because `[_; _]` is not valid type syntax.
28 fn default_array<T, const N: usize>() -> [T; N]
29 where
30     [T; N]: Default,
31 {
32     Default::default()
33 }
34
35 fn main() {
36     works();
37     didnt_work();
38 }