[INFO] crate cargo-stdx-check 0.1.2 is already in cache [INFO] extracting crate cargo-stdx-check 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/cargo-stdx-check/0.1.2 [INFO] extracting crate cargo-stdx-check 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cargo-stdx-check/0.1.2 [INFO] validating manifest of cargo-stdx-check-0.1.2 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 cargo-stdx-check-0.1.2 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 cargo-stdx-check-0.1.2 [INFO] finished frobbing cargo-stdx-check-0.1.2 [INFO] frobbed toml for cargo-stdx-check-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/cargo-stdx-check/0.1.2/Cargo.toml [INFO] started frobbing cargo-stdx-check-0.1.2 [INFO] finished frobbing cargo-stdx-check-0.1.2 [INFO] frobbed toml for cargo-stdx-check-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/cargo-stdx-check/0.1.2/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 cargo-stdx-check-0.1.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-4/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/cargo-stdx-check/0.1.2:/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] 5b49abb27ba885d295d56d4fe8ba14c99da33f700d159c0d384b8bb05ce51aa9 [INFO] running `"docker" "start" "-a" "5b49abb27ba885d295d56d4fe8ba14c99da33f700d159c0d384b8bb05ce51aa9"` [INFO] [stderr] Checking cargo-stdx-check v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | Ok(Backup { orig: orig, bkup: bkup }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `orig` [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/main.rs:257:33 [INFO] [stderr] | [INFO] [stderr] 257 | Ok(Backup { orig: orig, bkup: bkup }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bkup` [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/main.rs:257:21 [INFO] [stderr] | [INFO] [stderr] 257 | Ok(Backup { orig: orig, bkup: bkup }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `orig` [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/main.rs:257:33 [INFO] [stderr] | [INFO] [stderr] 257 | Ok(Backup { orig: orig, bkup: bkup }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `bkup` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:83:18 [INFO] [stderr] | [INFO] [stderr] 83 | fn print_usage() -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | return Err::<(), errors::Error>(format!("stdx {} is already a dependecy", version).into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err::<(), errors::Error>(format!("stdx {} is already a dependecy", version).into())` [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: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:19:15 [INFO] [stderr] | [INFO] [stderr] 19 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/main.rs:83:18 [INFO] [stderr] | [INFO] [stderr] 83 | fn print_usage() -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/main.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | return Err::<(), errors::Error>(format!("stdx {} is already a dependecy", version).into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Err::<(), errors::Error>(format!("stdx {} is already a dependecy", version).into())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:126:20 [INFO] [stderr] | [INFO] [stderr] 126 | let stdx = match stdx_opt { [INFO] [stderr] | ____________________^ [INFO] [stderr] 127 | | &StdxOpt::Version(ref version) => Value::String(version.clone()), [INFO] [stderr] 128 | | &StdxOpt::Git(ref git) => { [INFO] [stderr] 129 | | let mut stdx_dep = Table::new(); [INFO] [stderr] ... | [INFO] [stderr] 132 | | } [INFO] [stderr] 133 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 126 | let stdx = match *stdx_opt { [INFO] [stderr] 127 | StdxOpt::Version(ref version) => Value::String(version.clone()), [INFO] [stderr] 128 | StdxOpt::Git(ref git) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:146:10 [INFO] [stderr] | [INFO] [stderr] 146 | .ok_or::("cannot find dependencies in Cargo.toml".into())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "cannot find dependencies in Cargo.toml".into())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | / match deps { [INFO] [stderr] 149 | | &mut Value::Table(ref mut deps) => Ok(deps), [INFO] [stderr] 150 | | _ => bail!("'dependencies' is is not a table") [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 148 | match *deps { [INFO] [stderr] 149 | Value::Table(ref mut deps) => Ok(deps), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:156:10 [INFO] [stderr] | [INFO] [stderr] 156 | .ok_or::("cannot find packages in Cargo.toml".into())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "cannot find packages in Cargo.toml".into())` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | / match paks { [INFO] [stderr] 159 | | &mut Value::Array(ref mut paks) => Ok(paks), [INFO] [stderr] 160 | | _ => bail!("'package' is is not an array table") [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 158 | match *paks { [INFO] [stderr] 159 | Value::Array(ref mut paks) => Ok(paks), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:193:5 [INFO] [stderr] | [INFO] [stderr] 193 | / match val { [INFO] [stderr] 194 | | &Value::Table(ref entries) => { [INFO] [stderr] 195 | | match entries.get("name") { [INFO] [stderr] 196 | | Some(&Value::String(ref name)) => Some(name), [INFO] [stderr] ... | [INFO] [stderr] 200 | | _ => Option::None [INFO] [stderr] 201 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 193 | match *val { [INFO] [stderr] 194 | Value::Table(ref entries) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:126:20 [INFO] [stderr] | [INFO] [stderr] 126 | let stdx = match stdx_opt { [INFO] [stderr] | ____________________^ [INFO] [stderr] 127 | | &StdxOpt::Version(ref version) => Value::String(version.clone()), [INFO] [stderr] 128 | | &StdxOpt::Git(ref git) => { [INFO] [stderr] 129 | | let mut stdx_dep = Table::new(); [INFO] [stderr] ... | [INFO] [stderr] 132 | | } [INFO] [stderr] 133 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 126 | let stdx = match *stdx_opt { [INFO] [stderr] 127 | StdxOpt::Version(ref version) => Value::String(version.clone()), [INFO] [stderr] 128 | StdxOpt::Git(ref git) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:146:10 [INFO] [stderr] | [INFO] [stderr] 146 | .ok_or::("cannot find dependencies in Cargo.toml".into())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "cannot find dependencies in Cargo.toml".into())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:148:5 [INFO] [stderr] | [INFO] [stderr] 148 | / match deps { [INFO] [stderr] 149 | | &mut Value::Table(ref mut deps) => Ok(deps), [INFO] [stderr] 150 | | _ => bail!("'dependencies' is is not a table") [INFO] [stderr] 151 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 148 | match *deps { [INFO] [stderr] 149 | Value::Table(ref mut deps) => Ok(deps), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `ok_or` followed by a function call [INFO] [stderr] --> src/main.rs:156:10 [INFO] [stderr] | [INFO] [stderr] 156 | .ok_or::("cannot find packages in Cargo.toml".into())?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| "cannot find packages in Cargo.toml".into())` [INFO] [stderr] | [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:158:5 [INFO] [stderr] | [INFO] [stderr] 158 | / match paks { [INFO] [stderr] 159 | | &mut Value::Array(ref mut paks) => Ok(paks), [INFO] [stderr] 160 | | _ => bail!("'package' is is not an array table") [INFO] [stderr] 161 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 158 | match *paks { [INFO] [stderr] 159 | Value::Array(ref mut paks) => Ok(paks), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/main.rs:193:5 [INFO] [stderr] | [INFO] [stderr] 193 | / match val { [INFO] [stderr] 194 | | &Value::Table(ref entries) => { [INFO] [stderr] 195 | | match entries.get("name") { [INFO] [stderr] 196 | | Some(&Value::String(ref name)) => Some(name), [INFO] [stderr] ... | [INFO] [stderr] 200 | | _ => Option::None [INFO] [stderr] 201 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 193 | match *val { [INFO] [stderr] 194 | Value::Table(ref entries) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 4.00s [INFO] running `"docker" "inspect" "5b49abb27ba885d295d56d4fe8ba14c99da33f700d159c0d384b8bb05ce51aa9"` [INFO] running `"docker" "rm" "-f" "5b49abb27ba885d295d56d4fe8ba14c99da33f700d159c0d384b8bb05ce51aa9"` [INFO] [stdout] 5b49abb27ba885d295d56d4fe8ba14c99da33f700d159c0d384b8bb05ce51aa9