diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-03-21 21:34:30 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-03-22 10:29:17 -0700 |
| commit | c1084091d4e5472fac7e158b11120bad6ff210ff (patch) | |
| tree | 745a42f03c8c88670da739313cd8050a5f1d8b37 /src/libstd | |
| parent | be9bddd46377bc982b73acf15a720365a54197a7 (diff) | |
| download | rust-c1084091d4e5472fac7e158b11120bad6ff210ff.tar.gz rust-c1084091d4e5472fac7e158b11120bad6ff210ff.zip | |
libstd: Remove all uses of `pure` from libstd. rs=depure
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/arena.rs | 2 | ||||
| -rw-r--r-- | src/libstd/base64.rs | 12 | ||||
| -rw-r--r-- | src/libstd/bigint.rs | 208 | ||||
| -rw-r--r-- | src/libstd/bitv.rs | 44 | ||||
| -rw-r--r-- | src/libstd/c_vec.rs | 2 | ||||
| -rw-r--r-- | src/libstd/cmp.rs | 20 | ||||
| -rw-r--r-- | src/libstd/comm.rs | 6 | ||||
| -rw-r--r-- | src/libstd/deque.rs | 6 | ||||
| -rw-r--r-- | src/libstd/ebml.rs | 2 | ||||
| -rw-r--r-- | src/libstd/future.rs | 2 | ||||
| -rw-r--r-- | src/libstd/json.rs | 22 | ||||
| -rw-r--r-- | src/libstd/list.rs | 20 | ||||
| -rw-r--r-- | src/libstd/md4.rs | 10 | ||||
| -rw-r--r-- | src/libstd/net_url.rs | 42 | ||||
| -rw-r--r-- | src/libstd/oldmap.rs | 38 | ||||
| -rw-r--r-- | src/libstd/priority_queue.rs | 22 | ||||
| -rw-r--r-- | src/libstd/rope.rs | 16 | ||||
| -rw-r--r-- | src/libstd/semver.rs | 20 | ||||
| -rw-r--r-- | src/libstd/smallintmap.rs | 22 | ||||
| -rw-r--r-- | src/libstd/sort.rs | 42 | ||||
| -rw-r--r-- | src/libstd/test.rs | 4 | ||||
| -rw-r--r-- | src/libstd/time.rs | 34 | ||||
| -rw-r--r-- | src/libstd/treemap.rs | 88 | ||||
| -rw-r--r-- | src/libstd/unicode.rs | 12 | ||||
| -rw-r--r-- | src/libstd/workcache.rs | 10 |
25 files changed, 353 insertions, 353 deletions
diff --git a/src/libstd/arena.rs b/src/libstd/arena.rs index 911abf95ff8..d76438dd89b 100644 --- a/src/libstd/arena.rs +++ b/src/libstd/arena.rs @@ -123,7 +123,7 @@ pub fn Arena() -> Arena { } #[inline(always)] -pure fn round_up_to(base: uint, align: uint) -> uint { +fn round_up_to(base: uint, align: uint) -> uint { (base + (align - 1)) & !(align - 1) } diff --git a/src/libstd/base64.rs b/src/libstd/base64.rs index 56ce54be44e..ff026324404 100644 --- a/src/libstd/base64.rs +++ b/src/libstd/base64.rs @@ -13,11 +13,11 @@ use core::str; use core::vec; pub trait ToBase64 { - pure fn to_base64(&self) -> ~str; + fn to_base64(&self) -> ~str; } impl ToBase64 for &'self [u8] { - pure fn to_base64(&self) -> ~str { + fn to_base64(&self) -> ~str { let chars = str::chars( ~"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" ); @@ -70,17 +70,17 @@ impl ToBase64 for &'self [u8] { } impl ToBase64 for &'self str { - pure fn to_base64(&self) -> ~str { + fn to_base64(&self) -> ~str { str::to_bytes(*self).to_base64() } } pub trait FromBase64 { - pure fn from_base64(&self) -> ~[u8]; + fn from_base64(&self) -> ~[u8]; } impl FromBase64 for ~[u8] { - pure fn from_base64(&self) -> ~[u8] { + fn from_base64(&self) -> ~[u8] { if self.len() % 4u != 0u { fail!(~"invalid base64 length"); } let len = self.len(); @@ -142,7 +142,7 @@ impl FromBase64 for ~[u8] { } impl FromBase64 for ~str { - pure fn from_base64(&self) -> ~[u8] { + fn from_base64(&self) -> ~[u8] { str::to_bytes(*self).from_base64() } } diff --git a/src/libstd/bigint.rs b/src/libstd/bigint.rs index daf5d492ccf..309925e7cf9 100644 --- a/src/libstd/bigint.rs +++ b/src/libstd/bigint.rs @@ -53,16 +53,16 @@ pub mod BigDigit { priv const hi_mask: uint = (-1 as uint) << bits; priv const lo_mask: uint = (-1 as uint) >> bits; - priv pure fn get_hi(n: uint) -> BigDigit { (n >> bits) as BigDigit } - priv pure fn get_lo(n: uint) -> BigDigit { (n & lo_mask) as BigDigit } + priv fn get_hi(n: uint) -> BigDigit { (n >> bits) as BigDigit } + priv fn get_lo(n: uint) -> BigDigit { (n & lo_mask) as BigDigit } /// Split one machine sized unsigned integer into two BigDigits. - pub pure fn from_uint(n: uint) -> (BigDigit, BigDigit) { + pub fn from_uint(n: uint) -> (BigDigit, BigDigit) { (get_hi(n), get_lo(n)) } /// Join two BigDigits into one machine sized unsigned integer - pub pure fn to_uint(hi: BigDigit, lo: BigDigit) -> uint { + pub fn to_uint(hi: BigDigit, lo: BigDigit) -> uint { (lo as uint) | ((hi as uint) << bits) } } @@ -78,29 +78,29 @@ pub struct BigUint { } impl Eq for BigUint { - pure fn eq(&self, other: &BigUint) -> bool { self.cmp(other) == 0 } - pure fn ne(&self, other: &BigUint) -> bool { self.cmp(other) != 0 } + fn eq(&self, other: &BigUint) -> bool { self.cmp(other) == 0 } + fn ne(&self, other: &BigUint) -> bool { self.cmp(other) != 0 } } impl Ord for BigUint { - pure fn lt(&self, other: &BigUint) -> bool { self.cmp(other) < 0 } - pure fn le(&self, other: &BigUint) -> bool { self.cmp(other) <= 0 } - pure fn ge(&self, other: &BigUint) -> bool { self.cmp(other) >= 0 } - pure fn gt(&self, other: &BigUint) -> bool { self.cmp(other) > 0 } + fn lt(&self, other: &BigUint) -> bool { self.cmp(other) < 0 } + fn le(&self, other: &BigUint) -> bool { self.cmp(other) <= 0 } + fn ge(&self, other: &BigUint) -> bool { self.cmp(other) >= 0 } + fn gt(&self, other: &BigUint) -> bool { self.cmp(other) > 0 } } impl ToStr for BigUint { - pure fn to_str(&self) -> ~str { self.to_str_radix(10) } + fn to_str(&self) -> ~str { self.to_str_radix(10) } } impl from_str::FromStr for BigUint { - pure fn from_str(s: &str) -> Option<BigUint> { + fn from_str(s: &str) -> Option<BigUint> { BigUint::from_str_radix(s, 10) } } impl Shl<uint, BigUint> for BigUint { - pure fn shl(&self, rhs: &uint) -> BigUint { + fn shl(&self, rhs: &uint) -> BigUint { let n_unit = *rhs / BigDigit::bits; let n_bits = *rhs % BigDigit::bits; return self.shl_unit(n_unit).shl_bits(n_bits); @@ -108,7 +108,7 @@ impl Shl<uint, BigUint> for BigUint { } impl Shr<uint, BigUint> for BigUint { - pure fn shr(&self, rhs: &uint) -> BigUint { + fn shr(&self, rhs: &uint) -> BigUint { let n_unit = *rhs / BigDigit::bits; let n_bits = *rhs % BigDigit::bits; return self.shr_unit(n_unit).shr_bits(n_bits); @@ -116,15 +116,15 @@ impl Shr<uint, BigUint> for BigUint { } impl Zero for BigUint { - pure fn zero() -> BigUint { BigUint::new(~[]) } + fn zero() -> BigUint { BigUint::new(~[]) } } impl One for BigUint { - pub pure fn one() -> BigUint { BigUint::new(~[1]) } + pub fn one() -> BigUint { BigUint::new(~[1]) } } impl Add<BigUint, BigUint> for BigUint { - pure fn add(&self, other: &BigUint) -> BigUint { + fn add(&self, other: &BigUint) -> BigUint { let new_len = uint::max(self.data.len(), other.data.len()); let mut carry = 0; @@ -143,7 +143,7 @@ impl Add<BigUint, BigUint> for BigUint { } impl Sub<BigUint, BigUint> for BigUint { - pure fn sub(&self, other: &BigUint) -> BigUint { + fn sub(&self, other: &BigUint) -> BigUint { let new_len = uint::max(self.data.len(), other.data.len()); let mut borrow = 0; @@ -168,7 +168,7 @@ impl Sub<BigUint, BigUint> for BigUint { } impl Mul<BigUint, BigUint> for BigUint { - pure fn mul(&self, other: &BigUint) -> BigUint { + fn mul(&self, other: &BigUint) -> BigUint { if self.is_zero() || other.is_zero() { return Zero::zero(); } let s_len = self.data.len(), o_len = other.data.len(); @@ -200,7 +200,7 @@ impl Mul<BigUint, BigUint> for BigUint { return ll + mm.shl_unit(half_len) + hh.shl_unit(half_len * 2); - pure fn mul_digit(a: &BigUint, n: BigDigit) -> BigUint { + fn mul_digit(a: &BigUint, n: BigDigit) -> BigUint { if n == 0 { return Zero::zero(); } if n == 1 { return copy *a; } @@ -216,14 +216,14 @@ impl Mul<BigUint, BigUint> for BigUint { return BigUint::new(prod + [carry]); } - pure fn cut_at(a: &BigUint, n: uint) -> (BigUint, BigUint) { + fn cut_at(a: &BigUint, n: uint) -> (BigUint, BigUint) { let mid = uint::min(a.data.len(), n); return (BigUint::from_slice(vec::slice(a.data, mid, a.data.len())), BigUint::from_slice(vec::slice(a.data, 0, mid))); } - pure fn sub_sign(a: BigUint, b: BigUint) -> (int, BigUint) { + fn sub_sign(a: BigUint, b: BigUint) -> (int, BigUint) { match a.cmp(&b) { s if s < 0 => (s, b - a), s if s > 0 => (s, a - b), @@ -234,36 +234,36 @@ impl Mul<BigUint, BigUint> for BigUint { } impl Div<BigUint, BigUint> for BigUint { - pure fn div(&self, other: &BigUint) -> BigUint { + fn div(&self, other: &BigUint) -> BigUint { let (d, _) = self.divmod(other); return d; } } impl Modulo<BigUint, BigUint> for BigUint { - pure fn modulo(&self, other: &BigUint) -> BigUint { + fn modulo(&self, other: &BigUint) -> BigUint { let (_, m) = self.divmod(other); return m; } } impl Neg<BigUint> for BigUint { - pure fn neg(&self) -> BigUint { fail!() } + fn neg(&self) -> BigUint { fail!() } } impl IntConvertible for BigUint { - pure fn to_int(&self) -> int { + fn to_int(&self) -> int { uint::min(self.to_uint(), int::max_value as uint) as int } - pure fn from_int(n: int) -> BigUint { + fn from_int(n: int) -> BigUint { if (n < 0) { Zero::zero() } else { BigUint::from_uint(n as uint) } } } pub impl BigUint { /// Creates and initializes an BigUint. - pub pure fn new(v: ~[BigDigit]) -> BigUint { + pub fn new(v: ~[BigDigit]) -> BigUint { // omit trailing zeros let new_len = v.rposition(|n| *n != 0).map_default(0, |p| *p + 1); @@ -274,7 +274,7 @@ pub impl BigUint { } /// Creates and initializes an BigUint. - pub pure fn from_uint(n: uint) -> BigUint { + pub fn from_uint(n: uint) -> BigUint { match BigDigit::from_uint(n) { (0, 0) => Zero::zero(), (0, n0) => BigUint::new(~[n0]), @@ -283,18 +283,18 @@ pub impl BigUint { } /// Creates and initializes an BigUint. - pub pure fn from_slice(slice: &[BigDigit]) -> BigUint { + pub fn from_slice(slice: &[BigDigit]) -> BigUint { return BigUint::new(vec::from_slice(slice)); } /// Creates and initializes an BigUint. - pub pure fn from_str_radix(s: &str, radix: uint) + pub fn from_str_radix(s: &str, radix: uint) -> Option<BigUint> { BigUint::parse_bytes(str::to_bytes(s), radix) } /// Creates and initializes an BigUint. - pub pure fn parse_bytes(buf: &[u8], radix: uint) + pub fn parse_bytes(buf: &[u8], radix: uint) -> Option<BigUint> { let (base, unit_len) = get_radix_base(radix); let base_num: BigUint = BigUint::from_uint(base); @@ -316,10 +316,10 @@ pub impl BigUint { } } - pure fn abs(&self) -> BigUint { copy *self } + fn abs(&self) -> BigUint { copy *self } /// Compare two BigUint value. - pure fn cmp(&self, other: &BigUint) -> int { + fn cmp(&self, other: &BigUint) -> int { let s_len = self.data.len(), o_len = other.data.len(); if s_len < o_len { return -1; } if s_len > o_len { return 1; } @@ -334,7 +334,7 @@ pub impl BigUint { return 0; } - pure fn divmod(&self, other: &BigUint) -> (BigUint, BigUint) { + fn divmod(&self, other: &BigUint) -> (BigUint, BigUint) { if other.is_zero() { fail!() } if self.is_zero() { return (Zero::zero(), Zero::zero()); } if *other == One::one() { return (copy *self, Zero::zero()); } @@ -355,7 +355,7 @@ pub impl BigUint { let (d, m) = divmod_inner(self << shift, other << shift); return (d, m >> shift); - pure fn divmod_inner(a: BigUint, b: BigUint) -> (BigUint, BigUint) { + fn divmod_inner(a: BigUint, b: BigUint) -> (BigUint, BigUint) { let mut r = a; let mut d = Zero::zero::<BigUint>(); let mut n = 1; @@ -377,7 +377,7 @@ pub impl BigUint { return (d, r); } - pure fn div_estimate(a: &BigUint, b: &BigUint, n: uint) + fn div_estimate(a: &BigUint, b: &BigUint, n: uint) -> (BigUint, BigUint, BigUint) { if a.data.len() < n { return (Zero::zero(), Zero::zero(), copy *a); @@ -405,26 +405,26 @@ pub impl BigUint { } } - pure fn quot(&self, other: &BigUint) -> BigUint { + fn quot(&self, other: &BigUint) -> BigUint { let (q, _) = self.quotrem(other); return q; } - pure fn rem(&self, other: &BigUint) -> BigUint { + fn rem(&self, other: &BigUint) -> BigUint { let (_, r) = self.quotrem(other); return r; } - pure fn quotrem(&self, other: &BigUint) -> (BigUint, BigUint) { + fn quotrem(&self, other: &BigUint) -> (BigUint, BigUint) { self.divmod(other) } - pure fn is_zero(&self) -> bool { self.data.is_empty() } - pure fn is_not_zero(&self) -> bool { !self.data.is_empty() } - pure fn is_positive(&self) -> bool { self.is_not_zero() } - pure fn is_negative(&self) -> bool { false } - pure fn is_nonpositive(&self) -> bool { self.is_zero() } - pure fn is_nonnegative(&self) -> bool { true } + fn is_zero(&self) -> bool { self.data.is_empty() } + fn is_not_zero(&self) -> bool { !self.data.is_empty() } + fn is_positive(&self) -> bool { self.is_not_zero() } + fn is_negative(&self) -> bool { false } + fn is_nonpositive(&self) -> bool { self.is_zero() } + fn is_nonnegative(&self) -> bool { true } - pure fn to_uint(&self) -> uint { + fn to_uint(&self) -> uint { match self.data.len() { 0 => 0, 1 => self.data[0] as uint, @@ -433,7 +433,7 @@ pub impl BigUint { } } - pure fn to_str_radix(&self, radix: uint) -> ~str { + fn to_str_radix(&self, radix: uint) -> ~str { fail_unless!(1 < radix && radix <= 16); let (base, max_len) = get_radix_base(radix); if base == BigDigit::base { @@ -441,7 +441,7 @@ pub impl BigUint { } return fill_concat(convert_base(copy *self, base), radix, max_len); - pure fn convert_base(n: BigUint, base: uint) -> ~[BigDigit] { + fn convert_base(n: BigUint, base: uint) -> ~[BigDigit] { let divider = BigUint::from_uint(base); let mut result = ~[]; let mut r = n; @@ -456,7 +456,7 @@ pub impl BigUint { return result; } - pure fn fill_concat(v: &[BigDigit], radix: uint, l: uint) -> ~str { + fn fill_concat(v: &[BigDigit], radix: uint, l: uint) -> ~str { if v.is_empty() { return ~"0" } let s = str::concat(vec::reversed(v).map(|n| { let s = uint::to_str_radix(*n as uint, radix); @@ -466,13 +466,13 @@ pub impl BigUint { } } - priv pure fn shl_unit(self, n_unit: uint) -> BigUint { + priv fn shl_unit(self, n_unit: uint) -> BigUint { if n_unit == 0 || self.is_zero() { return self; } return BigUint::new(vec::from_elem(n_unit, 0) + self.data); } - priv pure fn shl_bits(self, n_bits: uint) -> BigUint { + priv fn shl_bits(self, n_bits: uint) -> BigUint { if n_bits == 0 || self.is_zero() { return self; } let mut carry = 0; @@ -487,7 +487,7 @@ pub impl BigUint { return BigUint::new(shifted + [carry]); } - priv pure fn shr_unit(self, n_unit: uint) -> BigUint { + priv fn shr_unit(self, n_unit: uint) -> BigUint { if n_unit == 0 { return self; } if self.data.len() < n_unit { return Zero::zero(); } return BigUint::from_slice( @@ -495,7 +495,7 @@ pub impl BigUint { ); } - priv pure fn shr_bits(self, n_bits: uint) -> BigUint { + priv fn shr_bits(self, n_bits: uint) -> BigUint { if n_bits == 0 || self.data.is_empty() { return self; } let mut borrow = 0; @@ -509,7 +509,7 @@ pub impl BigUint { } #[cfg(target_arch = "x86_64")] -priv pure fn get_radix_base(radix: uint) -> (uint, uint) { +priv fn get_radix_base(radix: uint) -> (uint, uint) { fail_unless!(1 < radix && radix <= 16); match radix { 2 => (4294967296, 32), @@ -534,7 +534,7 @@ priv pure fn get_radix_base(radix: uint) -> (uint, uint) { #[cfg(target_arch = "arm")] #[cfg(target_arch = "x86")] #[cfg(target_arch = "mips")] -priv pure fn get_radix_base(radix: uint) -> (uint, uint) { +priv fn get_radix_base(radix: uint) -> (uint, uint) { fail_unless!(1 < radix && radix <= 16); match radix { 2 => (65536, 16), @@ -560,20 +560,20 @@ priv pure fn get_radix_base(radix: uint) -> (uint, uint) { pub enum Sign { Minus, Zero, Plus } impl Eq for Sign { - pure fn eq(&self, other: &Sign) -> bool { self.cmp(other) == 0 } - pure fn ne(&self, other: &Sign) -> bool { self.cmp(other) != 0 } + fn eq(&self, other: &Sign) -> bool { self.cmp(other) == 0 } + fn ne(&self, other: &Sign) -> bool { self.cmp(other) != 0 } } impl Ord for Sign { - pure fn lt(&self, other: &Sign) -> bool { self.cmp(other) < 0 } - pure fn le(&self, other: &Sign) -> bool { self.cmp(other) <= 0 } - pure fn ge(&self, other: &Sign) -> bool { self.cmp(other) >= 0 } - pure fn gt(&self, other: &Sign) -> bool { self.cmp(other) > 0 } + fn lt(&self, other: &Sign) -> bool { self.cmp(other) < 0 } + fn le(&self, other: &Sign) -> bool { self.cmp(other) <= 0 } + fn ge(&self, other: &Sign) -> bool { self.cmp(other) >= 0 } + fn gt(&self, other: &Sign) -> bool { self.cmp(other) > 0 } } pub impl Sign { /// Compare two Sign. - pure fn cmp(&self, other: &Sign) -> int { + fn cmp(&self, other: &Sign) -> int { match (*self, *other) { (Minus, Minus) | (Zero, Zero) | (Plus, Plus) => 0, (Minus, Zero) | (Minus, Plus) | (Zero, Plus) => -1, @@ -582,7 +582,7 @@ pub impl Sign { } /// Negate Sign value. - pure fn neg(&self) -> Sign { + fn neg(&self) -> Sign { match *self { Minus => Plus, Zero => Zero, @@ -598,53 +598,53 @@ pub struct BigInt { } impl Eq for BigInt { - pure fn eq(&self, other: &BigInt) -> bool { self.cmp(other) == 0 } - pure fn ne(&self, other: &BigInt) -> bool { self.cmp(other) != 0 } + fn eq(&self, other: &BigInt) -> bool { self.cmp(other) == 0 } + fn ne(&self, other: &BigInt) -> bool { self.cmp(other) != 0 } } impl Ord for BigInt { - pure fn lt(&self, other: &BigInt) -> bool { self.cmp(other) < 0 } - pure fn le(&self, other: &BigInt) -> bool { self.cmp(other) <= 0 } - pure fn ge(&self, other: &BigInt) -> bool { self.cmp(other) >= 0 } - pure fn gt(&self, other: &BigInt) -> bool { self.cmp(other) > 0 } + fn lt(&self, other: &BigInt) -> bool { self.cmp(other) < 0 } + fn le(&self, other: &BigInt) -> bool { self.cmp(other) <= 0 } + fn ge(&self, other: &BigInt) -> bool { self.cmp(other) >= 0 } + fn gt(&self, other: &BigInt) -> bool { self.cmp(other) > 0 } } impl ToStr for BigInt { - pure fn to_str(&self) -> ~str { self.to_str_radix(10) } + fn to_str(&self) -> ~str { self.to_str_radix(10) } } impl from_str::FromStr for BigInt { - pure fn from_str(s: &str) -> Option<BigInt> { + fn from_str(s: &str) -> Option<BigInt> { BigInt::from_str_radix(s, 10) } } impl Shl<uint, BigInt> for BigInt { - pure fn shl(&self, rhs: &uint) -> BigInt { + fn shl(&self, rhs: &uint) -> BigInt { BigInt::from_biguint(self.sign, self.data << *rhs) } } impl Shr<uint, BigInt> for BigInt { - pure fn shr(&self, rhs: &uint) -> BigInt { + fn shr(&self, rhs: &uint) -> BigInt { BigInt::from_biguint(self.sign, self.data >> *rhs) } } impl Zero for BigInt { - pub pure fn zero() -> BigInt { + pub fn zero() -> BigInt { BigInt::from_biguint(Zero, Zero::zero()) } } impl One for BigInt { - pub pure fn one() -> BigInt { + pub fn one() -> BigInt { BigInt::from_biguint(Plus, One::one()) } } impl Add<BigInt, BigInt> for BigInt { - pure fn add(&self, other: &BigInt) -> BigInt { + fn add(&self, other: &BigInt) -> BigInt { match (self.sign, other.sign) { (Zero, _) => copy *other, (_, Zero) => copy *self, @@ -658,7 +658,7 @@ impl Add<BigInt, BigInt> for BigInt { } impl Sub<BigInt, BigInt> for BigInt { - pure fn sub(&self, other: &BigInt) -> BigInt { + fn sub(&self, other: &BigInt) -> BigInt { match (self.sign, other.sign) { (Zero, _) => -other, (_, Zero) => copy *self, @@ -678,7 +678,7 @@ impl Sub<BigInt, BigInt> for BigInt { } impl Mul<BigInt, BigInt> for BigInt { - pure fn mul(&self, other: &BigInt) -> BigInt { + fn mul(&self, other: &BigInt) -> BigInt { match (self.sign, other.sign) { (Zero, _) | (_, Zero) => Zero::zero(), (Plus, Plus) | (Minus, Minus) => { @@ -692,27 +692,27 @@ impl Mul<BigInt, BigInt> for BigInt { } impl Div<BigInt, BigInt> for BigInt { - pure fn div(&self, other: &BigInt) -> BigInt { + fn div(&self, other: &BigInt) -> BigInt { let (d, _) = self.divmod(other); return d; } } impl Modulo<BigInt, BigInt> for BigInt { - pure fn modulo(&self, other: &BigInt) -> BigInt { + fn modulo(&self, other: &BigInt) -> BigInt { let (_, m) = self.divmod(other); return m; } } impl Neg<BigInt> for BigInt { - pure fn neg(&self) -> BigInt { + fn neg(&self) -> BigInt { BigInt::from_biguint(self.sign.neg(), copy self.data) } } impl IntConvertible for BigInt { - pure fn to_int(&self) -> int { + fn to_int(&self) -> int { match self.sign { Plus => uint::min(self.to_uint(), int::max_value as uint) as int, Zero => 0, @@ -721,7 +721,7 @@ impl IntConvertible for BigInt { } } - pure fn from_int(n: int) -> BigInt { + fn from_int(n: int) -> BigInt { if n > 0 { return BigInt::from_biguint(Plus, BigUint::from_uint(n as uint)); } @@ -736,12 +736,12 @@ impl IntConvertible for BigInt { pub impl BigInt { /// Creates and initializes an BigInt. - pub pure fn new(sign: Sign, v: ~[BigDigit]) -> BigInt { + pub fn new(sign: Sign, v: ~[BigDigit]) -> BigInt { BigInt::from_biguint(sign, BigUint::new(v)) } /// Creates and initializes an BigInt. - pub pure fn from_biguint(sign: Sign, data: BigUint) -> BigInt { + pub fn from_biguint(sign: Sign, data: BigUint) -> BigInt { if sign == Zero || data.is_zero() { return BigInt { sign: Zero, data: Zero::zero() }; } @@ -749,24 +749,24 @@ pub impl BigInt { } /// Creates and initializes an BigInt. - pub pure fn from_uint(n: uint) -> BigInt { + pub fn from_uint(n: uint) -> BigInt { if n == 0 { return Zero::zero(); } return BigInt::from_biguint(Plus, BigUint::from_uint(n)); } /// Creates and initializes an BigInt. - pub pure fn from_slice(sign: Sign, slice: &[BigDigit]) -> BigInt { + pub fn from_slice(sign: Sign, slice: &[BigDigit]) -> BigInt { BigInt::from_biguint(sign, BigUint::from_slice(slice)) } /// Creates and initializes an BigInt. - pub pure fn from_str_radix(s: &str, radix: uint) + pub fn from_str_radix(s: &str, radix: uint) -> Option<BigInt> { BigInt::parse_bytes(str::to_bytes(s), radix) } /// Creates and initializes an BigInt. - pub pure fn parse_bytes(buf: &[u8], radix: uint) + pub fn parse_bytes(buf: &[u8], radix: uint) -> Option<BigInt> { if buf.is_empty() { return None; } let mut sign = Plus; @@ -779,11 +779,11 @@ pub impl BigInt { .map(|bu| BigInt::from_biguint(sign, *bu)); } - pure fn abs(&self) -> BigInt { + fn abs(&self) -> BigInt { BigInt::from_biguint(Plus, copy self.data) } - pure fn cmp(&self, other: &BigInt) -> int { + fn cmp(&self, other: &BigInt) -> int { let ss = self.sign, os = other.sign; if ss < os { return -1; } if ss > os { return 1; } @@ -796,7 +796,7 @@ pub impl BigInt { } } - pure fn divmod(&self, other: &BigInt) -> (BigInt, BigInt) { + fn divmod(&self, other: &BigInt) -> (BigInt, BigInt) { // m.sign == other.sign let (d_ui, m_ui) = self.data.divmod(&other.data); let d = BigInt::from_biguint(Plus, d_ui), @@ -818,16 +818,16 @@ pub impl BigInt { } } - pure fn quot(&self, other: &BigInt) -> BigInt { + fn quot(&self, other: &BigInt) -> BigInt { let (q, _) = self.quotrem(other); return q; } - pure fn rem(&self, other: &BigInt) -> BigInt { + fn rem(&self, other: &BigInt) -> BigInt { let (_, r) = self.quotrem(other); return r; } - pure fn quotrem(&self, other: &BigInt) -> (BigInt, BigInt) { + fn quotrem(&self, other: &BigInt) -> (BigInt, BigInt) { // r.sign == self.sign let (q_ui, r_ui) = self.data.quotrem(&other.data); let q = BigInt::from_biguint(Plus, q_ui); @@ -841,14 +841,14 @@ pub impl BigInt { } } - pure fn is_zero(&self) -> bool { self.sign == Zero } - pure fn is_not_zero(&self) -> bool { self.sign != Zero } - pure fn is_positive(&self) -> bool { self.sign == Plus } - pure fn is_negative(&self) -> bool { self.sign == Minus } - pure fn is_nonpositive(&self) -> bool { self.sign != Plus } - pure fn is_nonnegative(&self) -> bool { self.sign != Minus } + fn is_zero(&self) -> bool { self.sign == Zero } + fn is_not_zero(&self) -> bool { self.sign != Zero } + fn is_positive(&self) -> bool { self.sign == Plus } + fn is_negative(&self) -> bool { self.sign == Minus } + fn is_nonpositive(&self) -> bool { self.sign != Plus } + fn is_nonnegative(&self) -> bool { self.sign != Minus } - pure fn to_uint(&self) -> uint { + fn to_uint(&self) -> uint { match self.sign { Plus => self.data.to_uint(), Zero => 0, @@ -856,7 +856,7 @@ pub impl BigInt { } } - pure fn to_str_radix(&self, radix: uint) -> ~str { + fn to_str_radix(&self, radix: uint) -> ~str { match self.sign { Plus => self.data.to_str_radix(radix), Zero => ~"0", diff --git a/src/libstd/bitv.rs b/src/libstd/bitv.rs index 2dcebcb276c..270a2c1fc1b 100644 --- a/src/libstd/bitv.rs +++ b/src/libstd/bitv.rs @@ -62,7 +62,7 @@ pub impl SmallBitv { } #[inline(always)] - pure fn get(&self, i: uint) -> bool { + fn get(&self, i: uint) -> bool { (self.bits & (1 << i)) != 0 } @@ -181,7 +181,7 @@ pub impl BigBitv { } #[inline(always)] - pure fn get(&self, i: uint) -> bool { + fn get(&self, i: uint) -> bool { let w = i / uint::bits; let b = i % uint::bits; let x = 1 & self.storage[w] >> b; @@ -299,7 +299,7 @@ pub impl Bitv { /// Retrieve the value at index `i` #[inline(always)] - pure fn get(&self, i: uint) -> bool { + fn get(&self, i: uint) -> bool { fail_unless!((i < self.nbits)); match self.rep { Big(ref b) => b.get(i), @@ -555,13 +555,13 @@ pub fn from_fn(len: uint, f: &fn(index: uint) -> bool) -> Bitv { } impl ops::Index<uint,bool> for Bitv { - pure fn index(&self, i: uint) -> bool { + fn index(&self, i: uint) -> bool { self.get(i) } } #[inline(always)] -pure fn iterate_bits(base: uint, bits: uint, f: &fn(uint) -> bool) -> bool { +fn iterate_bits(base: uint, bits: uint, f: &fn(uint) -> bool) -> bool { if bits == 0 { return true; } @@ -612,7 +612,7 @@ pub impl BitvSet { /// Returns the capacity in bits for this bit vector. Inserting any /// element less than this amount will not trigger a resizing. - pure fn capacity(&self) -> uint { self.bitv.storage.len() * uint::bits } + fn capacity(&self) -> uint { self.bitv.storage.len() * uint::bits } /// Consumes this set to return the underlying bit vector fn unwrap(self) -> Bitv { @@ -667,9 +667,9 @@ pub impl BitvSet { } impl BaseIter<uint> for BitvSet { - pure fn size_hint(&self) -> Option<uint> { Some(self.len()) } + fn size_hint(&self) -> Option<uint> { Some(self.len()) } - pure fn each(&self, blk: &fn(v: &uint) -> bool) { + fn each(&self, blk: &fn(v: &uint) -> bool) { for self.bitv.storage.eachi |i, &w| { if !iterate_bits(i * uint::bits, w, |b| blk(&b)) { return; @@ -679,7 +679,7 @@ impl BaseIter<uint> for BitvSet { } impl cmp::Eq for BitvSet { - pure fn eq(&self, other: &BitvSet) -> bool { + fn eq(&self, other: &BitvSet) -> bool { if self.size != other.size { return false; } @@ -696,12 +696,12 @@ impl cmp::Eq for BitvSet { return true; } - pure fn ne(&self, other: &BitvSet) -> bool { !self.eq(other) } + fn ne(&self, other: &BitvSet) -> bool { !self.eq(other) } } impl Container for BitvSet { - pure fn len(&const self) -> uint { self.size } - pure fn is_empty(&const self) -> bool { self.size == 0 } + fn len(&const self) -> uint { self.size } + fn is_empty(&const self) -> bool { self.size == 0 } } impl Mutable for BitvSet { @@ -712,7 +712,7 @@ impl Mutable for BitvSet { } impl Set<uint> for BitvSet { - pure fn contains(&self, value: &uint) -> bool { + fn contains(&self, value: &uint) -> bool { *value < self.bitv.storage.len() * uint::bits && self.bitv.get(*value) } @@ -748,14 +748,14 @@ impl Set<uint> for BitvSet { return true; } - pure fn is_disjoint(&self, other: &BitvSet) -> bool { + fn is_disjoint(&self, other: &BitvSet) -> bool { for self.intersection(other) |_| { return false; } return true; } - pure fn is_subset(&self, other: &BitvSet) -> bool { + fn is_subset(&self, other: &BitvSet) -> bool { for self.each_common(other) |_, w1, w2| { if w1 & w2 != w1 { return false; @@ -774,11 +774,11 @@ impl Set<uint> for BitvSet { return true; } - pure fn is_superset(&self, other: &BitvSet) -> bool { + fn is_superset(&self, other: &BitvSet) -> bool { other.is_subset(self) } - pure fn difference(&self, other: &BitvSet, f: &fn(&uint) -> bool) { + fn difference(&self, other: &BitvSet, f: &fn(&uint) -> bool) { for self.each_common(other) |i, w1, w2| { if !iterate_bits(i, w1 & !w2, |b| f(&b)) { return; @@ -790,7 +790,7 @@ impl Set<uint> for BitvSet { ); } - pure fn symmetric_difference(&self, other: &BitvSet, + fn symmetric_difference(&self, other: &BitvSet, f: &fn(&uint) -> bool) { for self.each_common(other) |i, w1, w2| { if !iterate_bits(i, w1 ^ w2, |b| f(&b)) { @@ -802,7 +802,7 @@ impl Set<uint> for BitvSet { ); } - pure fn intersection(&self, other: &BitvSet, f: &fn(&uint) -> bool) { + fn intersection(&self, other: &BitvSet, f: &fn(&uint) -> bool) { for self.each_common(other) |i, w1, w2| { if !iterate_bits(i, w1 & w2, |b| f(&b)) { return; @@ -810,7 +810,7 @@ impl Set<uint> for BitvSet { } } - pure fn union(&self, other: &BitvSet, f: &fn(&uint) -> bool) { + fn union(&self, other: &BitvSet, f: &fn(&uint) -> bool) { for self.each_common(other) |i, w1, w2| { if !iterate_bits(i, w1 | w2, |b| f(&b)) { return; @@ -827,7 +827,7 @@ priv impl BitvSet { /// both have in common. The three yielded arguments are (bit location, /// w1, w2) where the bit location is the number of bits offset so far, /// and w1/w2 are the words coming from the two vectors self, other. - pure fn each_common(&self, other: &BitvSet, + fn each_common(&self, other: &BitvSet, f: &fn(uint, uint, uint) -> bool) { let min = uint::min(self.bitv.storage.len(), other.bitv.storage.len()); @@ -845,7 +845,7 @@ priv impl BitvSet { /// The yielded arguments are a bool, the bit offset, and a word. The bool /// is true if the word comes from 'self', and false if it comes from /// 'other'. - pure fn each_outlier(&self, other: &BitvSet, + fn each_outlier(&self, other: &BitvSet, f: &fn(bool, uint, uint) -> bool) { let len1 = self.bitv.storage.len(); let len2 = other.bitv.storage.len(); diff --git a/src/libstd/c_vec.rs b/src/libstd/c_vec.rs index d9595656f05..1787be75e24 100644 --- a/src/libstd/c_vec.rs +++ b/src/libstd/c_vec.rs @@ -141,7 +141,7 @@ pub fn set<T:Copy>(t: CVec<T>, ofs: uint, v: T) { */ /// Returns the length of the vector -pub pure fn len<T>(t: CVec<T>) -> uint { t.len } +pub fn len<T>(t: CVec<T>) -> uint { t.len } /// Returns a pointer to the first element of the vector pub unsafe fn ptr<T>(t: CVec<T>) -> *mut T { t.base } diff --git a/src/libstd/cmp.rs b/src/libstd/cmp.rs index b6362f83f44..6fd77de0342 100644 --- a/src/libstd/cmp.rs +++ b/src/libstd/cmp.rs @@ -17,36 +17,36 @@ use core::float; pub const FUZZY_EPSILON: float = 1.0e-6; pub trait FuzzyEq<Eps> { - pure fn fuzzy_eq(&self, other: &Self) -> bool; - pure fn fuzzy_eq_eps(&self, other: &Self, epsilon: &Eps) -> bool; + fn fuzzy_eq(&self, other: &Self) -> bool; + fn fuzzy_eq_eps(&self, other: &Self, epsilon: &Eps) -> bool; } impl FuzzyEq<float> for float { - pure fn fuzzy_eq(&self, other: &float) -> bool { + fn fuzzy_eq(&self, other: &float) -> bool { self.fuzzy_eq_eps(other, &FUZZY_EPSILON) } - pure fn fuzzy_eq_eps(&self, other: &float, epsilon: &float) -> bool { + fn fuzzy_eq_eps(&self, other: &float, epsilon: &float) -> bool { float::abs(*self - *other) < *epsilon } } impl FuzzyEq<f32> for f32 { - pure fn fuzzy_eq(&self, other: &f32) -> bool { + fn fuzzy_eq(&self, other: &f32) -> bool { self.fuzzy_eq_eps(other, &(FUZZY_EPSILON as f32)) } - pure fn fuzzy_eq_eps(&self, other: &f32, epsilon: &f32) -> bool { + fn fuzzy_eq_eps(&self, other: &f32, epsilon: &f32) -> bool { f32::abs(*self - *other) < *epsilon } } impl FuzzyEq<f64> for f64 { - pure fn fuzzy_eq(&self, other: &f64) -> bool { + fn fuzzy_eq(&self, other: &f64) -> bool { self.fuzzy_eq_eps(other, &(FUZZY_EPSILON as f64)) } - pure fn fuzzy_eq_eps(&self, other: &f64, epsilon: &f64) -> bool { + fn fuzzy_eq_eps(&self, other: &f64, epsilon: &f64) -> bool { f64::abs(*self - *other) < *epsilon } } @@ -71,11 +71,11 @@ mod test_complex{ struct Complex { r: float, i: float } impl FuzzyEq<float> for Complex { - pure fn fuzzy_eq(&self, other: &Complex) -> bool { + fn fuzzy_eq(&self, other: &Complex) -> bool { self.fuzzy_eq_eps(other, &FUZZY_EPSILON) } - pure fn fuzzy_eq_eps(&self, other: &Complex, + fn fuzzy_eq_eps(&self, other: &Complex, epsilon: &float) -> bool { self.r.fuzzy_eq_eps(&other.r, epsilon) && self.i.fuzzy_eq_eps(&other.i, epsilon) diff --git a/src/libstd/comm.rs b/src/libstd/comm.rs index 314a601fb61..9f68c676222 100644 --- a/src/libstd/comm.rs +++ b/src/libstd/comm.rs @@ -39,7 +39,7 @@ pub impl<T:Owned,U:Owned> DuplexStream<T, U> { fn try_recv(&self) -> Option<U> { self.port.try_recv() } - pure fn peek(&self) -> bool { + fn peek(&self) -> bool { self.port.peek() } } @@ -67,13 +67,13 @@ impl<T:Owned,U:Owned> GenericPort<U> for DuplexStream<T, U> { } impl<T:Owned,U:Owned> Peekable<U> for DuplexStream<T, U> { - pure fn peek(&self) -> bool { + fn peek(&self) -> bool { self.port.peek() } } impl<T:Owned,U:Owned> Selectable for DuplexStream<T, U> { - pure fn header(&self) -> *pipes::PacketHeader { + fn header(&self) -> *pipes::PacketHeader { self.port.header() } } diff --git a/src/libstd/deque.rs b/src/libstd/deque.rs index d8906fbd90a..4f61321b4e7 100644 --- a/src/libstd/deque.rs +++ b/src/libstd/deque.rs @@ -25,10 +25,10 @@ pub struct Deque<T> { impl<T> Container for Deque<T> { /// Return the number of elements in the deque - pure fn len(&const self) -> uint { self.nelts } + fn len(&const self) -> uint { self.nelts } /// Return true if the deque contains no elements - pure fn is_empty(&const self) -> bool { self.len() == 0 } + fn is_empty(&const self) -> bool { self.len() == 0 } } impl<T> Mutable for Deque<T> { @@ -43,7 +43,7 @@ impl<T> Mutable for Deque<T> { pub impl<T> Deque<T> { /// Create an empty Deque - pure fn new() -> Deque<T> { + fn new() -> Deque<T> { Deque{nelts: 0, lo: 0, hi: 0, elts: vec::from_fn(initial_capacity, |_| None)} } diff --git a/src/libstd/ebml.rs b/src/libstd/ebml.rs index 4ab119abf1c..437ab561f95 100644 --- a/src/libstd/ebml.rs +++ b/src/libstd/ebml.rs @@ -69,7 +69,7 @@ pub mod reader { // ebml reading impl ops::Index<uint,Doc> for Doc { - pure fn index(&self, tag: uint) -> Doc { + fn index(&self, tag: uint) -> Doc { unsafe { get_doc(*self, tag) } diff --git a/src/libstd/future.rs b/src/libstd/future.rs index fc60932b67a..29771fa3501 100644 --- a/src/libstd/future.rs +++ b/src/libstd/future.rs @@ -56,7 +56,7 @@ pub impl<A:Copy> Future<A> { pub impl<A> Future<A> { - pure fn get_ref(&self) -> &'self A { + fn get_ref(&self) -> &'self A { /*! * Executes the future's closure and then returns a borrowed * pointer to the result. The borrowed pointer lasts as long as diff --git a/src/libstd/json.rs b/src/libstd/json.rs index 00b6501ffce..0973e90dad3 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -345,7 +345,7 @@ pub fn to_writer(wr: @io::Writer, json: &Json) { } /// Encodes a json value into a string -pub pure fn to_str(json: &Json) -> ~str { +pub fn to_str(json: &Json) -> ~str { unsafe { // ugh, should be safe io::with_str_writer(|wr| to_writer(wr, json)) @@ -947,7 +947,7 @@ impl serialize::Decoder for Decoder/&self { } impl Eq for Json { - pure fn eq(&self, other: &Json) -> bool { + fn eq(&self, other: &Json) -> bool { match (self) { &Number(f0) => match other { &Number(f1) => f0 == f1, _ => false }, @@ -980,12 +980,12 @@ impl Eq for Json { } } } - pure fn ne(&self, other: &Json) -> bool { !self.eq(other) } + fn ne(&self, other: &Json) -> bool { !self.eq(other) } } /// Test if two json values are less than one another impl Ord for Json { - pure fn lt(&self, other: &Json) -> bool { + fn lt(&self, other: &Json) -> bool { match (*self) { Number(f0) => { match *other { @@ -1055,18 +1055,18 @@ impl Ord for Json { } } } - pure fn le(&self, other: &Json) -> bool { !(*other).lt(&(*self)) } - pure fn ge(&self, other: &Json) -> bool { !(*self).lt(other) } - pure fn gt(&self, other: &Json) -> bool { (*other).lt(&(*self)) } + fn le(&self, other: &Json) -> bool { !(*other).lt(&(*self)) } + fn ge(&self, other: &Json) -> bool { !(*self).lt(other) } + fn gt(&self, other: &Json) -> bool { (*other).lt(&(*self)) } } impl Eq for Error { - pure fn eq(&self, other: &Error) -> bool { + fn eq(&self, other: &Error) -> bool { (*self).line == other.line && (*self).col == other.col && (*self).msg == other.msg } - pure fn ne(&self, other: &Error) -> bool { !(*self).eq(other) } + fn ne(&self, other: &Error) -> bool { !(*self).eq(other) } } trait ToJson { fn to_json(&self) -> Json; } @@ -1191,11 +1191,11 @@ impl<A:ToJson> ToJson for Option<A> { } impl to_str::ToStr for Json { - pure fn to_str(&self) -> ~str { to_str(self) } + fn to_str(&self) -> ~str { to_str(self) } } impl to_str::ToStr for Error { - pure fn to_str(&self) -> ~str { + fn to_str(&self) -> ~str { fmt!("%u:%u: %s", self.line, self.col, *self.msg) } } diff --git a/src/libstd/list.rs b/src/libstd/list.rs index eb1c249be69..b918f8505c8 100644 --- a/src/libstd/list.rs +++ b/src/libstd/list.rs @@ -22,7 +22,7 @@ pub enum List<T> { } /// Create a list from a vector -pub pure fn from_vec<T:Copy>(v: &[T]) -> @List<T> { +pub fn from_vec<T:Copy>(v: &[T]) -> @List<T> { vec::foldr(v, @Nil::<T>, |h, t| @Cons(*h, t)) } @@ -52,7 +52,7 @@ pub fn foldl<T:Copy,U>(z: T, ls: @List<U>, f: &fn(&T, &U) -> T) -> T { * When function `f` returns true then an option containing the element * is returned. If `f` matches no elements then none is returned. */ -pub pure fn find<T:Copy>(ls: @List<T>, f: &fn(&T) -> bool) -> Option<T> { +pub fn find<T:Copy>(ls: @List<T>, f: &fn(&T) -> bool) -> Option<T> { let mut ls = ls; loop { ls = match *ls { @@ -74,7 +74,7 @@ pub fn has<T:Copy + Eq>(ls: @List<T>, elt: T) -> bool { } /// Returns true if the list is empty -pub pure fn is_empty<T:Copy>(ls: @List<T>) -> bool { +pub fn is_empty<T:Copy>(ls: @List<T>) -> bool { match *ls { Nil => true, _ => false @@ -82,14 +82,14 @@ pub pure fn is_empty<T:Copy>(ls: @List<T>) -> bool { } /// Returns the length of a list -pub pure fn len<T>(ls: @List<T>) -> uint { +pub fn len<T>(ls: @List<T>) -> uint { let mut count = 0u; iter(ls, |_e| count += 1u); count } /// Returns all but the first element of a list -pub pure fn tail<T:Copy>(ls: @List<T>) -> @List<T> { +pub fn tail<T:Copy>(ls: @List<T>) -> @List<T> { match *ls { Cons(_, tl) => return tl, Nil => fail!(~"list empty") @@ -97,7 +97,7 @@ pub pure fn tail<T:Copy>(ls: @List<T>) -> @List<T> { } /// Returns the first element of a list -pub pure fn head<T:Copy>(ls: @List<T>) -> T { +pub fn head<T:Copy>(ls: @List<T>) -> T { match *ls { Cons(copy hd, _) => hd, // makes me sad @@ -106,7 +106,7 @@ pub pure fn head<T:Copy>(ls: @List<T>) -> T { } /// Appends one list to another -pub pure fn append<T:Copy>(l: @List<T>, m: @List<T>) -> @List<T> { +pub fn append<T:Copy>(l: @List<T>, m: @List<T>) -> @List<T> { match *l { Nil => return m, Cons(copy x, xs) => { @@ -119,13 +119,13 @@ pub pure fn append<T:Copy>(l: @List<T>, m: @List<T>) -> @List<T> { /* /// Push one element into the front of a list, returning a new list /// THIS VERSION DOESN'T ACTUALLY WORK -pure fn push<T:Copy>(ll: &mut @list<T>, vv: T) { +fn push<T:Copy>(ll: &mut @list<T>, vv: T) { ll = &mut @cons(vv, *ll) } */ /// Iterate over a list -pub pure fn iter<T>(l: @List<T>, f: &fn(&T)) { +pub fn iter<T>(l: @List<T>, f: &fn(&T)) { let mut cur = l; loop { cur = match *cur { @@ -139,7 +139,7 @@ pub pure fn iter<T>(l: @List<T>, f: &fn(&T)) { } /// Iterate over a list -pub pure fn each<T>(l: @List<T>, f: &fn(&T) -> bool) { +pub fn each<T>(l: @List<T>, f: &fn(&T) -> bool) { let mut cur = l; loop { cur = match *cur { diff --git a/src/libstd/md4.rs b/src/libstd/md4.rs index df254543512..e20ac624278 100644 --- a/src/libstd/md4.rs +++ b/src/libstd/md4.rs @@ -19,7 +19,7 @@ struct Quad { d: u32 } -pub pure fn md4(msg: &[u8]) -> Quad { +pub fn md4(msg: &[u8]) -> Quad { // subtle: if orig_len is merely uint, then the code below // which performs shifts by 32 bits or more has undefined // results. @@ -45,7 +45,7 @@ pub pure fn md4(msg: &[u8]) -> Quad { let mut c = 0x98badcfeu32; let mut d = 0x10325476u32; - pure fn rot(r: int, x: u32) -> u32 { + fn rot(r: int, x: u32) -> u32 { let r = r as u32; (x << r) | (x >> (32u32 - r)) } @@ -103,9 +103,9 @@ pub pure fn md4(msg: &[u8]) -> Quad { return Quad {a: a, b: b, c: c, d: d}; } -pub pure fn md4_str(msg: &[u8]) -> ~str { +pub fn md4_str(msg: &[u8]) -> ~str { let Quad {a, b, c, d} = md4(msg); - pure fn app(a: u32, b: u32, c: u32, d: u32, f: &fn(u32)) { + fn app(a: u32, b: u32, c: u32, d: u32, f: &fn(u32)) { f(a); f(b); f(c); f(d); } let mut result = ~""; @@ -121,7 +121,7 @@ pub pure fn md4_str(msg: &[u8]) -> ~str { result } -pub pure fn md4_text(msg: &str) -> ~str { md4_str(str::to_bytes(msg)) } +pub fn md4_text(msg: &str) -> ~str { md4_str(str::to_bytes(msg)) } #[test] fn test_md4() { diff --git a/src/libstd/net_url.rs b/src/libstd/net_url.rs index 49dc6f90740..21b60584635 100644 --- a/src/libstd/net_url.rs +++ b/src/libstd/net_url.rs @@ -45,7 +45,7 @@ struct UserInfo { pub type Query = ~[(~str, ~str)]; pub impl Url { - pure fn new( + fn new( scheme: ~str, user: Option<UserInfo>, host: ~str, @@ -67,7 +67,7 @@ pub impl Url { } pub impl UserInfo { - pure fn new(user: ~str, pass: Option<~str>) -> UserInfo { + fn new(user: ~str, pass: Option<~str>) -> UserInfo { UserInfo { user: user, pass: pass } } } @@ -117,7 +117,7 @@ fn encode_inner(s: &str, full_url: bool) -> ~str { * * This function is compliant with RFC 3986. */ -pub pure fn encode(s: &str) -> ~str { +pub fn encode(s: &str) -> ~str { // FIXME(#3722): unsafe only because encode_inner does (string) IO unsafe {encode_inner(s, true)} } @@ -129,7 +129,7 @@ pub pure fn encode(s: &str) -> ~str { * This function is compliant with RFC 3986. */ -pub pure fn encode_component(s: &str) -> ~str { +pub fn encode_component(s: &str) -> ~str { // FIXME(#3722): unsafe only because encode_inner does (string) IO unsafe {encode_inner(s, false)} } @@ -177,7 +177,7 @@ fn decode_inner(s: &str, full_url: bool) -> ~str { * * This will only decode escape sequences generated by encode. */ -pub pure fn decode(s: &str) -> ~str { +pub fn decode(s: &str) -> ~str { // FIXME(#3722): unsafe only because decode_inner does (string) IO unsafe {decode_inner(s, true)} } @@ -185,7 +185,7 @@ pub pure fn decode(s: &str) -> ~str { /** * Decode a string encoded with percent encoding. */ -pub pure fn decode_component(s: &str) -> ~str { +pub fn decode_component(s: &str) -> ~str { // FIXME(#3722): unsafe only because decode_inner does (string) IO unsafe {decode_inner(s, false)} } @@ -297,7 +297,7 @@ pub fn decode_form_urlencoded(s: &[u8]) -> LinearMap<~str, ~[~str]> { } -pure fn split_char_first(s: &str, c: char) -> (~str, ~str) { +fn split_char_first(s: &str, c: char) -> (~str, ~str) { let len = str::len(s); let mut index = len; let mut mat = 0; @@ -324,7 +324,7 @@ pure fn split_char_first(s: &str, c: char) -> (~str, ~str) { } } -pure fn userinfo_from_str(uinfo: &str) -> UserInfo { +fn userinfo_from_str(uinfo: &str) -> UserInfo { let (user, p) = split_char_first(uinfo, ':'); let pass = if str::len(p) == 0 { None @@ -334,14 +334,14 @@ pure fn userinfo_from_str(uinfo: &str) -> UserInfo { return UserInfo::new(user, pass); } -pure fn userinfo_to_str(userinfo: &UserInfo) -> ~str { +fn userinfo_to_str(userinfo: &UserInfo) -> ~str { match userinfo.pass { Some(ref pass) => fmt!("%s:%s@", userinfo.user, *pass), None => fmt!("%s@", userinfo.user), } } -pure fn query_from_str(rawquery: &str) -> Query { +fn query_from_str(rawquery: &str) -> Query { let mut query: Query = ~[]; if str::len(rawquery) != 0 { for str::split_char(rawquery, '&').each |p| { @@ -353,7 +353,7 @@ pure fn query_from_str(rawquery: &str) -> Query { return query; } -pub pure fn query_to_str(query: &Query) -> ~str { +pub fn query_to_str(query: &Query) -> ~str { unsafe { // FIXME(#3722): unsafe only because decode_inner does (string) IO let mut strvec = ~[]; @@ -372,7 +372,7 @@ pub pure fn query_to_str(query: &Query) -> ~str { } // returns the scheme and the rest of the url, or a parsing error -pub pure fn get_scheme(rawurl: &str) -> Result<(~str, ~str), ~str> { +pub fn get_scheme(rawurl: &str) -> Result<(~str, ~str), ~str> { for str::each_chari(rawurl) |i,c| { match c { 'A' .. 'Z' | 'a' .. 'z' => loop, @@ -406,7 +406,7 @@ enum Input { } // returns userinfo, host, port, and unparsed part, or an error -pure fn get_authority(rawurl: &str) -> +fn get_authority(rawurl: &str) -> Result<(Option<UserInfo>, ~str, Option<~str>, ~str), ~str> { if !str::starts_with(rawurl, ~"//") { // there is no authority. @@ -534,7 +534,7 @@ pure fn get_authority(rawurl: &str) -> let end = end; // make end immutable so it can be captured - let host_is_end_plus_one: &pure fn() -> bool = || { + let host_is_end_plus_one: &fn() -> bool = || { end+1 == len && !['?', '#', '/'].contains(&(rawurl[end] as char)) }; @@ -573,7 +573,7 @@ pure fn get_authority(rawurl: &str) -> // returns the path and unparsed part of url, or an error -pure fn get_path(rawurl: &str, authority: bool) -> +fn get_path(rawurl: &str, authority: bool) -> Result<(~str, ~str), ~str> { let len = str::len(rawurl); let mut end = len; @@ -604,7 +604,7 @@ pure fn get_path(rawurl: &str, authority: bool) -> } // returns the parsed query and the fragment, if present -pure fn get_query_fragment(rawurl: &str) -> +fn get_query_fragment(rawurl: &str) -> Result<(Query, Option<~str>), ~str> { if !str::starts_with(rawurl, ~"?") { if str::starts_with(rawurl, ~"#") { @@ -636,7 +636,7 @@ pure fn get_query_fragment(rawurl: &str) -> * */ -pub pure fn from_str(rawurl: &str) -> Result<Url, ~str> { +pub fn from_str(rawurl: &str) -> Result<Url, ~str> { // scheme let (scheme, rest) = match get_scheme(rawurl) { Ok(val) => val, @@ -666,7 +666,7 @@ pub pure fn from_str(rawurl: &str) -> Result<Url, ~str> { } impl FromStr for Url { - pure fn from_str(s: &str) -> Option<Url> { + fn from_str(s: &str) -> Option<Url> { match from_str(s) { Ok(url) => Some(url), Err(_) => None @@ -689,7 +689,7 @@ impl FromStr for Url { * result in just "http://somehost.com". * */ -pub pure fn to_str(url: &Url) -> ~str { +pub fn to_str(url: &Url) -> ~str { let user = match url.user { Some(ref user) => userinfo_to_str(user), None => ~"", @@ -716,13 +716,13 @@ pub pure fn to_str(url: &Url) -> ~str { } impl to_str::ToStr for Url { - pub pure fn to_str(&self) -> ~str { + pub fn to_str(&self) -> ~str { to_str(self) } } impl to_bytes::IterBytes for Url { - pure fn iter_bytes(&self, lsb0: bool, f: to_bytes::Cb) { + fn iter_bytes(&self, lsb0: bool, f: to_bytes::Cb) { self.to_str().iter_bytes(lsb0, f) } } diff --git a/src/libstd/oldmap.rs b/src/libstd/oldmap.rs index 0a07a24e8ee..0b688f0c678 100644 --- a/src/libstd/oldmap.rs +++ b/src/libstd/oldmap.rs @@ -31,7 +31,7 @@ pub mod util { den: int, } - pub pure fn rational_leq(x: Rational, y: Rational) -> bool { + pub fn rational_leq(x: Rational, y: Rational) -> bool { // NB: Uses the fact that rationals have positive denominators WLOG: x.num * y.den <= y.num * x.den @@ -74,7 +74,7 @@ pub mod chained { } priv impl<K:Eq + IterBytes + Hash,V> HashMap_<K, V> { - pure fn search_rem(&self, k: &K, h: uint, idx: uint, + fn search_rem(&self, k: &K, h: uint, idx: uint, e_root: @Entry<K,V>) -> SearchResult<K,V> { let mut e0 = e_root; let mut comp = 1u; // for logging @@ -100,7 +100,7 @@ pub mod chained { }; } - pure fn search_tbl(&self, k: &K, h: uint) -> SearchResult<K,V> { + fn search_tbl(&self, k: &K, h: uint) -> SearchResult<K,V> { let idx = h % vec::uniq_len(&const self.chains); match copy self.chains[idx] { None => { @@ -134,7 +134,7 @@ pub mod chained { } pub impl<K:Eq + IterBytes + Hash,V> HashMap_<K, V> { - pure fn each_entry(&self, blk: &fn(@Entry<K,V>) -> bool) { + fn each_entry(&self, blk: &fn(@Entry<K,V>) -> bool) { // n.b. we can't use vec::iter() here because self.chains // is stored in a mutable location. let mut i = 0u, n = vec::uniq_len(&const self.chains); @@ -161,12 +161,12 @@ pub mod chained { } impl<K:Eq + IterBytes + Hash,V> Container for HashMap_<K, V> { - pure fn len(&const self) -> uint { self.count } - pure fn is_empty(&const self) -> bool { self.count == 0 } + fn len(&const self) -> uint { self.count } + fn is_empty(&const self) -> bool { self.count == 0 } } pub impl<K:Eq + IterBytes + Hash,V> HashMap_<K, V> { - pure fn contains_key(@self, k: &K) -> bool { + fn contains_key(@self, k: &K) -> bool { let hash = k.hash_keyed(0,0) as uint; match self.search_tbl(k, hash) { NotFound => false, @@ -234,23 +234,23 @@ pub mod chained { } } - pure fn each(@self, blk: &fn(key: &K, value: &V) -> bool) { + fn each(@self, blk: &fn(key: &K, value: &V) -> bool) { for self.each_entry |entry| { if !blk(&entry.key, &entry.value) { break; } } } - pure fn each_key(@self, blk: &fn(key: &K) -> bool) { + fn each_key(@self, blk: &fn(key: &K) -> bool) { self.each(|k, _v| blk(k)) } - pure fn each_value(@self, blk: &fn(value: &V) -> bool) { + fn each_value(@self, blk: &fn(value: &V) -> bool) { self.each(|_k, v| blk(v)) } } pub impl<K:Eq + IterBytes + Hash + Copy,V:Copy> HashMap_<K, V> { - pure fn find(&self, k: &K) -> Option<V> { + fn find(&self, k: &K) -> Option<V> { match self.search_tbl(k, k.hash_keyed(0,0) as uint) { NotFound => None, FoundFirst(_, entry) => Some(entry.value), @@ -314,7 +314,7 @@ pub mod chained { return self.update_with_key(key, newval, |_k, v, v1| ff(v,v1)); } - pure fn get(&self, k: &K) -> V { + fn get(&self, k: &K) -> V { let opt_v = self.find(k); if opt_v.is_none() { fail!(fmt!("Key not found in table: %?", k)); @@ -348,7 +348,7 @@ pub mod chained { impl<K:Eq + IterBytes + Hash + Copy + ToStr,V:ToStr + Copy> ToStr for HashMap_<K, V> { - pure fn to_str(&self) -> ~str { + fn to_str(&self) -> ~str { unsafe { // Meh -- this should be safe do io::with_str_writer |wr| { self.to_writer(wr) } @@ -358,7 +358,7 @@ pub mod chained { impl<K:Eq + IterBytes + Hash + Copy,V:Copy> ops::Index<K, V> for HashMap_<K, V> { - pure fn index(&self, k: K) -> V { + fn index(&self, k: K) -> V { self.get(&k) } } @@ -391,7 +391,7 @@ pub fn set_add<K:Eq + IterBytes + Hash + Const + Copy>(set: Set<K>, key: K) } /// Convert a set into a vector. -pub pure fn vec_from_set<T:Eq + IterBytes + Hash + Copy>(s: Set<T>) -> ~[T] { +pub fn vec_from_set<T:Eq + IterBytes + Hash + Copy>(s: Set<T>) -> ~[T] { do vec::build_sized(s.len()) |push| { for s.each_key() |&k| { push(k); @@ -422,8 +422,8 @@ mod tests { #[test] fn test_simple() { debug!("*** starting test_simple"); - pure fn eq_uint(x: &uint, y: &uint) -> bool { *x == *y } - pure fn uint_id(x: &uint) -> uint { *x } + fn eq_uint(x: &uint, y: &uint) -> bool { *x == *y } + fn uint_id(x: &uint) -> uint { *x } debug!("uint -> uint"); let hm_uu: HashMap<uint, uint> = HashMap::<uint, uint>(); @@ -491,8 +491,8 @@ mod tests { fn test_growth() { debug!("*** starting test_growth"); let num_to_insert: uint = 64u; - pure fn eq_uint(x: &uint, y: &uint) -> bool { *x == *y } - pure fn uint_id(x: &uint) -> uint { *x } + fn eq_uint(x: &uint, y: &uint) -> bool { *x == *y } + fn uint_id(x: &uint) -> uint { *x } debug!("uint -> uint"); let hm_uu: HashMap<uint, uint> = HashMap::<uint, uint>(); diff --git a/src/libstd/priority_queue.rs b/src/libstd/priority_queue.rs index 7dad2ebbd8b..03d518f1f63 100644 --- a/src/libstd/priority_queue.rs +++ b/src/libstd/priority_queue.rs @@ -31,16 +31,16 @@ impl<T:Ord> BaseIter<T> for PriorityQueue<T> { /// Visit all values in the underlying vector. /// /// The values are **not** visited in order. - pure fn each(&self, f: &fn(&T) -> bool) { self.data.each(f) } - pure fn size_hint(&self) -> Option<uint> { self.data.size_hint() } + fn each(&self, f: &fn(&T) -> bool) { self.data.each(f) } + fn size_hint(&self) -> Option<uint> { self.data.size_hint() } } impl<T:Ord> Container for PriorityQueue<T> { /// Returns the length of the queue - pure fn len(&const self) -> uint { vec::uniq_len(&const self.data) } + fn len(&const self) -> uint { vec::uniq_len(&const self.data) } /// Returns true if a queue contains no elements - pure fn is_empty(&const self) -> bool { self.len() == 0 } + fn is_empty(&const self) -> bool { self.len() == 0 } } impl<T:Ord> Mutable for PriorityQueue<T> { @@ -50,15 +50,15 @@ impl<T:Ord> Mutable for PriorityQueue<T> { pub impl <T:Ord> PriorityQueue<T> { /// Returns the greatest item in the queue - fails if empty - pure fn top(&self) -> &'self T { &self.data[0] } + fn top(&self) -> &'self T { &self.data[0] } /// Returns the greatest item in the queue - None if empty - pure fn maybe_top(&self) -> Option<&'self T> { + fn maybe_top(&self) -> Option<&'self T> { if self.is_empty() { None } else { Some(self.top()) } } /// Returns the number of elements the queue can hold without reallocating - pure fn capacity(&self) -> uint { vec::capacity(&self.data) } + fn capacity(&self) -> uint { vec::capacity(&self.data) } fn reserve(&mut self, n: uint) { vec::reserve(&mut self.data, n) } @@ -102,11 +102,11 @@ pub impl <T:Ord> PriorityQueue<T> { } /// Consume the PriorityQueue and return the underlying vector - pure fn to_vec(self) -> ~[T] { let PriorityQueue{data: v} = self; v } + fn to_vec(self) -> ~[T] { let PriorityQueue{data: v} = self; v } /// Consume the PriorityQueue and return a vector in sorted /// (ascending) order - pure fn to_sorted_vec(self) -> ~[T] { + fn to_sorted_vec(self) -> ~[T] { let mut q = self; let mut end = q.len(); while end > 1 { @@ -118,10 +118,10 @@ pub impl <T:Ord> PriorityQueue<T> { } /// Create an empty PriorityQueue - pure fn new() -> PriorityQueue<T> { PriorityQueue{data: ~[],} } + fn new() -> PriorityQueue<T> { PriorityQueue{data: ~[],} } /// Create a PriorityQueue from a vector (heapify) - pure fn from_vec(xs: ~[T]) -> PriorityQueue<T> { + fn from_vec(xs: ~[T]) -> PriorityQueue<T> { let mut q = PriorityQueue{data: xs,}; let mut n = q.len() / 2; while n > 0 { diff --git a/src/libstd/rope.rs b/src/libstd/rope.rs index ff7d4ec3b1c..c9ad762880c 100644 --- a/src/libstd/rope.rs +++ b/src/libstd/rope.rs @@ -47,7 +47,7 @@ pub type Rope = node::Root; */ /// Create an empty rope -pub pure fn empty() -> Rope { +pub fn empty() -> Rope { return node::Empty; } @@ -491,7 +491,7 @@ pub mod iterator { * * Constant time. */ -pub pure fn height(rope: Rope) -> uint { +pub fn height(rope: Rope) -> uint { match (rope) { node::Empty => return 0u, node::Content(x) => return node::height(x) @@ -507,7 +507,7 @@ pub pure fn height(rope: Rope) -> uint { * * Constant time. */ -pub pure fn char_len(rope: Rope) -> uint { +pub fn char_len(rope: Rope) -> uint { match (rope) { node::Empty => return 0u, node::Content(x) => return node::char_len(x) @@ -521,7 +521,7 @@ pub pure fn char_len(rope: Rope) -> uint { * * Constant time. */ -pub pure fn byte_len(rope: Rope) -> uint { +pub fn byte_len(rope: Rope) -> uint { match (rope) { node::Empty => return 0u, node::Content(x) => return node::byte_len(x) @@ -761,7 +761,7 @@ pub mod node { } } - pub pure fn byte_len(node: @Node) -> uint { + pub fn byte_len(node: @Node) -> uint { //FIXME (#2744): Could we do this without the pattern-matching? match (*node) { Leaf(y) => y.byte_len, @@ -769,7 +769,7 @@ pub mod node { } } - pub pure fn char_len(node: @Node) -> uint { + pub fn char_len(node: @Node) -> uint { match (*node) { Leaf(y) => y.char_len, Concat(ref y) => y.char_len @@ -1050,7 +1050,7 @@ pub mod node { }) } - pub pure fn height(node: @Node) -> uint { + pub fn height(node: @Node) -> uint { match (*node) { Leaf(_) => 0u, Concat(ref x) => x.height, @@ -1131,7 +1131,7 @@ pub mod node { * proportional to the height of the rope + the (bounded) * length of the largest leaf. */ - pub pure fn char_at(node: @Node, pos: uint) -> char { + pub fn char_at(node: @Node, pos: uint) -> char { let mut node = node; let mut pos = pos; loop { diff --git a/src/libstd/semver.rs b/src/libstd/semver.rs index 3593ccc5ae8..50579db4707 100644 --- a/src/libstd/semver.rs +++ b/src/libstd/semver.rs @@ -27,7 +27,7 @@ pub enum Identifier { impl cmp::Ord for Identifier { #[inline(always)] - pure fn lt(&self, other: &Identifier) -> bool { + fn lt(&self, other: &Identifier) -> bool { match (self, other) { (&Numeric(a), &Numeric(b)) => a < b, (&Numeric(_), _) => true, @@ -36,22 +36,22 @@ impl cmp::Ord for Identifier { } } #[inline(always)] - pure fn le(&self, other: &Identifier) -> bool { + fn le(&self, other: &Identifier) -> bool { ! (other < self) } #[inline(always)] - pure fn gt(&self, other: &Identifier) -> bool { + fn gt(&self, other: &Identifier) -> bool { other < self } #[inline(always)] - pure fn ge(&self, other: &Identifier) -> bool { + fn ge(&self, other: &Identifier) -> bool { ! (self < other) } } impl ToStr for Identifier { #[inline(always)] - pure fn to_str(&self) -> ~str { + fn to_str(&self) -> ~str { match self { &Numeric(n) => n.to_str(), &AlphaNumeric(ref s) => s.to_str() @@ -71,7 +71,7 @@ pub struct Version { impl ToStr for Version { #[inline(always)] - pure fn to_str(&self) -> ~str { + fn to_str(&self) -> ~str { let s = fmt!("%u.%u.%u", self.major, self.minor, self.patch); let s = if self.pre.is_empty() { s @@ -88,7 +88,7 @@ impl ToStr for Version { impl cmp::Ord for Version { #[inline(always)] - pure fn lt(&self, other: &Version) -> bool { + fn lt(&self, other: &Version) -> bool { self.major < other.major || @@ -121,15 +121,15 @@ impl cmp::Ord for Version { } #[inline(always)] - pure fn le(&self, other: &Version) -> bool { + fn le(&self, other: &Version) -> bool { ! (other < self) } #[inline(always)] - pure fn gt(&self, other: &Version) -> bool { + fn gt(&self, other: &Version) -> bool { other < self } #[inline(always)] - pure fn ge(&self, other: &Version) -> bool { + fn ge(&self, other: &Version) -> bool { ! (self < other) } } diff --git a/src/libstd/smallintmap.rs b/src/libstd/smallintmap.rs index 6a6635bae90..a559e7540d4 100644 --- a/src/libstd/smallintmap.rs +++ b/src/libstd/smallintmap.rs @@ -24,7 +24,7 @@ pub struct SmallIntMap<T> { impl<V> BaseIter<(uint, &'self V)> for SmallIntMap<V> { /// Visit all key-value pairs in order - pure fn each(&self, it: &fn(&(uint, &'self V)) -> bool) { + fn each(&self, it: &fn(&(uint, &'self V)) -> bool) { for uint::range(0, self.v.len()) |i| { match self.v[i] { Some(ref elt) => if !it(&(i, elt)) { break }, @@ -33,12 +33,12 @@ impl<V> BaseIter<(uint, &'self V)> for SmallIntMap<V> { } } - pure fn size_hint(&self) -> Option<uint> { Some(self.len()) } + fn size_hint(&self) -> Option<uint> { Some(self.len()) } } impl<V> ReverseIter<(uint, &'self V)> for SmallIntMap<V> { /// Visit all key-value pairs in reverse order - pure fn each_reverse(&self, it: &fn(&(uint, &'self V)) -> bool) { + fn each_reverse(&self, it: &fn(&(uint, &'self V)) -> bool) { for uint::range_rev(self.v.len(), 0) |i| { match self.v[i - 1] { Some(ref elt) => if !it(&(i - 1, elt)) { break }, @@ -50,7 +50,7 @@ impl<V> ReverseIter<(uint, &'self V)> for SmallIntMap<V> { impl<V> Container for SmallIntMap<V> { /// Return the number of elements in the map - pure fn len(&const self) -> uint { + fn len(&const self) -> uint { let mut sz = 0; for uint::range(0, vec::uniq_len(&const self.v)) |i| { match self.v[i] { @@ -62,7 +62,7 @@ impl<V> Container for SmallIntMap<V> { } /// Return true if the map contains no elements - pure fn is_empty(&const self) -> bool { self.len() == 0 } + fn is_empty(&const self) -> bool { self.len() == 0 } } impl<V> Mutable for SmallIntMap<V> { @@ -72,17 +72,17 @@ impl<V> Mutable for SmallIntMap<V> { impl<V> Map<uint, V> for SmallIntMap<V> { /// Return true if the map contains a value for the specified key - pure fn contains_key(&self, key: &uint) -> bool { + fn contains_key(&self, key: &uint) -> bool { self.find(key).is_some() } /// Visit all keys in order - pure fn each_key(&self, blk: &fn(key: &uint) -> bool) { + fn each_key(&self, blk: &fn(key: &uint) -> bool) { self.each(|&(k, _)| blk(&k)) } /// Visit all values in order - pure fn each_value(&self, blk: &fn(value: &V) -> bool) { + fn each_value(&self, blk: &fn(value: &V) -> bool) { self.each(|&(_, v)| blk(v)) } @@ -97,7 +97,7 @@ impl<V> Map<uint, V> for SmallIntMap<V> { } /// Iterate over the map and mutate the contained values - pure fn find(&self, key: &uint) -> Option<&'self V> { + fn find(&self, key: &uint) -> Option<&'self V> { if *key < self.v.len() { match self.v[*key] { Some(ref value) => Some(value), @@ -135,9 +135,9 @@ impl<V> Map<uint, V> for SmallIntMap<V> { pub impl<V> SmallIntMap<V> { /// Create an empty SmallIntMap - pure fn new() -> SmallIntMap<V> { SmallIntMap{v: ~[]} } + fn new() -> SmallIntMap<V> { SmallIntMap{v: ~[]} } - pure fn get(&self, key: &uint) -> &'self V { + fn get(&self, key: &uint) -> &'self V { self.find(key).expect("key not present") } } diff --git a/src/libstd/sort.rs b/src/libstd/sort.rs index db8311ca035..8ab2c40116a 100644 --- a/src/libstd/sort.rs +++ b/src/libstd/sort.rs @@ -16,7 +16,7 @@ use core::util; use core::vec::{len, push}; use core::vec; -type Le<T> = &'self pure fn(v1: &T, v2: &T) -> bool; +type Le<T> = &'self fn(v1: &T, v2: &T) -> bool; /** * Merge sort. Returns a new vector containing the sorted list. @@ -24,7 +24,7 @@ type Le<T> = &'self pure fn(v1: &T, v2: &T) -> bool; * Has worst case O(n log n) performance, best case O(n), but * is not space efficient. This is a stable sort. */ -pub pure fn merge_sort<T:Copy>(v: &[const T], le: Le<T>) -> ~[T] { +pub fn merge_sort<T:Copy>(v: &[const T], le: Le<T>) -> ~[T] { type Slice = (uint, uint); unsafe {return merge_sort_(v, (0u, len(v)), le);} @@ -259,7 +259,7 @@ fn reverse_slice<T>(v: &mut [T], start: uint, end:uint) { } } -pure fn min_run_length(n: uint) -> uint { +fn min_run_length(n: uint) -> uint { let mut n = n; let mut r = 0; // becomes 1 if any 1 bits are shifted off @@ -290,7 +290,7 @@ fn count_run_ascending<T:Copy + Ord>(array: &mut [T]) -> uint { return run; } -pure fn gallop_left<T:Copy + Ord>(key: &const T, array: &[const T], +fn gallop_left<T:Copy + Ord>(key: &const T, array: &[const T], hint: uint) -> uint { let size = array.len(); fail_unless!(size != 0 && hint < size); @@ -339,7 +339,7 @@ pure fn gallop_left<T:Copy + Ord>(key: &const T, array: &[const T], return ofs; } -pure fn gallop_right<T:Copy + Ord>(key: &const T, array: &[const T], +fn gallop_right<T:Copy + Ord>(key: &const T, array: &[const T], hint: uint) -> uint { let size = array.len(); fail_unless!(size != 0 && hint < size); @@ -779,7 +779,7 @@ mod test_qsort { pub fn check_sort(v1: &mut [int], v2: &mut [int]) { let len = vec::len::<int>(v1); - pure fn leual(a: &int, b: &int) -> bool { *a <= *b } + fn leual(a: &int, b: &int) -> bool { *a <= *b } quick_sort::<int>(v1, leual); let mut i = 0u; while i < len { @@ -844,7 +844,7 @@ mod tests { pub fn check_sort(v1: &[int], v2: &[int]) { let len = vec::len::<int>(v1); - pub pure fn le(a: &int, b: &int) -> bool { *a <= *b } + pub fn le(a: &int, b: &int) -> bool { *a <= *b } let f = le; let v3 = merge_sort::<int>(v1, f); let mut i = 0u; @@ -874,7 +874,7 @@ mod tests { #[test] pub fn test_merge_sort_mutable() { - pub pure fn le(a: &int, b: &int) -> bool { *a <= *b } + pub fn le(a: &int, b: &int) -> bool { *a <= *b } let mut v1 = ~[3, 2, 1]; let v2 = merge_sort(v1, le); fail_unless!(v2 == ~[1, 2, 3]); @@ -883,7 +883,7 @@ mod tests { #[test] pub fn test_merge_sort_stability() { // tjc: funny that we have to use parens - pure fn ile(x: &(&'static str), y: &(&'static str)) -> bool + fn ile(x: &(&'static str), y: &(&'static str)) -> bool { unsafe // to_lower is not pure... { @@ -917,16 +917,16 @@ mod test_tim_sort { } impl Ord for CVal { - pure fn lt(&self, other: &CVal) -> bool { + fn lt(&self, other: &CVal) -> bool { unsafe { let rng = rand::Rng(); if rng.gen_float() > 0.995 { fail!(~"It's happening!!!"); } } (*self).val < other.val } - pure fn le(&self, other: &CVal) -> bool { (*self).val <= other.val } - pure fn gt(&self, other: &CVal) -> bool { (*self).val > other.val } - pure fn ge(&self, other: &CVal) -> bool { (*self).val >= other.val } + fn le(&self, other: &CVal) -> bool { (*self).val <= other.val } + fn gt(&self, other: &CVal) -> bool { (*self).val > other.val } + fn ge(&self, other: &CVal) -> bool { (*self).val >= other.val } } fn check_sort(v1: &mut [int], v2: &mut [int]) { @@ -982,10 +982,10 @@ mod test_tim_sort { struct DVal { val: uint } impl Ord for DVal { - pure fn lt(&self, _x: &DVal) -> bool { true } - pure fn le(&self, _x: &DVal) -> bool { true } - pure fn gt(&self, _x: &DVal) -> bool { true } - pure fn ge(&self, _x: &DVal) -> bool { true } + fn lt(&self, _x: &DVal) -> bool { true } + fn le(&self, _x: &DVal) -> bool { true } + fn gt(&self, _x: &DVal) -> bool { true } + fn ge(&self, _x: &DVal) -> bool { true } } #[test] @@ -1206,16 +1206,16 @@ mod big_tests { } impl Ord for LVal/&self { - pure fn lt(&self, other: &'a LVal/&self) -> bool { + fn lt(&self, other: &'a LVal/&self) -> bool { (*self).val < other.val } - pure fn le(&self, other: &'a LVal/&self) -> bool { + fn le(&self, other: &'a LVal/&self) -> bool { (*self).val <= other.val } - pure fn gt(&self, other: &'a LVal/&self) -> bool { + fn gt(&self, other: &'a LVal/&self) -> bool { (*self).val > other.val } - pure fn ge(&self, other: &'a LVal/&self) -> bool { + fn ge(&self, other: &'a LVal/&self) -> bool { (*self).val >= other.val } } diff --git a/src/libstd/test.rs b/src/libstd/test.rs index 1829e29826f..7531992ae84 100644 --- a/src/libstd/test.rs +++ b/src/libstd/test.rs @@ -53,7 +53,7 @@ pub enum TestName { DynTestName(~str) } impl ToStr for TestName { - pure fn to_str(&self) -> ~str { + fn to_str(&self) -> ~str { match self { &StaticTestName(s) => s.to_str(), &DynTestName(s) => s.to_str() @@ -536,7 +536,7 @@ pub fn filter_tests( }; // Sort the tests alphabetically - pure fn lteq(t1: &TestDescAndFn, t2: &TestDescAndFn) -> bool { + fn lteq(t1: &TestDescAndFn, t2: &TestDescAndFn) -> bool { str::le(t1.desc.name.to_str(), t2.desc.name.to_str()) } sort::quick_sort(filtered, lteq); diff --git a/src/libstd/time.rs b/src/libstd/time.rs index faebe268564..b46d58f891b 100644 --- a/src/libstd/time.rs +++ b/src/libstd/time.rs @@ -51,27 +51,27 @@ pub struct Timespec { sec: i64, nsec: i32 } * nsec: 800_000_000_i32 }`. */ pub impl Timespec { - pure fn new(sec: i64, nsec: i32) -> Timespec { + fn new(sec: i64, nsec: i32) -> Timespec { fail_unless!(nsec >= 0 && nsec < NSEC_PER_SEC); Timespec { sec: sec, nsec: nsec } } } impl Eq for Timespec { - pure fn eq(&self, other: &Timespec) -> bool { + fn eq(&self, other: &Timespec) -> bool { self.sec == other.sec && self.nsec == other.nsec } - pure fn ne(&self, other: &Timespec) -> bool { !self.eq(other) } + fn ne(&self, other: &Timespec) -> bool { !self.eq(other) } } impl Ord for Timespec { - pure fn lt(&self, other: &Timespec) -> bool { + fn lt(&self, other: &Timespec) -> bool { self.sec < other.sec || (self.sec == other.sec && self.nsec < other.nsec) } - pure fn le(&self, other: &Timespec) -> bool { !other.lt(self) } - pure fn ge(&self, other: &Timespec) -> bool { !self.lt(other) } - pure fn gt(&self, other: &Timespec) -> bool { !self.le(other) } + fn le(&self, other: &Timespec) -> bool { !other.lt(self) } + fn ge(&self, other: &Timespec) -> bool { !self.lt(other) } + fn gt(&self, other: &Timespec) -> bool { !self.le(other) } } /** @@ -133,7 +133,7 @@ pub struct Tm { } impl Eq for Tm { - pure fn eq(&self, other: &Tm) -> bool { + fn eq(&self, other: &Tm) -> bool { self.tm_sec == (*other).tm_sec && self.tm_min == (*other).tm_min && self.tm_hour == (*other).tm_hour && @@ -147,10 +147,10 @@ impl Eq for Tm { self.tm_zone == (*other).tm_zone && self.tm_nsec == (*other).tm_nsec } - pure fn ne(&self, other: &Tm) -> bool { !self.eq(other) } + fn ne(&self, other: &Tm) -> bool { !self.eq(other) } } -pub pure fn empty_tm() -> Tm { +pub fn empty_tm() -> Tm { Tm { tm_sec: 0_i32, tm_min: 0_i32, @@ -198,14 +198,14 @@ pub fn now() -> Tm { } /// Parses the time from the string according to the format string. -pub pure fn strptime(s: &str, format: &str) -> Result<Tm, ~str> { +pub fn strptime(s: &str, format: &str) -> Result<Tm, ~str> { // unsafe only because do_strptime is annoying to make pure // (it does IO with a str_reader) unsafe {do_strptime(s, format)} } /// Formats the time according to the format string. -pub pure fn strftime(format: &str, tm: &Tm) -> ~str { +pub fn strftime(format: &str, tm: &Tm) -> ~str { // unsafe only because do_strftime is annoying to make pure // (it does IO with a str_reader) unsafe { do_strftime(format, tm) } @@ -239,10 +239,10 @@ pub impl Tm { * Return a string of the current time in the form * "Thu Jan 1 00:00:00 1970". */ - pure fn ctime(&self) -> ~str { self.strftime(~"%c") } + fn ctime(&self) -> ~str { self.strftime(~"%c") } /// Formats the time according to the format string. - pure fn strftime(&self, format: &str) -> ~str { + fn strftime(&self, format: &str) -> ~str { strftime(format, self) } @@ -252,7 +252,7 @@ pub impl Tm { * local: "Thu, 22 Mar 2012 07:53:18 PST" * utc: "Thu, 22 Mar 2012 14:53:18 UTC" */ - pure fn rfc822(&self) -> ~str { + fn rfc822(&self) -> ~str { if self.tm_gmtoff == 0_i32 { self.strftime(~"%a, %d %b %Y %T GMT") } else { @@ -266,7 +266,7 @@ pub impl Tm { * local: "Thu, 22 Mar 2012 07:53:18 -0700" * utc: "Thu, 22 Mar 2012 14:53:18 -0000" */ - pure fn rfc822z(&self) -> ~str { + fn rfc822z(&self) -> ~str { self.strftime(~"%a, %d %b %Y %T %z") } @@ -276,7 +276,7 @@ pub impl Tm { * local: "2012-02-22T07:53:18-07:00" * utc: "2012-02-22T14:53:18Z" */ - pure fn rfc3339(&self) -> ~str { + fn rfc3339(&self) -> ~str { if self.tm_gmtoff == 0_i32 { self.strftime(~"%Y-%m-%dT%H:%M:%SZ") } else { diff --git a/src/libstd/treemap.rs b/src/libstd/treemap.rs index 045d51c1567..e42c6590724 100644 --- a/src/libstd/treemap.rs +++ b/src/libstd/treemap.rs @@ -36,7 +36,7 @@ pub struct TreeMap<K, V> { } impl<K: Eq + TotalOrd, V: Eq> Eq for TreeMap<K, V> { - pure fn eq(&self, other: &TreeMap<K, V>) -> bool { + fn eq(&self, other: &TreeMap<K, V>) -> bool { if self.len() != other.len() { false } else { @@ -53,11 +53,11 @@ impl<K: Eq + TotalOrd, V: Eq> Eq for TreeMap<K, V> { true } } - pure fn ne(&self, other: &TreeMap<K, V>) -> bool { !self.eq(other) } + fn ne(&self, other: &TreeMap<K, V>) -> bool { !self.eq(other) } } // Lexicographical comparison -pure fn lt<K: Ord + TotalOrd, V>(a: &TreeMap<K, V>, +fn lt<K: Ord + TotalOrd, V>(a: &TreeMap<K, V>, b: &TreeMap<K, V>) -> bool { let mut x = a.iter(); let mut y = b.iter(); @@ -77,21 +77,21 @@ pure fn lt<K: Ord + TotalOrd, V>(a: &TreeMap<K, V>, impl<K: Ord + TotalOrd, V> Ord for TreeMap<K, V> { #[inline(always)] - pure fn lt(&self, other: &TreeMap<K, V>) -> bool { lt(self, other) } + fn lt(&self, other: &TreeMap<K, V>) -> bool { lt(self, other) } #[inline(always)] - pure fn le(&self, other: &TreeMap<K, V>) -> bool { !lt(other, self) } + fn le(&self, other: &TreeMap<K, V>) -> bool { !lt(other, self) } #[inline(always)] - pure fn ge(&self, other: &TreeMap<K, V>) -> bool { !lt(self, other) } + fn ge(&self, other: &TreeMap<K, V>) -> bool { !lt(self, other) } #[inline(always)] - pure fn gt(&self, other: &TreeMap<K, V>) -> bool { lt(other, self) } + fn gt(&self, other: &TreeMap<K, V>) -> bool { lt(other, self) } } impl<'self, K: TotalOrd, V> BaseIter<(&'self K, &'self V)> for TreeMap<K, V> { /// Visit all key-value pairs in order - pure fn each(&self, f: &fn(&(&'self K, &'self V)) -> bool) { + fn each(&self, f: &fn(&(&'self K, &'self V)) -> bool) { each(&self.root, f) } - pure fn size_hint(&self) -> Option<uint> { Some(self.len()) } + fn size_hint(&self) -> Option<uint> { Some(self.len()) } } impl<'self, K: TotalOrd, V> @@ -99,17 +99,17 @@ impl<'self, K: TotalOrd, V> for TreeMap<K, V> { /// Visit all key-value pairs in reverse order - pure fn each_reverse(&self, f: &fn(&(&'self K, &'self V)) -> bool) { + fn each_reverse(&self, f: &fn(&(&'self K, &'self V)) -> bool) { each_reverse(&self.root, f); } } impl<K: TotalOrd, V> Container for TreeMap<K, V> { /// Return the number of elements in the map - pure fn len(&const self) -> uint { self.length } + fn len(&const self) -> uint { self.length } /// Return true if the map contains no elements - pure fn is_empty(&const self) -> bool { self.root.is_none() } + fn is_empty(&const self) -> bool { self.root.is_none() } } impl<K: TotalOrd, V> Mutable for TreeMap<K, V> { @@ -122,15 +122,15 @@ impl<K: TotalOrd, V> Mutable for TreeMap<K, V> { impl<K: TotalOrd, V> Map<K, V> for TreeMap<K, V> { /// Return true if the map contains a value for the specified key - pure fn contains_key(&self, key: &K) -> bool { + fn contains_key(&self, key: &K) -> bool { self.find(key).is_some() } /// Visit all keys in order - pure fn each_key(&self, f: &fn(&K) -> bool) { self.each(|&(k, _)| f(k)) } + fn each_key(&self, f: &fn(&K) -> bool) { self.each(|&(k, _)| f(k)) } /// Visit all values in order - pure fn each_value(&self, f: &fn(&V) -> bool) { + fn each_value(&self, f: &fn(&V) -> bool) { self.each(|&(_, v)| f(v)) } @@ -140,7 +140,7 @@ impl<K: TotalOrd, V> Map<K, V> for TreeMap<K, V> { } /// Return the value corresponding to the key in the map - pure fn find(&self, key: &K) -> Option<&'self V> { + fn find(&self, key: &K) -> Option<&'self V> { let mut current: &'self Option<~TreeNode<K, V>> = &self.root; loop { match *current { @@ -176,21 +176,21 @@ impl<K: TotalOrd, V> Map<K, V> for TreeMap<K, V> { pub impl<K: TotalOrd, V> TreeMap<K, V> { /// Create an empty TreeMap - pure fn new() -> TreeMap<K, V> { TreeMap{root: None, length: 0} } + fn new() -> TreeMap<K, V> { TreeMap{root: None, length: 0} } /// Visit all keys in reverse order - pure fn each_key_reverse(&self, f: &fn(&K) -> bool) { + fn each_key_reverse(&self, f: &fn(&K) -> bool) { self.each_reverse(|&(k, _)| f(k)) } /// Visit all values in reverse order - pure fn each_value_reverse(&self, f: &fn(&V) -> bool) { + fn each_value_reverse(&self, f: &fn(&V) -> bool) { self.each_reverse(|&(_, v)| f(v)) } /// Get a lazy iterator over the key-value pairs in the map. /// Requires that it be frozen (immutable). - pure fn iter(&self) -> TreeMapIterator/&self<K, V> { + fn iter(&self) -> TreeMapIterator/&self<K, V> { TreeMapIterator{stack: ~[], node: &self.root} } } @@ -242,45 +242,45 @@ pub struct TreeSet<T> { impl<T: TotalOrd> BaseIter<T> for TreeSet<T> { /// Visit all values in order #[inline(always)] - pure fn each(&self, f: &fn(&T) -> bool) { self.map.each_key(f) } + fn each(&self, f: &fn(&T) -> bool) { self.map.each_key(f) } #[inline(always)] - pure fn size_hint(&self) -> Option<uint> { Some(self.len()) } + fn size_hint(&self) -> Option<uint> { Some(self.len()) } } impl<T: TotalOrd> ReverseIter<T> for TreeSet<T> { /// Visit all values in reverse order #[inline(always)] - pure fn each_reverse(&self, f: &fn(&T) -> bool) { + fn each_reverse(&self, f: &fn(&T) -> bool) { self.map.each_key_reverse(f) } } impl<T: Eq + TotalOrd> Eq for TreeSet<T> { #[inline(always)] - pure fn eq(&self, other: &TreeSet<T>) -> bool { self.map == other.map } + fn eq(&self, other: &TreeSet<T>) -> bool { self.map == other.map } #[inline(always)] - pure fn ne(&self, other: &TreeSet<T>) -> bool { self.map != other.map } + fn ne(&self, other: &TreeSet<T>) -> bool { self.map != other.map } } impl<T: Ord + TotalOrd> Ord for TreeSet<T> { #[inline(always)] - pure fn lt(&self, other: &TreeSet<T>) -> bool { self.map < other.map } + fn lt(&self, other: &TreeSet<T>) -> bool { self.map < other.map } #[inline(always)] - pure fn le(&self, other: &TreeSet<T>) -> bool { self.map <= other.map } + fn le(&self, other: &TreeSet<T>) -> bool { self.map <= other.map } #[inline(always)] - pure fn ge(&self, other: &TreeSet<T>) -> bool { self.map >= other.map } + fn ge(&self, other: &TreeSet<T>) -> bool { self.map >= other.map } #[inline(always)] - pure fn gt(&self, other: &TreeSet<T>) -> bool { self.map > other.map } + fn gt(&self, other: &TreeSet<T>) -> bool { self.map > other.map } } impl<T: TotalOrd> Container for TreeSet<T> { /// Return the number of elements in the set #[inline(always)] - pure fn len(&const self) -> uint { self.map.len() } + fn len(&const self) -> uint { self.map.len() } /// Return true if the set contains no elements #[inline(always)] - pure fn is_empty(&const self) -> bool { self.map.is_empty() } + fn is_empty(&const self) -> bool { self.map.is_empty() } } impl<T: TotalOrd> Mutable for TreeSet<T> { @@ -292,7 +292,7 @@ impl<T: TotalOrd> Mutable for TreeSet<T> { impl<T: TotalOrd> Set<T> for TreeSet<T> { /// Return true if the set contains a value #[inline(always)] - pure fn contains(&self, value: &T) -> bool { + fn contains(&self, value: &T) -> bool { self.map.contains_key(value) } @@ -308,7 +308,7 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { /// Return true if the set has no elements in common with `other`. /// This is equivalent to checking for an empty intersection. - pure fn is_disjoint(&self, other: &TreeSet<T>) -> bool { + fn is_disjoint(&self, other: &TreeSet<T>) -> bool { let mut x = self.iter(); let mut y = other.iter(); unsafe { // purity workaround @@ -329,12 +329,12 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { /// Return true if the set is a subset of another #[inline(always)] - pure fn is_subset(&self, other: &TreeSet<T>) -> bool { + fn is_subset(&self, other: &TreeSet<T>) -> bool { other.is_superset(self) } /// Return true if the set is a superset of another - pure fn is_superset(&self, other: &TreeSet<T>) -> bool { + fn is_superset(&self, other: &TreeSet<T>) -> bool { let mut x = self.iter(); let mut y = other.iter(); unsafe { // purity workaround @@ -361,7 +361,7 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { } /// Visit the values (in-order) representing the difference - pure fn difference(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { + fn difference(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { let mut x = self.iter(); let mut y = other.iter(); @@ -393,7 +393,7 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { } /// Visit the values (in-order) representing the symmetric difference - pure fn symmetric_difference(&self, other: &TreeSet<T>, + fn symmetric_difference(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { let mut x = self.iter(); let mut y = other.iter(); @@ -433,7 +433,7 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { } /// Visit the values (in-order) representing the intersection - pure fn intersection(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { + fn intersection(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { let mut x = self.iter(); let mut y = other.iter(); @@ -460,7 +460,7 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { } /// Visit the values (in-order) representing the union - pure fn union(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { + fn union(&self, other: &TreeSet<T>, f: &fn(&T) -> bool) { let mut x = self.iter(); let mut y = other.iter(); @@ -501,12 +501,12 @@ impl<T: TotalOrd> Set<T> for TreeSet<T> { pub impl <T: TotalOrd> TreeSet<T> { /// Create an empty TreeSet #[inline(always)] - pure fn new() -> TreeSet<T> { TreeSet{map: TreeMap::new()} } + fn new() -> TreeSet<T> { TreeSet{map: TreeMap::new()} } /// Get a lazy iterator over the values in the set. /// Requires that it be frozen (immutable). #[inline(always)] - pure fn iter(&self) -> TreeSetIterator/&self<T> { + fn iter(&self) -> TreeSetIterator/&self<T> { TreeSetIterator{iter: self.map.iter()} } } @@ -542,12 +542,12 @@ struct TreeNode<K, V> { pub impl<K: TotalOrd, V> TreeNode<K, V> { #[inline(always)] - pure fn new(key: K, value: V) -> TreeNode<K, V> { + fn new(key: K, value: V) -> TreeNode<K, V> { TreeNode{key: key, value: value, left: None, right: None, level: 1} } } -pure fn each<K: TotalOrd, V>(node: &'r Option<~TreeNode<K, V>>, +fn each<K: TotalOrd, V>(node: &'r Option<~TreeNode<K, V>>, f: &fn(&(&'r K, &'r V)) -> bool) { for node.each |x| { each(&x.left, f); @@ -555,7 +555,7 @@ pure fn each<K: TotalOrd, V>(node: &'r Option<~TreeNode<K, V>>, } } -pure fn each_reverse<K: TotalOrd, V>(node: &'r Option<~TreeNode<K, V>>, +fn each_reverse<K: TotalOrd, V>(node: &'r Option<~TreeNode<K, V>>, f: &fn(&(&'r K, &'r V)) -> bool) { for node.each |x| { each_reverse(&x.right, f); diff --git a/src/libstd/unicode.rs b/src/libstd/unicode.rs index b3581e2690c..f22bdaff3a0 100644 --- a/src/libstd/unicode.rs +++ b/src/libstd/unicode.rs @@ -173,12 +173,12 @@ pub mod icu { } } -pub pure fn is_XID_start(c: char) -> bool { +pub fn is_XID_start(c: char) -> bool { return icu::libicu::u_hasBinaryProperty(c, icu::UCHAR_XID_START) == icu::TRUE; } -pub pure fn is_XID_continue(c: char) -> bool { +pub fn is_XID_continue(c: char) -> bool { return icu::libicu::u_hasBinaryProperty(c, icu::UCHAR_XID_START) == icu::TRUE; } @@ -188,7 +188,7 @@ Function: is_digit Returns true if a character is a digit. */ -pub pure fn is_digit(c: char) -> bool { +pub fn is_digit(c: char) -> bool { return icu::libicu::u_isdigit(c) == icu::TRUE; } @@ -197,7 +197,7 @@ Function: is_lower Returns true if a character is a lowercase letter. */ -pub pure fn is_lower(c: char) -> bool { +pub fn is_lower(c: char) -> bool { return icu::libicu::u_islower(c) == icu::TRUE; } @@ -206,7 +206,7 @@ Function: is_space Returns true if a character is space. */ -pub pure fn is_space(c: char) -> bool { +pub fn is_space(c: char) -> bool { return icu::libicu::u_isspace(c) == icu::TRUE; } @@ -215,7 +215,7 @@ Function: is_upper Returns true if a character is an uppercase letter. */ -pub pure fn is_upper(c: char) -> bool { +pub fn is_upper(c: char) -> bool { return icu::libicu::u_isupper(c) == icu::TRUE; } diff --git a/src/libstd/workcache.rs b/src/libstd/workcache.rs index 46335d062b4..b26b4b1c333 100644 --- a/src/libstd/workcache.rs +++ b/src/libstd/workcache.rs @@ -106,7 +106,7 @@ struct WorkKey { impl to_bytes::IterBytes for WorkKey { #[inline(always)] - pure fn iter_bytes(&self, lsb0: bool, f: to_bytes::Cb) { + fn iter_bytes(&self, lsb0: bool, f: to_bytes::Cb) { let mut flag = true; self.kind.iter_bytes(lsb0, |bytes| {flag = f(bytes); flag}); if !flag { return; } @@ -115,18 +115,18 @@ impl to_bytes::IterBytes for WorkKey { } impl cmp::Ord for WorkKey { - pure fn lt(&self, other: &WorkKey) -> bool { + fn lt(&self, other: &WorkKey) -> bool { self.kind < other.kind || (self.kind == other.kind && self.name < other.name) } - pure fn le(&self, other: &WorkKey) -> bool { + fn le(&self, other: &WorkKey) -> bool { self.lt(other) || self.eq(other) } - pure fn ge(&self, other: &WorkKey) -> bool { + fn ge(&self, other: &WorkKey) -> bool { self.gt(other) || self.eq(other) } - pure fn gt(&self, other: &WorkKey) -> bool { + fn gt(&self, other: &WorkKey) -> bool { ! self.le(other) } } |
