[INFO] crate monto 0.1.12 is already in cache [INFO] extracting crate monto 0.1.12 into work/ex/clippy-test-run/sources/stable/reg/monto/0.1.12 [INFO] extracting crate monto 0.1.12 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/monto/0.1.12 [INFO] validating manifest of monto-0.1.12 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 monto-0.1.12 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 monto-0.1.12 [INFO] finished frobbing monto-0.1.12 [INFO] frobbed toml for monto-0.1.12 written to work/ex/clippy-test-run/sources/stable/reg/monto/0.1.12/Cargo.toml [INFO] started frobbing monto-0.1.12 [INFO] finished frobbing monto-0.1.12 [INFO] frobbed toml for monto-0.1.12 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/monto/0.1.12/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 monto-0.1.12 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/monto/0.1.12:/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] 5beb1e40f398a6acfb2b8c02b896deea637bf4e464310a4d5a91f50b3d9d1d6e [INFO] running `"docker" "start" "-a" "5beb1e40f398a6acfb2b8c02b896deea637bf4e464310a4d5a91f50b3d9d1d6e"` [INFO] [stderr] Compiling shell32-sys v0.1.2 [INFO] [stderr] Checking itertools v0.6.5 [INFO] [stderr] Checking pretty_logger v0.1.8 [INFO] [stderr] Checking inotify v0.6.1 [INFO] [stderr] Checking tokio-proto v0.1.1 [INFO] [stderr] Checking dirs v0.3.1 [INFO] [stderr] Checking notify v4.0.7 [INFO] [stderr] Checking hyper v0.11.27 [INFO] [stderr] Checking monto v0.1.12 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broker/resolve/cache.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | watcher: watcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `watcher` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broker/resolve/cache.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/common/messages.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/service/serve.rs:102:49 [INFO] [stderr] | [INFO] [stderr] 102 | notices: notices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `notices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broker/resolve/cache.rs:32:13 [INFO] [stderr] | [INFO] [stderr] 32 | watcher: watcher, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `watcher` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/broker/resolve/cache.rs:104:21 [INFO] [stderr] | [INFO] [stderr] 104 | path: path, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `path` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/common/messages.rs:83:17 [INFO] [stderr] | [INFO] [stderr] 83 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/service/serve.rs:102:49 [INFO] [stderr] | [INFO] [stderr] 102 | notices: notices, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `notices` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/broker/resolve/mod.rs:35:16 [INFO] [stderr] | [INFO] [stderr] 35 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 36 | | if let Some(service) = broker.find_service(&si) { [INFO] [stderr] 37 | | Box::new(service.request(pi.clone(), &ps).then(move |r| match r { [INFO] [stderr] 38 | | Ok(sp) => Box::new(ok(sp.product)), [INFO] [stderr] ... | [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 35 | } else if let Some(service) = broker.find_service(&si) { [INFO] [stderr] 36 | Box::new(service.request(pi.clone(), &ps).then(move |r| match r { [INFO] [stderr] 37 | Ok(sp) => Box::new(ok(sp.product)), [INFO] [stderr] 38 | Err(RequestError(e, _)) => { [INFO] [stderr] 39 | error!("{}", e); [INFO] [stderr] 40 | match e { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/service/config.rs:77:22 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(c) => return c, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `c` [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: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/broker/resolve/mod.rs:35:16 [INFO] [stderr] | [INFO] [stderr] 35 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 36 | | if let Some(service) = broker.find_service(&si) { [INFO] [stderr] 37 | | Box::new(service.request(pi.clone(), &ps).then(move |r| match r { [INFO] [stderr] 38 | | Ok(sp) => Box::new(ok(sp.product)), [INFO] [stderr] ... | [INFO] [stderr] 73 | | } [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 35 | } else if let Some(service) = broker.find_service(&si) { [INFO] [stderr] 36 | Box::new(service.request(pi.clone(), &ps).then(move |r| match r { [INFO] [stderr] 37 | Ok(sp) => Box::new(ok(sp.product)), [INFO] [stderr] 38 | Err(RequestError(e, _)) => { [INFO] [stderr] 39 | error!("{}", e); [INFO] [stderr] 40 | match e { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/broker/config.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | use std::env::home_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/service/config.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | use std::env::home_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/broker/config.rs:74:25 [INFO] [stderr] | [INFO] [stderr] 74 | .or_else(|| home_dir().and_then(Config::load_one)) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/service/config.rs:77:22 [INFO] [stderr] | [INFO] [stderr] 77 | Ok(c) => return c, [INFO] [stderr] | ^^^^^^^^ help: remove `return` as shown: `c` [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: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/service/config.rs:86:39 [INFO] [stderr] | [INFO] [stderr] 86 | match home_dir() { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/broker/config.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | use std::env::home_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/service/config.rs:74:13 [INFO] [stderr] | [INFO] [stderr] 74 | use std::env::home_dir; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/broker/config.rs:74:25 [INFO] [stderr] | [INFO] [stderr] 74 | .or_else(|| home_dir().and_then(Config::load_one)) [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/service/config.rs:86:39 [INFO] [stderr] | [INFO] [stderr] 86 | match home_dir() { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'hyper::server::server_proto::>::bind_connection': All usage of the tokio-proto crate is going away. [INFO] [stderr] --> src/broker/client/mod.rs:194:39 [INFO] [stderr] | [INFO] [stderr] 194 | self.http.bind_connection( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'hyper::server::server_proto::>::bind_connection': All usage of the tokio-proto crate is going away. [INFO] [stderr] --> src/broker/client/mod.rs:194:39 [INFO] [stderr] | [INFO] [stderr] 194 | self.http.bind_connection( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'hyper::server::server_proto::>::bind_connection': All usage of the tokio-proto crate is going away. [INFO] [stderr] --> src/service/serve.rs:171:39 [INFO] [stderr] | [INFO] [stderr] 171 | self.http.bind_connection( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'hyper::server::server_proto::>::bind_connection': All usage of the tokio-proto crate is going away. [INFO] [stderr] --> src/service/serve.rs:171:39 [INFO] [stderr] | [INFO] [stderr] 171 | self.http.bind_connection( [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/broker/client/mod.rs:78:37 [INFO] [stderr] | [INFO] [stderr] 78 | let path = uri.path().split("/").collect::>(); [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: single-character string constant used as pattern [INFO] [stderr] --> src/broker/client/mod.rs:78:37 [INFO] [stderr] | [INFO] [stderr] 78 | let path = uri.path().split("/").collect::>(); [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: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/broker/resolve/mod.rs:155:19 [INFO] [stderr] | [INFO] [stderr] 155 | fn from_cache(&self, pi: ProductIdentifier) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `from_*` usually take no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/broker/resolve/mod.rs:155:19 [INFO] [stderr] | [INFO] [stderr] 155 | fn from_cache(&self, pi: ProductIdentifier) -> Option { [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/client/mod.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new(config: Config, handle: Handle) -> Negotiation { [INFO] [stderr] 76 | | let scheme = "http"; // TODO TLS support. [INFO] [stderr] 77 | | [INFO] [stderr] 78 | | let base_url = format!("{}://{}:{}/monto/", scheme, config.host, config.port); [INFO] [stderr] ... | [INFO] [stderr] 111 | | Negotiation::new(base_url, http, cn, future) [INFO] [stderr] 112 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/client/mod.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | / pub fn new(config: Config, handle: Handle) -> Negotiation { [INFO] [stderr] 76 | | let scheme = "http"; // TODO TLS support. [INFO] [stderr] 77 | | [INFO] [stderr] 78 | | let base_url = format!("{}://{}:{}/monto/", scheme, config.host, config.port); [INFO] [stderr] ... | [INFO] [stderr] 111 | | Negotiation::new(base_url, http, cn, future) [INFO] [stderr] 112 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 47.46s [INFO] running `"docker" "inspect" "5beb1e40f398a6acfb2b8c02b896deea637bf4e464310a4d5a91f50b3d9d1d6e"` [INFO] running `"docker" "rm" "-f" "5beb1e40f398a6acfb2b8c02b896deea637bf4e464310a4d5a91f50b3d9d1d6e"` [INFO] [stdout] 5beb1e40f398a6acfb2b8c02b896deea637bf4e464310a4d5a91f50b3d9d1d6e