5 #![feature(generators, generator_trait)]
7 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);
22 fn bool_true() -> bool {
36 assert_eq!(A.load(Ordering::SeqCst), 0);
37 let res = panic::catch_unwind(panic::AssertUnwindSafe(|| {
38 Pin::new(&mut foo).resume(())
40 assert!(res.is_err());
41 assert_eq!(A.load(Ordering::SeqCst), 1);
51 assert_eq!(A.load(Ordering::SeqCst), 1);
52 let res = panic::catch_unwind(panic::AssertUnwindSafe(|| {
53 Pin::new(&mut foo).resume(())
55 assert!(res.is_err());
56 assert_eq!(A.load(Ordering::SeqCst), 1);