//@ run-rustfix
use std::ops::Deref;
struct Bar(u8);
struct Foo(Bar);
struct Emm(Foo);
impl Deref for Bar{
    type Target = u8;
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl Deref for Foo {
    type Target = Bar;
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
impl Deref for Emm {
    type Target = Foo;
    fn deref(&self) -> &Self::Target {
        &self.0
    }
}
fn main() {
    let a = Emm(Foo(Bar(0)));
    // Should suggest `&***` even when deref is pretty deep
    let _: *const u8 = &***a; //~ ERROR mismatched types
}
