| error[E0106]: missing lifetime specifier |
| --> $DIR/elision.rs:5:70 |
| | |
| LL | fn f(x: &mut dyn Iterator<Item: Iterator<Item = &'_ ()>>) -> Option<&'_ ()> { x.next() } |
| | ------------------------------------------------ ^^ expected named lifetime parameter |
| | |
| = help: this function's return type contains a borrowed value, but the signature does not say which one of `x`'s 2 lifetimes it is borrowed from |
| help: consider introducing a named lifetime parameter |
| | |
| LL | fn f<'a>(x: &'a mut dyn Iterator<Item: Iterator<Item = &'a ()>>) -> Option<&'a ()> { x.next() } |
| | ++++ ++ ~~ ~~ |
| |
| error[E0308]: mismatched types |
| --> $DIR/elision.rs:5:79 |
| | |
| LL | fn f(x: &mut dyn Iterator<Item: Iterator<Item = &'_ ()>>) -> Option<&'_ ()> { x.next() } |
| | ----------------------------- -------------- ^^^^^^^^ expected `Option<&()>`, found `Option<impl Iterator<Item = &'_ ()>>` |
| | | | |
| | | expected `Option<&()>` because of return type |
| | found this type parameter |
| | |
| = note: expected enum `Option<&()>` |
| found enum `Option<impl Iterator<Item = &'_ ()>>` |
| |
| error: aborting due to 2 previous errors |
| |
| Some errors have detailed explanations: E0106, E0308. |
| For more information about an error, try `rustc --explain E0106`. |