| 1 | extern crate proc_macro; |
| 2 | |
| 3 | use std::mem; |
| 4 | |
| 5 | #[rustversion::attr (before(1.32), ignore)] |
| 6 | #[test] |
| 7 | fn test_proc_macro_span_size() { |
| 8 | assert_eq!(mem::size_of::<proc_macro::Span>(), 4); |
| 9 | assert_eq!(mem::size_of::<Option<proc_macro::Span>>(), 4); |
| 10 | } |
| 11 | |
| 12 | #[cfg_attr (not(all(not(wrap_proc_macro), not(span_locations))), ignore)] |
| 13 | #[test] |
| 14 | fn test_proc_macro2_fallback_span_size_without_locations() { |
| 15 | assert_eq!(mem::size_of::<proc_macro2::Span>(), 0); |
| 16 | assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 1); |
| 17 | } |
| 18 | |
| 19 | #[cfg_attr (not(all(not(wrap_proc_macro), span_locations)), ignore)] |
| 20 | #[test] |
| 21 | fn test_proc_macro2_fallback_span_size_with_locations() { |
| 22 | assert_eq!(mem::size_of::<proc_macro2::Span>(), 8); |
| 23 | assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 12); |
| 24 | } |
| 25 | |
| 26 | #[rustversion::attr (before(1.32), ignore)] |
| 27 | #[rustversion::attr ( |
| 28 | since(1.32), |
| 29 | cfg_attr(not(all(wrap_proc_macro, not(span_locations))), ignore) |
| 30 | )] |
| 31 | #[test] |
| 32 | fn test_proc_macro2_wrapper_span_size_without_locations() { |
| 33 | assert_eq!(mem::size_of::<proc_macro2::Span>(), 4); |
| 34 | assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 8); |
| 35 | } |
| 36 | |
| 37 | #[cfg_attr (not(all(wrap_proc_macro, span_locations)), ignore)] |
| 38 | #[test] |
| 39 | fn test_proc_macro2_wrapper_span_size_with_locations() { |
| 40 | assert_eq!(mem::size_of::<proc_macro2::Span>(), 12); |
| 41 | assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 12); |
| 42 | } |
| 43 | |