// Test that `dyn Bar` uses `'static` as the default object // lifetime bound for the type `XX`. // //@ check-pass trait Foo { type Item: ?Sized; fn item(&self) -> Box { panic!() } } trait Bar { } impl Foo for T { type Item = dyn Bar; } fn is_static(_: T) where T: 'static { } // Here, we default to `dyn Bar + 'static`, and not `&'x dyn Foo`. fn bar(x: &str) -> &dyn Foo { &() } fn main() { let s = format!("foo"); let r = bar(&s); is_static(r.item()); }