@@ -215,9 +215,9 @@ macro_rules! const_assert_matches {
215
215
#[ macro_export]
216
216
macro_rules! lossless_cast_u32_to_usize {
217
217
( $num: expr) => { {
218
- $crate:: const_assert!( usize :: BITS >= u32 :: BITS ) ;
219
- let num: u32 = $num;
220
- num as usize
218
+ $crate:: const_assert!( :: core :: primitive :: usize :: BITS >= :: core :: primitive :: u32 :: BITS ) ;
219
+ let num: :: core :: primitive :: u32 = $num;
220
+ num as :: core :: primitive :: usize
221
221
} } ;
222
222
}
223
223
@@ -276,7 +276,7 @@ macro_rules! const_assert_size_eq {
276
276
#[ macro_export]
277
277
macro_rules! const_assert_bytes_has_no_nul {
278
278
( $bytes: expr $( , ) ?) => { {
279
- const _: & [ $crate :: imp :: types :: U8 ] = $bytes;
279
+ const _: & [ :: core :: primitive :: u8 ] = $bytes;
280
280
281
281
$crate:: const_assert!( !$crate:: imp:: contains_nul( $bytes) ) ;
282
282
} } ;
@@ -332,7 +332,7 @@ macro_rules! const_assert_bytes_has_no_nul {
332
332
#[ macro_export]
333
333
macro_rules! const_cstr_from_bytes {
334
334
( $bytes: expr $( , ) ?) => { {
335
- const _: & [ $crate :: imp :: types :: U8 ] = $bytes;
335
+ const _: & [ :: core :: primitive :: u8 ] = $bytes;
336
336
337
337
$crate:: const_assert!( $crate:: imp:: is_cstr( $bytes) ) ;
338
338
@@ -396,7 +396,7 @@ macro_rules! const_cstr_from_bytes {
396
396
#[ macro_export]
397
397
macro_rules! const_cstr_from_str {
398
398
( $str: expr $( , ) ?) => { {
399
- const _: & $crate :: imp :: types :: Str = $str;
399
+ const _: & :: core :: primitive :: str = $str;
400
400
401
401
$crate:: const_cstr_from_bytes!( $str. as_bytes( ) )
402
402
} } ;
@@ -543,6 +543,24 @@ mod tests {
543
543
crate :: const_assert!( "" . is_empty( ) ) ;
544
544
}
545
545
546
+ #[ test]
547
+ fn lossless_u32_to_usize_hygiene_u32 ( ) {
548
+ #[ allow( dead_code) ]
549
+ #[ allow( non_camel_case_types) ]
550
+ struct u32 { }
551
+ let n = crate :: lossless_cast_u32_to_usize!( 29_u32 ) ;
552
+ assert_eq ! ( n, 29_usize ) ;
553
+ }
554
+
555
+ #[ test]
556
+ fn lossless_u32_to_usize_hygiene_usize ( ) {
557
+ #[ allow( dead_code) ]
558
+ #[ allow( non_camel_case_types) ]
559
+ struct usize { }
560
+ let n = crate :: lossless_cast_u32_to_usize!( 29_u32 ) ;
561
+ assert_eq ! ( n, 29_usize ) ;
562
+ }
563
+
546
564
#[ test]
547
565
fn const_cstr_from_bytes_hygiene ( ) {
548
566
#[ allow( dead_code) ]
0 commit comments