@@ -313,10 +313,9 @@ impl_num_element!(c32, DataType::Complex32);
313
313
impl_num_element ! ( c64, DataType :: Complex64 ) ;
314
314
315
315
cfg_if ! {
316
- if #[ cfg( target_pointer_width = "64" ) ] {
317
- impl_num_element!( usize , DataType :: Uint64 ) ;
318
- } else if #[ cfg( target_pointer_width = "32" ) ] {
319
- impl_num_element!( usize , DataType :: Uint32 ) ;
316
+ if #[ cfg( any( target_pointer_width = "32" , target_pointer_width = "64" ) ) ] {
317
+ impl_num_element!( usize , DataType :: integer:: <usize >( ) . unwrap( ) ) ;
318
+ impl_num_element!( isize , DataType :: integer:: <isize >( ) . unwrap( ) ) ;
320
319
}
321
320
}
322
321
@@ -330,7 +329,7 @@ unsafe impl Element for PyObject {
330
329
331
330
#[ cfg( test) ]
332
331
mod tests {
333
- use cfg_if :: cfg_if ;
332
+ use std :: mem :: size_of ;
334
333
335
334
use super :: { c32, c64, Element , PyArrayDescr } ;
336
335
@@ -353,13 +352,17 @@ mod tests {
353
352
assert_eq ! ( type_name:: <f64 >( py) , "float64" ) ;
354
353
assert_eq ! ( type_name:: <c32>( py) , "complex64" ) ;
355
354
assert_eq ! ( type_name:: <c64>( py) , "complex128" ) ;
356
- cfg_if ! {
357
- if #[ cfg( target_pointer_width = "64" ) ] {
358
- assert_eq!( type_name:: <usize >( py) , "uint64" ) ;
359
- } else if #[ cfg( target_pointer_width = "32" ) ] {
355
+ match size_of :: < usize > ( ) {
356
+ 32 => {
360
357
assert_eq ! ( type_name:: <usize >( py) , "uint32" ) ;
358
+ assert_eq ! ( type_name:: <isize >( py) , "int32" ) ;
359
+ }
360
+ 64 => {
361
+ assert_eq ! ( type_name:: <usize >( py) , "uint64" ) ;
362
+ assert_eq ! ( type_name:: <isize >( py) , "int64" ) ;
361
363
}
364
+ _ => { }
362
365
}
363
- } )
366
+ } ) ;
364
367
}
365
368
}
0 commit comments