[INFO] fetching crate grin_wallet_config 5.3.3... [INFO] linting grin_wallet_config-5.3.3 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate grin_wallet_config 5.3.3 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate grin_wallet_config 5.3.3 [INFO] finished tweaking crates.io crate grin_wallet_config 5.3.3 [INFO] tweaked toml for crates.io crate grin_wallet_config 5.3.3 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate grin_wallet_config 5.3.3 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 200 packages to latest compatible versions [INFO] [stderr] Adding dirs v2.0.2 (available: v6.0.0) [INFO] [stderr] Adding pretty_assertions v0.6.1 (available: v1.4.1) [INFO] [stderr] Adding rand v0.6.5 (available: v0.10.0) [INFO] [stderr] Adding subtle v2.4.1 (available: v2.6.1) [INFO] [stderr] Adding toml v0.5.11 (available: v1.0.7+spec-1.1.0) [INFO] [stderr] Adding zeroize v1.3.0 (available: v1.8.2) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded grin_wallet_util v5.3.3 [INFO] [stderr] Downloaded ctor v0.1.26 [INFO] [stderr] Downloaded zip v0.5.13 [INFO] [stderr] Downloaded ripemd160 v0.9.1 [INFO] [stderr] Downloaded pbkdf2 v0.8.0 [INFO] [stderr] Downloaded enum_primitive v0.1.1 [INFO] [stderr] Downloaded crypto-mac v0.11.1 [INFO] [stderr] Downloaded croaring v1.1.0 [INFO] [stderr] Downloaded grin_keychain v5.4.0 [INFO] [stderr] Downloaded log4rs v1.4.0 [INFO] [stderr] Downloaded grin_util v5.4.0 [INFO] [stderr] Downloaded password-hash v0.2.3 [INFO] [stderr] Downloaded unsafe-any-ors v1.0.0 [INFO] [stderr] Downloaded output_vt100 v0.1.3 [INFO] [stderr] Downloaded thread-id v5.1.0 [INFO] [stderr] Downloaded destructure_traitobject v0.2.0 [INFO] [stderr] Downloaded grin_core v5.4.0 [INFO] [stderr] Downloaded typemap-ors v1.0.0 [INFO] [stderr] Downloaded croaring-sys v2.1.0 [INFO] [stderr] Downloaded parking_lot_core v0.7.3 [INFO] [stderr] Downloaded grin_secp256k1zkp v0.7.15 [INFO] [stderr] Downloaded sha3 v0.8.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e323804c2926b896a49cfe0f62abf8ae32e17c20e38e7e917cad13ef7135dc42 [INFO] running `Command { std: "docker" "start" "-a" "e323804c2926b896a49cfe0f62abf8ae32e17c20e38e7e917cad13ef7135dc42", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e323804c2926b896a49cfe0f62abf8ae32e17c20e38e7e917cad13ef7135dc42", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e323804c2926b896a49cfe0f62abf8ae32e17c20e38e7e917cad13ef7135dc42", kill_on_drop: false }` [INFO] [stdout] e323804c2926b896a49cfe0f62abf8ae32e17c20e38e7e917cad13ef7135dc42 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5bdba2d8e247d3385300f2e9b11055fcf39f81924059cc8a6f9e392e9595cd91 [INFO] running `Command { std: "docker" "start" "-a" "5bdba2d8e247d3385300f2e9b11055fcf39f81924059cc8a6f9e392e9595cd91", kill_on_drop: false }` [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Compiling autocfg v0.1.8 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Checking subtle v2.4.1 [INFO] [stderr] Checking getrandom v0.3.4 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Checking destructure_traitobject v0.2.0 [INFO] [stderr] Checking serde v1.0.228 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Checking serde_json v1.0.149 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking ordered-float v2.10.1 [INFO] [stderr] Compiling grin_secp256k1zkp v0.7.15 [INFO] [stderr] Checking object v0.37.3 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Checking unsafe-any-ors v1.0.0 [INFO] [stderr] Checking rand_core v0.9.5 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Checking typemap-ors v1.0.0 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand v0.5.6 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking parking_lot_core v0.7.3 [INFO] [stderr] Checking flate2 v1.1.9 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking zeroize v1.3.0 [INFO] [stderr] Checking thread-id v5.1.0 [INFO] [stderr] Checking lock_api v0.3.4 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Checking mock_instant v0.6.0 [INFO] [stderr] Checking log-mdc v0.1.0 [INFO] [stderr] Checking serde_yaml v0.9.34+deprecated [INFO] [stderr] Checking serde-value v0.7.0 [INFO] [stderr] Checking chrono v0.4.44 [INFO] [stderr] Checking zip v0.5.13 [INFO] [stderr] Checking generic-array v0.12.4 [INFO] [stderr] Checking digest v0.9.0 [INFO] [stderr] Checking block-buffer v0.9.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking crypto-mac v0.11.1 [INFO] [stderr] Compiling croaring-sys v2.1.0 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Checking parking_lot v0.10.2 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Checking sha2 v0.9.9 [INFO] [stderr] Checking base64ct v1.8.3 [INFO] [stderr] Checking base64 v0.12.3 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking hmac v0.11.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking constant_time_eq v0.1.5 [INFO] [stderr] Checking signature v1.6.4 [INFO] [stderr] Checking password-hash v0.2.3 [INFO] [stderr] Checking blake2-rfc v0.2.18 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking block-buffer v0.7.3 [INFO] [stderr] Checking ed25519 v1.5.3 [INFO] [stderr] Checking digest v0.8.1 [INFO] [stderr] Checking ripemd160 v0.9.1 [INFO] [stderr] Checking curve25519-dalek v3.2.1 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Checking sha3 v0.8.2 [INFO] [stderr] Checking lru-cache v0.1.2 [INFO] [stderr] Checking enum_primitive v0.1.1 [INFO] [stderr] Checking pbkdf2 v0.8.0 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking siphasher v0.3.11 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking dirs v2.0.2 [INFO] [stderr] Checking difference v2.0.0 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking pretty_assertions v0.6.1 [INFO] [stderr] Checking log4rs v1.4.0 [INFO] [stderr] Checking ed25519-dalek v1.0.1 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Checking croaring v1.1.0 [INFO] [stderr] Checking backtrace v0.3.76 [INFO] [stderr] Checking grin_util v5.4.0 [INFO] [stderr] Checking grin_keychain v5.4.0 [INFO] [stderr] Checking grin_wallet_util v5.3.3 [INFO] [stderr] Checking grin_core v5.4.0 [INFO] [stderr] Checking grin_wallet_config v5.3.3 (/opt/rustwide/workdir) [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/comments.rs:339:12 [INFO] [stdout] | [INFO] [stdout] 339 | match !(key == "NOT_FOUND") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `(key != "NOT_FOUND")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/comments.rs:337:27 [INFO] [stdout] | [INFO] [stdout] 337 | vec_old_conf.iter().map(|s| s.chars()).flatten().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(|s| s.chars())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/comments.rs:362:12 [INFO] [stdout] | [INFO] [stdout] 362 | match !(key == "NOT_FOUND") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `(key != "NOT_FOUND")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/comments.rs:375:23 [INFO] [stdout] | [INFO] [stdout] 375 | let old_key_exist = vec_key_old.iter().any(|old_key| *old_key == key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec_key_old.contains(&key)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ChainTypes` which implements the `Copy` trait [INFO] [stdout] --> src/config.rs:214:30 [INFO] [stdout] | [INFO] [stdout] 214 | defaults.chain_type = Some(chain_type.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*chain_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/config.rs:233:3 [INFO] [stdout] | [INFO] [stdout] 233 | return_value.config_file_path = Some(PathBuf::from(&file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `types::GlobalWalletConfig { config_file_path: Some(PathBuf::from(&file_path)), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/config.rs:232:3 [INFO] [stdout] | [INFO] [stdout] 232 | let mut return_value = GlobalWalletConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/config.rs:271:46 [INFO] [stdout] | [INFO] [stdout] 271 | pub fn update_paths(&mut self, wallet_home: &PathBuf) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 271 ~ pub fn update_paths(&mut self, wallet_home: &Path) { [INFO] [stdout] 272 ~ let mut wallet_path = wallet_home.to_path_buf(); [INFO] [stdout] 273 | wallet_path.push(GRIN_WALLET_DIR); [INFO] [stdout] 274 | self.members.as_mut().unwrap().wallet.data_file_dir = [INFO] [stdout] 275 | wallet_path.to_str().unwrap().to_owned(); [INFO] [stdout] 276 ~ let mut secret_path = wallet_home.to_path_buf(); [INFO] [stdout] 277 | secret_path.push(OWNER_API_SECRET_FILE_NAME); [INFO] [stdout] 278 | self.members.as_mut().unwrap().wallet.api_secret_path = [INFO] [stdout] 279 | Some(secret_path.to_str().unwrap().to_owned()); [INFO] [stdout] 280 ~ let mut node_secret_path = wallet_home.to_path_buf(); [INFO] [stdout] 281 | node_secret_path.push(API_SECRET_FILE_NAME); [INFO] [stdout] 282 | self.members.as_mut().unwrap().wallet.node_api_secret_path = [INFO] [stdout] 283 | Some(node_secret_path.to_str().unwrap().to_owned()); [INFO] [stdout] 284 ~ let mut log_path = wallet_home.to_path_buf(); [INFO] [stdout] 285 | log_path.push(WALLET_LOG_FILE_NAME); [INFO] [stdout] ... [INFO] [stdout] 292 | .log_file_path = log_path.to_str().unwrap().to_owned(); [INFO] [stdout] 293 ~ let tor_path = wallet_home.to_path_buf(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/comments.rs:339:12 [INFO] [stdout] | [INFO] [stdout] 339 | match !(key == "NOT_FOUND") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `(key != "NOT_FOUND")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(..).flatten()` on `Iterator` [INFO] [stdout] --> src/comments.rs:337:27 [INFO] [stdout] | [INFO] [stdout] 337 | vec_old_conf.iter().map(|s| s.chars()).flatten().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try replacing `map` with `flat_map` and remove the `.flatten()`: `flat_map(|s| s.chars())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_flatten [INFO] [stdout] = note: `#[warn(clippy::map_flatten)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/comments.rs:362:12 [INFO] [stdout] | [INFO] [stdout] 362 | match !(key == "NOT_FOUND") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `(key != "NOT_FOUND")` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/comments.rs:375:23 [INFO] [stdout] | [INFO] [stdout] 375 | let old_key_exist = vec_key_old.iter().any(|old_key| *old_key == key); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `vec_key_old.contains(&key)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/config.rs:342:6 [INFO] [stdout] | [INFO] [stdout] 342 | if config.config_file_version != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `config.config_file_version.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/config.rs:350:18 [INFO] [stdout] | [INFO] [stdout] 350 | ..config.tor.unwrap_or(TorConfig::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/types.rs:109:20 [INFO] [stdout] | [INFO] [stdout] 109 | .unwrap_or_else(|| WalletConfig::default_accept_fee_base()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `WalletConfig::default_accept_fee_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ChainTypes` which implements the `Copy` trait [INFO] [stdout] --> src/config.rs:214:30 [INFO] [stdout] | [INFO] [stdout] 214 | defaults.chain_type = Some(chain_type.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*chain_type` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/config.rs:233:3 [INFO] [stdout] | [INFO] [stdout] 233 | return_value.config_file_path = Some(PathBuf::from(&file_path)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `types::GlobalWalletConfig { config_file_path: Some(PathBuf::from(&file_path)), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/config.rs:232:3 [INFO] [stdout] | [INFO] [stdout] 232 | let mut return_value = GlobalWalletConfig::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&PathBuf` instead of `&Path` involves a new object where a slice will do [INFO] [stdout] --> src/config.rs:271:46 [INFO] [stdout] | [INFO] [stdout] 271 | pub fn update_paths(&mut self, wallet_home: &PathBuf) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 271 ~ pub fn update_paths(&mut self, wallet_home: &Path) { [INFO] [stdout] 272 ~ let mut wallet_path = wallet_home.to_path_buf(); [INFO] [stdout] 273 | wallet_path.push(GRIN_WALLET_DIR); [INFO] [stdout] 274 | self.members.as_mut().unwrap().wallet.data_file_dir = [INFO] [stdout] 275 | wallet_path.to_str().unwrap().to_owned(); [INFO] [stdout] 276 ~ let mut secret_path = wallet_home.to_path_buf(); [INFO] [stdout] 277 | secret_path.push(OWNER_API_SECRET_FILE_NAME); [INFO] [stdout] 278 | self.members.as_mut().unwrap().wallet.api_secret_path = [INFO] [stdout] 279 | Some(secret_path.to_str().unwrap().to_owned()); [INFO] [stdout] 280 ~ let mut node_secret_path = wallet_home.to_path_buf(); [INFO] [stdout] 281 | node_secret_path.push(API_SECRET_FILE_NAME); [INFO] [stdout] 282 | self.members.as_mut().unwrap().wallet.node_api_secret_path = [INFO] [stdout] 283 | Some(node_secret_path.to_str().unwrap().to_owned()); [INFO] [stdout] 284 ~ let mut log_path = wallet_home.to_path_buf(); [INFO] [stdout] 285 | log_path.push(WALLET_LOG_FILE_NAME); [INFO] [stdout] ... [INFO] [stdout] 292 | .log_file_path = log_path.to_str().unwrap().to_owned(); [INFO] [stdout] 293 ~ let tor_path = wallet_home.to_path_buf(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/config.rs:342:6 [INFO] [stdout] | [INFO] [stdout] 342 | if config.config_file_version != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `config.config_file_version.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/config.rs:350:18 [INFO] [stdout] | [INFO] [stdout] 350 | ..config.tor.unwrap_or(TorConfig::default()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/types.rs:203:1 [INFO] [stdout] | [INFO] [stdout] 203 | / impl Default for TorBridgeConfig { [INFO] [stdout] 204 | | fn default() -> TorBridgeConfig { [INFO] [stdout] 205 | | TorBridgeConfig { [INFO] [stdout] 206 | | bridge_line: None, [INFO] [stdout] ... | [INFO] [stdout] 210 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 196 + #[derive(Default)] [INFO] [stdout] 197 | pub struct TorBridgeConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/types.rs:233:1 [INFO] [stdout] | [INFO] [stdout] 233 | / impl Default for TorProxyConfig { [INFO] [stdout] 234 | | fn default() -> TorProxyConfig { [INFO] [stdout] 235 | | TorProxyConfig { [INFO] [stdout] 236 | | transport: None, [INFO] [stdout] ... | [INFO] [stdout] 243 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 220 + #[derive(Default)] [INFO] [stdout] 221 | pub struct TorProxyConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/types.rs:109:20 [INFO] [stdout] | [INFO] [stdout] 109 | .unwrap_or_else(|| WalletConfig::default_accept_fee_base()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `WalletConfig::default_accept_fee_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/types.rs:203:1 [INFO] [stdout] | [INFO] [stdout] 203 | / impl Default for TorBridgeConfig { [INFO] [stdout] 204 | | fn default() -> TorBridgeConfig { [INFO] [stdout] 205 | | TorBridgeConfig { [INFO] [stdout] 206 | | bridge_line: None, [INFO] [stdout] ... | [INFO] [stdout] 210 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 196 + #[derive(Default)] [INFO] [stdout] 197 | pub struct TorBridgeConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/types.rs:233:1 [INFO] [stdout] | [INFO] [stdout] 233 | / impl Default for TorProxyConfig { [INFO] [stdout] 234 | | fn default() -> TorProxyConfig { [INFO] [stdout] 235 | | TorProxyConfig { [INFO] [stdout] 236 | | transport: None, [INFO] [stdout] ... | [INFO] [stdout] 243 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 220 + #[derive(Default)] [INFO] [stdout] 221 | pub struct TorProxyConfig { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 22.64s [INFO] running `Command { std: "docker" "inspect" "5bdba2d8e247d3385300f2e9b11055fcf39f81924059cc8a6f9e392e9595cd91", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5bdba2d8e247d3385300f2e9b11055fcf39f81924059cc8a6f9e392e9595cd91", kill_on_drop: false }` [INFO] [stdout] 5bdba2d8e247d3385300f2e9b11055fcf39f81924059cc8a6f9e392e9595cd91