3 fn test<const N: usize>() {}
5 fn ok<const M: usize>() -> [u8; M] {
9 struct Break0<const N: usize>([u8; { N + 1 }]);
10 //~^ ERROR generic parameters may not be used in const operations
12 struct Break1<const N: usize>([u8; { { N } }]);
13 //~^ ERROR generic parameters may not be used in const operations
15 fn break2<const N: usize>() {
17 //~^ ERROR generic parameters may not be used in const operations
20 fn break3<const N: usize>() {
22 //~^ ERROR generic parameters may not be used in const operations
25 struct BreakTy0<T>(T, [u8; { size_of::<*mut T>() }]);
26 //~^ ERROR generic parameters may not be used in const operations
28 struct BreakTy1<T>(T, [u8; { { size_of::<*mut T>() } }]);
29 //~^ ERROR generic parameters may not be used in const operations
32 let _: [u8; size_of::<*mut T>() + 1];
33 //~^ ERROR generic parameters may not be used in const operations
37 let _ = [0; size_of::<*mut T>() + 1];
38 //~^ WARN cannot use constants which depend on generic parameters in types
39 //~| WARN this was previously accepted by the compiler but is being phased out