trait Foo {
    fn dummy(&self) { }
}

struct A;

impl Foo for A {}

struct B<'a>(&'a (dyn Foo + 'a));

fn foo<'a>(a: &dyn Foo) -> B<'a> {
    B(a)    //~ ERROR explicit lifetime required in the type of `a` [E0621]
}

fn main() {
    let _test = foo(&A);
}