]> git.lizzy.rs Git - rust.git/blob - src/test/ui/generator/retain-resume-ref.rs
Auto merge of #102655 - joboet:windows_tls_opt, r=ChrisDenton
[rust.git] / src / test / ui / generator / retain-resume-ref.rs
1 //! This test ensures that a mutable reference cannot be passed as a resume argument twice.
2
3 #![feature(generators, generator_trait)]
4
5 use std::marker::Unpin;
6 use std::ops::{
7     Generator,
8     GeneratorState::{self, *},
9 };
10 use std::pin::Pin;
11
12 fn main() {
13     let mut thing = String::from("hello");
14
15     let mut gen = |r| {
16         if false {
17             yield r;
18         }
19     };
20
21     let mut gen = Pin::new(&mut gen);
22     gen.as_mut().resume(&mut thing);
23     gen.as_mut().resume(&mut thing);
24     //~^ cannot borrow `thing` as mutable more than once at a time
25 }