// check-pass #![allow(dead_code)] // #11612 // We weren't updating the auto adjustments with all the resolved // type information after type check. // pretty-expanded FIXME #23616 trait A { fn dummy(&self) { } } struct B<'a, T:'a> { f: &'a T } impl<'a, T> A for B<'a, T> {} fn foo(_: &dyn A) {} fn bar(b: &B) { foo(b); // Coercion should work foo(b as &dyn A); // Explicit cast should work as well } fn main() {}