[INFO] crate disque 0.2.2 is already in cache [INFO] extracting crate disque 0.2.2 into work/ex/clippy-test-run/sources/stable/reg/disque/0.2.2 [INFO] extracting crate disque 0.2.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/disque/0.2.2 [INFO] validating manifest of disque-0.2.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 disque-0.2.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 disque-0.2.2 [INFO] finished frobbing disque-0.2.2 [INFO] frobbed toml for disque-0.2.2 written to work/ex/clippy-test-run/sources/stable/reg/disque/0.2.2/Cargo.toml [INFO] started frobbing disque-0.2.2 [INFO] finished frobbing disque-0.2.2 [INFO] frobbed toml for disque-0.2.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/disque/0.2.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 disque-0.2.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/disque/0.2.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] 16e830cfb0567890160f7be6564ef1283163339e008b9e87c32fd447302f01ef [INFO] running `"docker" "start" "-a" "16e830cfb0567890160f7be6564ef1283163339e008b9e87c32fd447302f01ef"` [INFO] [stderr] Checking redis v0.5.4 [INFO] [stderr] Checking disque v0.2.2 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/disque.rs:35:21 [INFO] [stderr] | [INFO] [stderr] 35 | Ok(Disque { connection: connection }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [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/builders.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | queue_name: queue_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `queue_name` [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/builders.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | job: job, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `job` [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/disque.rs:35:21 [INFO] [stderr] | [INFO] [stderr] 35 | Ok(Disque { connection: connection }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `connection` [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/builders.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | queue_name: queue_name, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `queue_name` [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/builders.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | job: job, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `job` [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: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/disque.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | (d.subsec_nanos() / 1_000_000) as u64 + d.as_secs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos() / 1_000_000)` [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/disque.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | (d.subsec_nanos() / 1_000_000) as u64 + d.as_secs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/disque.rs:47:28 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn hello(&self) -> RedisResult<(u8, String, Vec<(String, String, u16, 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: this function has too many arguments (10/7) [INFO] [stderr] --> src/disque.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | / pub fn addjob(&self, queue_name: &[u8], job: &[u8], timeout: Duration, [INFO] [stderr] 89 | | replicate: Option, delay: Option, [INFO] [stderr] 90 | | retry: Option, ttl: Option, [INFO] [stderr] 91 | | maxlen: Option, async: bool, [INFO] [stderr] ... | [INFO] [stderr] 104 | | c.query(&self.connection) [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/disque.rs:129:18 [INFO] [stderr] | [INFO] [stderr] 129 | ) -> RedisResult, String, Vec)>> { [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/disque.rs:159:18 [INFO] [stderr] | [INFO] [stderr] 159 | ) -> RedisResult, 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/disque.rs:189:18 [INFO] [stderr] | [INFO] [stderr] 189 | ) -> RedisResult, String, Vec)>> { [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/disque.rs:198:18 [INFO] [stderr] | [INFO] [stderr] 198 | ) -> RedisResult, 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: you should consider deriving a `Default` implementation for `builders::QueueQueryBuilder` [INFO] [stderr] --> src/builders.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / pub fn new() -> QueueQueryBuilder { [INFO] [stderr] 165 | | QueueQueryBuilder { [INFO] [stderr] 166 | | count: 16, [INFO] [stderr] 167 | | busyloop: false, [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [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] 154 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `builders::JobQueryBuilder<'a>` [INFO] [stderr] --> src/builders.rs:244:5 [INFO] [stderr] | [INFO] [stderr] 244 | / pub fn new() -> JobQueryBuilder<'a> { [INFO] [stderr] 245 | | JobQueryBuilder { [INFO] [stderr] 246 | | count: 16, [INFO] [stderr] 247 | | busyloop: false, [INFO] [stderr] ... | [INFO] [stderr] 250 | | } [INFO] [stderr] 251 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 236 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/disque.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | (d.subsec_nanos() / 1_000_000) as u64 + d.as_secs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(d.subsec_nanos() / 1_000_000)` [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: Calling `subsec_millis()` is more concise than this calculation [INFO] [stderr] --> src/disque.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | (d.subsec_nanos() / 1_000_000) as u64 + d.as_secs() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `d.subsec_millis()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/disque.rs:47:28 [INFO] [stderr] | [INFO] [stderr] 47 | pub fn hello(&self) -> RedisResult<(u8, String, Vec<(String, String, u16, 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: this function has too many arguments (10/7) [INFO] [stderr] --> src/disque.rs:88:5 [INFO] [stderr] | [INFO] [stderr] 88 | / pub fn addjob(&self, queue_name: &[u8], job: &[u8], timeout: Duration, [INFO] [stderr] 89 | | replicate: Option, delay: Option, [INFO] [stderr] 90 | | retry: Option, ttl: Option, [INFO] [stderr] 91 | | maxlen: Option, async: bool, [INFO] [stderr] ... | [INFO] [stderr] 104 | | c.query(&self.connection) [INFO] [stderr] 105 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/disque.rs:129:18 [INFO] [stderr] | [INFO] [stderr] 129 | ) -> RedisResult, String, Vec)>> { [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/disque.rs:159:18 [INFO] [stderr] | [INFO] [stderr] 159 | ) -> RedisResult, 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/disque.rs:189:18 [INFO] [stderr] | [INFO] [stderr] 189 | ) -> RedisResult, String, Vec)>> { [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/disque.rs:198:18 [INFO] [stderr] | [INFO] [stderr] 198 | ) -> RedisResult, 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: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:357:43 [INFO] [stderr] | [INFO] [stderr] 357 | assert!(nodes.into_iter().map(|n| n.0).collect::>().contains(&nodeid)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == nodeid)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/disque.rs:555:16 [INFO] [stderr] | [INFO] [stderr] 555 | assert_eq!(info.get("id").unwrap(), &Value::Data(jobid.as_bytes().to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["id"]` [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] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/disque.rs:556:16 [INFO] [stderr] | [INFO] [stderr] 556 | assert_eq!(info.get("queue").unwrap(), &Value::Data(b"queue15".to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["queue"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/disque.rs:557:16 [INFO] [stderr] | [INFO] [stderr] 557 | assert_eq!(info.get("state").unwrap(), &Value::Data(b"queued".to_vec())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&info["state"]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:572:64 [INFO] [stderr] | [INFO] [stderr] 572 | assert!(disque.jscan_id(0, 1000, false, None, &[]).unwrap().collect::>().contains(&job)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == job)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:573:77 [INFO] [stderr] | [INFO] [stderr] 573 | assert!(!disque.jscan_id(0, 1000, false, Some(b"queue16"), &[]).unwrap().collect::>().contains(&job)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == job)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:574:76 [INFO] [stderr] | [INFO] [stderr] 574 | assert!(disque.jscan_id(0, 1000, false, Some(b"queue17"), &[]).unwrap().collect::>().contains(&job)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == job)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/disque.rs:582:90 [INFO] [stderr] | [INFO] [stderr] 582 | assert!(disque.jscan_all(0, 1000, false, None, &[]).unwrap().into_iter().map(|mut x| { [INFO] [stderr] | __________________________________________________________________________________________^ [INFO] [stderr] 583 | | String::from_redis_value(&x.remove("id").unwrap()).unwrap() [INFO] [stderr] 584 | | }).collect::>().contains(&job)); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:584:7 [INFO] [stderr] | [INFO] [stderr] 584 | }).collect::>().contains(&job)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == job)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/disque.rs:582:13 [INFO] [stderr] | [INFO] [stderr] 582 | assert!(disque.jscan_all(0, 1000, false, None, &[]).unwrap().into_iter().map(|mut x| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `disque.jscan_all(0, 1000, false, None, &[]).unwrap()` [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: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/disque.rs:586:103 [INFO] [stderr] | [INFO] [stderr] 586 | assert!(!disque.jscan_all(0, 1000, false, Some(b"queue16"), &[]).unwrap().into_iter().map(|mut x| { [INFO] [stderr] | _______________________________________________________________________________________________________^ [INFO] [stderr] 587 | | String::from_redis_value(&x.remove("id").unwrap()).unwrap() [INFO] [stderr] 588 | | }).collect::>().contains(&job)); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:588:7 [INFO] [stderr] | [INFO] [stderr] 588 | }).collect::>().contains(&job)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == job)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/disque.rs:586:14 [INFO] [stderr] | [INFO] [stderr] 586 | assert!(!disque.jscan_all(0, 1000, false, Some(b"queue16"), &[]).unwrap().into_iter().map(|mut x| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `disque.jscan_all(0, 1000, false, Some(b"queue16"), &[]).unwrap()` [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: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/disque.rs:590:102 [INFO] [stderr] | [INFO] [stderr] 590 | assert!(disque.jscan_all(0, 1000, false, Some(b"queue20"), &[]).unwrap().into_iter().map(|mut x| { [INFO] [stderr] | ______________________________________________________________________________________________________^ [INFO] [stderr] 591 | | String::from_redis_value(&x.remove("id").unwrap()).unwrap() [INFO] [stderr] 592 | | }).collect::>().contains(&job)); [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: avoid using `collect()` when not needed [INFO] [stderr] --> src/disque.rs:592:7 [INFO] [stderr] | [INFO] [stderr] 592 | }).collect::>().contains(&job)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `.any(|&x| x == job)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/disque.rs:590:13 [INFO] [stderr] | [INFO] [stderr] 590 | assert!(disque.jscan_all(0, 1000, false, Some(b"queue20"), &[]).unwrap().into_iter().map(|mut x| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `disque.jscan_all(0, 1000, false, Some(b"queue20"), &[]).unwrap()` [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: the function has a cyclomatic complexity of 28 [INFO] [stderr] --> src/builders.rs:108:1 [INFO] [stderr] | [INFO] [stderr] 108 | / fn add_job_builder() { [INFO] [stderr] 109 | | let mut jb = AddJobBuilder::new(b"queue", b"job", 123); [INFO] [stderr] 110 | | assert_eq!(jb.queue_name, b"queue"); [INFO] [stderr] 111 | | assert_eq!(jb.job, b"job"); [INFO] [stderr] ... | [INFO] [stderr] 138 | | assert_eq!(jb.async, true); [INFO] [stderr] 139 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `builders::QueueQueryBuilder` [INFO] [stderr] --> src/builders.rs:164:5 [INFO] [stderr] | [INFO] [stderr] 164 | / pub fn new() -> QueueQueryBuilder { [INFO] [stderr] 165 | | QueueQueryBuilder { [INFO] [stderr] 166 | | count: 16, [INFO] [stderr] 167 | | busyloop: false, [INFO] [stderr] ... | [INFO] [stderr] 171 | | } [INFO] [stderr] 172 | | } [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] 154 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `builders::JobQueryBuilder<'a>` [INFO] [stderr] --> src/builders.rs:244:5 [INFO] [stderr] | [INFO] [stderr] 244 | / pub fn new() -> JobQueryBuilder<'a> { [INFO] [stderr] 245 | | JobQueryBuilder { [INFO] [stderr] 246 | | count: 16, [INFO] [stderr] 247 | | busyloop: false, [INFO] [stderr] ... | [INFO] [stderr] 250 | | } [INFO] [stderr] 251 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [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] 236 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 6.32s [INFO] running `"docker" "inspect" "16e830cfb0567890160f7be6564ef1283163339e008b9e87c32fd447302f01ef"` [INFO] running `"docker" "rm" "-f" "16e830cfb0567890160f7be6564ef1283163339e008b9e87c32fd447302f01ef"` [INFO] [stdout] 16e830cfb0567890160f7be6564ef1283163339e008b9e87c32fd447302f01ef