17ac06127Sopenharmony_ciextern crate proc_macro;
27ac06127Sopenharmony_ci
37ac06127Sopenharmony_ciuse std::mem;
47ac06127Sopenharmony_ci
57ac06127Sopenharmony_ci#[rustversion::attr(before(1.32), ignore)]
67ac06127Sopenharmony_ci#[test]
77ac06127Sopenharmony_cifn test_proc_macro_span_size() {
87ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<proc_macro::Span>(), 4);
97ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<Option<proc_macro::Span>>(), 4);
107ac06127Sopenharmony_ci}
117ac06127Sopenharmony_ci
127ac06127Sopenharmony_ci#[cfg_attr(not(all(not(wrap_proc_macro), not(span_locations))), ignore)]
137ac06127Sopenharmony_ci#[test]
147ac06127Sopenharmony_cifn test_proc_macro2_fallback_span_size_without_locations() {
157ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<proc_macro2::Span>(), 0);
167ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 1);
177ac06127Sopenharmony_ci}
187ac06127Sopenharmony_ci
197ac06127Sopenharmony_ci#[cfg_attr(not(all(not(wrap_proc_macro), span_locations)), ignore)]
207ac06127Sopenharmony_ci#[test]
217ac06127Sopenharmony_cifn test_proc_macro2_fallback_span_size_with_locations() {
227ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<proc_macro2::Span>(), 8);
237ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 12);
247ac06127Sopenharmony_ci}
257ac06127Sopenharmony_ci
267ac06127Sopenharmony_ci#[rustversion::attr(before(1.32), ignore)]
277ac06127Sopenharmony_ci#[rustversion::attr(
287ac06127Sopenharmony_ci    since(1.32),
297ac06127Sopenharmony_ci    cfg_attr(not(all(wrap_proc_macro, not(span_locations))), ignore)
307ac06127Sopenharmony_ci)]
317ac06127Sopenharmony_ci#[test]
327ac06127Sopenharmony_cifn test_proc_macro2_wrapper_span_size_without_locations() {
337ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<proc_macro2::Span>(), 4);
347ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 8);
357ac06127Sopenharmony_ci}
367ac06127Sopenharmony_ci
377ac06127Sopenharmony_ci#[cfg_attr(not(all(wrap_proc_macro, span_locations)), ignore)]
387ac06127Sopenharmony_ci#[test]
397ac06127Sopenharmony_cifn test_proc_macro2_wrapper_span_size_with_locations() {
407ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<proc_macro2::Span>(), 12);
417ac06127Sopenharmony_ci    assert_eq!(mem::size_of::<Option<proc_macro2::Span>>(), 12);
427ac06127Sopenharmony_ci}
43