#![feature(impl_trait_in_bindings)] trait Foo {} struct W(T); impl Foo for W where T: Foo {} fn main() { let x: impl Foo = W(()); //~^ ERROR the trait bound `(): Foo` is not satisfied let x: W = W(()); //~^ ERROR the trait bound `(): Foo` is not satisfied }