error[E0277]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error.rs:28:46 | LL | want(Wrapper { value: Burrito { filling: q } }); | ---- ^ the trait `T3` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `Burrito` to implement `T2` --> $DIR/blame-trait-error.rs:11:13 | LL | impl T2 for Burrito {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error.rs:6:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error.rs:25:12 | LL | fn want(_x: V) {} | ^^ required by this bound in `want` help: consider restricting type parameter `Q` | LL | fn example(q: Q) { | ++++ error[E0277]: `()` is not an iterator --> $DIR/blame-trait-error.rs:31:15 | LL | want(Some(())); | ---- ^^ `()` is not an iterator | | | required by a bound introduced by this call | = help: the trait `Iterator` is not implemented for `()` = help: the trait `T1` is implemented for `Option` note: required for `Option<()>` to implement `T1` --> $DIR/blame-trait-error.rs:21:20 | LL | impl T1 for Option {} | -------- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error.rs:25:12 | LL | fn want(_x: V) {} | ^^ required by this bound in `want` error[E0277]: `Q` is not an iterator --> $DIR/blame-trait-error.rs:34:15 | LL | want(Some(q)); | ---- ^ `Q` is not an iterator | | | required by a bound introduced by this call | note: required for `Option` to implement `T1` --> $DIR/blame-trait-error.rs:21:20 | LL | impl T1 for Option {} | -------- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error.rs:25:12 | LL | fn want(_x: V) {} | ^^ required by this bound in `want` help: consider restricting type parameter `Q` | LL | fn example(q: Q) { | +++++++++++++++++++++ error[E0277]: `Q` is not an iterator --> $DIR/blame-trait-error.rs:37:16 | LL | want(&Some(q)); | ---- ^ `Q` is not an iterator | | | required by a bound introduced by this call | note: required for `Option` to implement `T1` --> $DIR/blame-trait-error.rs:21:20 | LL | impl T1 for Option {} | -------- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here = note: 1 redundant requirement hidden = note: required for `&Option` to implement `T1` note: required by a bound in `want` --> $DIR/blame-trait-error.rs:25:12 | LL | fn want(_x: V) {} | ^^ required by this bound in `want` help: consider restricting type parameter `Q` | LL | fn example(q: Q) { | +++++++++++++++++++++ error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0277`.