error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:53: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<Q>` to implement `T2`
  --> $DIR/blame-trait-error.rs:11:13
   |
LL | impl<A: T3> T2 for Burrito<A> {}
   |         --  ^^     ^^^^^^^^^^
   |         |
   |         unsatisfied trait bound introduced here
note: required for `Wrapper<Burrito<Q>>` to implement `T1`
  --> $DIR/blame-trait-error.rs:6:13
   |
LL | impl<B: T2> T1 for Wrapper<B> {}
   |         --  ^^     ^^^^^^^^^^
   |         |
   |         unsatisfied trait bound introduced here
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: `()` is not an iterator
  --> $DIR/blame-trait-error.rs:56: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<It>`
note: required for `Option<()>` to implement `T1`
  --> $DIR/blame-trait-error.rs:21:20
   |
LL | impl<It: Iterator> T1 for Option<It> {}
   |          --------  ^^     ^^^^^^^^^^
   |          |
   |          unsatisfied trait bound introduced here
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`

error[E0277]: `Q` is not an iterator
  --> $DIR/blame-trait-error.rs:59:15
   |
LL |     want(Some(q));
   |     ----      ^ `Q` is not an iterator
   |     |
   |     required by a bound introduced by this call
   |
note: required for `Option<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:21:20
   |
LL | impl<It: Iterator> T1 for Option<It> {}
   |          --------  ^^     ^^^^^^^^^^
   |          |
   |          unsatisfied trait bound introduced here
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: std::iter::Iterator>(q: Q) {
   |             +++++++++++++++++++++

error[E0277]: `Q` is not an iterator
  --> $DIR/blame-trait-error.rs:62:16
   |
LL |     want(&Some(q));
   |     ----       ^ `Q` is not an iterator
   |     |
   |     required by a bound introduced by this call
   |
note: required for `Option<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:21:20
   |
LL | impl<It: Iterator> T1 for Option<It> {}
   |          --------  ^^     ^^^^^^^^^^
   |          |
   |          unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&Option<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: std::iter::Iterator>(q: Q) {
   |             +++++++++++++++++++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:65:45
   |
LL |     want(&ExampleTuple::ExampleTupleVariant(q));
   |     ----                                    ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleTuple<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:35:9
   |
LL | impl<A> T1 for ExampleTuple<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleTuple<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:68:31
   |
LL |     want(&ExampleTupleVariant(q));
   |     ----                      ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleTuple<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:35:9
   |
LL | impl<A> T1 for ExampleTuple<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleTuple<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:71:50
   |
LL |     want(&ExampleOtherTuple::ExampleTupleVariant(q));
   |     ----                                         ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleTuple<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:35:9
   |
LL | impl<A> T1 for ExampleTuple<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleTuple<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:74:44
   |
LL |     want(&ExampleDifferentTupleVariantName(q));
   |     ----                                   ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleTuple<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:35:9
   |
LL | impl<A> T1 for ExampleTuple<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleTuple<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:77:45
   |
LL |     want(&ExampleYetAnotherTupleVariantName(q));
   |     ----                                    ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleTuple<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:35:9
   |
LL | impl<A> T1 for ExampleTuple<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleTuple<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:80:56
   |
LL |     want(&ExampleStruct::ExampleStructVariant { field: q });
   |     ---- required by a bound introduced by this call   ^ the trait `T3` is not implemented for `Q`
   |
note: required for `ExampleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:45:9
   |
LL | impl<A> T1 for ExampleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:83:41
   |
LL |     want(&ExampleStructVariant { field: q });
   |     ----                                ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:45:9
   |
LL | impl<A> T1 for ExampleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:86:61
   |
LL |     want(&ExampleOtherStruct::ExampleStructVariant { field: q });
   |     ---- required by a bound introduced by this call        ^ the trait `T3` is not implemented for `Q`
   |
note: required for `ExampleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:45:9
   |
LL | impl<A> T1 for ExampleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:89:54
   |
LL |     want(&ExampleDifferentStructVariantName { field: q });
   |     ---- required by a bound introduced by this call ^ the trait `T3` is not implemented for `Q`
   |
note: required for `ExampleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:45:9
   |
LL | impl<A> T1 for ExampleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:92:55
   |
LL |     want(&ExampleYetAnotherStructVariantName { field: q });
   |     ---- required by a bound introduced by this call  ^ the trait `T3` is not implemented for `Q`
   |
note: required for `ExampleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:45:9
   |
LL | impl<A> T1 for ExampleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:95:38
   |
LL |     want(&ExampleActuallyTupleStruct(q, 0));
   |     ----                             ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleActuallyTupleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:50:9
   |
LL | impl<A> T1 for ExampleActuallyTupleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleActuallyTupleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error[E0277]: the trait bound `Q: T3` is not satisfied
  --> $DIR/blame-trait-error.rs:98:43
   |
LL |     want(&ExampleActuallyTupleStructOther(q, 0));
   |     ----                                  ^ the trait `T3` is not implemented for `Q`
   |     |
   |     required by a bound introduced by this call
   |
note: required for `ExampleActuallyTupleStruct<Q>` to implement `T1`
  --> $DIR/blame-trait-error.rs:50:9
   |
LL | impl<A> T1 for ExampleActuallyTupleStruct<A> where A: T3 {}
   |         ^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^          -- unsatisfied trait bound introduced here
   = note: 1 redundant requirement hidden
   = note: required for `&ExampleActuallyTupleStruct<Q>` to implement `T1`
note: required by a bound in `want`
  --> $DIR/blame-trait-error.rs:25:12
   |
LL | fn want<V: T1>(_x: V) {}
   |            ^^ required by this bound in `want`
help: consider restricting type parameter `Q`
   |
LL | fn example<Q: T3>(q: Q) {
   |             ++++

error: aborting due to 16 previous errors

For more information about this error, try `rustc --explain E0277`.