[INFO] crate solsa 0.1.7 is already in cache [INFO] extracting crate solsa 0.1.7 into work/ex/clippy-test-run/sources/stable/reg/solsa/0.1.7 [INFO] extracting crate solsa 0.1.7 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/solsa/0.1.7 [INFO] validating manifest of solsa-0.1.7 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 solsa-0.1.7 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 solsa-0.1.7 [INFO] finished frobbing solsa-0.1.7 [INFO] frobbed toml for solsa-0.1.7 written to work/ex/clippy-test-run/sources/stable/reg/solsa/0.1.7/Cargo.toml [INFO] started frobbing solsa-0.1.7 [INFO] finished frobbing solsa-0.1.7 [INFO] frobbed toml for solsa-0.1.7 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/solsa/0.1.7/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 solsa-0.1.7 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/solsa/0.1.7:/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] 2eab39c8c780119633d0e03c40deee0b4a10ae078d0e9a18a8fe10787116f3c3 [INFO] running `"docker" "start" "-a" "2eab39c8c780119633d0e03c40deee0b4a10ae078d0e9a18a8fe10787116f3c3"` [INFO] [stderr] Compiling pest_generator v2.1.0 [INFO] [stderr] Compiling pest_derive v2.1.0 [INFO] [stderr] Checking tera v0.11.20 [INFO] [stderr] Checking solsa v0.1.7 (/opt/crater/workdir) [INFO] [stderr] warning: lint name `single_match` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/main.rs:77:44 [INFO] [stderr] | [INFO] [stderr] 77 | #[cfg_attr(feature = "cargo-clippy", allow(single_match, cyclomatic_complexity))] [INFO] [stderr] | ^^^^^^^^^^^^ help: change it to: `clippy::single_match` [INFO] [stderr] [INFO] [stderr] warning: lint name `cyclomatic_complexity` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/main.rs:77:58 [INFO] [stderr] | [INFO] [stderr] 77 | #[cfg_attr(feature = "cargo-clippy", allow(single_match, cyclomatic_complexity))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::cyclomatic_complexity` [INFO] [stderr] [INFO] [stderr] warning: lint name `single_match` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/main.rs:77:44 [INFO] [stderr] | [INFO] [stderr] 77 | #[cfg_attr(feature = "cargo-clippy", allow(single_match, cyclomatic_complexity))] [INFO] [stderr] | ^^^^^^^^^^^^ help: change it to: `clippy::single_match` [INFO] [stderr] [INFO] [stderr] warning: lint name `cyclomatic_complexity` is deprecated and may not have an effect in the future. Also `cfg_attr(cargo-clippy)` won't be necessary anymore [INFO] [stderr] --> src/main.rs:77:58 [INFO] [stderr] | [INFO] [stderr] 77 | #[cfg_attr(feature = "cargo-clippy", allow(single_match, cyclomatic_complexity))] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: change it to: `clippy::cyclomatic_complexity` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:216:17 [INFO] [stderr] | [INFO] [stderr] 216 | ctx.add("solsa_version", crate_version!()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:217:17 [INFO] [stderr] | [INFO] [stderr] 217 | ctx.add("contract_file", cp_arc.as_ref()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:219:21 [INFO] [stderr] | [INFO] [stderr] 219 | ctx.add("source", &contents); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:223:60 [INFO] [stderr] | [INFO] [stderr] 223 | tools::SolcResponse::Success(j) => ctx.add("solc_out", &j), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:224:60 [INFO] [stderr] | [INFO] [stderr] 224 | tools::SolcResponse::Failure(s) => ctx.add("solc_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:230:62 [INFO] [stderr] | [INFO] [stderr] 230 | tools::SoliumResponse::Success(j) => ctx.add("solium_out", &j), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:231:62 [INFO] [stderr] | [INFO] [stderr] 231 | tools::SoliumResponse::Failure(s) => ctx.add("solium_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:237:63 [INFO] [stderr] | [INFO] [stderr] 237 | tools::MythrilResponse::Success(j) => ctx.add("myth_out", &j), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:238:63 [INFO] [stderr] | [INFO] [stderr] 238 | tools::MythrilResponse::Failure(s) => ctx.add("myth_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:245:29 [INFO] [stderr] | [INFO] [stderr] 245 | ctx.add("oyente_out", &j); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:246:29 [INFO] [stderr] | [INFO] [stderr] 246 | ctx.add("oyente_issues", &b) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:248:62 [INFO] [stderr] | [INFO] [stderr] 248 | tools::OyenteResponse::Failure(s) => ctx.add("oyente_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:216:17 [INFO] [stderr] | [INFO] [stderr] 216 | ctx.add("solsa_version", crate_version!()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:217:17 [INFO] [stderr] | [INFO] [stderr] 217 | ctx.add("contract_file", cp_arc.as_ref()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:219:21 [INFO] [stderr] | [INFO] [stderr] 219 | ctx.add("source", &contents); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:223:60 [INFO] [stderr] | [INFO] [stderr] 223 | tools::SolcResponse::Success(j) => ctx.add("solc_out", &j), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:224:60 [INFO] [stderr] | [INFO] [stderr] 224 | tools::SolcResponse::Failure(s) => ctx.add("solc_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:230:62 [INFO] [stderr] | [INFO] [stderr] 230 | tools::SoliumResponse::Success(j) => ctx.add("solium_out", &j), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:231:62 [INFO] [stderr] | [INFO] [stderr] 231 | tools::SoliumResponse::Failure(s) => ctx.add("solium_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:237:63 [INFO] [stderr] | [INFO] [stderr] 237 | tools::MythrilResponse::Success(j) => ctx.add("myth_out", &j), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:238:63 [INFO] [stderr] | [INFO] [stderr] 238 | tools::MythrilResponse::Failure(s) => ctx.add("myth_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:245:29 [INFO] [stderr] | [INFO] [stderr] 245 | ctx.add("oyente_out", &j); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:246:29 [INFO] [stderr] | [INFO] [stderr] 246 | ctx.add("oyente_issues", &b) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'tera::Context::add': Use `insert` instead to keep consistency with std collections [INFO] [stderr] --> src/main.rs:248:62 [INFO] [stderr] | [INFO] [stderr] 248 | tools::OyenteResponse::Failure(s) => ctx.add("oyente_err", &s), [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/main.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | / .collect::>() [INFO] [stderr] 60 | | .len(); [INFO] [stderr] | |______________^ help: replace with: `.count()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | / let mut contents = String::new(); [INFO] [stderr] 156 | | if include_source { [INFO] [stderr] 157 | | let mut cmd = docker_cmd!("solidity-flattener"); [INFO] [stderr] 158 | | contents = cmd.arg(&contract_path) [INFO] [stderr] ... | [INFO] [stderr] 168 | | .expect("Failed to read contract"); [INFO] [stderr] 169 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 155 | let contents = if include_source { ..; cmd.arg(&contract_path) [INFO] [stderr] 156 | .output() [INFO] [stderr] 157 | .ok() [INFO] [stderr] 158 | .and_then(|output| { [INFO] [stderr] 159 | if output.status.success() { [INFO] [stderr] 160 | String::from_utf8(output.stdout).ok() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/main.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | / .collect::>() [INFO] [stderr] 60 | | .len(); [INFO] [stderr] | |______________^ help: replace with: `.count()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:155:5 [INFO] [stderr] | [INFO] [stderr] 155 | / let mut contents = String::new(); [INFO] [stderr] 156 | | if include_source { [INFO] [stderr] 157 | | let mut cmd = docker_cmd!("solidity-flattener"); [INFO] [stderr] 158 | | contents = cmd.arg(&contract_path) [INFO] [stderr] ... | [INFO] [stderr] 168 | | .expect("Failed to read contract"); [INFO] [stderr] 169 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] help: it is more idiomatic to write [INFO] [stderr] | [INFO] [stderr] 155 | let contents = if include_source { ..; cmd.arg(&contract_path) [INFO] [stderr] 156 | .output() [INFO] [stderr] 157 | .ok() [INFO] [stderr] 158 | .and_then(|output| { [INFO] [stderr] 159 | if output.status.success() { [INFO] [stderr] 160 | String::from_utf8(output.stdout).ok() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 23.39s [INFO] running `"docker" "inspect" "2eab39c8c780119633d0e03c40deee0b4a10ae078d0e9a18a8fe10787116f3c3"` [INFO] running `"docker" "rm" "-f" "2eab39c8c780119633d0e03c40deee0b4a10ae078d0e9a18a8fe10787116f3c3"` [INFO] [stdout] 2eab39c8c780119633d0e03c40deee0b4a10ae078d0e9a18a8fe10787116f3c3