Skip to content

Commit ed09d6d

Browse files
Rollup merge of #43471 - ollie27:try_from_ints, r=nagisa
Add missing impl and tests for int to int TryFrom impls These were missing from #43248. r? @nagisa
2 parents 9f4450b + 9ea65a8 commit ed09d6d

File tree

2 files changed

+30
-15
lines changed

2 files changed

+30
-15
lines changed

src/libcore/num/mod.rs

+14-11
Original file line numberDiff line numberDiff line change
@@ -2622,21 +2622,24 @@ try_from_both_bounded!(i32, u16, u8);
26222622
try_from_both_bounded!(i64, u32, u16, u8);
26232623
try_from_both_bounded!(i128, u64, u32, u16, u8);
26242624

2625-
#[unstable(feature = "try_from", issue = "33417")]
2626-
pub use self::ptr_try_from_impls::*;
2625+
// usize/isize
2626+
try_from_unbounded!(usize, usize);
2627+
try_from_upper_bounded!(usize, isize);
2628+
try_from_lower_bounded!(isize, usize);
2629+
try_from_unbounded!(isize, isize);
26272630

26282631
#[cfg(target_pointer_width = "16")]
26292632
mod ptr_try_from_impls {
26302633
use super::TryFromIntError;
26312634
use convert::TryFrom;
26322635

26332636
try_from_upper_bounded!(usize, u8);
2634-
try_from_unbounded!(usize, usize, u16, u32, u64, u128);
2635-
try_from_upper_bounded!(usize, i8, i16, isize);
2637+
try_from_unbounded!(usize, u16, u32, u64, u128);
2638+
try_from_upper_bounded!(usize, i8, i16);
26362639
try_from_unbounded!(usize, i32, i64, i128);
26372640

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

@@ -2657,12 +2660,12 @@ mod ptr_try_from_impls {
26572660
use convert::TryFrom;
26582661

26592662
try_from_upper_bounded!(usize, u8, u16);
2660-
try_from_unbounded!(usize, usize, u32, u64, u128);
2661-
try_from_upper_bounded!(usize, i8, i16, i32, isize);
2663+
try_from_unbounded!(usize, u32, u64, u128);
2664+
try_from_upper_bounded!(usize, i8, i16, i32);
26622665
try_from_unbounded!(usize, i64, i128);
26632666

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

@@ -2683,12 +2686,12 @@ mod ptr_try_from_impls {
26832686
use convert::TryFrom;
26842687

26852688
try_from_upper_bounded!(usize, u8, u16, u32);
2686-
try_from_unbounded!(usize, usize, u64, u128);
2687-
try_from_upper_bounded!(usize, i8, i16, i32, i64, isize);
2689+
try_from_unbounded!(usize, u64, u128);
2690+
try_from_upper_bounded!(usize, i8, i16, i32, i64);
26882691
try_from_unbounded!(usize, i128);
26892692

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

src/libcore/tests/num/mod.rs

+16-4
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)