| //@ run-pass | |
| // Test that we are able to compile the case where both a blanket impl | |
| // and the object type itself supply the required trait obligation. | |
| // In this case, the blanket impl for `Foo` applies to any type, | |
| // including `Bar`, but the object type `Bar` also implicitly supplies | |
| // this context. | |
| trait Foo { fn dummy(&self) { } } //~ WARN method `dummy` is never used | |
| trait Bar: Foo { } | |
| impl<T:?Sized> Foo for T { } | |
| fn want_foo<B:?Sized+Foo>() { } | |
| fn main() { | |
| want_foo::<dyn Bar>(); | |
| } |