#![feature(generic_const_items)]
#![allow(incomplete_features)]
trait Trait
 {
    const A: ();
    const B: u64;
    const C: T;
    const D: usize;
    const E<'a>: &'a ();
    const F: usize;
    const G: ();
}
impl Trait
 for () {
    const A: () = ();
    //~^ ERROR const `A` has 1 type parameter but its trait declaration has 0 type parameters
    const B: u64 = 0;
    //~^ ERROR const `B` has 1 const parameter but its trait declaration has 2 const parameters
    const C<'a>: &'a str = "";
    //~^ ERROR const `C` has 0 type parameters but its trait declaration has 1 type parameter
    const D: u16 = N;
    //~^ ERROR const `D` has an incompatible generic parameter for trait `Trait`
    const E: &'static () = &();
    //~^ ERROR lifetime parameters or bounds on associated const `E` do not match the trait declaration
    const F: usize = 1024
    where
        P: Copy; //~ ERROR impl has stricter requirements than trait
    const G: () = (); //~ ERROR impl has stricter requirements than trait
}
fn main() {}