1error[E0277]: the trait bound `Option<Vec<u8>>: MyFromIterator<&u8>` is not satisfied
2  --> $DIR/on-trait.rs:28:30
3   |
4LL |     let y: Option<Vec<u8>> = collect(x.iter()); // this should give approximately the same error for x.iter().collect()
5   |                              ^^^^^^^ a collection of type `Option<Vec<u8>>` cannot be built from an iterator over elements of type `&u8`
6   |
7   = help: the trait `MyFromIterator<&u8>` is not implemented for `Option<Vec<u8>>`
8note: required by a bound in `collect`
9  --> $DIR/on-trait.rs:22:39
10   |
11LL | fn collect<A, I: Iterator<Item=A>, B: MyFromIterator<A>>(it: I) -> B {
12   |                                       ^^^^^^^^^^^^^^^^^ required by this bound in `collect`
13
14error[E0277]: the trait bound `String: Foo<u8, _, u32>` is not satisfied
15  --> $DIR/on-trait.rs:31:21
16   |
17LL |     let x: String = foobar();
18   |                     ^^^^^^ test error `String` with `u8` `_` `u32` in `Foo`
19   |
20   = help: the trait `Foo<u8, _, u32>` is not implemented for `String`
21note: required by a bound in `foobar`
22  --> $DIR/on-trait.rs:12:24
23   |
24LL | fn foobar<U: Clone, T: Foo<u8, U, u32>>() -> T {
25   |                        ^^^^^^^^^^^^^^^ required by this bound in `foobar`
26
27error: aborting due to 2 previous errors
28
29For more information about this error, try `rustc --explain E0277`.
30