1 error: no method named `count` found for type `std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]>` in the current scope
2 --> $DIR/issue-36053-2.rs:17:55
4 17 | once::<&str>("str").fuse().filter(|a: &str| true).count();
7 = note: the method `count` exists but the following trait bounds were not satisfied: `[closure@$DIR/issue-36053-2.rs:17:39: 17:53] : std::ops::FnMut<(&_,)>`, `std::iter::Filter<std::iter::Fuse<std::iter::Once<&str>>, [closure@$DIR/issue-36053-2.rs:17:39: 17:53]> : std::iter::Iterator`
9 error[E0281]: type mismatch: `[closure@$DIR/issue-36053-2.rs:17:39: 17:53]` implements the trait `for<'r> std::ops::FnMut<(&'r str,)>`, but the trait `for<'r> std::ops::FnMut<(&'r &str,)>` is required
10 --> $DIR/issue-36053-2.rs:17:32
12 17 | once::<&str>("str").fuse().filter(|a: &str| true).count();
13 | ^^^^^^ -------------- implements `for<'r> std::ops::FnMut<(&'r str,)>`
15 | requires `for<'r> std::ops::FnMut<(&'r &str,)>`
16 | expected &str, found str
18 error[E0281]: type mismatch: `[closure@$DIR/issue-36053-2.rs:17:39: 17:53]` implements the trait `for<'r> std::ops::FnOnce<(&'r str,)>`, but the trait `for<'r> std::ops::FnOnce<(&'r &str,)>` is required
19 --> $DIR/issue-36053-2.rs:17:32
21 17 | once::<&str>("str").fuse().filter(|a: &str| true).count();
22 | ^^^^^^ -------------- implements `for<'r> std::ops::FnOnce<(&'r str,)>`
24 | requires `for<'r> std::ops::FnOnce<(&'r &str,)>`
25 | expected &str, found str
27 error: aborting due to 3 previous errors