[INFO] crate disqrust 0.1.0 is already in cache [INFO] extracting crate disqrust 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/disqrust/0.1.0 [INFO] extracting crate disqrust 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/disqrust/0.1.0 [INFO] validating manifest of disqrust-0.1.0 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 disqrust-0.1.0 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 disqrust-0.1.0 [INFO] finished frobbing disqrust-0.1.0 [INFO] frobbed toml for disqrust-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/disqrust/0.1.0/Cargo.toml [INFO] started frobbing disqrust-0.1.0 [INFO] finished frobbing disqrust-0.1.0 [INFO] frobbed toml for disqrust-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/disqrust/0.1.0/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 disqrust-0.1.0 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/disqrust/0.1.0:/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] 5c4020f9c59d9980adb5f4634f08f1e3a69231393984539cc02bc1556c9ea11d [INFO] running `"docker" "start" "-a" "5c4020f9c59d9980adb5f4634f08f1e3a69231393984539cc02bc1556c9ea11d"` [INFO] [stderr] Checking sha1 v0.1.1 [INFO] [stderr] Checking redis v0.5.4 [INFO] [stderr] Checking disque v0.2.2 [INFO] [stderr] Checking disqrust v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | disque: disque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `disque` [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/lib.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | completion_rx: completion_rx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `completion_rx` [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/lib.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | workers: workers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `workers` [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/lib.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | hello: hello, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `hello` [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/lib.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | free_workers: free_workers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `free_workers` [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/lib.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | completion_tx: completion_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `completion_tx` [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/lib.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | ahandler: ahandler, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `ahandler` [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/lib.rs:183:13 [INFO] [stderr] | [INFO] [stderr] 183 | disque: disque, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `disque` [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/lib.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | completion_rx: completion_rx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `completion_rx` [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/lib.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | workers: workers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `workers` [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/lib.rs:186:13 [INFO] [stderr] | [INFO] [stderr] 186 | hello: hello, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `hello` [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/lib.rs:187:13 [INFO] [stderr] | [INFO] [stderr] 187 | free_workers: free_workers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `free_workers` [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/lib.rs:190:13 [INFO] [stderr] | [INFO] [stderr] 190 | completion_tx: completion_tx, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `completion_tx` [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/lib.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | ahandler: ahandler, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `ahandler` [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: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | / if nack > 0 || additional_deliveries > 0 { [INFO] [stderr] 126 | | if !handler.process_error(&*queue, &jobid, nack, [INFO] [stderr] 127 | | additional_deliveries) { [INFO] [stderr] 128 | | return; [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 125 | if (nack > 0 || additional_deliveries > 0) && !handler.process_error(&*queue, &jobid, nack, [INFO] [stderr] 126 | additional_deliveries) { [INFO] [stderr] 127 | return; [INFO] [stderr] 128 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:125:13 [INFO] [stderr] | [INFO] [stderr] 125 | / if nack > 0 || additional_deliveries > 0 { [INFO] [stderr] 126 | | if !handler.process_error(&*queue, &jobid, nack, [INFO] [stderr] 127 | | additional_deliveries) { [INFO] [stderr] 128 | | return; [INFO] [stderr] 129 | | } [INFO] [stderr] 130 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 125 | if (nack > 0 || additional_deliveries > 0) && !handler.process_error(&*queue, &jobid, nack, [INFO] [stderr] 126 | additional_deliveries) { [INFO] [stderr] 127 | return; [INFO] [stderr] 128 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:55:53 [INFO] [stderr] | [INFO] [stderr] 55 | fn process_job(&self, queue_name: &[u8], jobid: &String, body: Vec) -> JobStatus; [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | fn process_error(&self, _: &[u8], _: &String, _: u32, _: u32) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:103:18 [INFO] [stderr] | [INFO] [stderr] 103 | task_rx: Receiver, String, Vec, u32, u32)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:146:14 [INFO] [stderr] | [INFO] [stderr] 146 | workers: Vec<(JoinHandle<()>, Sender, String, Vec, u32, u32)>>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | hello: (u8, String, Vec<(String, String, u16, u32)>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:201:49 [INFO] [stderr] | [INFO] [stderr] 201 | pub fn unwatch_queue(&mut self, queue_name: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:217:12 [INFO] [stderr] | [INFO] [stderr] 217 | if self.workers.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.workers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:262:23 [INFO] [stderr] | [INFO] [stderr] 262 | (r.0.clone(), r.1.clone()) [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*r.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | self.node_counter.get(&nodeid).unwrap_or(&0).clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.node_counter.get(&nodeid).unwrap_or(&0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:281:24 [INFO] [stderr] | [INFO] [stderr] 281 | Some(w) => w.clone(), [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*w` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:306:17 [INFO] [stderr] | [INFO] [stderr] 306 | / match Disque::open(&*format!("redis://{}:{}/", node.1, node.2)) { [INFO] [stderr] 307 | | Ok(disque) => { [INFO] [stderr] 308 | | hello = Some(match disque.hello() { [INFO] [stderr] 309 | | Ok(hello) => hello, [INFO] [stderr] ... | [INFO] [stderr] 315 | | Err(_) => (), [INFO] [stderr] 316 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 306 | if let Ok(disque) = Disque::open(&*format!("redis://{}:{}/", node.1, node.2)) { [INFO] [stderr] 307 | hello = Some(match disque.hello() { [INFO] [stderr] 308 | Ok(hello) => hello, [INFO] [stderr] 309 | Err(_) => break, [INFO] [stderr] 310 | }); [INFO] [stderr] 311 | self.disque = disque; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:55:53 [INFO] [stderr] | [INFO] [stderr] 55 | fn process_job(&self, queue_name: &[u8], jobid: &String, body: Vec) -> JobStatus; [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:60:42 [INFO] [stderr] | [INFO] [stderr] 60 | fn process_error(&self, _: &[u8], _: &String, _: u32, _: u32) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:103:18 [INFO] [stderr] | [INFO] [stderr] 103 | task_rx: Receiver, String, Vec, u32, u32)>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:146:14 [INFO] [stderr] | [INFO] [stderr] 146 | workers: Vec<(JoinHandle<()>, Sender, String, Vec, u32, u32)>>)>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:157:12 [INFO] [stderr] | [INFO] [stderr] 157 | hello: (u8, String, Vec<(String, String, u16, u32)>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:201:49 [INFO] [stderr] | [INFO] [stderr] 201 | pub fn unwatch_queue(&mut self, queue_name: &Vec) { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/lib.rs:217:12 [INFO] [stderr] | [INFO] [stderr] 217 | if self.workers.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.workers.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:262:23 [INFO] [stderr] | [INFO] [stderr] 262 | (r.0.clone(), r.1.clone()) [INFO] [stderr] | ^^^^^^^^^^^ help: try dereferencing it: `*r.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:268:9 [INFO] [stderr] | [INFO] [stderr] 268 | self.node_counter.get(&nodeid).unwrap_or(&0).clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*self.node_counter.get(&nodeid).unwrap_or(&0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/lib.rs:281:24 [INFO] [stderr] | [INFO] [stderr] 281 | Some(w) => w.clone(), [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*w` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:306:17 [INFO] [stderr] | [INFO] [stderr] 306 | / match Disque::open(&*format!("redis://{}:{}/", node.1, node.2)) { [INFO] [stderr] 307 | | Ok(disque) => { [INFO] [stderr] 308 | | hello = Some(match disque.hello() { [INFO] [stderr] 309 | | Ok(hello) => hello, [INFO] [stderr] ... | [INFO] [stderr] 315 | | Err(_) => (), [INFO] [stderr] 316 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 306 | if let Ok(disque) = Disque::open(&*format!("redis://{}:{}/", node.1, node.2)) { [INFO] [stderr] 307 | hello = Some(match disque.hello() { [INFO] [stderr] 308 | Ok(hello) => hello, [INFO] [stderr] 309 | Err(_) => break, [INFO] [stderr] 310 | }); [INFO] [stderr] 311 | self.disque = disque; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> tests/test_basic.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | sender: sender, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `sender` [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] --> tests/test_basic.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | process_job_ret: process_job_ret, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `process_job_ret` [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] --> tests/test_basic.rs:49:13 [INFO] [stderr] | [INFO] [stderr] 49 | process_error_ret: process_error_ret, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `process_error_ret` [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: use of deprecated item 'std::thread::sleep_ms': replaced by `std::thread::sleep` [INFO] [stderr] --> tests/test_basic.rs:70:13 [INFO] [stderr] | [INFO] [stderr] 70 | std::thread::sleep_ms(sleep); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> tests/test_basic.rs:202:17 [INFO] [stderr] | [INFO] [stderr] 202 | assert_eq!(*disque.show(jobid.as_bytes()).unwrap().unwrap().get( [INFO] [stderr] | _________________^ [INFO] [stderr] 203 | | "nacks").unwrap(), [INFO] [stderr] | |_________________________________^ help: try this: `&disque.show(jobid.as_bytes()).unwrap().unwrap()["nacks"]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 9.53s [INFO] running `"docker" "inspect" "5c4020f9c59d9980adb5f4634f08f1e3a69231393984539cc02bc1556c9ea11d"` [INFO] running `"docker" "rm" "-f" "5c4020f9c59d9980adb5f4634f08f1e3a69231393984539cc02bc1556c9ea11d"` [INFO] [stdout] 5c4020f9c59d9980adb5f4634f08f1e3a69231393984539cc02bc1556c9ea11d