Auto merge of #8187 - alexcrichton:less-loop, r=ehuss

Remove unnecessary loop in `maybe_spurious`

The `anyhow` library's error already does a recursive check when we use
`Error::downcast_ref`, so there's no need to explicitly do this on the
`chain` of errors.
This commit is contained in:
bors 2020-04-30 21:48:21 +00:00
commit 258c89644c

View File

@ -34,14 +34,13 @@ impl<'a> Retry<'a> {
} }
fn maybe_spurious(err: &Error) -> bool { fn maybe_spurious(err: &Error) -> bool {
for e in err.chain() { if let Some(git_err) = err.downcast_ref::<git2::Error>() {
if let Some(git_err) = e.downcast_ref::<git2::Error>() {
match git_err.class() { match git_err.class() {
git2::ErrorClass::Net | git2::ErrorClass::Os => return true, git2::ErrorClass::Net | git2::ErrorClass::Os => return true,
_ => (), _ => (),
} }
} }
if let Some(curl_err) = e.downcast_ref::<curl::Error>() { if let Some(curl_err) = err.downcast_ref::<curl::Error>() {
if curl_err.is_couldnt_connect() if curl_err.is_couldnt_connect()
|| curl_err.is_couldnt_resolve_proxy() || curl_err.is_couldnt_resolve_proxy()
|| curl_err.is_couldnt_resolve_host() || curl_err.is_couldnt_resolve_host()
@ -55,12 +54,11 @@ fn maybe_spurious(err: &Error) -> bool {
return true; return true;
} }
} }
if let Some(not_200) = e.downcast_ref::<HttpNot200>() { if let Some(not_200) = err.downcast_ref::<HttpNot200>() {
if 500 <= not_200.code && not_200.code < 600 { if 500 <= not_200.code && not_200.code < 600 {
return true; return true;
} }
} }
}
false false
} }