| // Split out of impl_wf.rs to work around rust aborting compilation early | |
| // compile-flags: -Z chalk | |
| trait Foo: Sized { } | |
| trait Bar { | |
| type Item: Foo; | |
| } | |
| impl Foo for i32 { } | |
| // Implicit `T: Sized` bound. | |
| impl<T> Foo for Option<T> { } | |
| impl Bar for () { | |
| type Item = i32; | |
| } | |
| impl<T> Bar for Option<T> { | |
| type Item = Option<T>; | |
| } | |
| impl Bar for f32 { | |
| type Item = f32; | |
| //~^ ERROR the trait bound `f32: Foo` is not satisfied | |
| } | |
| trait Baz<U: ?Sized> where U: Foo { } | |
| impl Baz<i32> for i32 { } | |
| fn main() {} |