| error[E0271]: type mismatch resolving `<Adapter<I> as Iterator>::Item == Option<T>` |
| --> $DIR/associated-types-issue-20346.rs:34:36 |
| | |
| LL | fn test_adapter<T, I: Iterator<Item=Option<T>>>(it: I) { |
| | - found this type parameter |
| ... |
| LL | is_iterator_of::<Option<T>, _>(&adapter); |
| | ------------------------------ ^^^^^^^^ type mismatch resolving `<Adapter<I> as Iterator>::Item == Option<T>` |
| | | |
| | required by a bound introduced by this call |
| | |
| note: expected this to be `Option<T>` |
| --> $DIR/associated-types-issue-20346.rs:23:17 |
| | |
| LL | type Item = T; |
| | ^ |
| = note: expected enum `Option<T>` |
| found type parameter `T` |
| note: required by a bound in `is_iterator_of` |
| --> $DIR/associated-types-issue-20346.rs:15:34 |
| | |
| LL | fn is_iterator_of<A, I: Iterator<Item=A>>(_: &I) {} |
| | ^^^^^^ required by this bound in `is_iterator_of` |
| |
| error: aborting due to previous error |
| |
| For more information about this error, try `rustc --explain E0271`. |