mirror of
https://github.com/rust-lang/rust.git
synced 2025-10-02 18:27:37 +00:00

This adds an `iter!` macro that can be used to create movable generators. This also adds a yield_expr feature so the `yield` keyword can be used within iter! macro bodies. This was needed because several unstable features each need `yield` expressions, so this allows us to stabilize them separately from any individual feature. Co-authored-by: Oli Scherer <github35764891676564198441@oli-obk.de> Co-authored-by: Jieyou Xu <jieyouxu@outlook.com> Co-authored-by: Travis Cross <tc@traviscross.com>
21 lines
624 B
Plaintext
21 lines
624 B
Plaintext
error[E0597]: `s` does not live long enough
|
|
--> $DIR/generator_capture_fail.rs:8:17
|
|
|
|
|
LL | let i = {
|
|
| - borrow later stored here
|
|
LL | let s = String::new();
|
|
LL | iter! { || {
|
|
| _________________^
|
|
LL | | yield s.len();
|
|
LL | | for x in 5..10 {
|
|
LL | | yield x * 2;
|
|
LL | | }
|
|
LL | | } }
|
|
| |_________^ borrowed value does not live long enough
|
|
LL | };
|
|
| - `s` dropped here while still borrowed
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0597`.
|