diff options
| author | Nick Fitzgerald <fitzgen@gmail.com> | 2019-02-07 15:44:52 +0100 |
|---|---|---|
| committer | Nick Fitzgerald <fitzgen@gmail.com> | 2019-02-08 10:07:08 +0100 |
| commit | c104b5c89767101a40ef173eb84d3aa1122e5e9a (patch) | |
| tree | 05bf089cbe0a3595610739e7eb943d0e1add1485 | |
| parent | e633f152397545c2fd80795fc928ec555656b2ab (diff) | |
| download | rust-c104b5c89767101a40ef173eb84d3aa1122e5e9a.tar.gz rust-c104b5c89767101a40ef173eb84d3aa1122e5e9a.zip | |
Also de-duplicate 32- and 64-bit number formatting on wasm32
| -rw-r--r-- | src/libcore/fmt/num.rs | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/libcore/fmt/num.rs b/src/libcore/fmt/num.rs index 31886748fa6..b9fa3640371 100644 --- a/src/libcore/fmt/num.rs +++ b/src/libcore/fmt/num.rs @@ -257,12 +257,22 @@ macro_rules! impl_Display { }; } -impl_Display!(i8, u8, i16, u16, i32, u32 as u32 via to_u32 named fmt_u32); -impl_Display!(i64, u64 as u64 via to_u64 named fmt_u64); +// Include wasm32 in here since it doesn't reflect the native pointer size, and +// often cares strongly about getting a smaller code size. +#[cfg(any(target_pointer_width = "64", target_arch = "wasm32"))] +mod imp { + use super::*; + impl_Display!( + i8, u8, i16, u16, i32, u32, i64, u64, usize, isize + as u64 via to_u64 named fmt_u64 + ); +} + +#[cfg(not(any(target_pointer_width = "64", target_arch = "wasm32")))] +mod imp { + use super::*; + impl_Display!(i8, u8, i16, u16, i32, u32, isize, usize as u32 via to_u32 named fmt_u32); + impl_Display!(i64, u64 as u64 via to_u64 named fmt_u64); +} + impl_Display!(i128, u128 as u128 via to_u128 named fmt_u128); -#[cfg(target_pointer_width = "16")] -impl_Display!(isize, usize as u16 via to_u16 named fmt_usize); -#[cfg(target_pointer_width = "32")] -impl_Display!(isize, usize as u32 via to_u32 named fmt_usize); -#[cfg(target_pointer_width = "64")] -impl_Display!(isize, usize as u64 via to_u64 named fmt_usize); |
