//@ compile-flags: -Znext-solver trait Foo {} trait Bar {} trait Constrain { type Output; } impl Foo for T where T: Constrain, U: Bar, { } impl Constrain for () { type Output = (); } fn needs_foo() {} fn main() { needs_foo::<()>(); //~^ ERROR the trait bound `(): Foo` is not satisfied }