//@ run-pass
#![allow(unused_variables)]
#![allow(unused_imports)]
// Test that we don't trigger on the blanket impl for all `&'a T` but
// rather keep autoderefing and trigger on the underlying impl.  To
// know not to stop at the blanket, we have to recursively evaluate
// the `T:Foo` bound.

//@ pretty-expanded FIXME #23616

use std::marker::Sized;

// Note: this must be generic for the problem to show up
trait Foo<A> { //~ WARN trait `Foo` is never used
    fn foo(&self, a: A);
}

impl Foo<u8> for [u8] {
    fn foo(&self, a: u8) {}
}

impl<'a, A, T> Foo<A> for &'a T where T: Foo<A> {
    fn foo(&self, a: A) {
        Foo::foo(*self, a)
    }
}

trait Bar {
    fn foo(&self);
}

struct MyType;

impl Bar for MyType {
    fn foo(&self) {}
}

fn main() {
    let mut m = MyType;
    (&mut m).foo()
}
