1 use alloc::rc::Rc; 2 use core::marker::PhantomData; 3 use core::panic::{RefUnwindSafe, UnwindSafe}; 4 5 // Zero sized marker with the correct set of autotrait impls we want all proc 6 // macro types to have. 7 #[derive(Copy, Clone)] 8 #[cfg_attr( 9 all(procmacro2_semver_exempt, any(not(wrap_proc_macro), super_unstable)), 10 derive(PartialEq, Eq) 11 )] 12 pub(crate) struct ProcMacroAutoTraits(PhantomData<Rc<()>>); 13 14 pub(crate) const MARKER: ProcMacroAutoTraits = ProcMacroAutoTraits(PhantomData); 15 16 impl UnwindSafe for ProcMacroAutoTraits {} 17 impl RefUnwindSafe for ProcMacroAutoTraits {} 18