1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
// check-pass trait Foo: Baz {} trait Bar {} trait Baz: Bar { fn bar(&self); } impl<T: Foo> Bar for T {} impl<T: Foo> Baz for T { fn bar(&self) {} } fn accept_foo(x: Box<dyn Foo>) { x.bar(); } fn main() {}