66#![ allow( dead_code) ] // runtime init functions not used during testing
77
88use crate :: ffi:: OsString ;
9- use crate :: marker:: PhantomData ;
109use crate :: vec;
1110
1211/// One-time global initialization.
@@ -26,9 +25,11 @@ pub fn args() -> Args {
2625
2726pub struct Args {
2827 iter : vec:: IntoIter < OsString > ,
29- _dont_send_or_sync_me : PhantomData < * mut ( ) > ,
3028}
3129
30+ impl !Send for Args { }
31+ impl !Sync for Args { }
32+
3233impl Args {
3334 pub fn inner_debug ( & self ) -> & [ OsString ] {
3435 self . iter . as_slice ( )
@@ -76,7 +77,6 @@ impl DoubleEndedIterator for Args {
7677mod imp {
7778 use super :: Args ;
7879 use crate :: ffi:: { CStr , OsString } ;
79- use crate :: marker:: PhantomData ;
8080 use crate :: os:: unix:: prelude:: * ;
8181 use crate :: ptr;
8282 use crate :: sync:: atomic:: { AtomicIsize , AtomicPtr , Ordering } ;
@@ -133,7 +133,7 @@ mod imp {
133133 }
134134
135135 pub fn args ( ) -> Args {
136- Args { iter : clone ( ) . into_iter ( ) , _dont_send_or_sync_me : PhantomData }
136+ Args { iter : clone ( ) . into_iter ( ) }
137137 }
138138
139139 fn clone ( ) -> Vec < OsString > {
@@ -155,7 +155,6 @@ mod imp {
155155mod imp {
156156 use super :: Args ;
157157 use crate :: ffi:: CStr ;
158- use crate :: marker:: PhantomData ;
159158
160159 pub unsafe fn init ( _argc : isize , _argv : * const * const u8 ) { }
161160
@@ -180,7 +179,7 @@ mod imp {
180179 } )
181180 . collect :: < Vec < _ > > ( )
182181 } ;
183- Args { iter : vec. into_iter ( ) , _dont_send_or_sync_me : PhantomData }
182+ Args { iter : vec. into_iter ( ) }
184183 }
185184
186185 // As _NSGetArgc and _NSGetArgv aren't mentioned in iOS docs
@@ -247,6 +246,6 @@ mod imp {
247246 }
248247 }
249248
250- Args { iter : res. into_iter ( ) , _dont_send_or_sync_me : PhantomData }
249+ Args { iter : res. into_iter ( ) }
251250 }
252251}
0 commit comments