#![allow(unused_attributes)] extern crate proc_macro; use std::mem; #[rustversion::attr(before(1.64), ignore = "requires Rust 1.64+")] #[cfg_attr(not(target_pointer_width = "64"), ignore = "only applicable to 64-bit")] #[cfg_attr(randomize_layout, ignore = "disabled due to randomized layout")] #[test] fn test_proc_macro_size() { assert_eq!(mem::size_of::(), 4); assert_eq!(mem::size_of::>(), 4); assert_eq!(mem::size_of::(), 20); assert_eq!(mem::size_of::(), 12); assert_eq!(mem::size_of::(), 8); assert_eq!(mem::size_of::(), 16); assert_eq!(mem::size_of::(), 4); } #[cfg_attr(not(target_pointer_width = "64"), ignore = "only applicable to 64-bit")] #[cfg_attr(randomize_layout, ignore = "disabled due to randomized layout")] #[cfg_attr(wrap_proc_macro, ignore = "wrapper mode")] #[cfg_attr(span_locations, ignore = "span locations are on")] #[test] fn test_proc_macro2_fallback_size_without_locations() { assert_eq!(mem::size_of::(), 0); assert_eq!(mem::size_of::>(), 1); assert_eq!(mem::size_of::(), 16); assert_eq!(mem::size_of::(), 24); assert_eq!(mem::size_of::(), 8); assert_eq!(mem::size_of::(), 24); assert_eq!(mem::size_of::(), 8); } #[cfg_attr(not(target_pointer_width = "64"), ignore = "only applicable to 64-bit")] #[cfg_attr(randomize_layout, ignore = "disabled due to randomized layout")] #[cfg_attr(wrap_proc_macro, ignore = "wrapper mode")] #[cfg_attr(not(span_locations), ignore = "span locations are off")] #[test] fn test_proc_macro2_fallback_size_with_locations() { assert_eq!(mem::size_of::(), 8); assert_eq!(mem::size_of::>(), 12); assert_eq!(mem::size_of::(), 24); assert_eq!(mem::size_of::(), 32); assert_eq!(mem::size_of::(), 16); assert_eq!(mem::size_of::(), 32); assert_eq!(mem::size_of::(), 8); } #[rustversion::attr(before(1.71), ignore = "requires Rust 1.71+")] #[cfg_attr(not(target_pointer_width = "64"), ignore = "only applicable to 64-bit")] #[cfg_attr(randomize_layout, ignore = "disabled due to randomized layout")] #[cfg_attr(not(wrap_proc_macro), ignore = "fallback mode")] #[cfg_attr(span_locations, ignore = "span locations are on")] #[test] fn test_proc_macro2_wrapper_size_without_locations() { assert_eq!(mem::size_of::(), 4); assert_eq!(mem::size_of::>(), 8); assert_eq!(mem::size_of::(), 24); assert_eq!(mem::size_of::(), 24); assert_eq!(mem::size_of::(), 12); assert_eq!(mem::size_of::(), 24); assert_eq!(mem::size_of::(), 32); } #[rustversion::attr(before(1.65), ignore = "requires Rust 1.65+")] #[cfg_attr(not(target_pointer_width = "64"), ignore = "only applicable to 64-bit")] #[cfg_attr(randomize_layout, ignore = "disabled due to randomized layout")] #[cfg_attr(not(wrap_proc_macro), ignore = "fallback mode")] #[cfg_attr(not(span_locations), ignore = "span locations are off")] #[test] fn test_proc_macro2_wrapper_size_with_locations() { assert_eq!(mem::size_of::(), 12); assert_eq!(mem::size_of::>(), 12); assert_eq!(mem::size_of::(), 32); assert_eq!(mem::size_of::(), 32); assert_eq!(mem::size_of::(), 20); assert_eq!(mem::size_of::(), 32); assert_eq!(mem::size_of::(), 32); }