error[E0277]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:81:60 | LL | want(Wrapper { value: Burrito { spicy: false, filling: q } }); | ---- required by a bound introduced by this call ^ the trait `T3` is not implemented for `Q` | note: required for `Burrito` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:22:13 | LL | impl T2 for Burrito {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:85:84 | LL | want(Wrapper { value: BurritoKinds::SmallBurrito { spicy: true, small_filling: q } }); | ---- required by a bound introduced by this call ^ the trait `T3` is not implemented for `Q` | note: required for `BurritoKinds` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:32:13 | LL | impl T2 for BurritoKinds {} | -- ^^ ^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:89:39 | LL | want(Wrapper { value: Taco(false, q) }); | ---- ^ the trait `T3` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `Taco` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:35:13 | LL | impl T2 for Taco {} | -- ^^ ^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:93:53 | LL | want(Wrapper { value: TacoKinds::OneTaco(false, q) }); | ---- ^ the trait `T3` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `TacoKinds` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:41:13 | LL | impl T2 for TacoKinds {} | -- ^^ ^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:97:74 | LL | want(Wrapper { value: GenericBurrito { spiciness: NotSpicy, filling: q } }); | ---- required by a bound introduced by this call ^ the trait `T3` is not implemented for `Q` | note: required for `GenericBurrito` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:47:16 | LL | impl T2 for GenericBurrito {} | -- ^^ ^^^^^^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T2` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:101:14 | LL | want((3, q)); | ---- ^ the trait `T2` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `(i32, Q)` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:51:20 | LL | impl T1 for (A, B) {} | -- ^^ ^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:105:31 | LL | want(Wrapper { value: (3, q) }); | ---- ^ the trait `T3` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `(i32, Q)` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:50:20 | LL | impl T2 for (A, B) {} | -- ^^ ^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper<(i32, Q)>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:109:15 | LL | want(((3, q), 5)); | ---- ^ the trait `T3` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `(i32, Q)` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:50:20 | LL | impl T2 for (A, B) {} | -- ^^ ^^^^^^ | | | unsatisfied trait bound introduced here note: required for `((i32, Q), i32)` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:51:20 | LL | impl T1 for (A, B) {} | -- ^^ ^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T1` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:112:49 | LL | want(DoubleWrapper { item: Wrapper { value: q } }); | ---- ^ the trait `T1` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `DoubleWrapper` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:72:13 | LL | impl T1 for DoubleWrapper {} | -- ^^ ^^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T1` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:115:88 | LL | want(DoubleWrapper { item: Wrapper { value: DoubleWrapper { item: Wrapper { value: q } } } }); | ---- required by a bound introduced by this call ^ the trait `T1` is not implemented for `Q` | note: required for `DoubleWrapper` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:72:13 | LL | impl T1 for DoubleWrapper {} | -- ^^ ^^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here = note: 1 redundant requirement hidden = note: required for `DoubleWrapper>` to implement `T1` note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:119:27 | LL | want(Wrapper { value: AliasBurrito { spiciness: q, filling: q } }); | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `T3` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `GenericBurrito` to implement `T2` --> $DIR/blame-trait-error-spans-on-exprs.rs:47:16 | LL | impl T2 for GenericBurrito {} | -- ^^ ^^^^^^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `Wrapper>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:16:13 | LL | impl T1 for Wrapper {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T1` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:122:35 | LL | want(Two { a: Two { a: (), b: q }, b: () }); | ---- ^ the trait `T1` is not implemented for `Q` | | | required by a bound introduced by this call | note: required for `Two, ()>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:66:19 | LL | impl T1 for Two, Z> {} | -- ^^ ^^^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T1` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:128:59 | LL | want( | ---- required by a bound introduced by this call LL | Two { a: Two { a: (), b: Two { a: Two { a: (), b: q }, b: () } }, b: () }, | ^ the trait `T1` is not implemented for `Q` | note: required for `Two, ()>` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:66:19 | LL | impl T1 for Two, Z> {} | -- ^^ ^^^^^^^^^^^^^^^^^ | | | unsatisfied trait bound introduced here = note: 1 redundant requirement hidden = note: required for `Two, ()>>, ()>` to implement `T1` note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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]: the trait bound `Q: T3` is not satisfied --> $DIR/blame-trait-error-spans-on-exprs.rs:133:44 | LL | want(&Burrito { spicy: false, 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-spans-on-exprs.rs:22:13 | LL | impl T2 for Burrito {} | -- ^^ ^^^^^^^^^^ | | | unsatisfied trait bound introduced here note: required for `&Burrito` to implement `T1` --> $DIR/blame-trait-error-spans-on-exprs.rs:74:17 | LL | impl<'a, T: T2> T1 for &'a T {} | -- ^^ ^^^^^ | | | unsatisfied trait bound introduced here note: required by a bound in `want` --> $DIR/blame-trait-error-spans-on-exprs.rs:53: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 14 previous errors For more information about this error, try `rustc --explain E0277`.