//@ build-fail

trait Tr {
    const A: u8 = 255;

    // This should not be a constant evaluation error (overflow). The value of
    // `Self::A` must not be assumed to hold inside the trait.
    const B: u8 = Self::A + 1;
    //~^ ERROR evaluation of `<() as Tr>::B` failed
}

// An impl that doesn't override any constant will NOT cause a const eval error
// just because it's defined, but only if the bad constant is used anywhere.
// This matches the behavior without defaults.
impl Tr for () {}

// An impl that overrides either constant with a suitable value will be fine.
impl Tr for u8 {
    const A: u8 = 254;
}

impl Tr for u16 {
    const B: u8 = 0;
}

impl Tr for u32 {
    const A: u8 = 254;
    const B: u8 = 0;
}

fn main() {
    assert_eq!(<() as Tr>::A, 255);
    assert_eq!(<() as Tr>::B, 0);    // causes the error above
    //~^ constant

    assert_eq!(<u8 as Tr>::A, 254);
    assert_eq!(<u8 as Tr>::B, 255);

    assert_eq!(<u16 as Tr>::A, 255);
    assert_eq!(<u16 as Tr>::B, 0);

    assert_eq!(<u32 as Tr>::A, 254);
    assert_eq!(<u32 as Tr>::B, 0);
}
