// Test that `dyn Bar` uses `'static` as the default object // lifetime bound for the type `XX`. trait Foo<'a> { type Item: ?Sized; fn item(&self) -> Box { panic!() } } trait Bar { } fn is_static(_: T) where T: 'static { } // Here, we should default to `dyn Bar + 'static`, but the current // code forces us into a conservative, hacky path. fn bar(x: &str) -> &dyn Foo { &() } //~^ ERROR please supply an explicit bound fn main() { let s = format!("foo"); let r = bar(&s); is_static(r.item()); }