diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-24 07:14:41 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-24 12:08:34 +0530 |
| commit | 3ca54390095085eaae0baf85b0d1552067c5ee1b (patch) | |
| tree | e50973fda6443d39eda491461c4da0f6ddf3f08f /src/libcore | |
| parent | eaacc7aad5817ca10277ea6658d6e23b88d4cf77 (diff) | |
| parent | 1db684f67ad277ab7a002ee238872ca68fb13b27 (diff) | |
| download | rust-3ca54390095085eaae0baf85b0d1552067c5ee1b.tar.gz rust-3ca54390095085eaae0baf85b0d1552067c5ee1b.zip | |
Rollup merge of #22700 - nick29581:ints_hash, r=alexcrichton
fmt and hash are pretty straightforward I think. sync is a bit more complex. I thought one or two of the `isize`s ought to be `i32`s, but that would require a bunch of casting (the root cause being the lack of atomics other than isize/usize). r? @alexcrichton
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/fmt/float.rs | 22 | ||||
| -rw-r--r-- | src/libcore/fmt/mod.rs | 61 | ||||
| -rw-r--r-- | src/libcore/fmt/num.rs | 2 | ||||
| -rw-r--r-- | src/libcore/fmt/rt/v1.rs | 6 | ||||
| -rw-r--r-- | src/libcore/hash/mod.rs | 4 | ||||
| -rw-r--r-- | src/libcore/hash/sip.rs | 4 |
6 files changed, 59 insertions, 40 deletions
diff --git a/src/libcore/fmt/float.rs b/src/libcore/fmt/float.rs index 7f7264a0468..f92e631c1f2 100644 --- a/src/libcore/fmt/float.rs +++ b/src/libcore/fmt/float.rs @@ -40,10 +40,10 @@ pub enum ExponentFormat { pub enum SignificantDigits { /// At most the given number of digits will be printed, truncating any /// trailing zeroes. - DigMax(uint), + DigMax(usize), /// Precisely the given number of digits will be printed. - DigExact(uint) + DigExact(usize) } /// How to emit the sign of a number. @@ -240,27 +240,27 @@ pub fn float_to_str_bytes_common<T: Float, U, F>( // If reached left end of number, have to // insert additional digit: if i < 0 - || buf[i as uint] == b'-' - || buf[i as uint] == b'+' { - for j in (i as uint + 1..end).rev() { + || buf[i as usize] == b'-' + || buf[i as usize] == b'+' { + for j in (i as usize + 1..end).rev() { buf[j + 1] = buf[j]; } - buf[(i + 1) as uint] = value2ascii(1); + buf[(i + 1) as usize] = value2ascii(1); end += 1; break; } // Skip the '.' - if buf[i as uint] == b'.' { i -= 1; continue; } + if buf[i as usize] == b'.' { i -= 1; continue; } // Either increment the digit, // or set to 0 if max and carry the 1. - let current_digit = ascii2value(buf[i as uint]); + let current_digit = ascii2value(buf[i as usize]); if current_digit < (radix - 1) { - buf[i as uint] = value2ascii(current_digit+1); + buf[i as usize] = value2ascii(current_digit+1); break; } else { - buf[i as uint] = value2ascii(0); + buf[i as usize] = value2ascii(0); i -= 1; } } @@ -311,7 +311,7 @@ pub fn float_to_str_bytes_common<T: Float, U, F>( struct Filler<'a> { buf: &'a mut [u8], - end: &'a mut uint, + end: &'a mut usize, } impl<'a> fmt::Write for Filler<'a> { diff --git a/src/libcore/fmt/mod.rs b/src/libcore/fmt/mod.rs index b2fdd95e60e..0bf44dd77aa 100644 --- a/src/libcore/fmt/mod.rs +++ b/src/libcore/fmt/mod.rs @@ -110,11 +110,14 @@ pub trait Write { /// traits. #[stable(feature = "rust1", since = "1.0.0")] pub struct Formatter<'a> { - flags: uint, + #[cfg(not(stage0))] + flags: u32, + #[cfg(stage0)] + flags: usize, fill: char, align: rt::v1::Alignment, - width: Option<uint>, - precision: Option<uint>, + width: Option<usize>, + precision: Option<usize>, buf: &'a mut (Write+'a), curarg: slice::Iter<'a, ArgumentV1<'a>>, @@ -140,7 +143,7 @@ pub struct ArgumentV1<'a> { impl<'a> ArgumentV1<'a> { #[inline(never)] - fn show_uint(x: &uint, f: &mut Formatter) -> Result { + fn show_usize(x: &usize, f: &mut Formatter) -> Result { Display::fmt(x, f) } @@ -156,15 +159,22 @@ impl<'a> ArgumentV1<'a> { } } + #[cfg(stage0)] #[doc(hidden)] #[stable(feature = "rust1", since = "1.0.0")] pub fn from_uint(x: &uint) -> ArgumentV1 { - ArgumentV1::new(x, ArgumentV1::show_uint) + ArgumentV1::new(x, ArgumentV1::show_usize) + } + #[cfg(not(stage0))] + #[doc(hidden)] + #[stable(feature = "rust1", since = "1.0.0")] + pub fn from_usize(x: &usize) -> ArgumentV1 { + ArgumentV1::new(x, ArgumentV1::show_usize) } - fn as_uint(&self) -> Option<uint> { - if self.formatter as uint == ArgumentV1::show_uint as uint { - Some(unsafe { *(self.value as *const _ as *const uint) }) + fn as_usize(&self) -> Option<usize> { + if self.formatter as usize == ArgumentV1::show_usize as usize { + Some(unsafe { *(self.value as *const _ as *const usize) }) } else { None } @@ -194,7 +204,7 @@ impl<'a> Arguments<'a> { /// The `pieces` array must be at least as long as `fmt` to construct /// a valid Arguments structure. Also, any `Count` within `fmt` that is /// `CountIsParam` or `CountIsNextParam` has to point to an argument - /// created with `argumentuint`. However, failing to do so doesn't cause + /// created with `argumentusize`. However, failing to do so doesn't cause /// unsafety, but will ignore invalid . #[doc(hidden)] #[inline] #[stable(feature = "rust1", since = "1.0.0")] @@ -402,15 +412,15 @@ impl<'a> Formatter<'a> { (value.formatter)(value.value, self) } - fn getcount(&mut self, cnt: &rt::v1::Count) -> Option<uint> { + fn getcount(&mut self, cnt: &rt::v1::Count) -> Option<usize> { match *cnt { rt::v1::Count::Is(n) => Some(n), rt::v1::Count::Implied => None, rt::v1::Count::Param(i) => { - self.args[i].as_uint() + self.args[i].as_usize() } rt::v1::Count::NextParam => { - self.curarg.next().and_then(|arg| arg.as_uint()) + self.curarg.next().and_then(|arg| arg.as_usize()) } } } @@ -444,12 +454,12 @@ impl<'a> Formatter<'a> { let mut sign = None; if !is_positive { sign = Some('-'); width += 1; - } else if self.flags & (1 << (FlagV1::SignPlus as uint)) != 0 { + } else if self.flags & (1 << (FlagV1::SignPlus as u32)) != 0 { sign = Some('+'); width += 1; } let mut prefixed = false; - if self.flags & (1 << (FlagV1::Alternate as uint)) != 0 { + if self.flags & (1 << (FlagV1::Alternate as u32)) != 0 { prefixed = true; width += prefix.char_len(); } @@ -479,7 +489,7 @@ impl<'a> Formatter<'a> { } // The sign and prefix goes before the padding if the fill character // is zero - Some(min) if self.flags & (1 << (FlagV1::SignAwareZeroPad as uint)) != 0 => { + Some(min) if self.flags & (1 << (FlagV1::SignAwareZeroPad as u32)) != 0 => { self.fill = '0'; try!(write_prefix(self)); self.with_padding(min - width, Alignment::Right, |f| { @@ -549,7 +559,7 @@ impl<'a> Formatter<'a> { /// Runs a callback, emitting the correct padding either before or /// afterwards depending on whether right or left alignment is requested. - fn with_padding<F>(&mut self, padding: uint, default: Alignment, + fn with_padding<F>(&mut self, padding: usize, default: Alignment, f: F) -> Result where F: FnOnce(&mut Formatter) -> Result, { @@ -595,6 +605,11 @@ impl<'a> Formatter<'a> { write(self.buf, fmt) } + #[cfg(not(stage0))] + /// Flags for formatting (packed version of rt::Flag) + #[stable(feature = "rust1", since = "1.0.0")] + pub fn flags(&self) -> u32 { self.flags } + #[cfg(stage0)] /// Flags for formatting (packed version of rt::Flag) #[stable(feature = "rust1", since = "1.0.0")] pub fn flags(&self) -> usize { self.flags } @@ -609,11 +624,11 @@ impl<'a> Formatter<'a> { /// Optionally specified integer width that the output should be #[unstable(feature = "core", reason = "method was just created")] - pub fn width(&self) -> Option<uint> { self.width } + pub fn width(&self) -> Option<usize> { self.width } /// Optionally specified precision for numeric types #[unstable(feature = "core", reason = "method was just created")] - pub fn precision(&self) -> Option<uint> { self.precision } + pub fn precision(&self) -> Option<usize> { self.precision } } #[stable(feature = "rust1", since = "1.0.0")] @@ -699,9 +714,9 @@ impl Display for char { #[stable(feature = "rust1", since = "1.0.0")] impl<T> Pointer for *const T { fn fmt(&self, f: &mut Formatter) -> Result { - f.flags |= 1 << (FlagV1::Alternate as uint); - let ret = LowerHex::fmt(&(*self as uint), f); - f.flags &= !(1 << (FlagV1::Alternate as uint)); + f.flags |= 1 << (FlagV1::Alternate as u32); + let ret = LowerHex::fmt(&(*self as u32), f); + f.flags &= !(1 << (FlagV1::Alternate as u32)); ret } } @@ -857,7 +872,7 @@ impl<'a> Debug for &'a (any::Any+'a) { #[stable(feature = "rust1", since = "1.0.0")] impl<T: Debug> Debug for [T] { fn fmt(&self, f: &mut Formatter) -> Result { - if f.flags & (1 << (FlagV1::Alternate as uint)) == 0 { + if f.flags & (1 << (FlagV1::Alternate as u32)) == 0 { try!(write!(f, "[")); } let mut is_first = true; @@ -869,7 +884,7 @@ impl<T: Debug> Debug for [T] { } try!(write!(f, "{:?}", *x)) } - if f.flags & (1 << (FlagV1::Alternate as uint)) == 0 { + if f.flags & (1 << (FlagV1::Alternate as u32)) == 0 { try!(write!(f, "]")); } Ok(()) diff --git a/src/libcore/fmt/num.rs b/src/libcore/fmt/num.rs index 1222126b5e0..0175e21c8da 100644 --- a/src/libcore/fmt/num.rs +++ b/src/libcore/fmt/num.rs @@ -214,7 +214,7 @@ macro_rules! integer { show! { $Uint with $SU } } } -integer! { int, uint, "i", "u" } +integer! { isize, usize, "i", "u" } integer! { i8, u8 } integer! { i16, u16 } integer! { i32, u32 } diff --git a/src/libcore/fmt/rt/v1.rs b/src/libcore/fmt/rt/v1.rs index 0c9bb6316e0..c35611acb81 100644 --- a/src/libcore/fmt/rt/v1.rs +++ b/src/libcore/fmt/rt/v1.rs @@ -32,8 +32,12 @@ pub struct FormatSpec { pub fill: char, #[stable(feature = "rust1", since = "1.0.0")] pub align: Alignment, + #[cfg(stage0)] #[stable(feature = "rust1", since = "1.0.0")] - pub flags: uint, + pub flags: usize, + #[cfg(not(stage0))] + #[stable(feature = "rust1", since = "1.0.0")] + pub flags: u32, #[stable(feature = "rust1", since = "1.0.0")] pub precision: Count, #[stable(feature = "rust1", since = "1.0.0")] diff --git a/src/libcore/hash/mod.rs b/src/libcore/hash/mod.rs index ed48903a7c2..edc4b7e10ee 100644 --- a/src/libcore/hash/mod.rs +++ b/src/libcore/hash/mod.rs @@ -20,7 +20,7 @@ //! //! #[derive(Hash)] //! struct Person { -//! id: uint, +//! id: u32, //! name: String, //! phone: u64, //! } @@ -38,7 +38,7 @@ //! use std::hash::{hash, Hash, Hasher, SipHasher}; //! //! struct Person { -//! id: uint, +//! id: u32, //! name: String, //! phone: u64, //! } diff --git a/src/libcore/hash/sip.rs b/src/libcore/hash/sip.rs index 6f24fc70673..39bcbacdff1 100644 --- a/src/libcore/hash/sip.rs +++ b/src/libcore/hash/sip.rs @@ -34,13 +34,13 @@ use super::Hasher; pub struct SipHasher { k0: u64, k1: u64, - length: uint, // how many bytes we've processed + length: usize, // how many bytes we've processed v0: u64, // hash state v1: u64, v2: u64, v3: u64, tail: u64, // unprocessed bytes le - ntail: uint, // how many bytes in tail are valid + ntail: usize, // how many bytes in tail are valid } // sadly, these macro definitions can't appear later, |
