| // Checks that const expressions have a useful note explaining why they can't be evaluated. |
| // The note should relate to the fact that it cannot be shown forall N that it maps 1-1 to a new |
| // type. |
| |
| //@ revisions: full min |
| #![cfg_attr(full, feature(generic_const_exprs))] |
| #![cfg_attr(full, allow(incomplete_features))] |
| |
| struct Collatz<const N: Option<usize>>; |
| //~^ ERROR: `Option<usize>` is forbidden |
| |
| impl <const N: usize> Collatz<{Some(N)}> {} |
| //~^ ERROR the const parameter |
| //[min]~^^ generic parameters may not be used in const operations |
| //[full]~^^^ ERROR overly complex |
| |
| struct Foo; |
| |
| impl<const N: usize> Foo {} |
| //~^ ERROR the const parameter |
| |
| fn main() {} |