]>
git.proxmox.com Git - rustc.git/blob - tests/ui/generator/conditional-drop.rs
3 // revisions: default nomiropt
4 //[nomiropt]compile-flags: -Z mir-opt-level=0
6 #![feature(generators, generator_trait)]
8 use std
::ops
::Generator
;
10 use std
::sync
::atomic
::{AtomicUsize, Ordering}
;
12 static A
: AtomicUsize
= AtomicUsize
::new(0);
18 A
.fetch_add(1, Ordering
::SeqCst
);
23 fn test() -> bool { true }
24 fn test2() -> bool { false }
40 let n
= A
.load(Ordering
::SeqCst
);
41 Pin
::new(&mut a
).resume(());
42 assert_eq
!(A
.load(Ordering
::SeqCst
), n
+ 1);
43 Pin
::new(&mut a
).resume(());
44 assert_eq
!(A
.load(Ordering
::SeqCst
), n
+ 1);
56 let n
= A
.load(Ordering
::SeqCst
);
57 Pin
::new(&mut a
).resume(());
58 assert_eq
!(A
.load(Ordering
::SeqCst
), n
);
59 Pin
::new(&mut a
).resume(());
60 assert_eq
!(A
.load(Ordering
::SeqCst
), n
+ 1);