diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2014-09-26 21:13:20 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2014-09-30 09:11:26 -0700 |
| commit | 416144b8279fbffceacea6d0fd90e0fd1f8ce53d (patch) | |
| tree | 0f7f628dd1388f378ac4836e32359b18a7297212 /src/libserialize | |
| parent | 38015eeb7010e5954a1bc60fddc1214a5f359627 (diff) | |
librustc: Forbid `..` in range patterns.
This breaks code that looks like:
match foo {
1..3 => { ... }
}
Instead, write:
match foo {
1...3 => { ... }
}
Closes #17295.
[breaking-change]
Diffstat (limited to 'src/libserialize')
| -rw-r--r-- | src/libserialize/base64.rs | 6 | ||||
| -rw-r--r-- | src/libserialize/hex.rs | 6 | ||||
| -rw-r--r-- | src/libserialize/json.rs | 24 |
3 files changed, 19 insertions, 17 deletions
diff --git a/src/libserialize/base64.rs b/src/libserialize/base64.rs index f85f3a43974..19dcc3c132c 100644 --- a/src/libserialize/base64.rs +++ b/src/libserialize/base64.rs @@ -224,9 +224,9 @@ impl<'a> FromBase64 for &'a [u8] { let val = byte as u32; match byte { - b'A'..b'Z' => buf |= val - 0x41, - b'a'..b'z' => buf |= val - 0x47, - b'0'..b'9' => buf |= val + 0x04, + b'A'...b'Z' => buf |= val - 0x41, + b'a'...b'z' => buf |= val - 0x47, + b'0'...b'9' => buf |= val + 0x04, b'+' | b'-' => buf |= 0x3E, b'/' | b'_' => buf |= 0x3F, b'\r' | b'\n' => continue, diff --git a/src/libserialize/hex.rs b/src/libserialize/hex.rs index 5e8697ef0ad..ffe63f738cf 100644 --- a/src/libserialize/hex.rs +++ b/src/libserialize/hex.rs @@ -113,9 +113,9 @@ impl<'a> FromHex for &'a str { buf <<= 4; match byte { - b'A'..b'F' => buf |= byte - b'A' + 10, - b'a'..b'f' => buf |= byte - b'a' + 10, - b'0'..b'9' => buf |= byte - b'0', + b'A'...b'F' => buf |= byte - b'A' + 10, + b'a'...b'f' => buf |= byte - b'a' + 10, + b'0'...b'9' => buf |= byte - b'0', b' '|b'\r'|b'\n'|b'\t' => { buf >>= 4; continue diff --git a/src/libserialize/json.rs b/src/libserialize/json.rs index ed95fa341b3..3007e160bf8 100644 --- a/src/libserialize/json.rs +++ b/src/libserialize/json.rs @@ -1392,14 +1392,14 @@ impl<T: Iterator<char>> Parser<T> { // A leading '0' must be the only digit before the decimal point. match self.ch_or_null() { - '0' .. '9' => return self.error(InvalidNumber), + '0' ... '9' => return self.error(InvalidNumber), _ => () } }, - '1' .. '9' => { + '1' ... '9' => { while !self.eof() { match self.ch_or_null() { - c @ '0' .. '9' => { + c @ '0' ... '9' => { accum *= 10; accum += (c as u64) - ('0' as u64); @@ -1423,14 +1423,14 @@ impl<T: Iterator<char>> Parser<T> { // Make sure a digit follows the decimal place. match self.ch_or_null() { - '0' .. '9' => (), + '0' ... '9' => (), _ => return self.error(InvalidNumber) } let mut dec = 1.0; while !self.eof() { match self.ch_or_null() { - c @ '0' .. '9' => { + c @ '0' ... '9' => { dec /= 10.0; res += (((c as int) - ('0' as int)) as f64) * dec; self.bump(); @@ -1457,12 +1457,12 @@ impl<T: Iterator<char>> Parser<T> { // Make sure a digit follows the exponent place. match self.ch_or_null() { - '0' .. '9' => (), + '0' ... '9' => (), _ => return self.error(InvalidNumber) } while !self.eof() { match self.ch_or_null() { - c @ '0' .. '9' => { + c @ '0' ... '9' => { exp *= 10; exp += (c as uint) - ('0' as uint); @@ -1488,7 +1488,7 @@ impl<T: Iterator<char>> Parser<T> { while i < 4 && !self.eof() { self.bump(); n = match self.ch_or_null() { - c @ '0' .. '9' => n * 16 + ((c as u16) - ('0' as u16)), + c @ '0' ... '9' => n * 16 + ((c as u16) - ('0' as u16)), 'a' | 'A' => n * 16 + 10, 'b' | 'B' => n * 16 + 11, 'c' | 'C' => n * 16 + 12, @@ -1530,11 +1530,13 @@ impl<T: Iterator<char>> Parser<T> { 'r' => res.push('\r'), 't' => res.push('\t'), 'u' => match try!(self.decode_hex_escape()) { - 0xDC00 .. 0xDFFF => return self.error(LoneLeadingSurrogateInHexEscape), + 0xDC00 ... 0xDFFF => { + return self.error(LoneLeadingSurrogateInHexEscape) + } // Non-BMP characters are encoded as a sequence of // two hex escapes, representing UTF-16 surrogates. - n1 @ 0xD800 .. 0xDBFF => { + n1 @ 0xD800 ... 0xDBFF => { match (self.next_char(), self.next_char()) { (Some('\\'), Some('u')) => (), _ => return self.error(UnexpectedEndOfHexEscape), @@ -1768,7 +1770,7 @@ impl<T: Iterator<char>> Parser<T> { 'n' => { self.parse_ident("ull", NullValue) } 't' => { self.parse_ident("rue", BooleanValue(true)) } 'f' => { self.parse_ident("alse", BooleanValue(false)) } - '0' .. '9' | '-' => self.parse_number(), + '0' ... '9' | '-' => self.parse_number(), '"' => match self.parse_str() { Ok(s) => StringValue(s), Err(e) => Error(e), |
