diff --git a/examples/server.rs b/examples/server.rs index 769461e2cd..3f7606ef19 100644 --- a/examples/server.rs +++ b/examples/server.rs @@ -21,7 +21,7 @@ macro_rules! try_return( fn echo(mut req: Request, mut res: Response) { match req.uri { - AbsolutePath(ref path) => match (&req.method, &path[]) { + AbsolutePath(ref path) => match (&req.method, &path[..]) { (&Get, "/") | (&Get, "/echo") => { let out = b"Try POST /echo"; diff --git a/src/client/mod.rs b/src/client/mod.rs index 64a875105e..81fa9a6a79 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -197,7 +197,7 @@ impl<'a, U: IntoUrl, C: NetworkConnector> RequestBuilder<'a, U, C> { // punching borrowck here let loc = match res.headers.get::() { Some(&Location(ref loc)) => { - Some(UrlParser::new().base_url(&url).parse(&loc[])) + Some(UrlParser::new().base_url(&url).parse(&loc[..])) } None => { debug!("no Location header"); @@ -394,7 +394,7 @@ mod tests { #[test] fn test_redirect_followif() { fn follow_if(url: &Url) -> bool { - !url.serialize()[].contains("127.0.0.3") + !url.serialize().contains("127.0.0.3") } let mut client = Client::with_connector(MockRedirectPolicy); client.set_redirect_policy(RedirectPolicy::FollowIf(follow_if)); diff --git a/src/client/request.rs b/src/client/request.rs index 2a5c2ff72b..442261cba7 100644 --- a/src/client/request.rs +++ b/src/client/request.rs @@ -77,7 +77,7 @@ impl Request { //TODO: this needs a test if let Some(ref q) = self.url.query { uri.push('?'); - uri.push_str(&q[]); + uri.push_str(&q[..]); } debug!("writing head: {:?} {:?} {:?}", self.method, uri, self.version); @@ -185,7 +185,7 @@ mod tests { let stream = *req.body.end().unwrap() .into_inner().downcast::().ok().unwrap(); let bytes = stream.write.into_inner(); - let s = from_utf8(&bytes[]).unwrap(); + let s = from_utf8(&bytes[..]).unwrap(); assert!(!s.contains("Content-Length:")); assert!(!s.contains("Transfer-Encoding:")); } @@ -199,7 +199,7 @@ mod tests { let stream = *req.body.end().unwrap() .into_inner().downcast::().ok().unwrap(); let bytes = stream.write.into_inner(); - let s = from_utf8(&bytes[]).unwrap(); + let s = from_utf8(&bytes[..]).unwrap(); assert!(!s.contains("Content-Length:")); assert!(!s.contains("Transfer-Encoding:")); } diff --git a/src/header/common/access_control/allow_origin.rs b/src/header/common/access_control/allow_origin.rs index 893b522b47..b7bde04d0e 100644 --- a/src/header/common/access_control/allow_origin.rs +++ b/src/header/common/access_control/allow_origin.rs @@ -29,7 +29,7 @@ impl header::Header for AccessControlAllowOrigin { fn parse_header(raw: &[Vec]) -> Option { if raw.len() == 1 { - match str::from_utf8(unsafe { &raw[].get_unchecked(0)[] }) { + match str::from_utf8(unsafe { &raw.get_unchecked(0)[..] }) { Ok(s) => { if s == "*" { Some(AccessControlAllowOrigin::AllowStar) diff --git a/src/header/common/authorization.rs b/src/header/common/authorization.rs index cd9844f245..1c891c51c8 100644 --- a/src/header/common/authorization.rs +++ b/src/header/common/authorization.rs @@ -29,7 +29,7 @@ impl Header for Authorization { fn parse_header(raw: &[Vec]) -> Option> { if raw.len() == 1 { - match (from_utf8(unsafe { &raw[].get_unchecked(0)[] }), Scheme::scheme(None::)) { + match (from_utf8(unsafe { &raw.get_unchecked(0)[..] }), Scheme::scheme(None::)) { (Ok(header), Some(scheme)) if header.starts_with(scheme) && header.len() > scheme.len() + 1 => { header[scheme.len() + 1..].parse::().map(|s| Authorization(s)).ok() @@ -96,7 +96,7 @@ impl Scheme for Basic { let mut text = self.username.clone(); text.push(':'); if let Some(ref pass) = self.password { - text.push_str(&pass[]); + text.push_str(&pass[..]); } write!(f, "{}", text.as_bytes().to_base64(Config { char_set: Standard, @@ -113,7 +113,7 @@ impl FromStr for Basic { match s.from_base64() { Ok(decoded) => match String::from_utf8(decoded) { Ok(text) => { - let mut parts = &mut text[].split(':'); + let mut parts = &mut text.split(':'); let user = match parts.next() { Some(part) => part.to_string(), None => return Err(()) @@ -160,7 +160,7 @@ mod tests { #[test] fn test_raw_auth_parse() { let headers = Headers::from_raw(&mut mem("Authorization: foo bar baz\r\n\r\n")).unwrap(); - assert_eq!(&headers.get::>().unwrap().0[], "foo bar baz"); + assert_eq!(&headers.get::>().unwrap().0[..], "foo bar baz"); } #[test] @@ -181,7 +181,7 @@ mod tests { fn test_basic_auth_parse() { let headers = Headers::from_raw(&mut mem("Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==\r\n\r\n")).unwrap(); let auth = headers.get::>().unwrap(); - assert_eq!(&auth.0.username[], "Aladdin"); + assert_eq!(&auth.0.username[..], "Aladdin"); assert_eq!(auth.0.password, Some("open sesame".to_string())); } diff --git a/src/header/common/cache_control.rs b/src/header/common/cache_control.rs index 50e4a4af4c..f1def9e112 100644 --- a/src/header/common/cache_control.rs +++ b/src/header/common/cache_control.rs @@ -16,7 +16,7 @@ impl Header for CacheControl { fn parse_header(raw: &[Vec]) -> Option { let directives = raw.iter() - .filter_map(|line| from_one_comma_delimited(&line[])) + .filter_map(|line| from_one_comma_delimited(&line[..])) .collect::>>() .concat(); if directives.len() > 0 { @@ -29,7 +29,7 @@ impl Header for CacheControl { impl HeaderFormat for CacheControl { fn fmt_header(&self, fmt: &mut fmt::Formatter) -> fmt::Result { - fmt_comma_delimited(fmt, &self[]) + fmt_comma_delimited(fmt, &self[..]) } } @@ -88,7 +88,7 @@ impl fmt::Display for CacheDirective { ProxyRevalidate => "proxy-revalidate", SMaxAge(secs) => return write!(f, "s-maxage={}", secs), - Extension(ref name, None) => &name[], + Extension(ref name, None) => &name[..], Extension(ref name, Some(ref arg)) => return write!(f, "{}={}", name, arg), }, f) diff --git a/src/header/common/connection.rs b/src/header/common/connection.rs index 3c1dd88dd2..981c30a8db 100644 --- a/src/header/common/connection.rs +++ b/src/header/common/connection.rs @@ -64,7 +64,7 @@ impl Header for Connection { impl HeaderFormat for Connection { fn fmt_header(&self, fmt: &mut fmt::Formatter) -> fmt::Result { let Connection(ref parts) = *self; - fmt_comma_delimited(fmt, &parts[]) + fmt_comma_delimited(fmt, &parts[..]) } } diff --git a/src/header/common/cookie.rs b/src/header/common/cookie.rs index fa68ab2d18..16df67e5de 100644 --- a/src/header/common/cookie.rs +++ b/src/header/common/cookie.rs @@ -26,7 +26,7 @@ impl Header for Cookie { fn parse_header(raw: &[Vec]) -> Option { let mut cookies = Vec::with_capacity(raw.len()); for cookies_raw in raw.iter() { - match from_utf8(&cookies_raw[]) { + match from_utf8(&cookies_raw[..]) { Ok(cookies_str) => { for cookie_str in cookies_str.split(';') { match cookie_str.trim().parse() { @@ -82,7 +82,7 @@ impl Cookie { #[test] fn test_parse() { - let h = Header::parse_header(&[b"foo=bar; baz=quux".to_vec()][]); + let h = Header::parse_header(&[b"foo=bar; baz=quux".to_vec()][..]); let c1 = CookiePair::new("foo".to_string(), "bar".to_string()); let c2 = CookiePair::new("baz".to_string(), "quux".to_string()); assert_eq!(h, Some(Cookie(vec![c1, c2]))); @@ -99,7 +99,7 @@ fn test_fmt() { let mut headers = Headers::new(); headers.set(cookie_header); - assert_eq!(&headers.to_string()[], "Cookie: foo=bar; baz=quux\r\n"); + assert_eq!(&headers.to_string()[..], "Cookie: foo=bar; baz=quux\r\n"); } #[test] diff --git a/src/header/common/host.rs b/src/header/common/host.rs index 6e0bb06d3d..c0c08ba568 100644 --- a/src/header/common/host.rs +++ b/src/header/common/host.rs @@ -28,7 +28,7 @@ impl Header for Host { // FIXME: use rust-url to parse this // /~https://github.com/servo/rust-url/issues/42 let idx = { - let slice = &s[]; + let slice = &s[..]; if slice.char_at(1) == '[' { match slice.rfind(']') { Some(idx) => { diff --git a/src/header/common/if_match.rs b/src/header/common/if_match.rs index 30a3a802bf..467ac640a8 100644 --- a/src/header/common/if_match.rs +++ b/src/header/common/if_match.rs @@ -25,7 +25,7 @@ impl Header for IfMatch { fn parse_header(raw: &[Vec]) -> Option { from_one_raw_str(raw).and_then(|s: String| { - let slice = &s[]; + let slice = &s[..]; match slice { "" => None, "*" => Some(IfMatch::Any), @@ -39,7 +39,7 @@ impl HeaderFormat for IfMatch { fn fmt_header(&self, fmt: &mut fmt::Formatter) -> fmt::Result { match *self { IfMatch::Any => write!(fmt, "*"), - IfMatch::EntityTags(ref fields) => fmt_comma_delimited(fmt, &fields[]) + IfMatch::EntityTags(ref fields) => fmt_comma_delimited(fmt, &fields[..]) } } } diff --git a/src/header/common/if_none_match.rs b/src/header/common/if_none_match.rs index ef1211d841..8159ed3495 100644 --- a/src/header/common/if_none_match.rs +++ b/src/header/common/if_none_match.rs @@ -33,7 +33,7 @@ impl Header for IfNoneMatch { fn parse_header(raw: &[Vec]) -> Option { from_one_raw_str(raw).and_then(|s: String| { - let slice = &s[]; + let slice = &s[..]; match slice { "" => None, "*" => Some(IfNoneMatch::Any), @@ -47,7 +47,7 @@ impl HeaderFormat for IfNoneMatch { fn fmt_header(&self, fmt: &mut fmt::Formatter) -> fmt::Result { match *self { IfNoneMatch::Any => { write!(fmt, "*") } - IfNoneMatch::EntityTags(ref fields) => { fmt_comma_delimited(fmt, &fields[]) } + IfNoneMatch::EntityTags(ref fields) => { fmt_comma_delimited(fmt, &fields[..]) } } } } diff --git a/src/header/common/mod.rs b/src/header/common/mod.rs index 45b2976515..091dc17354 100644 --- a/src/header/common/mod.rs +++ b/src/header/common/mod.rs @@ -50,13 +50,13 @@ macro_rules! bench_header( fn bench_parse(b: &mut Bencher) { let val = $value; b.iter(|| { - let _: $ty = Header::parse_header(&val[]).unwrap(); + let _: $ty = Header::parse_header(&val[..]).unwrap(); }); } #[bench] fn bench_format(b: &mut Bencher) { - let val: $ty = Header::parse_header(&$value[]).unwrap(); + let val: $ty = Header::parse_header(&$value[..]).unwrap(); let fmt = HeaderFormatter(&val); b.iter(|| { format!("{}", fmt); @@ -102,7 +102,7 @@ macro_rules! impl_list_header( impl $crate::header::HeaderFormat for $from { fn fmt_header(&self, fmt: &mut ::std::fmt::Formatter) -> ::std::fmt::Result { - $crate::header::parsing::fmt_comma_delimited(fmt, &self[]) + $crate::header::parsing::fmt_comma_delimited(fmt, &self[..]) } } diff --git a/src/header/common/pragma.rs b/src/header/common/pragma.rs index d9551d9202..b080c412af 100644 --- a/src/header/common/pragma.rs +++ b/src/header/common/pragma.rs @@ -31,7 +31,7 @@ impl Header for Pragma { fn parse_header(raw: &[Vec]) -> Option { parsing::from_one_raw_str(raw).and_then(|s: String| { - let slice = &s.to_ascii_lowercase()[]; + let slice = &s.to_ascii_lowercase()[..]; match slice { "" => None, "no-cache" => Some(Pragma::NoCache), diff --git a/src/header/common/set_cookie.rs b/src/header/common/set_cookie.rs index a0e37bc15f..419e4c8f31 100644 --- a/src/header/common/set_cookie.rs +++ b/src/header/common/set_cookie.rs @@ -23,7 +23,7 @@ impl Header for SetCookie { fn parse_header(raw: &[Vec]) -> Option { let mut set_cookies = Vec::with_capacity(raw.len()); for set_cookies_raw in raw.iter() { - match from_utf8(&set_cookies_raw[]) { + match from_utf8(&set_cookies_raw[..]) { Ok(s) if !s.is_empty() => { match s.parse() { Ok(cookie) => set_cookies.push(cookie), @@ -76,7 +76,7 @@ impl SetCookie { #[test] fn test_parse() { - let h = Header::parse_header(&[b"foo=bar; HttpOnly".to_vec()][]); + let h = Header::parse_header(&[b"foo=bar; HttpOnly".to_vec()][..]); let mut c1 = Cookie::new("foo".to_string(), "bar".to_string()); c1.httponly = true; @@ -94,7 +94,7 @@ fn test_fmt() { let mut headers = Headers::new(); headers.set(cookies); - assert_eq!(&headers.to_string()[], "Set-Cookie: foo=bar; HttpOnly; Path=/p\r\nSet-Cookie: baz=quux; Path=/\r\n"); + assert_eq!(&headers.to_string()[..], "Set-Cookie: foo=bar; HttpOnly; Path=/p\r\nSet-Cookie: baz=quux; Path=/\r\n"); } #[test] diff --git a/src/header/common/upgrade.rs b/src/header/common/upgrade.rs index 9347d3a2da..e6260a37e0 100644 --- a/src/header/common/upgrade.rs +++ b/src/header/common/upgrade.rs @@ -55,7 +55,7 @@ impl Header for Upgrade { impl HeaderFormat for Upgrade { fn fmt_header(&self, fmt: &mut fmt::Formatter) -> fmt::Result { let Upgrade(ref parts) = *self; - fmt_comma_delimited(fmt, &parts[]) + fmt_comma_delimited(fmt, &parts[..]) } } diff --git a/src/header/common/vary.rs b/src/header/common/vary.rs index 52482e7359..ff19ec6036 100644 --- a/src/header/common/vary.rs +++ b/src/header/common/vary.rs @@ -21,7 +21,7 @@ impl Header for Vary { fn parse_header(raw: &[Vec]) -> Option { from_one_raw_str(raw).and_then(|s: String| { - let slice = &s[]; + let slice = &s[..]; match slice { "" => None, "*" => Some(Vary::Any), @@ -35,7 +35,7 @@ impl HeaderFormat for Vary { fn fmt_header(&self, fmt: &mut fmt::Formatter) -> fmt::Result { match *self { Vary::Any => { write!(fmt, "*") } - Vary::Headers(ref fields) => { fmt_comma_delimited(fmt, &fields[]) } + Vary::Headers(ref fields) => { fmt_comma_delimited(fmt, &fields[..]) } } } } diff --git a/src/header/mod.rs b/src/header/mod.rs index baaa60cf7e..8175c55d6e 100644 --- a/src/header/mod.rs +++ b/src/header/mod.rs @@ -139,7 +139,7 @@ impl Headers { loop { match try!(http::read_header(rdr)) { Some((name, value)) => { - debug!("raw header: {:?}={:?}", name, &value[]); + debug!("raw header: {:?}={:?}", name, &value[..]); count += (name.len() + value.len()) as u32; if count > MAX_HEADERS_LENGTH { debug!("Max header size reached, aborting"); @@ -183,14 +183,14 @@ impl Headers { .get(&UniCase(Borrowed(unsafe { mem::transmute::<&str, &str>(name) }))) .and_then(|item| { if let Some(ref raw) = *item.raw { - return Some(&raw[]); + return Some(&raw[..]); } let raw = vec![item.typed.as_ref().unwrap().to_string().into_bytes()]; item.raw.set(raw); let raw = item.raw.as_ref().unwrap(); - Some(&raw[]) + Some(&raw[..]) }) } @@ -451,7 +451,7 @@ fn get_or_parse_mut(item: &mut Item) -> Option<&mut It fn parse(item: &Item) { match *item.raw { - Some(ref raw) => match Header::parse_header(&raw[]) { + Some(ref raw) => match Header::parse_header(&raw[..]) { Some::(h) => item.typed.set(box h as Box), None => () }, @@ -476,7 +476,7 @@ impl fmt::Display for Item { None => match *self.raw { Some(ref raw) => { for part in raw.iter() { - match from_utf8(&part[]) { + match from_utf8(&part[..]) { Ok(s) => try!(fmt.write_str(s)), Err(e) => { error!("raw header value is not utf8. header={:?}, error={:?}", part, e); @@ -595,7 +595,7 @@ mod tests { return None; } // we JUST checked that raw.len() == 1, so raw[0] WILL exist. - match from_utf8(unsafe { &raw[].get_unchecked(0)[] }) { + match from_utf8(unsafe { &raw.get_unchecked(0)[..] }) { Ok(s) => FromStr::from_str(s).ok(), Err(_) => None }.map(|u| CrazyLength(Some(false), u)) @@ -671,7 +671,7 @@ mod tests { let mut headers = Headers::new(); headers.set(ContentLength(10)); headers.set_raw("content-LENGTH", vec![b"20".to_vec()]); - assert_eq!(headers.get_raw("Content-length").unwrap(), &[b"20".to_vec()][]); + assert_eq!(headers.get_raw("Content-length").unwrap(), &[b"20".to_vec()][..]); assert_eq!(headers.get(), Some(&ContentLength(20))); } diff --git a/src/header/parsing.rs b/src/header/parsing.rs index 16964f261c..5727a2b9cc 100644 --- a/src/header/parsing.rs +++ b/src/header/parsing.rs @@ -11,7 +11,7 @@ pub fn from_one_raw_str(raw: &[Vec]) -> Option { return None; } // we JUST checked that raw.len() == 1, so raw[0] WILL exist. - match str::from_utf8(&raw[0][]) { + match str::from_utf8(&raw[0][..]) { Ok(s) => str::FromStr::from_str(s).ok(), Err(_) => None } @@ -24,7 +24,7 @@ pub fn from_comma_delimited(raw: &[Vec]) -> Option> return None; } // we JUST checked that raw.len() == 1, so raw[0] WILL exist. - from_one_comma_delimited(&raw[0][]) + from_one_comma_delimited(&raw[0][..]) } /// Reads a comma-delimited raw string into a Vec. diff --git a/src/header/shared/entity.rs b/src/header/shared/entity.rs index 740ba2abab..2388b677d8 100644 --- a/src/header/shared/entity.rs +++ b/src/header/shared/entity.rs @@ -42,7 +42,7 @@ impl FromStr for EntityTag { type Err = (); fn from_str(s: &str) -> Result { let length: usize = s.len(); - let slice = &s[]; + let slice = &s[..]; // Early exits: // 1. The string is empty, or, diff --git a/src/header/shared/quality_item.rs b/src/header/shared/quality_item.rs index a83060d60f..199ef9a72f 100644 --- a/src/header/shared/quality_item.rs +++ b/src/header/shared/quality_item.rs @@ -39,7 +39,7 @@ impl fmt::Display for QualityItem { write!(f, "{}", self.item) } else { write!(f, "{}; q={}", self.item, - format!("{:.3}", self.quality).trim_right_matches(&['0', '.'][])) + format!("{:.3}", self.quality).trim_right_matches(&['0', '.'][..])) } } } diff --git a/src/http.rs b/src/http.rs index 2d081bcb43..f191dd7dba 100644 --- a/src/http.rs +++ b/src/http.rs @@ -395,7 +395,7 @@ pub fn read_method(stream: &mut R) -> HttpResult { debug!("maybe_method = {:?}", maybe_method); - match (maybe_method, &buf[]) { + match (maybe_method, &buf[..]) { (Some(method), _) => Ok(method), (None, ext) => { // We already checked that the buffer is ASCII @@ -664,7 +664,7 @@ pub fn read_status(stream: &mut R) -> HttpResult { } } - let reason = match str::from_utf8(&buf[]) { + let reason = match str::from_utf8(&buf[..]) { Ok(s) => s.trim(), Err(_) => return Err(HttpStatusError) };