[INFO] crate habitica_rust_client 0.1.5 is already in cache [INFO] extracting crate habitica_rust_client 0.1.5 into work/ex/clippy-test-run/sources/stable/reg/habitica_rust_client/0.1.5 [INFO] extracting crate habitica_rust_client 0.1.5 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/habitica_rust_client/0.1.5 [INFO] validating manifest of habitica_rust_client-0.1.5 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 habitica_rust_client-0.1.5 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 habitica_rust_client-0.1.5 [INFO] finished frobbing habitica_rust_client-0.1.5 [INFO] frobbed toml for habitica_rust_client-0.1.5 written to work/ex/clippy-test-run/sources/stable/reg/habitica_rust_client/0.1.5/Cargo.toml [INFO] started frobbing habitica_rust_client-0.1.5 [INFO] finished frobbing habitica_rust_client-0.1.5 [INFO] frobbed toml for habitica_rust_client-0.1.5 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/habitica_rust_client/0.1.5/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 habitica_rust_client-0.1.5 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/habitica_rust_client/0.1.5:/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] e46fc8cd815816ccd062c5731987a41cece40b3cd34690d6c34f8189f36dc9a2 [INFO] running `"docker" "start" "-a" "e46fc8cd815816ccd062c5731987a41cece40b3cd34690d6c34f8189f36dc9a2"` [INFO] [stderr] Checking habitica_rust_client v0.1.5 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / return if raw_value.is_some() { [INFO] [stderr] 144 | | Some(raw_value.unwrap().as_str().unwrap().to_string()) [INFO] [stderr] 145 | | } else { [INFO] [stderr] 146 | | None [INFO] [stderr] 147 | | }; [INFO] [stderr] | |__________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 143 | if raw_value.is_some() { [INFO] [stderr] 144 | Some(raw_value.unwrap().as_str().unwrap().to_string()) [INFO] [stderr] 145 | } else { [INFO] [stderr] 146 | None [INFO] [stderr] 147 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | / return if raw_value.is_some() { [INFO] [stderr] 154 | | Some( [INFO] [stderr] 155 | | raw_value [INFO] [stderr] 156 | | .unwrap() [INFO] [stderr] ... | [INFO] [stderr] 164 | | None [INFO] [stderr] 165 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 153 | if raw_value.is_some() { [INFO] [stderr] 154 | Some( [INFO] [stderr] 155 | raw_value [INFO] [stderr] 156 | .unwrap() [INFO] [stderr] 157 | .as_array() [INFO] [stderr] 158 | .unwrap() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | / return if raw_value.is_some() { [INFO] [stderr] 172 | | raw_value [INFO] [stderr] 173 | | .unwrap() [INFO] [stderr] 174 | | .as_object() [INFO] [stderr] ... | [INFO] [stderr] 180 | | HashMap::new() [INFO] [stderr] 181 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 171 | if raw_value.is_some() { [INFO] [stderr] 172 | raw_value [INFO] [stderr] 173 | .unwrap() [INFO] [stderr] 174 | .as_object() [INFO] [stderr] 175 | .unwrap() [INFO] [stderr] 176 | .into_iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | / return if raw_value.is_some() { [INFO] [stderr] 188 | | raw_value [INFO] [stderr] 189 | | .unwrap() [INFO] [stderr] 190 | | .as_array() [INFO] [stderr] ... | [INFO] [stderr] 200 | | Vec::new() [INFO] [stderr] 201 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 187 | if raw_value.is_some() { [INFO] [stderr] 188 | raw_value [INFO] [stderr] 189 | .unwrap() [INFO] [stderr] 190 | .as_array() [INFO] [stderr] 191 | .unwrap() [INFO] [stderr] 192 | .into_iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / return if raw_value.is_some() { [INFO] [stderr] 208 | | raw_value.unwrap().as_i64() [INFO] [stderr] 209 | | } else { [INFO] [stderr] 210 | | None [INFO] [stderr] 211 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 207 | if raw_value.is_some() { [INFO] [stderr] 208 | raw_value.unwrap().as_i64() [INFO] [stderr] 209 | } else { [INFO] [stderr] 210 | None [INFO] [stderr] 211 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | / return if raw_value.is_some() { [INFO] [stderr] 218 | | raw_value.unwrap().as_bool() [INFO] [stderr] 219 | | } else { [INFO] [stderr] 220 | | None [INFO] [stderr] 221 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 217 | if raw_value.is_some() { [INFO] [stderr] 218 | raw_value.unwrap().as_bool() [INFO] [stderr] 219 | } else { [INFO] [stderr] 220 | None [INFO] [stderr] 221 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:143:9 [INFO] [stderr] | [INFO] [stderr] 143 | / return if raw_value.is_some() { [INFO] [stderr] 144 | | Some(raw_value.unwrap().as_str().unwrap().to_string()) [INFO] [stderr] 145 | | } else { [INFO] [stderr] 146 | | None [INFO] [stderr] 147 | | }; [INFO] [stderr] | |__________^ [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] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 143 | if raw_value.is_some() { [INFO] [stderr] 144 | Some(raw_value.unwrap().as_str().unwrap().to_string()) [INFO] [stderr] 145 | } else { [INFO] [stderr] 146 | None [INFO] [stderr] 147 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:153:9 [INFO] [stderr] | [INFO] [stderr] 153 | / return if raw_value.is_some() { [INFO] [stderr] 154 | | Some( [INFO] [stderr] 155 | | raw_value [INFO] [stderr] 156 | | .unwrap() [INFO] [stderr] ... | [INFO] [stderr] 164 | | None [INFO] [stderr] 165 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 153 | if raw_value.is_some() { [INFO] [stderr] 154 | Some( [INFO] [stderr] 155 | raw_value [INFO] [stderr] 156 | .unwrap() [INFO] [stderr] 157 | .as_array() [INFO] [stderr] 158 | .unwrap() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | / return if raw_value.is_some() { [INFO] [stderr] 172 | | raw_value [INFO] [stderr] 173 | | .unwrap() [INFO] [stderr] 174 | | .as_object() [INFO] [stderr] ... | [INFO] [stderr] 180 | | HashMap::new() [INFO] [stderr] 181 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 171 | if raw_value.is_some() { [INFO] [stderr] 172 | raw_value [INFO] [stderr] 173 | .unwrap() [INFO] [stderr] 174 | .as_object() [INFO] [stderr] 175 | .unwrap() [INFO] [stderr] 176 | .into_iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:187:9 [INFO] [stderr] | [INFO] [stderr] 187 | / return if raw_value.is_some() { [INFO] [stderr] 188 | | raw_value [INFO] [stderr] 189 | | .unwrap() [INFO] [stderr] 190 | | .as_array() [INFO] [stderr] ... | [INFO] [stderr] 200 | | Vec::new() [INFO] [stderr] 201 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 187 | if raw_value.is_some() { [INFO] [stderr] 188 | raw_value [INFO] [stderr] 189 | .unwrap() [INFO] [stderr] 190 | .as_array() [INFO] [stderr] 191 | .unwrap() [INFO] [stderr] 192 | .into_iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | / return if raw_value.is_some() { [INFO] [stderr] 208 | | raw_value.unwrap().as_i64() [INFO] [stderr] 209 | | } else { [INFO] [stderr] 210 | | None [INFO] [stderr] 211 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 207 | if raw_value.is_some() { [INFO] [stderr] 208 | raw_value.unwrap().as_i64() [INFO] [stderr] 209 | } else { [INFO] [stderr] 210 | None [INFO] [stderr] 211 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/task/tasks.rs:217:9 [INFO] [stderr] | [INFO] [stderr] 217 | / return if raw_value.is_some() { [INFO] [stderr] 218 | | raw_value.unwrap().as_bool() [INFO] [stderr] 219 | | } else { [INFO] [stderr] 220 | | None [INFO] [stderr] 221 | | }; [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 217 | if raw_value.is_some() { [INFO] [stderr] 218 | raw_value.unwrap().as_bool() [INFO] [stderr] 219 | } else { [INFO] [stderr] 220 | None [INFO] [stderr] 221 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/task/tasks.rs:159:22 [INFO] [stderr] | [INFO] [stderr] 159 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/task/tasks.rs:177:38 [INFO] [stderr] | [INFO] [stderr] 177 | .map(|(key, value)| (String::from(key.to_owned()), value.as_bool().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `key.to_owned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/task/tasks.rs:192:18 [INFO] [stderr] | [INFO] [stderr] 192 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/task/rest_client.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / pub fn new(api_credentials: ApiCredentials) -> Box { [INFO] [stderr] 19 | | let client = reqwest::Client::new(); [INFO] [stderr] 20 | | Box::new(RestClient { [INFO] [stderr] 21 | | api_credentials, [INFO] [stderr] 22 | | client, [INFO] [stderr] 23 | | }) [INFO] [stderr] 24 | | } [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: identical conversion [INFO] [stderr] --> src/task/habitica_client.rs:115:16 [INFO] [stderr] | [INFO] [stderr] 115 | Ok(Value::from(raw_tasks)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `Value::from()`: `raw_tasks` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/task/tasks.rs:159:22 [INFO] [stderr] | [INFO] [stderr] 159 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/task/tasks.rs:177:38 [INFO] [stderr] | [INFO] [stderr] 177 | .map(|(key, value)| (String::from(key.to_owned()), value.as_bool().unwrap())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `key.to_owned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/task/tasks.rs:192:18 [INFO] [stderr] | [INFO] [stderr] 192 | .into_iter() [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/task/rest_client.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / pub fn new(api_credentials: ApiCredentials) -> Box { [INFO] [stderr] 19 | | let client = reqwest::Client::new(); [INFO] [stderr] 20 | | Box::new(RestClient { [INFO] [stderr] 21 | | api_credentials, [INFO] [stderr] 22 | | client, [INFO] [stderr] 23 | | }) [INFO] [stderr] 24 | | } [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 16.72s [INFO] running `"docker" "inspect" "e46fc8cd815816ccd062c5731987a41cece40b3cd34690d6c34f8189f36dc9a2"` [INFO] running `"docker" "rm" "-f" "e46fc8cd815816ccd062c5731987a41cece40b3cd34690d6c34f8189f36dc9a2"` [INFO] [stdout] e46fc8cd815816ccd062c5731987a41cece40b3cd34690d6c34f8189f36dc9a2