[INFO] updating cached repository JacksonCoder/fire-chain [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/JacksonCoder/fire-chain [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/JacksonCoder/fire-chain" "work/ex/clippy-test-run/sources/stable/gh/JacksonCoder/fire-chain"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/JacksonCoder/fire-chain'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/JacksonCoder/fire-chain" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JacksonCoder/fire-chain"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JacksonCoder/fire-chain'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 378f8cff3b1ec40b08ad45b69c7cfcbdc98e4d72 [INFO] sha for GitHub repo JacksonCoder/fire-chain: 378f8cff3b1ec40b08ad45b69c7cfcbdc98e4d72 [INFO] validating manifest of JacksonCoder/fire-chain 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 JacksonCoder/fire-chain 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 JacksonCoder/fire-chain [INFO] finished frobbing JacksonCoder/fire-chain [INFO] frobbed toml for JacksonCoder/fire-chain written to work/ex/clippy-test-run/sources/stable/gh/JacksonCoder/fire-chain/Cargo.toml [INFO] started frobbing JacksonCoder/fire-chain [INFO] finished frobbing JacksonCoder/fire-chain [INFO] frobbed toml for JacksonCoder/fire-chain written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/JacksonCoder/fire-chain/Cargo.toml [INFO] crate JacksonCoder/fire-chain 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 JacksonCoder/fire-chain against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/JacksonCoder/fire-chain:/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] d0e31bdd9e89b3a15cec3f263910324702b92c0801f651ec4942b07c529f5bf5 [INFO] running `"docker" "start" "-a" "d0e31bdd9e89b3a15cec3f263910324702b92c0801f651ec4942b07c529f5bf5"` [INFO] [stderr] Checking uuid v0.1.18 [INFO] [stderr] Checking chrono v0.2.25 [INFO] [stderr] Checking url v0.2.38 [INFO] [stderr] Checking tiny_http v0.5.8 [INFO] [stderr] Checking fchain v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/firechain/mod.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/firechain/mod.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | hash: hash, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [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/firechain/mod.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | msg: msg, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `msg` [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/firechain/mod.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | input: input, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `input` [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/firechain/mod.rs:115:13 [INFO] [stderr] | [INFO] [stderr] 115 | hash: hash, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `hash` [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/firechain/mod.rs:116:13 [INFO] [stderr] | [INFO] [stderr] 116 | msg: msg, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `msg` [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 import: `firechain` [INFO] [stderr] --> src/server.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use firechain; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::setup_interface` [INFO] [stderr] --> src/server.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use firechain::setup_interface; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::chain_exists` [INFO] [stderr] --> src/server.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use firechain::chain_exists; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::Handler` [INFO] [stderr] --> src/server.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use firechain::Handler; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::Input` [INFO] [stderr] --> src/server.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use firechain::Input; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/server.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arg`, `SubCommand` [INFO] [stderr] --> src/main.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | use clap::{App, Arg, SubCommand, ArgMatches}; [INFO] [stderr] | ^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ParseError` [INFO] [stderr] --> src/main.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | use url::{Url, ParseError}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vec` [INFO] [stderr] --> src/firechain/mod.rs:57:15 [INFO] [stderr] | [INFO] [stderr] 57 | Array(vec) => { [INFO] [stderr] | ^^^ help: consider using `_vec` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `is_record_request` is assigned to, but never used [INFO] [stderr] --> src/server.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut is_record_request: bool; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_is_record_request` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `is_record_request` is never read [INFO] [stderr] --> src/server.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | is_record_request = match qpair.1.clone().into_owned().clone().as_str() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ledger_file_path` [INFO] [stderr] --> src/main.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | let ledger_file_path = match matches.value_of("dbpath") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_ledger_file_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `threads` [INFO] [stderr] --> src/main.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let threads = match matches.value_of("threads") { [INFO] [stderr] | ^^^^^^^ help: consider using `_threads` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `E` [INFO] [stderr] --> src/firechain/mod.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | Err(E) => fatal_error(format!("The file '{}' could not be opened.",s).as_str(),-1) [INFO] [stderr] | ^ help: consider using `_E` instead [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain` [INFO] [stderr] --> src/server.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use firechain; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::setup_interface` [INFO] [stderr] --> src/server.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use firechain::setup_interface; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::chain_exists` [INFO] [stderr] --> src/server.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use firechain::chain_exists; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::Handler` [INFO] [stderr] --> src/server.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use firechain::Handler; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `firechain::Input` [INFO] [stderr] --> src/server.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use firechain::Input; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::str::FromStr` [INFO] [stderr] --> src/server.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::str::FromStr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `Arg`, `SubCommand` [INFO] [stderr] --> src/main.rs:5:17 [INFO] [stderr] | [INFO] [stderr] 5 | use clap::{App, Arg, SubCommand, ArgMatches}; [INFO] [stderr] | ^^^ ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `ParseError` [INFO] [stderr] --> src/main.rs:14:16 [INFO] [stderr] | [INFO] [stderr] 14 | use url::{Url, ParseError}; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/firechain/mod.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let mut file = File::open(s); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `FireChainStatus` [INFO] [stderr] --> src/firechain/enums.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub enum FireChainStatus { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `json_parse` [INFO] [stderr] --> src/firechain/parser.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn json_parse(input: &str) -> json::JsonValue { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `json_to_str` [INFO] [stderr] --> src/firechain/parser.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn json_to_str(input: json::JsonValue) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ecdsa_check` [INFO] [stderr] --> src/firechain/crypto.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn ecdsa_check(key: &str, msg: &str, sig: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `match_signature` [INFO] [stderr] --> src/firechain/crypto.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn match_signature(key_list: Vec, msg: &str, hash: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `setup_interface` [INFO] [stderr] --> src/firechain/mod.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn setup_interface() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `chain_exists` [INFO] [stderr] --> src/firechain/mod.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn chain_exists(chain: &Handler) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Handler` [INFO] [stderr] --> src/firechain/mod.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Handler { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Input` [INFO] [stderr] --> src/firechain/mod.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | pub struct Input { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Signature` [INFO] [stderr] --> src/firechain/mod.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub struct Signature { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PKey` [INFO] [stderr] --> src/firechain/mod.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | pub struct PKey { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Transaction` [INFO] [stderr] --> src/firechain/mod.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct Transaction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `json_read_ledger_file` [INFO] [stderr] --> src/firechain/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | fn json_read_ledger_file(json_obj: JsonValue) -> (Vec,u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_unknown` [INFO] [stderr] --> src/firechain/mod.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn new_unknown(input: Input) -> Handler { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/firechain/mod.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn parse(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/firechain/mod.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn new(s: &str) -> Input { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_result` [INFO] [stderr] --> src/firechain/mod.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | pub fn get_result(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_from_hash` [INFO] [stderr] --> src/firechain/mod.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn new_from_hash(hash: String, public_key_list: Vec, msg: String) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/firechain/mod.rs:113:5 [INFO] [stderr] | [INFO] [stderr] 113 | pub fn new(hash: String, msg: String, pkey: PKey) -> Signature { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_public` [INFO] [stderr] --> src/firechain/mod.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | pub fn get_public(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `return_json` [INFO] [stderr] --> src/server.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | fn return_json(string: &str) -> Response>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name such as `e` [INFO] [stderr] --> src/firechain/parser.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | Err(E) => fatal_error(format!("The designated FireChain file has invalid JSON data: {}",E).as_str(),-1) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/firechain/mod.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | file.read_to_string(& mut output); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name such as `e` [INFO] [stderr] --> src/firechain/mod.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | Err(E) => fatal_error(format!("The file '{}' could not be opened.",s).as_str(),-1) [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/server.rs:74:12 [INFO] [stderr] | [INFO] [stderr] 74 | if let None = user { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 75 | | return invalid_args(); [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____- help: try this: `if user.is_none()` [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_none()` [INFO] [stderr] --> src/server.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | if let None = time_nonce { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 78 | | return invalid_args(); [INFO] [stderr] 79 | | } [INFO] [stderr] | |_____- help: try this: `if time_nonce.is_none()` [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_none()` [INFO] [stderr] --> src/server.rs:80:12 [INFO] [stderr] | [INFO] [stderr] 80 | if let None = validation_sig { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 81 | | return invalid_args(); [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____- help: try this: `if validation_sig.is_none()` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | rq.respond(response); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: empty `loop {}` detected. You may want to either use `panic!()` or add `std::thread::sleep(..);` to the loop body. [INFO] [stderr] --> src/main.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | loop {} // Infinite loop until manual program exit [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::empty_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop [INFO] [stderr] [INFO] [stderr] warning: unused variable: `vec` [INFO] [stderr] --> src/firechain/mod.rs:57:15 [INFO] [stderr] | [INFO] [stderr] 57 | Array(vec) => { [INFO] [stderr] | ^^^ help: consider using `_vec` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable `is_record_request` is assigned to, but never used [INFO] [stderr] --> src/server.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | let mut is_record_request: bool; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_is_record_request` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `is_record_request` is never read [INFO] [stderr] --> src/server.rs:58:13 [INFO] [stderr] | [INFO] [stderr] 58 | is_record_request = match qpair.1.clone().into_owned().clone().as_str() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ledger_file_path` [INFO] [stderr] --> src/main.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | let ledger_file_path = match matches.value_of("dbpath") { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using `_ledger_file_path` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `threads` [INFO] [stderr] --> src/main.rs:28:9 [INFO] [stderr] | [INFO] [stderr] 28 | let threads = match matches.value_of("threads") { [INFO] [stderr] | ^^^^^^^ help: consider using `_threads` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `E` [INFO] [stderr] --> src/firechain/mod.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | Err(E) => fatal_error(format!("The file '{}' could not be opened.",s).as_str(),-1) [INFO] [stderr] | ^ help: consider using `_E` instead [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/firechain/mod.rs:86:13 [INFO] [stderr] | [INFO] [stderr] 86 | let mut file = File::open(s); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: enum is never used: `FireChainStatus` [INFO] [stderr] --> src/firechain/enums.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub enum FireChainStatus { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `json_parse` [INFO] [stderr] --> src/firechain/parser.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn json_parse(input: &str) -> json::JsonValue { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `json_to_str` [INFO] [stderr] --> src/firechain/parser.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub fn json_to_str(input: json::JsonValue) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `ecdsa_check` [INFO] [stderr] --> src/firechain/crypto.rs:6:1 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn ecdsa_check(key: &str, msg: &str, sig: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `match_signature` [INFO] [stderr] --> src/firechain/crypto.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn match_signature(key_list: Vec, msg: &str, hash: &str) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `setup_interface` [INFO] [stderr] --> src/firechain/mod.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub fn setup_interface() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `chain_exists` [INFO] [stderr] --> src/firechain/mod.rs:20:1 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn chain_exists(chain: &Handler) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Handler` [INFO] [stderr] --> src/firechain/mod.rs:28:1 [INFO] [stderr] | [INFO] [stderr] 28 | pub struct Handler { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Input` [INFO] [stderr] --> src/firechain/mod.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | pub struct Input { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Signature` [INFO] [stderr] --> src/firechain/mod.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | pub struct Signature { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `PKey` [INFO] [stderr] --> src/firechain/mod.rs:45:1 [INFO] [stderr] | [INFO] [stderr] 45 | pub struct PKey { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `Transaction` [INFO] [stderr] --> src/firechain/mod.rs:49:1 [INFO] [stderr] | [INFO] [stderr] 49 | pub struct Transaction { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `json_read_ledger_file` [INFO] [stderr] --> src/firechain/mod.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | fn json_read_ledger_file(json_obj: JsonValue) -> (Vec,u32) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_unknown` [INFO] [stderr] --> src/firechain/mod.rs:66:5 [INFO] [stderr] | [INFO] [stderr] 66 | pub fn new_unknown(input: Input) -> Handler { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `parse` [INFO] [stderr] --> src/firechain/mod.rs:75:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub fn parse(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/firechain/mod.rs:85:5 [INFO] [stderr] | [INFO] [stderr] 85 | pub fn new(s: &str) -> Input { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_result` [INFO] [stderr] --> src/firechain/mod.rs:100:5 [INFO] [stderr] | [INFO] [stderr] 100 | pub fn get_result(&self) -> &str { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new_from_hash` [INFO] [stderr] --> src/firechain/mod.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | pub fn new_from_hash(hash: String, public_key_list: Vec, msg: String) -> Option { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/firechain/mod.rs:113:5 [INFO] [stderr] | [INFO] [stderr] 113 | pub fn new(hash: String, msg: String, pkey: PKey) -> Signature { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `get_public` [INFO] [stderr] --> src/firechain/mod.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | pub fn get_public(&self) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `return_json` [INFO] [stderr] --> src/server.rs:39:1 [INFO] [stderr] | [INFO] [stderr] 39 | fn return_json(string: &str) -> Response>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name such as `e` [INFO] [stderr] --> src/firechain/parser.rs:10:13 [INFO] [stderr] | [INFO] [stderr] 10 | Err(E) => fatal_error(format!("The designated FireChain file has invalid JSON data: {}",E).as_str(),-1) [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/firechain/mod.rs:90:17 [INFO] [stderr] | [INFO] [stderr] 90 | file.read_to_string(& mut output); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: variable `E` should have a snake case name such as `e` [INFO] [stderr] --> src/firechain/mod.rs:95:17 [INFO] [stderr] | [INFO] [stderr] 95 | Err(E) => fatal_error(format!("The file '{}' could not be opened.",s).as_str(),-1) [INFO] [stderr] | ^ [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_none()` [INFO] [stderr] --> src/server.rs:74:12 [INFO] [stderr] | [INFO] [stderr] 74 | if let None = user { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 75 | | return invalid_args(); [INFO] [stderr] 76 | | } [INFO] [stderr] | |_____- help: try this: `if user.is_none()` [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_none()` [INFO] [stderr] --> src/server.rs:77:12 [INFO] [stderr] | [INFO] [stderr] 77 | if let None = time_nonce { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 78 | | return invalid_args(); [INFO] [stderr] 79 | | } [INFO] [stderr] | |_____- help: try this: `if time_nonce.is_none()` [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_none()` [INFO] [stderr] --> src/server.rs:80:12 [INFO] [stderr] | [INFO] [stderr] 80 | if let None = validation_sig { [INFO] [stderr] | _____- ^^^^ [INFO] [stderr] 81 | | return invalid_args(); [INFO] [stderr] 82 | | } [INFO] [stderr] | |_____- help: try this: `if validation_sig.is_none()` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/main.rs:57:17 [INFO] [stderr] | [INFO] [stderr] 57 | rq.respond(response); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] [INFO] [stderr] warning: empty `loop {}` detected. You may want to either use `panic!()` or add `std::thread::sleep(..);` to the loop body. [INFO] [stderr] --> src/main.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | loop {} // Infinite loop until manual program exit [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::empty_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_loop [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 7.30s [INFO] running `"docker" "inspect" "d0e31bdd9e89b3a15cec3f263910324702b92c0801f651ec4942b07c529f5bf5"` [INFO] running `"docker" "rm" "-f" "d0e31bdd9e89b3a15cec3f263910324702b92c0801f651ec4942b07c529f5bf5"` [INFO] [stdout] d0e31bdd9e89b3a15cec3f263910324702b92c0801f651ec4942b07c529f5bf5