error[E0700]: hidden type for `impl Iterator` captures lifetime that does not appear in bounds --> $DIR/issue-105227.rs:7:5 | LL | fn chars0(v :(& str, &str)) -> impl Iterator { | ----- -------------------------- opaque type defined here | | | hidden type `std::iter::Chain, Chars<'_>>` captures the anonymous lifetime defined here LL | LL | v.0.chars().chain(v.1.chars()) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | help: to declare that `impl Iterator` captures `'_`, you can introduce a named lifetime parameter `'a` | LL | fn chars0<'a>(v :(&'a str, &'a str)) -> impl Iterator + 'a { | ++++ ++ ++ ++++ error[E0700]: hidden type for `impl Iterator` captures lifetime that does not appear in bounds --> $DIR/issue-105227.rs:13:5 | LL | fn chars1(v0 : & str, v1 : &str) -> impl Iterator { | ----- -------------------------- opaque type defined here | | | hidden type `std::iter::Chain, Chars<'_>>` captures the anonymous lifetime defined here LL | LL | v0.chars().chain(v1.chars()) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | help: to declare that `impl Iterator` captures `'_`, you can introduce a named lifetime parameter `'a` | LL | fn chars1<'a>(v0 : &'a str, v1 : &'a str) -> impl Iterator + 'a { | ++++ ++ ++ ++++ error[E0700]: hidden type for `impl Iterator` captures lifetime that does not appear in bounds --> $DIR/issue-105227.rs:21:5 | LL | fn chars2<'b>(v0 : &str, v1 : &'_ str, v2 : &'b str) -> | ---- hidden type `std::iter::Chain, Chars<'_>>` captures the anonymous lifetime defined here LL | LL | (impl Iterator, &'b str) | -------------------------- opaque type defined here LL | { LL | (v0.chars().chain(v1.chars()), v2) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | help: to declare that `impl Iterator` captures `'_`, you can use the named lifetime parameter `'b` | LL ~ fn chars2<'b>(v0 : &'b str, v1 : &'b str, v2 : &'b str) -> LL | LL ~ (impl Iterator + 'b , &'b str) | error: aborting due to 3 previous errors For more information about this error, try `rustc --explain E0700`.