|  | pub trait Trait<A> { | 
|  | const ONE<T>: i32; | 
|  | //~^ ERROR generic const items are experimental | 
|  |  | 
|  | const TWO: () | 
|  | where | 
|  | A: Copy; | 
|  | //~^^ ERROR generic const items are experimental | 
|  | } | 
|  |  | 
|  | const CONST<T>: i32 = 0; | 
|  | //~^ ERROR generic const items are experimental | 
|  |  | 
|  | const EMPTY<>: i32 = 0; | 
|  | //~^ ERROR generic const items are experimental | 
|  |  | 
|  | const TRUE: () = () | 
|  | where | 
|  | String: Clone; | 
|  | //~^^ ERROR generic const items are experimental | 
|  |  | 
|  | // Ensure that we flag generic const items inside macro calls as well: | 
|  |  | 
|  | macro_rules! discard { | 
|  | ($item:item) => {} | 
|  | } | 
|  |  | 
|  | discard! { const FREE<T>: () = (); } | 
|  | //~^ ERROR generic const items are experimental | 
|  |  | 
|  | discard! { impl () { const ASSOC<const N: ()>: () = (); } } | 
|  | //~^ ERROR generic const items are experimental | 
|  |  | 
|  | discard! { impl () { const ASSOC: i32 = 0 where String: Copy; } } | 
|  | //~^ ERROR generic const items are experimental | 
|  |  | 
|  | fn main() {} |