//@ check-fail #![feature(associated_type_defaults)] trait Foo { type A<'a> where Self: 'a; } struct Fooy; impl Foo for Fooy { type A<'a> = &'a (); } #[derive(Clone)] struct Fooer(T); impl Foo for Fooer { type A<'x> = &'x () where T: 'x; } fn f(_arg : Box Foo = &'a ()>>) {} //~^ ERROR the trait `Foo` is not dyn compatible fn main() { let foo = Fooer(5); f(Box::new(foo)); //~^ ERROR the trait `Foo` is not dyn compatible }