#![allow(dead_code, deprecated, unused_variables, unused_mut)] use std::sync::atomic::{AtomicBool, Ordering}; fn main() { let x = AtomicBool::new(false); assert_eq!( x.fetch_update(Ordering::SeqCst, Ordering::SeqCst, | _ | None), Err(false) ); assert_eq!( x.fetch_update(Ordering::SeqCst, Ordering::SeqCst, | x | Some(! x)), Ok(false) ); assert_eq!( x.fetch_update(Ordering::SeqCst, Ordering::SeqCst, | x | Some(! x)), Ok(true) ); assert_eq!(x.load(Ordering::SeqCst), false); }