[INFO] crate tdo-core 0.2.1 is already in cache [INFO] extracting crate tdo-core 0.2.1 into work/ex/clippy-test-run/sources/stable/reg/tdo-core/0.2.1 [INFO] extracting crate tdo-core 0.2.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tdo-core/0.2.1 [INFO] validating manifest of tdo-core-0.2.1 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 tdo-core-0.2.1 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 tdo-core-0.2.1 [INFO] finished frobbing tdo-core-0.2.1 [INFO] frobbed toml for tdo-core-0.2.1 written to work/ex/clippy-test-run/sources/stable/reg/tdo-core/0.2.1/Cargo.toml [INFO] started frobbing tdo-core-0.2.1 [INFO] finished frobbing tdo-core-0.2.1 [INFO] frobbed toml for tdo-core-0.2.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/tdo-core/0.2.1/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 tdo-core-0.2.1 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/tdo-core/0.2.1:/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] d27c3dc561edfaea2216783b022dbeb5a4ab885325a5df92ec55a2d1a7a86b52 [INFO] running `"docker" "start" "-a" "d27c3dc561edfaea2216783b022dbeb5a4ab885325a5df92ec55a2d1a7a86b52"` [INFO] [stderr] Checking tdo-core v0.2.1 (/opt/crater/workdir) [INFO] [stderr] warning: literal with an empty format string [INFO] [stderr] --> src/tdo.rs:101:24 [INFO] [stderr] | [INFO] [stderr] 101 | "https://github.com/settings/tokens/new?scopes=repo&description=tdolist"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tdo.rs:289:17 [INFO] [stderr] | [INFO] [stderr] 289 | lists: lists, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `lists` [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/todo.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/todo.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | github: github, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `github` [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/todo.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | issue_number: issue_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `issue_number` [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: literal with an empty format string [INFO] [stderr] --> src/tdo.rs:101:24 [INFO] [stderr] | [INFO] [stderr] 101 | "https://github.com/settings/tokens/new?scopes=repo&description=tdolist"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::print_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#print_literal [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tdo.rs:289:17 [INFO] [stderr] | [INFO] [stderr] 289 | lists: lists, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `lists` [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/todo.rs:26:13 [INFO] [stderr] | [INFO] [stderr] 26 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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/todo.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | github: github, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `github` [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/todo.rs:63:13 [INFO] [stderr] | [INFO] [stderr] 63 | issue_number: issue_number, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `issue_number` [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: you should consider deriving a `Default` implementation for `tdo::Tdo` [INFO] [stderr] --> src/tdo.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / pub fn new() -> Tdo { [INFO] [stderr] 38 | | Tdo { [INFO] [stderr] 39 | | lists: vec![TodoList::default()], [INFO] [stderr] 40 | | access_token: None, [INFO] [stderr] 41 | | version: env!("CARGO_PKG_VERSION").to_string(), [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/tdo.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | stdout().flush().ok().expect("Could not flush stdout!"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/tdo.rs:223:28 [INFO] [stderr] | [INFO] [stderr] 223 | .fold(0, |acc, &ref x| { [INFO] [stderr] | ^^^^^^ help: try removing the `&ref` part and just keep: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_borrowed_reference)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/tdo.rs:227:39 [INFO] [stderr] | [INFO] [stderr] 227 | |inner_acc, &ref y| if inner_acc < y.id { y.id } else { inner_acc }) [INFO] [stderr] | ^^^^^^ help: try removing the `&ref` part and just keep: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/tdo.rs:238:16 [INFO] [stderr] | [INFO] [stderr] 238 | if let Some(_) = self.lists[src_index].list[list_index].github { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 239 | | return Err(ErrorKind::GithubError(github_error::ErrorKind::NotAllowedToMove).into()) [INFO] [stderr] 240 | | } [INFO] [stderr] | |_________- help: try this: `if self.lists[src_index].list[list_index].github.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/list.rs:64:29 [INFO] [stderr] | [INFO] [stderr] 64 | Ok(index) => Ok(self.list[index].set_done()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 64 | Ok(index) => Ok(()), [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/list.rs:113:28 [INFO] [stderr] | [INFO] [stderr] 113 | .fold(0, |acc, &ref x| if todo.id > x.id { acc + 1 } else { acc }); [INFO] [stderr] | ^^^^^^ help: try removing the `&ref` part and just keep: `x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `tdo::Tdo` [INFO] [stderr] --> src/tdo.rs:37:5 [INFO] [stderr] | [INFO] [stderr] 37 | / pub fn new() -> Tdo { [INFO] [stderr] 38 | | Tdo { [INFO] [stderr] 39 | | lists: vec![TodoList::default()], [INFO] [stderr] 40 | | access_token: None, [INFO] [stderr] 41 | | version: env!("CARGO_PKG_VERSION").to_string(), [INFO] [stderr] 42 | | } [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `ok().expect()` on a Result value. You can call `expect` directly on the `Result` [INFO] [stderr] --> src/tdo.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | stdout().flush().ok().expect("Could not flush stdout!"); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ok_expect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ok_expect [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/tdo.rs:223:28 [INFO] [stderr] | [INFO] [stderr] 223 | .fold(0, |acc, &ref x| { [INFO] [stderr] | ^^^^^^ help: try removing the `&ref` part and just keep: `x` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_borrowed_reference)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/tdo.rs:227:39 [INFO] [stderr] | [INFO] [stderr] 227 | |inner_acc, &ref y| if inner_acc < y.id { y.id } else { inner_acc }) [INFO] [stderr] | ^^^^^^ help: try removing the `&ref` part and just keep: `y` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/tdo.rs:238:16 [INFO] [stderr] | [INFO] [stderr] 238 | if let Some(_) = self.lists[src_index].list[list_index].github { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 239 | | return Err(ErrorKind::GithubError(github_error::ErrorKind::NotAllowedToMove).into()) [INFO] [stderr] 240 | | } [INFO] [stderr] | |_________- help: try this: `if self.lists[src_index].list[list_index].github.is_some()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/list.rs:64:29 [INFO] [stderr] | [INFO] [stderr] 64 | Ok(index) => Ok(self.list[index].set_done()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 64 | Ok(index) => Ok(()), [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: this pattern takes a reference on something that is being de-referenced [INFO] [stderr] --> src/list.rs:113:28 [INFO] [stderr] | [INFO] [stderr] 113 | .fold(0, |acc, &ref x| if todo.id > x.id { acc + 1 } else { acc }); [INFO] [stderr] | ^^^^^^ help: try removing the `&ref` part and just keep: `x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let res =` [INFO] [stderr] --> tests/load_save.rs:15:9 [INFO] [stderr] | [INFO] [stderr] 15 | let res = tdo.save("foo.json").unwrap(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.54s [INFO] running `"docker" "inspect" "d27c3dc561edfaea2216783b022dbeb5a4ab885325a5df92ec55a2d1a7a86b52"` [INFO] running `"docker" "rm" "-f" "d27c3dc561edfaea2216783b022dbeb5a4ab885325a5df92ec55a2d1a7a86b52"` [INFO] [stdout] d27c3dc561edfaea2216783b022dbeb5a4ab885325a5df92ec55a2d1a7a86b52