// compile-flags: -Z chalk trait Foo: Sized { } trait Bar { type Item: Foo; } impl Foo for i32 { } impl Foo for str { } //~^ ERROR the size for values of type `str` cannot be known at compilation time // Implicit `T: Sized` bound. impl Foo for Option { } impl Bar for () { type Item = i32; } impl Bar for Option { type Item = Option; } // FIXME(chalk): the ordering of these two errors differs between CI and local // We need to figure out why its non-deterministic /* impl Bar for f32 { //^ ERROR the trait bound `f32: Foo` is not satisfied type Item = f32; //^ ERROR the trait bound `f32: Foo` is not satisfied } */ trait Baz where U: Foo { } impl Baz for i32 { } impl Baz for f32 { } //~^ ERROR the trait bound `f32: Foo` is not satisfied fn main() { }