// Test for interaction between #[automatically_derived] attribute used by
// built-in derives and lints generated by liveness pass.
//
//@ edition:2018
//@ check-pass
#![warn(unused)]

pub trait T: Sized {
    const N: usize;
    fn t(&self) -> Self;
}

impl T for u32 {
    const N: usize = {
        let a = 0; //~ WARN unused variable: `a`
        4
    };

    fn t(&self) -> Self {
        let b = 16; //~ WARN unused variable: `b`
        0
    }
}

#[automatically_derived]
impl T for i32 {
    const N: usize = {
        let c = 0;
        4
    };

    fn t(&self) -> Self {
        let d = 17;
        0
    }
}

fn main() {}
