error[E0271]: type mismatch resolving ` as Iterator>::Item == Option` --> $DIR/associated-types-issue-20346.rs:34:36 | LL | fn test_adapter>>(it: I) { | - this type parameter ... LL | is_iterator_of::, _>(&adapter); | ------------------------------ ^^^^^^^^ type mismatch resolving ` as Iterator>::Item == Option` | | | required by a bound introduced by this call | note: expected this to be `Option` --> $DIR/associated-types-issue-20346.rs:23:17 | LL | type Item = T; | ^ = note: expected enum `Option` 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>(_: &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`.