[INFO] crate routinator 0.1.2 is already in cache [INFO] extracting crate routinator 0.1.2 into work/ex/clippy-test-run/sources/stable/reg/routinator/0.1.2 [INFO] extracting crate routinator 0.1.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/routinator/0.1.2 [INFO] validating manifest of routinator-0.1.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 routinator-0.1.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 routinator-0.1.2 [INFO] finished frobbing routinator-0.1.2 [INFO] frobbed toml for routinator-0.1.2 written to work/ex/clippy-test-run/sources/stable/reg/routinator/0.1.2/Cargo.toml [INFO] started frobbing routinator-0.1.2 [INFO] finished frobbing routinator-0.1.2 [INFO] frobbed toml for routinator-0.1.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/routinator/0.1.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 routinator-0.1.2 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/routinator/0.1.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] 2744eb98c47c293920512267202f2a370089b04ab727ca2957c901ed01818b45 [INFO] running `"docker" "start" "-a" "2744eb98c47c293920512267202f2a370089b04ab727ca2957c901ed01818b45"` [INFO] [stderr] Checking syslog v4.0.1 [INFO] [stderr] Checking bcder v0.1.0 [INFO] [stderr] Checking tokio-signal v0.2.7 [INFO] [stderr] Checking tokio-process v0.2.3 [INFO] [stderr] Checking rpki v0.1.0 [INFO] [stderr] Checking routinator v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/origins.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / if next.insert(addr.clone()) { [INFO] [stderr] 207 | | if !current.remove(&addr) { [INFO] [stderr] 208 | | let _ = announce.insert(addr); [INFO] [stderr] 209 | | } [INFO] [stderr] 210 | | } [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] 206 | if next.insert(addr.clone()) && !current.remove(&addr) { [INFO] [stderr] 207 | let _ = announce.insert(addr); [INFO] [stderr] 208 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/origins.rs:216:13 [INFO] [stderr] | [INFO] [stderr] 216 | / if next.insert(addr.clone()) { [INFO] [stderr] 217 | | if !current.remove(addr) { [INFO] [stderr] 218 | | announce.insert(addr.clone()); [INFO] [stderr] 219 | | } [INFO] [stderr] 220 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 216 | if next.insert(addr.clone()) && !current.remove(addr) { [INFO] [stderr] 217 | announce.insert(addr.clone()); [INFO] [stderr] 218 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/rtr/send.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/rtr/send.rs:218:14 [INFO] [stderr] | [INFO] [stderr] 218 | else { [INFO] [stderr] | ______________^ [INFO] [stderr] 219 | | if self.next_idx >= self.diff.withdraw().len() { [INFO] [stderr] 220 | | None [INFO] [stderr] 221 | | } [INFO] [stderr] ... | [INFO] [stderr] 226 | | } [INFO] [stderr] 227 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 218 | else if self.next_idx >= self.diff.withdraw().len() { [INFO] [stderr] 219 | None [INFO] [stderr] 220 | } [INFO] [stderr] 221 | else { [INFO] [stderr] 222 | let res = &self.diff.withdraw()[self.next_idx]; [INFO] [stderr] 223 | self.next_idx += 1; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/origins.rs:206:21 [INFO] [stderr] | [INFO] [stderr] 206 | / if next.insert(addr.clone()) { [INFO] [stderr] 207 | | if !current.remove(&addr) { [INFO] [stderr] 208 | | let _ = announce.insert(addr); [INFO] [stderr] 209 | | } [INFO] [stderr] 210 | | } [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] 206 | if next.insert(addr.clone()) && !current.remove(&addr) { [INFO] [stderr] 207 | let _ = announce.insert(addr); [INFO] [stderr] 208 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/origins.rs:216:13 [INFO] [stderr] | [INFO] [stderr] 216 | / if next.insert(addr.clone()) { [INFO] [stderr] 217 | | if !current.remove(addr) { [INFO] [stderr] 218 | | announce.insert(addr.clone()); [INFO] [stderr] 219 | | } [INFO] [stderr] 220 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 216 | if next.insert(addr.clone()) && !current.remove(addr) { [INFO] [stderr] 217 | announce.insert(addr.clone()); [INFO] [stderr] 218 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit expression [INFO] [stderr] --> src/rtr/send.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | () [INFO] [stderr] | ^^ help: remove the final `()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/rtr/send.rs:218:14 [INFO] [stderr] | [INFO] [stderr] 218 | else { [INFO] [stderr] | ______________^ [INFO] [stderr] 219 | | if self.next_idx >= self.diff.withdraw().len() { [INFO] [stderr] 220 | | None [INFO] [stderr] 221 | | } [INFO] [stderr] ... | [INFO] [stderr] 226 | | } [INFO] [stderr] 227 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [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] 218 | else if self.next_idx >= self.diff.withdraw().len() { [INFO] [stderr] 219 | None [INFO] [stderr] 220 | } [INFO] [stderr] 221 | else { [INFO] [stderr] 222 | let res = &self.diff.withdraw()[self.next_idx]; [INFO] [stderr] 223 | self.next_idx += 1; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: item `origins::RouteOrigins` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/origins.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | / impl RouteOrigins { [INFO] [stderr] 32 | | /// Creates a new, empty list of route origins. [INFO] [stderr] 33 | | pub fn new() -> Self { [INFO] [stderr] 34 | | RouteOrigins { origins: Vec::new() } [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `origins::RouteOrigins` [INFO] [stderr] --> src/origins.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn new() -> Self { [INFO] [stderr] 34 | | RouteOrigins { origins: Vec::new() } [INFO] [stderr] 35 | | } [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] 26 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `origins::AddressOrigins` [INFO] [stderr] --> src/origins.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / pub fn new() -> Self { [INFO] [stderr] 102 | | AddressOrigins { [INFO] [stderr] 103 | | origins: Vec::new() [INFO] [stderr] 104 | | } [INFO] [stderr] 105 | | } [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] 94 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: item `origins::RouteOrigins` has a public `len` method but no corresponding `is_empty` method [INFO] [stderr] --> src/origins.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | / impl RouteOrigins { [INFO] [stderr] 32 | | /// Creates a new, empty list of route origins. [INFO] [stderr] 33 | | pub fn new() -> Self { [INFO] [stderr] 34 | | RouteOrigins { origins: Vec::new() } [INFO] [stderr] ... | [INFO] [stderr] 61 | | } [INFO] [stderr] 62 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_without_is_empty)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_without_is_empty [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `origins::RouteOrigins` [INFO] [stderr] --> src/origins.rs:33:5 [INFO] [stderr] | [INFO] [stderr] 33 | / pub fn new() -> Self { [INFO] [stderr] 34 | | RouteOrigins { origins: Vec::new() } [INFO] [stderr] 35 | | } [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] 26 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `origins::AddressOrigins` [INFO] [stderr] --> src/origins.rs:101:5 [INFO] [stderr] | [INFO] [stderr] 101 | / pub fn new() -> Self { [INFO] [stderr] 102 | | AddressOrigins { [INFO] [stderr] 103 | | origins: Vec::new() [INFO] [stderr] 104 | | } [INFO] [stderr] 105 | | } [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] 94 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:378:20 [INFO] [stderr] | [INFO] [stderr] 378 | if let Err(_) = hash.verify(&bytes) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 379 | | info!("{}: file has wrong hash.", uri); [INFO] [stderr] 380 | | return Ok(()) [INFO] [stderr] 381 | | } [INFO] [stderr] | |_____________- help: try this: `if hash.verify(&bytes).is_err()` [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:396:20 [INFO] [stderr] | [INFO] [stderr] 396 | if let Err(_) = self.check_crl(&cert, issuer, crl) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 397 | | info!("{}: certificate has been revoked", uri); [INFO] [stderr] 398 | | return Ok(()) [INFO] [stderr] 399 | | } [INFO] [stderr] | |_____________- help: try this: `if self.check_crl(&cert, issuer, crl).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:407:20 [INFO] [stderr] | [INFO] [stderr] 407 | if let Err(_) = hash.verify(&bytes) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 408 | | return Ok(()) [INFO] [stderr] 409 | | } [INFO] [stderr] | |_____________- help: try this: `if hash.verify(&bytes).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:378:20 [INFO] [stderr] | [INFO] [stderr] 378 | if let Err(_) = hash.verify(&bytes) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 379 | | info!("{}: file has wrong hash.", uri); [INFO] [stderr] 380 | | return Ok(()) [INFO] [stderr] 381 | | } [INFO] [stderr] | |_____________- help: try this: `if hash.verify(&bytes).is_err()` [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:396:20 [INFO] [stderr] | [INFO] [stderr] 396 | if let Err(_) = self.check_crl(&cert, issuer, crl) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 397 | | info!("{}: certificate has been revoked", uri); [INFO] [stderr] 398 | | return Ok(()) [INFO] [stderr] 399 | | } [INFO] [stderr] | |_____________- help: try this: `if self.check_crl(&cert, issuer, crl).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:407:20 [INFO] [stderr] | [INFO] [stderr] 407 | if let Err(_) = hash.verify(&bytes) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 408 | | return Ok(()) [INFO] [stderr] 409 | | } [INFO] [stderr] | |_____________- help: try this: `if hash.verify(&bytes).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:466:20 [INFO] [stderr] | [INFO] [stderr] 466 | if let Err(_) = self.check_crl(cert, issuer, store) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 467 | | info!("{}: certificate has been revoked", uri); [INFO] [stderr] 468 | | continue [INFO] [stderr] 469 | | } [INFO] [stderr] | |_____________- help: try this: `if self.check_crl(cert, issuer, store).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:466:20 [INFO] [stderr] | [INFO] [stderr] 466 | if let Err(_) = self.check_crl(cert, issuer, store) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 467 | | info!("{}: certificate has been revoked", uri); [INFO] [stderr] 468 | | continue [INFO] [stderr] 469 | | } [INFO] [stderr] | |_____________- help: try this: `if self.check_crl(cert, issuer, store).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:511:20 [INFO] [stderr] | [INFO] [stderr] 511 | if let Err(_) = crl.validate(issuer) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 512 | | continue [INFO] [stderr] 513 | | } [INFO] [stderr] | |_____________- help: try this: `if crl.validate(issuer).is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/repository.rs:511:20 [INFO] [stderr] | [INFO] [stderr] 511 | if let Err(_) = crl.validate(issuer) { [INFO] [stderr] | _____________- ^^^^^^ [INFO] [stderr] 512 | | continue [INFO] [stderr] 513 | | } [INFO] [stderr] | |_____________- help: try this: `if crl.validate(issuer).is_err()` [INFO] [stderr] | [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/repository.rs:542:40 [INFO] [stderr] | [INFO] [stderr] 542 | let mut finished = cvar.0.lock().unwrap(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/repository.rs:548:40 [INFO] [stderr] | [INFO] [stderr] 548 | let mut finished = cvar.0.lock().unwrap(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/repository.rs:573:14 [INFO] [stderr] | [INFO] [stderr] 573 | running: Vec<(uri::RsyncModule, Arc<(Mutex, Condvar)>)>, [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/repository.rs:542:40 [INFO] [stderr] | [INFO] [stderr] 542 | let mut finished = cvar.0.lock().unwrap(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/repository.rs:548:40 [INFO] [stderr] | [INFO] [stderr] 548 | let mut finished = cvar.0.lock().unwrap(); [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/repository.rs:590:10 [INFO] [stderr] | [INFO] [stderr] 590 | ) -> Result, Condvar)>, Arc<(Mutex, Condvar)>> { [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/repository.rs:573:14 [INFO] [stderr] | [INFO] [stderr] 573 | running: Vec<(uri::RsyncModule, Arc<(Mutex, Condvar)>)>, [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/repository.rs:596:29 [INFO] [stderr] | [INFO] [stderr] 596 | let res = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/repository.rs:590:10 [INFO] [stderr] | [INFO] [stderr] 590 | ) -> Result, Condvar)>, Arc<(Mutex, Condvar)>> { [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: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/repository.rs:596:29 [INFO] [stderr] | [INFO] [stderr] 596 | let res = Arc::new((Mutex::new(false), Condvar::new())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:690:35 [INFO] [stderr] | [INFO] [stderr] 690 | if !destination.ends_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/repository.rs:690:35 [INFO] [stderr] | [INFO] [stderr] 690 | if !destination.ends_with("/") { [INFO] [stderr] | ^^^ help: try using a char instead: `'/'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:681:20 [INFO] [stderr] | [INFO] [stderr] 681 | pub fn version(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:685:16 [INFO] [stderr] | [INFO] [stderr] 685 | pub fn pdu(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:689:20 [INFO] [stderr] | [INFO] [stderr] 689 | pub fn session(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:693:19 [INFO] [stderr] | [INFO] [stderr] 693 | pub fn length(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:681:20 [INFO] [stderr] | [INFO] [stderr] 681 | pub fn version(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:685:16 [INFO] [stderr] | [INFO] [stderr] 685 | pub fn pdu(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:689:20 [INFO] [stderr] | [INFO] [stderr] 689 | pub fn session(&self) -> u16 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/rtr/pdu.rs:693:19 [INFO] [stderr] | [INFO] [stderr] 693 | pub fn length(&self) -> u32 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/slurm.rs:421:45 [INFO] [stderr] | [INFO] [stderr] 421 | PrefixFilter { prefix, asn: asn.map(|asn| AsId::from(asn)) } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `AsId::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:44:35 [INFO] [stderr] | [INFO] [stderr] 44 | .format(|buf, record| write!(buf, "{}\n", record.args())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:247:13 [INFO] [stderr] | [INFO] [stderr] 247 | write!(output, ",\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:44:35 [INFO] [stderr] | [INFO] [stderr] 44 | .format(|buf, record| write!(buf, "{}\n", record.args())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::write_with_newline)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: using `write!()` with a format string that ends in a single newline, consider using `writeln!()` instead [INFO] [stderr] --> src/main.rs:247:13 [INFO] [stderr] | [INFO] [stderr] 247 | write!(output, ",\n")?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/main.rs:82:12 [INFO] [stderr] | [INFO] [stderr] 82 | if let Err(_) = repo.update() { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 83 | | warn!("Update failed. Continuing anyway."); [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____- help: try this: `if repo.update().is_err()` [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/main.rs:168:12 [INFO] [stderr] | [INFO] [stderr] 168 | if let Err(_) = repo.update() { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 169 | | warn!("Update failed. Continuing anyway."); [INFO] [stderr] 170 | | } [INFO] [stderr] | |_____- help: try this: `if repo.update().is_err()` [INFO] [stderr] | [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/main.rs:82:12 [INFO] [stderr] | [INFO] [stderr] 82 | if let Err(_) = repo.update() { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 83 | | warn!("Update failed. Continuing anyway."); [INFO] [stderr] 84 | | } [INFO] [stderr] | |_____- help: try this: `if repo.update().is_err()` [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: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/main.rs:168:12 [INFO] [stderr] | [INFO] [stderr] 168 | if let Err(_) = repo.update() { [INFO] [stderr] | _____- ^^^^^^ [INFO] [stderr] 169 | | warn!("Update failed. Continuing anyway."); [INFO] [stderr] 170 | | } [INFO] [stderr] | |_____- help: try this: `if repo.update().is_err()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 22.85s [INFO] running `"docker" "inspect" "2744eb98c47c293920512267202f2a370089b04ab727ca2957c901ed01818b45"` [INFO] running `"docker" "rm" "-f" "2744eb98c47c293920512267202f2a370089b04ab727ca2957c901ed01818b45"` [INFO] [stdout] 2744eb98c47c293920512267202f2a370089b04ab727ca2957c901ed01818b45