//@ check-pass use std::ops::Deref; trait Bar {} trait Foo: Bar { fn as_dyn_bar_u32<'a>(&self) -> &(dyn Bar + 'a); } impl<'a> Deref for dyn Foo + 'a { //~^ WARN this `Deref` implementation is covered by an implicit supertrait coercion //~| WARN this will change its meaning in a future release! type Target = dyn Bar + 'a; fn deref(&self) -> &Self::Target { self.as_dyn_bar_u32() } } fn main() {}