trait T1 {} trait T2 {} trait T3 {} trait T4 {} impl T1 for Wrapper {} impl T2 for i32 {} impl T3 for i32 {} impl T2 for Burrito {} struct Wrapper { value: W, } struct Burrito { filling: F, } impl T1 for Option {} impl<'a, A: T1> T1 for &'a A {} fn want(_x: V) {} fn example(q: Q) { want(Wrapper { value: Burrito { filling: q } }); //~^ ERROR the trait bound `Q: T3` is not satisfied [E0277] want(Some(())); //~^ ERROR `()` is not an iterator [E0277] want(Some(q)); //~^ ERROR `Q` is not an iterator [E0277] want(&Some(q)); //~^ ERROR `Q` is not an iterator [E0277] } fn main() {}