Skip to content

Commit 9ea65a8

Browse files
committed
Add missing impl and tests for int to int TryFrom impls
1 parent 7c46c6c commit 9ea65a8

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

src/libcore/num/mod.rs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2627,21 +2627,24 @@ try_from_both_bounded!(i32, u16, u8);
26272627
try_from_both_bounded!(i64, u32, u16, u8);
26282628
try_from_both_bounded!(i128, u64, u32, u16, u8);
26292629

2630-
#[unstable(feature = "try_from", issue = "33417")]
2631-
pub use self::ptr_try_from_impls::*;
2630+
// usize/isize
2631+
try_from_unbounded!(usize, usize);
2632+
try_from_upper_bounded!(usize, isize);
2633+
try_from_lower_bounded!(isize, usize);
2634+
try_from_unbounded!(isize, isize);
26322635

26332636
#[cfg(target_pointer_width = "16")]
26342637
mod ptr_try_from_impls {
26352638
use super::TryFromIntError;
26362639
use convert::TryFrom;
26372640

26382641
try_from_upper_bounded!(usize, u8);
2639-
try_from_unbounded!(usize, usize, u16, u32, u64, u128);
2640-
try_from_upper_bounded!(usize, i8, i16, isize);
2642+
try_from_unbounded!(usize, u16, u32, u64, u128);
2643+
try_from_upper_bounded!(usize, i8, i16);
26412644
try_from_unbounded!(usize, i32, i64, i128);
26422645

26432646
try_from_both_bounded!(isize, u8);
2644-
try_from_lower_bounded!(isize, usize, u16, u32, u64, u128);
2647+
try_from_lower_bounded!(isize, u16, u32, u64, u128);
26452648
try_from_both_bounded!(isize, i8);
26462649
try_from_unbounded!(isize, i16, i32, i64, i128);
26472650

@@ -2662,12 +2665,12 @@ mod ptr_try_from_impls {
26622665
use convert::TryFrom;
26632666

26642667
try_from_upper_bounded!(usize, u8, u16);
2665-
try_from_unbounded!(usize, usize, u32, u64, u128);
2666-
try_from_upper_bounded!(usize, i8, i16, i32, isize);
2668+
try_from_unbounded!(usize, u32, u64, u128);
2669+
try_from_upper_bounded!(usize, i8, i16, i32);
26672670
try_from_unbounded!(usize, i64, i128);
26682671

26692672
try_from_both_bounded!(isize, u8, u16);
2670-
try_from_lower_bounded!(isize, usize, u32, u64, u128);
2673+
try_from_lower_bounded!(isize, u32, u64, u128);
26712674
try_from_both_bounded!(isize, i8, i16);
26722675
try_from_unbounded!(isize, i32, i64, i128);
26732676

@@ -2688,12 +2691,12 @@ mod ptr_try_from_impls {
26882691
use convert::TryFrom;
26892692

26902693
try_from_upper_bounded!(usize, u8, u16, u32);
2691-
try_from_unbounded!(usize, usize, u64, u128);
2692-
try_from_upper_bounded!(usize, i8, i16, i32, i64, isize);
2694+
try_from_unbounded!(usize, u64, u128);
2695+
try_from_upper_bounded!(usize, i8, i16, i32, i64);
26932696
try_from_unbounded!(usize, i128);
26942697

26952698
try_from_both_bounded!(isize, u8, u16, u32);
2696-
try_from_lower_bounded!(isize, usize, u64, u128);
2699+
try_from_lower_bounded!(isize, u64, u128);
26972700
try_from_both_bounded!(isize, i8, i16, i32);
26982701
try_from_unbounded!(isize, i64, i128);
26992702

src/libcore/tests/num/mod.rs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,7 +279,7 @@ test_impl_try_from_always_ok! { test_try_u64u64, u64, u64 }
279279
test_impl_try_from_always_ok! { test_try_u64u128, u64, u128 }
280280
test_impl_try_from_always_ok! { test_try_u64i128, u64, i128 }
281281

282-
test_impl_try_from_always_ok! { test_try_u128, u128, u128 }
282+
test_impl_try_from_always_ok! { test_try_u128u128, u128, u128 }
283283

284284
test_impl_try_from_always_ok! { test_try_i8i8, i8, i8 }
285285
test_impl_try_from_always_ok! { test_try_i8i16, i8, i16 }
@@ -301,8 +301,12 @@ test_impl_try_from_always_ok! { test_try_i64i128, i64, i128 }
301301

302302
test_impl_try_from_always_ok! { test_try_i128i128, i128, i128 }
303303

304+
test_impl_try_from_always_ok! { test_try_usizeusize, usize, usize }
305+
test_impl_try_from_always_ok! { test_try_isizeisize, isize, isize }
306+
304307
assume_usize_width! {
305308
test_impl_try_from_always_ok! { test_try_u8usize, u8, usize }
309+
test_impl_try_from_always_ok! { test_try_u8isize, u8, isize }
306310
test_impl_try_from_always_ok! { test_try_i8isize, i8, isize }
307311

308312
test_impl_try_from_always_ok! { test_try_u16usize, u16, usize }
@@ -317,19 +321,27 @@ assume_usize_width! {
317321

318322
cfg_block!(
319323
#[cfg(target_pointer_width = "16")] {
320-
test_impl_try_from_always_ok! { test_try_u16usize, u16, usize }
321-
test_impl_try_from_always_ok! { test_try_i16isize, i16, isize }
324+
test_impl_try_from_always_ok! { test_try_usizeu16, usize, u16 }
325+
test_impl_try_from_always_ok! { test_try_isizei16, isize, i16 }
326+
test_impl_try_from_always_ok! { test_try_usizeu32, usize, u32 }
327+
test_impl_try_from_always_ok! { test_try_usizei32, usize, i32 }
328+
test_impl_try_from_always_ok! { test_try_isizei32, isize, i32 }
329+
test_impl_try_from_always_ok! { test_try_usizei64, usize, i64 }
322330
}
323331

324332
#[cfg(target_pointer_width = "32")] {
333+
test_impl_try_from_always_ok! { test_try_u16isize, u16, isize }
325334
test_impl_try_from_always_ok! { test_try_usizeu32, usize, u32 }
326335
test_impl_try_from_always_ok! { test_try_isizei32, isize, i32 }
327336
test_impl_try_from_always_ok! { test_try_u32usize, u32, usize }
328337
test_impl_try_from_always_ok! { test_try_i32isize, i32, isize }
338+
test_impl_try_from_always_ok! { test_try_usizei64, usize, i64 }
329339
}
330340

331341
#[cfg(target_pointer_width = "64")] {
342+
test_impl_try_from_always_ok! { test_try_u16isize, u16, isize }
332343
test_impl_try_from_always_ok! { test_try_u32usize, u32, usize }
344+
test_impl_try_from_always_ok! { test_try_u32isize, u32, isize }
333345
test_impl_try_from_always_ok! { test_try_i32isize, i32, isize }
334346
test_impl_try_from_always_ok! { test_try_u64usize, u64, usize }
335347
test_impl_try_from_always_ok! { test_try_i64isize, i64, isize }
@@ -451,8 +463,8 @@ assume_usize_width! {
451463

452464
cfg_block!(
453465
#[cfg(target_pointer_width = "16")] {
466+
test_impl_try_from_unsigned_to_signed_upper_err! { test_try_u16isize, u16, isize }
454467
test_impl_try_from_unsigned_to_signed_upper_err! { test_try_u32isize, u32, isize }
455-
test_impl_try_from_unsigned_to_signed_upper_err! { test_try_u32isize, u64, isize }
456468
}
457469

458470
#[cfg(target_pointer_width = "32")] {

0 commit comments

Comments
 (0)