[INFO] updating cached repository thatlittlegit/webcrawler [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/thatlittlegit/webcrawler [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/thatlittlegit/webcrawler" "work/ex/clippy-test-run/sources/stable/gh/thatlittlegit/webcrawler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/thatlittlegit/webcrawler'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/thatlittlegit/webcrawler" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/thatlittlegit/webcrawler"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/thatlittlegit/webcrawler'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 94de54a5aef07dbac6723d479daedb669e207f21 [INFO] sha for GitHub repo thatlittlegit/webcrawler: 94de54a5aef07dbac6723d479daedb669e207f21 [INFO] validating manifest of thatlittlegit/webcrawler on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of thatlittlegit/webcrawler on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing thatlittlegit/webcrawler [INFO] finished frobbing thatlittlegit/webcrawler [INFO] frobbed toml for thatlittlegit/webcrawler written to work/ex/clippy-test-run/sources/stable/gh/thatlittlegit/webcrawler/Cargo.toml [INFO] started frobbing thatlittlegit/webcrawler [INFO] finished frobbing thatlittlegit/webcrawler [INFO] frobbed toml for thatlittlegit/webcrawler written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/thatlittlegit/webcrawler/Cargo.toml [INFO] crate thatlittlegit/webcrawler has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting thatlittlegit/webcrawler against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/thatlittlegit/webcrawler:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 23b66d71d8736733a2104574fa7a16ec9d43cbcde8dcfd5dbbacfb7966b85f70 [INFO] running `"docker" "start" "-a" "23b66d71d8736733a2104574fa7a16ec9d43cbcde8dcfd5dbbacfb7966b85f70"` [INFO] [stderr] Compiling cc v1.0.10 [INFO] [stderr] Compiling serde v1.0.42 [INFO] [stderr] Checking base64 v0.9.0 [INFO] [stderr] Compiling syn v0.13.1 [INFO] [stderr] Checking tokio-threadpool v0.1.2 [INFO] [stderr] Checking env_logger v0.5.9 [INFO] [stderr] Checking libflate v0.1.14 [INFO] [stderr] Compiling string_cache_codegen v0.4.1 [INFO] [stderr] Checking tokio v0.1.5 [INFO] [stderr] Compiling openssl-sys v0.9.28 [INFO] [stderr] Compiling string_cache v0.7.2 [INFO] [stderr] Checking tokio-core v0.1.17 [INFO] [stderr] Compiling openssl v0.9.24 [INFO] [stderr] Checking tokio-proto v0.1.1 [INFO] [stderr] Checking hyper v0.11.25 [INFO] [stderr] Checking native-tls v0.1.5 [INFO] [stderr] Checking tokio-tls v0.1.4 [INFO] [stderr] Compiling serde_json v1.0.16 [INFO] [stderr] Checking hyper-tls v0.1.3 [INFO] [stderr] Checking serde_urlencoded v0.5.1 [INFO] [stderr] Compiling serde_derive_internals v0.23.1 [INFO] [stderr] Compiling html5ever v0.22.2 [INFO] [stderr] Checking reqwest v0.8.5 [INFO] [stderr] Compiling serde_derive v1.0.42 [INFO] [stderr] Checking robotparser v0.10.1 [INFO] [stderr] Compiling markup5ever v0.7.2 [INFO] [stderr] Checking ammonia v1.1.0 [INFO] [stderr] Checking crawler v1.0.0 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/html.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | return TokenSinkResult::Continue; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `TokenSinkResult::Continue` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/html.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | return Some((index_url, found_urls, "html".to_string(), meta)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((index_url, found_urls, "html".to_string(), meta))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / return Some( [INFO] [stderr] 48 | | _returned_vec [INFO] [stderr] 49 | | .iter() [INFO] [stderr] 50 | | .map(|x| { [INFO] [stderr] ... | [INFO] [stderr] 55 | | .collect(), [INFO] [stderr] 56 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 47 | Some( [INFO] [stderr] 48 | _returned_vec [INFO] [stderr] 49 | .iter() [INFO] [stderr] 50 | .map(|x| { [INFO] [stderr] 51 | remove_get_params(Url::parse(x).unwrap()) [INFO] [stderr] 52 | .as_str() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | return url; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `url` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | return Some(returned_url.as_str().to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(returned_url.as_str().to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/html.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | return TokenSinkResult::Continue; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `TokenSinkResult::Continue` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/html.rs:147:5 [INFO] [stderr] | [INFO] [stderr] 147 | return Some((index_url, found_urls, "html".to_string(), meta)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some((index_url, found_urls, "html".to_string(), meta))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:47:5 [INFO] [stderr] | [INFO] [stderr] 47 | / return Some( [INFO] [stderr] 48 | | _returned_vec [INFO] [stderr] 49 | | .iter() [INFO] [stderr] 50 | | .map(|x| { [INFO] [stderr] ... | [INFO] [stderr] 55 | | .collect(), [INFO] [stderr] 56 | | ); [INFO] [stderr] | |______^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 47 | Some( [INFO] [stderr] 48 | _returned_vec [INFO] [stderr] 49 | .iter() [INFO] [stderr] 50 | .map(|x| { [INFO] [stderr] 51 | remove_get_params(Url::parse(x).unwrap()) [INFO] [stderr] 52 | .as_str() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:119:5 [INFO] [stderr] | [INFO] [stderr] 119 | return url; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `url` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:161:9 [INFO] [stderr] | [INFO] [stderr] 161 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:177:9 [INFO] [stderr] | [INFO] [stderr] 177 | return Some(returned_url.as_str().to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(returned_url.as_str().to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:180:9 [INFO] [stderr] | [INFO] [stderr] 180 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/url_utils.rs:195:5 [INFO] [stderr] | [INFO] [stderr] 195 | return true; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `true` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:46:5 [INFO] [stderr] | [INFO] [stderr] 46 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:63:5 [INFO] [stderr] | [INFO] [stderr] 63 | return None; [INFO] [stderr] | ^^^^^^^^^^^^ help: remove `return` as shown: `None` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:271:13 [INFO] [stderr] | [INFO] [stderr] 271 | return inp.to_string(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `inp.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/html.rs:38:6 [INFO] [stderr] | [INFO] [stderr] 38 | ) -> Option<(bool, Vec, String, Vec<(String, String)>)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/html.rs:102:69 [INFO] [stderr] | [INFO] [stderr] 102 | for robots_command in attribute.value.split(",").map(|x| x.to_lowercase()) { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/html.rs:116:51 [INFO] [stderr] | [INFO] [stderr] 116 | } else if tag.kind == StartTag && tag.attrs.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!tag.attrs.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/url_utils.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | if !_parsed_found_url.is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_parsed_found_url.is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:4:39 [INFO] [stderr] | [INFO] [stderr] 4 | let found_url = attribute.1.split("#").nth(0).unwrap().to_string(); [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/url_utils.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 7 | if found_url.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `found_url.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | } else if found_url.starts_with(".") || found_url.starts_with("?") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:16:67 [INFO] [stderr] | [INFO] [stderr] 16 | } else if found_url.starts_with(".") || found_url.starts_with("?") { [INFO] [stderr] | ^^^ help: try using a char instead: `'?'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:18:37 [INFO] [stderr] | [INFO] [stderr] 18 | } else if found_url.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:99:72 [INFO] [stderr] | [INFO] [stderr] 99 | for param in url.query().unwrap_or("").replace("&", "&").split("&") { [INFO] [stderr] | ^^^ help: try using a char instead: `'&'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:114:25 [INFO] [stderr] | [INFO] [stderr] 114 | if result.ends_with("&") { [INFO] [stderr] | ^^^ help: try using a char instead: `'&'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/url_utils.rs:122:82 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn add_urls_to_vec(urls: Option>, into: &mut Vec, cache: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/url_utils.rs:184:53 [INFO] [stderr] | [INFO] [stderr] 184 | pub fn check_if_is_in_url_list(object: &str, array: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:26:6 [INFO] [stderr] | [INFO] [stderr] 26 | ) -> Option<(bool, Vec, String, Vec<(String, String)>)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if String::from(object) == entry.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `object` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/html.rs:38:6 [INFO] [stderr] | [INFO] [stderr] 38 | ) -> Option<(bool, Vec, String, Vec<(String, String)>)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:97:12 [INFO] [stderr] | [INFO] [stderr] 97 | if future_urls.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `future_urls.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:134:29 [INFO] [stderr] | [INFO] [stderr] 134 | robotsok = (String::from(original_hostname), robotstxt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `original_hostname` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:149:48 [INFO] [stderr] | [INFO] [stderr] 149 | let text = response.text().unwrap_or("???".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "???".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/html.rs:102:69 [INFO] [stderr] | [INFO] [stderr] 102 | for robots_command in attribute.value.split(",").map(|x| x.to_lowercase()) { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/html.rs:116:51 [INFO] [stderr] | [INFO] [stderr] 116 | } else if tag.kind == StartTag && tag.attrs.len() != 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!tag.attrs.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/url_utils.rs:14:8 [INFO] [stderr] | [INFO] [stderr] 14 | if !_parsed_found_url.is_err() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `_parsed_found_url.is_ok()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:4:39 [INFO] [stderr] | [INFO] [stderr] 4 | let found_url = attribute.1.split("#").nth(0).unwrap().to_string(); [INFO] [stderr] | ^^^ help: try using a char instead: `'#'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/url_utils.rs:7:8 [INFO] [stderr] | [INFO] [stderr] 7 | if found_url.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `found_url.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:16:37 [INFO] [stderr] | [INFO] [stderr] 16 | } else if found_url.starts_with(".") || found_url.starts_with("?") { [INFO] [stderr] | ^^^ help: try using a char instead: `'.'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:16:67 [INFO] [stderr] | [INFO] [stderr] 16 | } else if found_url.starts_with(".") || found_url.starts_with("?") { [INFO] [stderr] | ^^^ help: try using a char instead: `'?'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:18:37 [INFO] [stderr] | [INFO] [stderr] 18 | } else if found_url.starts_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:99:72 [INFO] [stderr] | [INFO] [stderr] 99 | for param in url.query().unwrap_or("").replace("&", "&").split("&") { [INFO] [stderr] | ^^^ help: try using a char instead: `'&'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/url_utils.rs:114:25 [INFO] [stderr] | [INFO] [stderr] 114 | if result.ends_with("&") { [INFO] [stderr] | ^^^ help: try using a char instead: `'&'` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/url_utils.rs:122:82 [INFO] [stderr] | [INFO] [stderr] 122 | pub fn add_urls_to_vec(urls: Option>, into: &mut Vec, cache: &Vec) { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/url_utils.rs:184:53 [INFO] [stderr] | [INFO] [stderr] 184 | pub fn check_if_is_in_url_list(object: &str, array: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/main.rs:26:6 [INFO] [stderr] | [INFO] [stderr] 26 | ) -> Option<(bool, Vec, String, Vec<(String, String)>)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: this creates an owned instance just for comparison [INFO] [stderr] --> src/main.rs:56:12 [INFO] [stderr] | [INFO] [stderr] 56 | if String::from(object) == entry.0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `object` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_owned)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_owned [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/main.rs:97:12 [INFO] [stderr] | [INFO] [stderr] 97 | if future_urls.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `future_urls.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:134:29 [INFO] [stderr] | [INFO] [stderr] 134 | robotsok = (String::from(original_hostname), robotstxt); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `original_hostname` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/main.rs:149:48 [INFO] [stderr] | [INFO] [stderr] 149 | let text = response.text().unwrap_or("???".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "???".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 15s [INFO] running `"docker" "inspect" "23b66d71d8736733a2104574fa7a16ec9d43cbcde8dcfd5dbbacfb7966b85f70"` [INFO] running `"docker" "rm" "-f" "23b66d71d8736733a2104574fa7a16ec9d43cbcde8dcfd5dbbacfb7966b85f70"` [INFO] [stdout] 23b66d71d8736733a2104574fa7a16ec9d43cbcde8dcfd5dbbacfb7966b85f70