5 // check dtor calling order when casting enums.
8 use std
::sync
::atomic
::Ordering
;
17 static FLAG
: atomic
::AtomicUsize
= atomic
::AtomicUsize
::new(0);
22 unsafe { mem::forget(mem::replace(self, E::B)) }
;
24 FLAG
.store(FLAG
.load(Ordering
::SeqCst
)+1, Ordering
::SeqCst
);
29 assert_eq
!(FLAG
.load(Ordering
::SeqCst
), 0);
32 assert_eq
!(e
as u32, 2);
33 assert_eq
!(FLAG
.load(Ordering
::SeqCst
), 0);
35 assert_eq
!(FLAG
.load(Ordering
::SeqCst
), 0);