diff --git a/src/cargo/util/network.rs b/src/cargo/util/network.rs index b35e1aa51..675e8afb7 100644 --- a/src/cargo/util/network.rs +++ b/src/cargo/util/network.rs @@ -34,31 +34,29 @@ impl<'a> Retry<'a> { } fn maybe_spurious(err: &Error) -> bool { - for e in err.chain() { - if let Some(git_err) = e.downcast_ref::() { - match git_err.class() { - git2::ErrorClass::Net | git2::ErrorClass::Os => return true, - _ => (), - } + if let Some(git_err) = err.downcast_ref::() { + match git_err.class() { + git2::ErrorClass::Net | git2::ErrorClass::Os => return true, + _ => (), } - if let Some(curl_err) = e.downcast_ref::() { - if curl_err.is_couldnt_connect() - || curl_err.is_couldnt_resolve_proxy() - || curl_err.is_couldnt_resolve_host() - || curl_err.is_operation_timedout() - || curl_err.is_recv_error() - || curl_err.is_http2_error() - || curl_err.is_http2_stream_error() - || curl_err.is_ssl_connect_error() - || curl_err.is_partial_file() - { - return true; - } + } + if let Some(curl_err) = err.downcast_ref::() { + if curl_err.is_couldnt_connect() + || curl_err.is_couldnt_resolve_proxy() + || curl_err.is_couldnt_resolve_host() + || curl_err.is_operation_timedout() + || curl_err.is_recv_error() + || curl_err.is_http2_error() + || curl_err.is_http2_stream_error() + || curl_err.is_ssl_connect_error() + || curl_err.is_partial_file() + { + return true; } - if let Some(not_200) = e.downcast_ref::() { - if 500 <= not_200.code && not_200.code < 600 { - return true; - } + } + if let Some(not_200) = err.downcast_ref::() { + if 500 <= not_200.code && not_200.code < 600 { + return true; } } false