Skip to content

Commit c104b5c

Browse files
committed
Also de-duplicate 32- and 64-bit number formatting on wasm32
1 parent e633f15 commit c104b5c

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

src/libcore/fmt/num.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -257,12 +257,22 @@ macro_rules! impl_Display {
257257
};
258258
}
259259

260-
impl_Display!(i8, u8, i16, u16, i32, u32 as u32 via to_u32 named fmt_u32);
261-
impl_Display!(i64, u64 as u64 via to_u64 named fmt_u64);
260+
// Include wasm32 in here since it doesn't reflect the native pointer size, and
261+
// often cares strongly about getting a smaller code size.
262+
#[cfg(any(target_pointer_width = "64", target_arch = "wasm32"))]
263+
mod imp {
264+
use super::*;
265+
impl_Display!(
266+
i8, u8, i16, u16, i32, u32, i64, u64, usize, isize
267+
as u64 via to_u64 named fmt_u64
268+
);
269+
}
270+
271+
#[cfg(not(any(target_pointer_width = "64", target_arch = "wasm32")))]
272+
mod imp {
273+
use super::*;
274+
impl_Display!(i8, u8, i16, u16, i32, u32, isize, usize as u32 via to_u32 named fmt_u32);
275+
impl_Display!(i64, u64 as u64 via to_u64 named fmt_u64);
276+
}
277+
262278
impl_Display!(i128, u128 as u128 via to_u128 named fmt_u128);
263-
#[cfg(target_pointer_width = "16")]
264-
impl_Display!(isize, usize as u16 via to_u16 named fmt_usize);
265-
#[cfg(target_pointer_width = "32")]
266-
impl_Display!(isize, usize as u32 via to_u32 named fmt_usize);
267-
#[cfg(target_pointer_width = "64")]
268-
impl_Display!(isize, usize as u64 via to_u64 named fmt_usize);

0 commit comments

Comments
 (0)