@@ -1463,6 +1463,11 @@ fn expand_unique_ptr(
14631463
14641464 let can_construct_from_value = types. is_maybe_trivial ( ident) ;
14651465 let new_method = if can_construct_from_value {
1466+ let raw_mut = if rustversion:: cfg!( since( 1.82 ) ) {
1467+ quote ! ( & raw mut )
1468+ } else {
1469+ quote ! ( & mut )
1470+ } ;
14661471 Some ( quote ! {
14671472 fn __new( value: Self ) -> :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void> {
14681473 #UnsafeExtern extern "C" {
@@ -1471,7 +1476,7 @@ fn expand_unique_ptr(
14711476 }
14721477 let mut repr = :: cxx:: core:: mem:: MaybeUninit :: uninit( ) ;
14731478 unsafe {
1474- __uninit( & mut repr) . cast:: <#ident #ty_generics>( ) . write( value) ;
1479+ __uninit( #raw_mut repr) . cast:: <#ident #ty_generics>( ) . write( value) ;
14751480 }
14761481 repr
14771482 }
@@ -1483,6 +1488,16 @@ fn expand_unique_ptr(
14831488 let begin_span = explicit_impl. map_or ( key. begin_span , |explicit| explicit. impl_token . span ) ;
14841489 let end_span = explicit_impl. map_or ( key. end_span , |explicit| explicit. brace_token . span . join ( ) ) ;
14851490 let unsafe_token = format_ident ! ( "unsafe" , span = begin_span) ;
1491+ let raw_const = if rustversion:: cfg!( since( 1.82 ) ) {
1492+ quote_spanned ! ( end_span=> & raw const )
1493+ } else {
1494+ quote_spanned ! ( end_span=> & )
1495+ } ;
1496+ let raw_mut = if rustversion:: cfg!( since( 1.82 ) ) {
1497+ quote_spanned ! ( end_span=> & raw mut )
1498+ } else {
1499+ quote_spanned ! ( end_span=> & mut )
1500+ } ;
14861501
14871502 quote_spanned ! { end_span=>
14881503 #[ automatically_derived]
@@ -1497,7 +1512,7 @@ fn expand_unique_ptr(
14971512 }
14981513 let mut repr = :: cxx:: core:: mem:: MaybeUninit :: uninit( ) ;
14991514 unsafe {
1500- __null( & mut repr) ;
1515+ __null( #raw_mut repr) ;
15011516 }
15021517 repr
15031518 }
@@ -1509,7 +1524,7 @@ fn expand_unique_ptr(
15091524 }
15101525 let mut repr = :: cxx:: core:: mem:: MaybeUninit :: uninit( ) ;
15111526 unsafe {
1512- __raw( & mut repr, raw. cast( ) ) ;
1527+ __raw( #raw_mut repr, raw. cast( ) ) ;
15131528 }
15141529 repr
15151530 }
@@ -1518,22 +1533,22 @@ fn expand_unique_ptr(
15181533 #[ link_name = #link_get]
15191534 fn __get( this: * const :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) -> * const :: cxx:: core:: ffi:: c_void;
15201535 }
1521- unsafe { __get( & repr) . cast( ) }
1536+ unsafe { __get( #raw_const repr) . cast( ) }
15221537 }
15231538 unsafe fn __release( mut repr: :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) -> * mut Self {
15241539 #UnsafeExtern extern "C" {
15251540 #[ link_name = #link_release]
15261541 fn __release( this: * mut :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) -> * mut :: cxx:: core:: ffi:: c_void;
15271542 }
1528- unsafe { __release( & mut repr) . cast( ) }
1543+ unsafe { __release( #raw_mut repr) . cast( ) }
15291544 }
15301545 unsafe fn __drop( mut repr: :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) {
15311546 #UnsafeExtern extern "C" {
15321547 #[ link_name = #link_drop]
15331548 fn __drop( this: * mut :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) ;
15341549 }
15351550 unsafe {
1536- __drop( & mut repr) ;
1551+ __drop( #raw_mut repr) ;
15371552 }
15381553 }
15391554 }
@@ -1769,6 +1784,17 @@ fn expand_cxx_vector(
17691784 None
17701785 } ;
17711786
1787+ let raw_const = if rustversion:: cfg!( since( 1.82 ) ) {
1788+ quote_spanned ! ( end_span=> & raw const )
1789+ } else {
1790+ quote_spanned ! ( end_span=> & )
1791+ } ;
1792+ let raw_mut = if rustversion:: cfg!( since( 1.82 ) ) {
1793+ quote_spanned ! ( end_span=> & raw mut )
1794+ } else {
1795+ quote_spanned ! ( end_span=> & mut )
1796+ } ;
1797+
17721798 quote_spanned ! { end_span=>
17731799 #[ automatically_derived]
17741800 #unsafe_token impl #impl_generics :: cxx:: private:: VectorElement for #elem #ty_generics {
@@ -1807,7 +1833,7 @@ fn expand_cxx_vector(
18071833 }
18081834 let mut repr = :: cxx:: core:: mem:: MaybeUninit :: uninit( ) ;
18091835 unsafe {
1810- __unique_ptr_null( & mut repr) ;
1836+ __unique_ptr_null( #raw_mut repr) ;
18111837 }
18121838 repr
18131839 }
@@ -1818,7 +1844,7 @@ fn expand_cxx_vector(
18181844 }
18191845 let mut repr = :: cxx:: core:: mem:: MaybeUninit :: uninit( ) ;
18201846 unsafe {
1821- __unique_ptr_raw( & mut repr, raw) ;
1847+ __unique_ptr_raw( #raw_mut repr, raw) ;
18221848 }
18231849 repr
18241850 }
@@ -1827,22 +1853,22 @@ fn expand_cxx_vector(
18271853 #[ link_name = #link_unique_ptr_get]
18281854 fn __unique_ptr_get #impl_generics( this: * const :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) -> * const :: cxx:: CxxVector <#elem #ty_generics>;
18291855 }
1830- unsafe { __unique_ptr_get( & repr) }
1856+ unsafe { __unique_ptr_get( #raw_const repr) }
18311857 }
18321858 unsafe fn __unique_ptr_release( mut repr: :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) -> * mut :: cxx:: CxxVector <Self > {
18331859 #UnsafeExtern extern "C" {
18341860 #[ link_name = #link_unique_ptr_release]
18351861 fn __unique_ptr_release #impl_generics( this: * mut :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) -> * mut :: cxx:: CxxVector <#elem #ty_generics>;
18361862 }
1837- unsafe { __unique_ptr_release( & mut repr) }
1863+ unsafe { __unique_ptr_release( #raw_mut repr) }
18381864 }
18391865 unsafe fn __unique_ptr_drop( mut repr: :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) {
18401866 #UnsafeExtern extern "C" {
18411867 #[ link_name = #link_unique_ptr_drop]
18421868 fn __unique_ptr_drop( this: * mut :: cxx:: core:: mem:: MaybeUninit <* mut :: cxx:: core:: ffi:: c_void>) ;
18431869 }
18441870 unsafe {
1845- __unique_ptr_drop( & mut repr) ;
1871+ __unique_ptr_drop( #raw_mut repr) ;
18461872 }
18471873 }
18481874 }
0 commit comments