From dcd1ae24b9b573091a7022d97cba0242cef55781 Mon Sep 17 00:00:00 2001 From: tmathern <60901087+tmathern@users.noreply.github.com> Date: Thu, 1 Oct 2026 20:55:19 -0700 Subject: [PATCH] fix: arc name --- src/macros.rs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/macros.rs b/src/macros.rs index c282e74..4c56659 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -410,7 +410,7 @@ macro_rules! box_tracked { macro_rules! arc_tracked { ($expr:expr) => {{ let obj = $expr; - let ptr = Arc::into_raw(Arc::new(obj)) as *mut _; + let ptr = std::sync::Arc::into_raw(std::sync::Arc::new(obj)) as *mut _; $crate::track_arc(ptr) }}; } @@ -1051,3 +1051,20 @@ macro_rules! cimpl_free { $crate::cimpl_free($ptr as *mut _) }; } + +#[cfg(test)] +mod tests { + // `test_arc_tracked_expands_without_arc_import` tests that a fully qualified Arc name compiles. + // So we can't import Arc here either. + + #[test] + fn test_arc_tracked_expands_without_arc_import() { + let pointer: *mut i32 = crate::arc_tracked!(5i32); + assert!(!pointer.is_null()); + { + let value = crate::checkout_shared::(pointer).expect("new handle OK"); + assert_eq!(*value, 5); + } + assert_eq!(crate::cimpl_free(pointer as *mut std::ffi::c_void), 0); + } +}