diff options
| author | Wim Looman <wim@nemo157.com> | 2018-10-04 20:49:38 +0200 |
|---|---|---|
| committer | Wim Looman <wim@nemo157.com> | 2019-01-27 22:58:53 +0100 |
| commit | a3fdee9a7523a72a5ee72cdb4c1cf3c2cec444bc (patch) | |
| tree | 127e574840d4994b33fcfc41a1b452bf5976829c /src/test/ui/generator/yield-while-iterating.rs | |
| parent | 8611577360e66f90470bd40c498cf8d194f67926 (diff) | |
| download | rust-a3fdee9a7523a72a5ee72cdb4c1cf3c2cec444bc.tar.gz rust-a3fdee9a7523a72a5ee72cdb4c1cf3c2cec444bc.zip | |
Change generator trait to use pinning
Diffstat (limited to 'src/test/ui/generator/yield-while-iterating.rs')
| -rw-r--r-- | src/test/ui/generator/yield-while-iterating.rs | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/test/ui/generator/yield-while-iterating.rs b/src/test/ui/generator/yield-while-iterating.rs index b0966d2e921..e42781d1279 100644 --- a/src/test/ui/generator/yield-while-iterating.rs +++ b/src/test/ui/generator/yield-while-iterating.rs @@ -2,6 +2,7 @@ use std::ops::{GeneratorState, Generator}; use std::cell::Cell; +use std::pin::Pin; fn yield_during_iter_owned_data(x: Vec<i32>) { // The generator owns `x`, so we error out when yielding with a @@ -33,7 +34,7 @@ fn yield_during_iter_borrowed_slice_2() { println!("{:?}", x); } -unsafe fn yield_during_iter_borrowed_slice_3() { +fn yield_during_iter_borrowed_slice_3() { // OK to take a mutable ref to `x` and yield // up pointers from it: let mut x = vec![22_i32]; @@ -42,10 +43,10 @@ unsafe fn yield_during_iter_borrowed_slice_3() { yield p; } }; - b.resume(); + Pin::new(&mut b).resume(); } -unsafe fn yield_during_iter_borrowed_slice_4() { +fn yield_during_iter_borrowed_slice_4() { // ...but not OK to do that while reading // from `x` too let mut x = vec![22_i32]; @@ -55,10 +56,10 @@ unsafe fn yield_during_iter_borrowed_slice_4() { } }; println!("{}", x[0]); //~ ERROR - b.resume(); + Pin::new(&mut b).resume(); } -unsafe fn yield_during_range_iter() { +fn yield_during_range_iter() { // Should be OK. let mut b = || { let v = vec![1,2,3]; @@ -68,7 +69,7 @@ unsafe fn yield_during_range_iter() { yield x; } }; - b.resume(); + Pin::new(&mut b).resume(); } fn main() { } |
