[INFO] updating cached repository werner/firstcoin [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/werner/firstcoin [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/werner/firstcoin" "work/ex/clippy-test-run/sources/stable/gh/werner/firstcoin"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/werner/firstcoin'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/werner/firstcoin" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/werner/firstcoin"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/werner/firstcoin'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 09697aa78c8e98bb14188f07b4ff163c31c4b1a9 [INFO] sha for GitHub repo werner/firstcoin: 09697aa78c8e98bb14188f07b4ff163c31c4b1a9 [INFO] validating manifest of werner/firstcoin 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 werner/firstcoin 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 werner/firstcoin [INFO] finished frobbing werner/firstcoin [INFO] frobbed toml for werner/firstcoin written to work/ex/clippy-test-run/sources/stable/gh/werner/firstcoin/Cargo.toml [INFO] started frobbing werner/firstcoin [INFO] finished frobbing werner/firstcoin [INFO] frobbed toml for werner/firstcoin written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/werner/firstcoin/Cargo.toml [INFO] crate werner/firstcoin has a lockfile. skipping [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 werner/firstcoin 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/gh/werner/firstcoin:/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] b8ad7a9166d964accead44b23b054e19ec1b237386b62d99f91dcf413dbf5ec8 [INFO] running `"docker" "start" "-a" "b8ad7a9166d964accead44b23b054e19ec1b237386b62d99f91dcf413dbf5ec8"` [INFO] [stderr] Compiling libc v0.2.36 [INFO] [stderr] Compiling either v1.4.0 [INFO] [stderr] Compiling scopeguard v0.3.3 [INFO] [stderr] Compiling lazy_static v0.2.11 [INFO] [stderr] Checking itertools v0.5.10 [INFO] [stderr] Checking rand v0.3.22 [INFO] [stderr] Compiling coco v0.1.1 [INFO] [stderr] Compiling rand v0.4.2 [INFO] [stderr] Compiling num_cpus v1.8.0 [INFO] [stderr] Checking parity-wordlist v1.2.0 [INFO] [stderr] Compiling rayon-core v1.3.0 [INFO] [stderr] Compiling rayon v0.8.2 [INFO] [stderr] Compiling ring v0.12.1 [INFO] [stderr] Checking firstcoin v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/block.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | previous_hash: previous_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `previous_hash` [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/block.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/block.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | time_stamp: time_stamp [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `time_stamp` [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/transaction.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/transaction.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | inputs: inputs, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `inputs` [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/block.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | previous_hash: previous_hash, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `previous_hash` [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/block.rs:23:9 [INFO] [stderr] | [INFO] [stderr] 23 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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/block.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | time_stamp: time_stamp [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `time_stamp` [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/transaction.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | value: value, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `value` [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/transaction.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | inputs: inputs, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `inputs` [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: unused imports: `digest`, `signature` [INFO] [stderr] --> src/wallet.rs:2:12 [INFO] [stderr] | [INFO] [stderr] 2 | use ring::{digest, signature, rand, agreement}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `digest`, `signature` [INFO] [stderr] --> src/wallet.rs:2:12 [INFO] [stderr] | [INFO] [stderr] 2 | use ring::{digest, signature, rand, agreement}; [INFO] [stderr] | ^^^^^^ ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `generate_hash` [INFO] [stderr] --> src/string_utils.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn generate_hash() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Wallet` [INFO] [stderr] --> src/wallet.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Wallet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/wallet.rs:10:3 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn new() -> Wallet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `generate_keys` [INFO] [stderr] --> src/wallet.rs:17:3 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn generate_keys(&mut self) -> &Wallet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `PublicKey` [INFO] [stderr] --> src/transaction.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | type PublicKey = String; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TransactionInput` [INFO] [stderr] --> src/transaction.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct TransactionInput {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TransactionOutput` [INFO] [stderr] --> src/transaction.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct TransactionOutput {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Transaction` [INFO] [stderr] --> src/transaction.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct Transaction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/transaction.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn new(from: PublicKey, to: PublicKey, value: f64, inputs: Vec, sequence: i32) -> Transaction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:18:54 [INFO] [stderr] | [INFO] [stderr] 18 | let time_stamp = now_in_time.as_secs() * 1_000 + now_in_time.subsec_nanos() as u64 / 1_000_000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(now_in_time.subsec_nanos())` [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/block.rs:51:20 [INFO] [stderr] | [INFO] [stderr] 51 | let mut hash = self.hash.clone().unwrap_or(String::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.hash.clone().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/string_utils.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | for byte in input.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try this: `input` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/chain.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | let previous_hash = previous_block.hash.unwrap_or(String::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `previous_block.hash.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/chain.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | self.chain.push(Block::new(data, String::from(previous_hash.clone()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `previous_hash.clone()` [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/chain.rs:31:10 [INFO] [stderr] | [INFO] [stderr] 31 | if previous_block.hash.unwrap_or(String::new()) != current_block.previous_hash { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `previous_block.hash.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/chain.rs:36:10 [INFO] [stderr] | [INFO] [stderr] 36 | if current_block.hash.unwrap_or(String::new()).contains(&target.to_string()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_block.hash.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: function is never used: `generate_hash` [INFO] [stderr] --> src/string_utils.rs:9:1 [INFO] [stderr] | [INFO] [stderr] 9 | pub fn generate_hash() -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Wallet` [INFO] [stderr] --> src/wallet.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct Wallet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/wallet.rs:10:3 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn new() -> Wallet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `generate_keys` [INFO] [stderr] --> src/wallet.rs:17:3 [INFO] [stderr] | [INFO] [stderr] 17 | pub fn generate_keys(&mut self) -> &Wallet { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type alias is never used: `PublicKey` [INFO] [stderr] --> src/transaction.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | type PublicKey = String; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TransactionInput` [INFO] [stderr] --> src/transaction.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct TransactionInput {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `TransactionOutput` [INFO] [stderr] --> src/transaction.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub struct TransactionOutput {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Transaction` [INFO] [stderr] --> src/transaction.rs:7:1 [INFO] [stderr] | [INFO] [stderr] 7 | pub struct Transaction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/transaction.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn new(from: PublicKey, to: PublicKey, value: f64, inputs: Vec, sequence: i32) -> Transaction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/block.rs:18:54 [INFO] [stderr] | [INFO] [stderr] 18 | let time_stamp = now_in_time.as_secs() * 1_000 + now_in_time.subsec_nanos() as u64 / 1_000_000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(now_in_time.subsec_nanos())` [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/block.rs:51:20 [INFO] [stderr] | [INFO] [stderr] 51 | let mut hash = self.hash.clone().unwrap_or(String::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.hash.clone().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this call to `as_ref` does nothing [INFO] [stderr] --> src/string_utils.rs:15:17 [INFO] [stderr] | [INFO] [stderr] 15 | for byte in input.as_ref() { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try this: `input` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_asref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_asref [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/chain.rs:19:25 [INFO] [stderr] | [INFO] [stderr] 19 | let previous_hash = previous_block.hash.unwrap_or(String::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `previous_block.hash.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/chain.rs:20:38 [INFO] [stderr] | [INFO] [stderr] 20 | self.chain.push(Block::new(data, String::from(previous_hash.clone()))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `previous_hash.clone()` [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: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/chain.rs:31:10 [INFO] [stderr] | [INFO] [stderr] 31 | if previous_block.hash.unwrap_or(String::new()) != current_block.previous_hash { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `previous_block.hash.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `new` [INFO] [stderr] --> src/chain.rs:36:10 [INFO] [stderr] | [INFO] [stderr] 36 | if current_block.hash.unwrap_or(String::new()).contains(&target.to_string()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `current_block.hash.unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 20.21s [INFO] running `"docker" "inspect" "b8ad7a9166d964accead44b23b054e19ec1b237386b62d99f91dcf413dbf5ec8"` [INFO] running `"docker" "rm" "-f" "b8ad7a9166d964accead44b23b054e19ec1b237386b62d99f91dcf413dbf5ec8"` [INFO] [stdout] b8ad7a9166d964accead44b23b054e19ec1b237386b62d99f91dcf413dbf5ec8