1 #![feature(min_const_generics)]
5 fn test<const N: usize>() {}
7 fn ok<const M: usize>() -> [u8; M] {
11 struct Break0<const N: usize>([u8; { N + 1 }]);
12 //~^ ERROR generic parameters may not be used in const operations
14 struct Break1<const N: usize>([u8; { { N } }]);
15 //~^ ERROR generic parameters may not be used in const operations
17 fn break2<const N: usize>() {
19 //~^ ERROR generic parameters may not be used in const operations
22 fn break3<const N: usize>() {
24 //~^ ERROR generic parameters may not be used in const operations
27 struct BreakTy0<T>(T, [u8; { size_of::<*mut T>() }]);
28 //~^ ERROR generic parameters may not be used in const operations
30 struct BreakTy1<T>(T, [u8; { { size_of::<*mut T>() } }]);
31 //~^ ERROR generic parameters may not be used in const operations
34 let _: [u8; size_of::<*mut T>() + 1];
35 //~^ ERROR generic parameters may not be used in const operations
39 let _ = [0; size_of::<*mut T>() + 1];
40 //~^ WARN cannot use constants which depend on generic parameters in types
41 //~| WARN this was previously accepted by the compiler but is being phased out