[INFO] crate traffic 0.1.3 is already in cache [INFO] extracting crate traffic 0.1.3 into work/ex/clippy-test-run/sources/stable/reg/traffic/0.1.3 [INFO] extracting crate traffic 0.1.3 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/traffic/0.1.3 [INFO] validating manifest of traffic-0.1.3 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 traffic-0.1.3 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 traffic-0.1.3 [INFO] finished frobbing traffic-0.1.3 [INFO] frobbed toml for traffic-0.1.3 written to work/ex/clippy-test-run/sources/stable/reg/traffic/0.1.3/Cargo.toml [INFO] started frobbing traffic-0.1.3 [INFO] finished frobbing traffic-0.1.3 [INFO] frobbed toml for traffic-0.1.3 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/traffic/0.1.3/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 traffic-0.1.3 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/traffic/0.1.3:/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] 9da98c43e6d92f8875fd764772cf7855f13cf1550109d4a39b246b0d5c007f52 [INFO] running `"docker" "start" "-a" "9da98c43e6d92f8875fd764772cf7855f13cf1550109d4a39b246b0d5c007f52"` [INFO] [stderr] Checking app_dirs v1.2.1 [INFO] [stderr] Checking rust-gmp v0.3.2 [INFO] [stderr] Checking dbus v0.2.3 [INFO] [stderr] Checking rpassword v2.1.0 [INFO] [stderr] Checking chrono v0.4.6 [INFO] [stderr] Compiling structopt-derive v0.2.14 [INFO] [stderr] Checking reqwest v0.8.8 [INFO] [stderr] Checking preferences v1.1.0 [INFO] [stderr] Checking secret-service v0.4.0 [INFO] [stderr] Checking structopt v0.2.14 [INFO] [stderr] Checking keyring v0.6.1 [INFO] [stderr] Checking traffic v0.1.3 (/opt/crater/workdir) [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | #[macro_use] extern crate structopt; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/views.rs:98:17 [INFO] [stderr] | [INFO] [stderr] 98 | } else {return None} [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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/views.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &Direction::UP => write!(f, "Up"), [INFO] [stderr] 34 | | &Direction::DOWN => write!(f, "Down"), [INFO] [stderr] 35 | | } [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] 32 | match *self { [INFO] [stderr] 33 | Direction::UP => write!(f, "Up"), [INFO] [stderr] 34 | Direction::DOWN => write!(f, "Down"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/github.rs:28:40 [INFO] [stderr] | [INFO] [stderr] 28 | .basic_auth(username, Some(password.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 28 | .basic_auth(username, Some(&(*password).clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 28 | .basic_auth(username, Some(&str::clone(password))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/github.rs:40:40 [INFO] [stderr] | [INFO] [stderr] 40 | .basic_auth(username, Some(password.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 40 | .basic_auth(username, Some(&(*password).clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 40 | .basic_auth(username, Some(&str::clone(password))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/output.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / let clear_style; [INFO] [stderr] 29 | | if cfg!(target_os = "windows") { [INFO] [stderr] 30 | | // disable ansi escape sequences on Windows because they have limited support [INFO] [stderr] 31 | | set_style = ""; [INFO] [stderr] ... | [INFO] [stderr] 35 | | clear_style = STYLE_RESET; [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let clear_style = if cfg!(target_os = "windows") { ..; "" } else { ..; STYLE_RESET };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/output.rs:14:39 [INFO] [stderr] | [INFO] [stderr] 14 | repo_details.sort_by_key(| repo | -1 * (repo.views.uniques as i64) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:14:44 [INFO] [stderr] | [INFO] [stderr] 14 | repo_details.sort_by_key(| repo | -1 * (repo.views.uniques as i64) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(repo.views.uniques)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/user.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let mut preferences = load_preferences().unwrap_or(PreferencesMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `load_preferences().unwrap_or_default()` [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] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `traffic`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused `#[macro_use]` import [INFO] [stderr] --> src/main.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | #[macro_use] extern crate structopt; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/views.rs:98:17 [INFO] [stderr] | [INFO] [stderr] 98 | } else {return None} [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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/views.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | / match self { [INFO] [stderr] 33 | | &Direction::UP => write!(f, "Up"), [INFO] [stderr] 34 | | &Direction::DOWN => write!(f, "Down"), [INFO] [stderr] 35 | | } [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] 32 | match *self { [INFO] [stderr] 33 | Direction::UP => write!(f, "Up"), [INFO] [stderr] 34 | Direction::DOWN => write!(f, "Down"), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/github.rs:28:40 [INFO] [stderr] | [INFO] [stderr] 28 | .basic_auth(username, Some(password.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 28 | .basic_auth(username, Some(&(*password).clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 28 | .basic_auth(username, Some(&str::clone(password))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/github.rs:40:40 [INFO] [stderr] | [INFO] [stderr] 40 | .basic_auth(username, Some(password.clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 40 | .basic_auth(username, Some(&(*password).clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 40 | .basic_auth(username, Some(&str::clone(password))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/output.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | / let clear_style; [INFO] [stderr] 29 | | if cfg!(target_os = "windows") { [INFO] [stderr] 30 | | // disable ansi escape sequences on Windows because they have limited support [INFO] [stderr] 31 | | set_style = ""; [INFO] [stderr] ... | [INFO] [stderr] 35 | | clear_style = STYLE_RESET; [INFO] [stderr] 36 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let clear_style = if cfg!(target_os = "windows") { ..; "" } else { ..; STYLE_RESET };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: Negation by multiplying with -1 [INFO] [stderr] --> src/output.rs:14:39 [INFO] [stderr] | [INFO] [stderr] 14 | repo_details.sort_by_key(| repo | -1 * (repo.views.uniques as i64) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::neg_multiply)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#neg_multiply [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/output.rs:14:44 [INFO] [stderr] | [INFO] [stderr] 14 | repo_details.sort_by_key(| repo | -1 * (repo.views.uniques as i64) ); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(repo.views.uniques)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/user.rs:38:27 [INFO] [stderr] | [INFO] [stderr] 38 | let mut preferences = load_preferences().unwrap_or(PreferencesMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `load_preferences().unwrap_or_default()` [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] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `traffic`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "9da98c43e6d92f8875fd764772cf7855f13cf1550109d4a39b246b0d5c007f52"` [INFO] running `"docker" "rm" "-f" "9da98c43e6d92f8875fd764772cf7855f13cf1550109d4a39b246b0d5c007f52"` [INFO] [stdout] 9da98c43e6d92f8875fd764772cf7855f13cf1550109d4a39b246b0d5c007f52