1 error[E0599]: no method named `count` found for type `std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:7:39: 7:53]>` in the current scope
2 --> $DIR/issue-36053-2.rs:7:55
4 LL | once::<&str>("str").fuse().filter(|a: &str| true).count();
7 = note: the method `count` exists but the following trait bounds were not satisfied:
8 `&mut std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:7:39: 7:53]> : std::iter::Iterator`
9 `std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:7:39: 7:53]> : std::iter::Iterator`
11 error[E0631]: type mismatch in closure arguments
12 --> $DIR/issue-36053-2.rs:7:32
14 LL | once::<&str>("str").fuse().filter(|a: &str| true).count();
15 | ^^^^^^ -------------- found signature of `for<'r> fn(&'r str) -> _`
17 | expected signature of `for<'r> fn(&'r &str) -> _`
19 error[E0631]: type mismatch in closure arguments
20 --> $DIR/issue-36053-2.rs:7:32
22 LL | once::<&str>("str").fuse().filter(|a: &str| true).count();
23 | ^^^^^^ -------------- found signature of `for<'r> fn(&'r str) -> _`
25 | expected signature of `fn(&&str) -> _`
27 error: aborting due to 3 previous errors
29 For more information about this error, try `rustc --explain E0599`.