[INFO] updating cached repository Yixf-Self/MutationScan [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/Yixf-Self/MutationScan [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/Yixf-Self/MutationScan" "work/ex/clippy-test-run/sources/stable/gh/Yixf-Self/MutationScan"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/Yixf-Self/MutationScan'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/Yixf-Self/MutationScan" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Yixf-Self/MutationScan"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Yixf-Self/MutationScan'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b96f9176772372aeb7efa12aac03d8b24e6f4c7e [INFO] sha for GitHub repo Yixf-Self/MutationScan: b96f9176772372aeb7efa12aac03d8b24e6f4c7e [INFO] validating manifest of Yixf-Self/MutationScan 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 Yixf-Self/MutationScan 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 Yixf-Self/MutationScan [INFO] finished frobbing Yixf-Self/MutationScan [INFO] frobbed toml for Yixf-Self/MutationScan written to work/ex/clippy-test-run/sources/stable/gh/Yixf-Self/MutationScan/Cargo.toml [INFO] started frobbing Yixf-Self/MutationScan [INFO] finished frobbing Yixf-Self/MutationScan [INFO] frobbed toml for Yixf-Self/MutationScan written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/Yixf-Self/MutationScan/Cargo.toml [INFO] crate Yixf-Self/MutationScan 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 Yixf-Self/MutationScan against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/Yixf-Self/MutationScan:/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] 82f163b7ffcad8c74aa0034627033a3d27a9c091c8eb2eaf87274f144ef3075b [INFO] running `"docker" "start" "-a" "82f163b7ffcad8c74aa0034627033a3d27a9c091c8eb2eaf87274f144ef3075b"` [INFO] [stderr] Checking MutationScan v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/main.rs:52:23 [INFO] [stderr] | [INFO] [stderr] 52 | match ( cnt % 4) { [INFO] [stderr] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/main.rs:125:23 [INFO] [stderr] | [INFO] [stderr] 125 | match (cnt % 2) { [INFO] [stderr] | ^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:402:12 [INFO] [stderr] | [INFO] [stderr] 402 | if (it.seq.clone()[min_edis_index..min_edis_index+len2].chars().nth(idx) != snp.seq.clone().chars().nth(idx)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:408:7 [INFO] [stderr] | [INFO] [stderr] 408 | if(ed_dis <= threshold_value) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:416:11 [INFO] [stderr] | [INFO] [stderr] 416 | if(flag == true) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:446:23 [INFO] [stderr] | [INFO] [stderr] 446 | if(len1 <= len2) {continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:483:31 [INFO] [stderr] | [INFO] [stderr] 483 | if(len1 <= len2) {continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:498:31 [INFO] [stderr] | [INFO] [stderr] 498 | if(len1 <= len2){continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:499:31 [INFO] [stderr] | [INFO] [stderr] 499 | if(len3 <= len2){continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index` [INFO] [stderr] --> src/main.rs:447:40 [INFO] [stderr] | [INFO] [stderr] 447 | let (flag, snp_rs, min_edis_index) = search_snp(&it, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_min_edis_index` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index` [INFO] [stderr] --> src/main.rs:485:48 [INFO] [stderr] | [INFO] [stderr] 485 | let (flag, snp_rs, min_edis_index) = search_snp(&it, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_min_edis_index` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index1` [INFO] [stderr] --> src/main.rs:500:50 [INFO] [stderr] | [INFO] [stderr] 500 | let (flag1, snp_rs1, min_edis_index1) = search_snp(&it1, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_min_edis_index1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index2` [INFO] [stderr] --> src/main.rs:501:50 [INFO] [stderr] | [INFO] [stderr] 501 | let (flag2, snp_rs2, min_edis_index2) = search_snp(&it2, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_min_edis_index2` instead [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io` [INFO] [stderr] --> src/main.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::io; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/main.rs:52:23 [INFO] [stderr] | [INFO] [stderr] 52 | match ( cnt % 4) { [INFO] [stderr] | ^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `match` head expression [INFO] [stderr] --> src/main.rs:125:23 [INFO] [stderr] | [INFO] [stderr] 125 | match (cnt % 2) { [INFO] [stderr] | ^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: function is never used: `hamming_distance` [INFO] [stderr] --> src/main.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | fn hamming_distance(s1: &str, s2: &str) -> u32{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `complement_str` [INFO] [stderr] --> src/main.rs:346:1 [INFO] [stderr] | [INFO] [stderr] 346 | fn complement_str(s: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `MutationScan` should have a snake case name such as `mutation_scan` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:402:12 [INFO] [stderr] | [INFO] [stderr] 402 | if (it.seq.clone()[min_edis_index..min_edis_index+len2].chars().nth(idx) != snp.seq.clone().chars().nth(idx)) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:408:7 [INFO] [stderr] | [INFO] [stderr] 408 | if(ed_dis <= threshold_value) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:416:11 [INFO] [stderr] | [INFO] [stderr] 416 | if(flag == true) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:446:23 [INFO] [stderr] | [INFO] [stderr] 446 | if(len1 <= len2) {continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:483:31 [INFO] [stderr] | [INFO] [stderr] 483 | if(len1 <= len2) {continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:498:31 [INFO] [stderr] | [INFO] [stderr] 498 | if(len1 <= len2){continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/main.rs:499:31 [INFO] [stderr] | [INFO] [stderr] 499 | if(len3 <= len2){continue;} [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / match file.read_to_string(&mut s) { [INFO] [stderr] 39 | | Err(why) => panic!("couldn't read {}: {}", display, [INFO] [stderr] 40 | | Error::description(&why)), [INFO] [stderr] 41 | | Ok(_) => {},//print!("{} contains:\n{}", display, s), [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 38 | if let Err(why) = file.read_to_string(&mut s) { panic!("couldn't read {}: {}", display, [INFO] [stderr] 39 | Error::description(&why)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | / loop{ [INFO] [stderr] 50 | | match iter.next() { [INFO] [stderr] 51 | | Some(it) => { [INFO] [stderr] 52 | | match ( cnt % 4) { [INFO] [stderr] ... | [INFO] [stderr] 71 | | cnt += 1; [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(it) = iter.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | / match file.read_to_string(&mut s) { [INFO] [stderr] 111 | | Err(why) => panic!("couldn't read {}: {}", display, [INFO] [stderr] 112 | | Error::description(&why)), [INFO] [stderr] 113 | | Ok(_) => {}, //print!("{} contains:\n{}", display, s), [INFO] [stderr] 114 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 110 | if let Err(why) = file.read_to_string(&mut s) { panic!("couldn't read {}: {}", display, [INFO] [stderr] 111 | Error::description(&why)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | / loop { [INFO] [stderr] 122 | | match iters.next() { [INFO] [stderr] 123 | | Some(it) => { [INFO] [stderr] 124 | | // println!("{:?}\n", it); [INFO] [stderr] ... | [INFO] [stderr] 139 | | cnt += 1; [INFO] [stderr] 140 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(it) = iters.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | / let mut fu_s = String::new(); [INFO] [stderr] 206 | | if score >= fusion_num { [INFO] [stderr] 207 | | r1_tail = &r1_str[r1_str.len()-flag..]; [INFO] [stderr] 208 | | r2_head = &r2_str[..flag]; [INFO] [stderr] ... | [INFO] [stderr] 212 | | return (false, fu_s) [INFO] [stderr] 213 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let fu_s = if score >= fusion_num { ..; process_n(r1_tail,r2_head) } else { ..; String::new() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:218:12 [INFO] [stderr] | [INFO] [stderr] 218 | fu_s = r1_head.clone().to_string() + &fu_s + r2_tail; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 218 | fu_s = &(*r1_head).clone().to_string() + &fu_s + r2_tail; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 218 | fu_s = &str::clone(r1_head).to_string() + &fu_s + r2_tail; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:249:5 [INFO] [stderr] | [INFO] [stderr] 249 | / match r1_str.len()==r2_str.len(){ [INFO] [stderr] 250 | | true => {}, [INFO] [stderr] 251 | | false => {return (0, 0)}, [INFO] [stderr] 252 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if !(r1_str.len()==r2_str.len()) {return (0, 0)}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:259:16 [INFO] [stderr] | [INFO] [stderr] 259 | for num in 0..r1_str.len()+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `0..=r1_str.len()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:266:9 [INFO] [stderr] | [INFO] [stderr] 266 | / match yes_no { [INFO] [stderr] 267 | | false => continue, [INFO] [stderr] 268 | | true => { [INFO] [stderr] 269 | | if sc >= score{ [INFO] [stderr] ... | [INFO] [stderr] 274 | | }, [INFO] [stderr] 275 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 266 | if yes_no { [INFO] [stderr] 267 | if sc >= score{ [INFO] [stderr] 268 | score = sc; [INFO] [stderr] 269 | flag = f; [INFO] [stderr] 270 | } [INFO] [stderr] 271 | else{ continue; } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | / match s0.pop(){ [INFO] [stderr] 337 | | Some(ch) => s1.push(ch), [INFO] [stderr] 338 | | None => {}, [INFO] [stderr] 339 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(ch) = s0.pop() { s1.push(ch) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:390:14 [INFO] [stderr] | [INFO] [stderr] 390 | for i in 0..len1-len2+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `0..=len1-len2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `label_vec`. [INFO] [stderr] --> src/main.rs:400:14 [INFO] [stderr] | [INFO] [stderr] 400 | for i in 1..vlen { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 400 | for in label_vec.iter().take(vlen).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:416:11 [INFO] [stderr] | [INFO] [stderr] 416 | if(flag == true) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `flag` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | / loop { [INFO] [stderr] 442 | | match r1_vec_iter.next() { [INFO] [stderr] 443 | | Some(it) => { [INFO] [stderr] 444 | | let len1 = it.seq.len(); [INFO] [stderr] ... | [INFO] [stderr] 457 | | } [INFO] [stderr] 458 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(it) = r1_vec_iter.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:473:21 [INFO] [stderr] | [INFO] [stderr] 473 | / match isfu { [INFO] [stderr] 474 | | true => { [INFO] [stderr] 475 | | //println!("isfu:"); [INFO] [stderr] 476 | | //println!("{:?}", fu_s); [INFO] [stderr] ... | [INFO] [stderr] 511 | | } [INFO] [stderr] 512 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 473 | if isfu { [INFO] [stderr] 474 | //println!("isfu:"); [INFO] [stderr] 475 | //println!("{:?}", fu_s); [INFO] [stderr] 476 | let mut it = FastqRecord::init(); [INFO] [stderr] 477 | it.header = it1.header.clone() + &it2.header; [INFO] [stderr] 478 | it.seq = fu_s; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:503:29 [INFO] [stderr] | [INFO] [stderr] 503 | / match flag1 { [INFO] [stderr] 504 | | true => result_vec.push(snp_rs1), [INFO] [stderr] 505 | | false => {}, [INFO] [stderr] 506 | | } [INFO] [stderr] | |_____________________________^ help: consider using an if/else expression: `if flag1 { result_vec.push(snp_rs1) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:507:29 [INFO] [stderr] | [INFO] [stderr] 507 | / match flag2 { [INFO] [stderr] 508 | | true => result_vec.push(snp_rs2), [INFO] [stderr] 509 | | false => {continue;}, [INFO] [stderr] 510 | | } [INFO] [stderr] | |_____________________________^ help: consider using an if/else expression: `if flag2 { result_vec.push(snp_rs2) } else {continue;}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:533:5 [INFO] [stderr] | [INFO] [stderr] 533 | / match args.len() >= 4 { [INFO] [stderr] 534 | | true => { [INFO] [stderr] 535 | | match args[3].clone().trim().parse::() { [INFO] [stderr] 536 | | Ok(t_v) => { [INFO] [stderr] ... | [INFO] [stderr] 579 | | }, [INFO] [stderr] 580 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 533 | if args.len() >= 4 { [INFO] [stderr] 534 | match args[3].clone().trim().parse::() { [INFO] [stderr] 535 | Ok(t_v) => { [INFO] [stderr] 536 | let ref r0 = args[1]; [INFO] [stderr] 537 | let ref snp = args[2]; [INFO] [stderr] 538 | let threshold_value = t_v; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:537:25 [INFO] [stderr] | [INFO] [stderr] 537 | let ref r0 = args[1]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r0 = &args[1];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:538:25 [INFO] [stderr] | [INFO] [stderr] 538 | let ref snp = args[2]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let snp = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | let ref r1 = args[1]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r1 = &args[1];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:545:25 [INFO] [stderr] | [INFO] [stderr] 545 | let ref r2 = args[2]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r2 = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:546:25 [INFO] [stderr] | [INFO] [stderr] 546 | let ref snp = args[3]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let snp = &args[3];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:570:18 [INFO] [stderr] | [INFO] [stderr] 570 | false => match args.len() == 3 { [INFO] [stderr] | __________________^ [INFO] [stderr] 571 | | true => { [INFO] [stderr] 572 | | println!("start run_with_one function with threshold_value => 2:"); [INFO] [stderr] 573 | | let ref r0 = args[1]; [INFO] [stderr] ... | [INFO] [stderr] 578 | | false => panic!("the length of arguments vec is not bigger than 3"), [INFO] [stderr] 579 | | }, [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 570 | false => if args.len() == 3 { [INFO] [stderr] 571 | println!("start run_with_one function with threshold_value => 2:"); [INFO] [stderr] 572 | let ref r0 = args[1]; [INFO] [stderr] 573 | let ref snp = args[2]; [INFO] [stderr] 574 | let threshold_value = 2; [INFO] [stderr] 575 | run_with_one(&r0, &snp, threshold_value); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:573:21 [INFO] [stderr] | [INFO] [stderr] 573 | let ref r0 = args[1]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r0 = &args[1];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:574:21 [INFO] [stderr] | [INFO] [stderr] 574 | let ref snp = args[2]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let snp = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `MutationScan`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: unused variable: `min_edis_index` [INFO] [stderr] --> src/main.rs:447:40 [INFO] [stderr] | [INFO] [stderr] 447 | let (flag, snp_rs, min_edis_index) = search_snp(&it, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_min_edis_index` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index` [INFO] [stderr] --> src/main.rs:485:48 [INFO] [stderr] | [INFO] [stderr] 485 | let (flag, snp_rs, min_edis_index) = search_snp(&it, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_min_edis_index` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index1` [INFO] [stderr] --> src/main.rs:500:50 [INFO] [stderr] | [INFO] [stderr] 500 | let (flag1, snp_rs1, min_edis_index1) = search_snp(&it1, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_min_edis_index1` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `min_edis_index2` [INFO] [stderr] --> src/main.rs:501:50 [INFO] [stderr] | [INFO] [stderr] 501 | let (flag2, snp_rs2, min_edis_index2) = search_snp(&it2, &snp, threshold_value); [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider using `_min_edis_index2` instead [INFO] [stderr] [INFO] [stderr] warning: function is never used: `hamming_distance` [INFO] [stderr] --> src/main.rs:179:1 [INFO] [stderr] | [INFO] [stderr] 179 | fn hamming_distance(s1: &str, s2: &str) -> u32{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `complement_str` [INFO] [stderr] --> src/main.rs:346:1 [INFO] [stderr] | [INFO] [stderr] 346 | fn complement_str(s: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: crate `MutationScan` should have a snake case name such as `mutation_scan` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:38:5 [INFO] [stderr] | [INFO] [stderr] 38 | / match file.read_to_string(&mut s) { [INFO] [stderr] 39 | | Err(why) => panic!("couldn't read {}: {}", display, [INFO] [stderr] 40 | | Error::description(&why)), [INFO] [stderr] 41 | | Ok(_) => {},//print!("{} contains:\n{}", display, s), [INFO] [stderr] 42 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 38 | if let Err(why) = file.read_to_string(&mut s) { panic!("couldn't read {}: {}", display, [INFO] [stderr] 39 | Error::description(&why)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | / loop{ [INFO] [stderr] 50 | | match iter.next() { [INFO] [stderr] 51 | | Some(it) => { [INFO] [stderr] 52 | | match ( cnt % 4) { [INFO] [stderr] ... | [INFO] [stderr] 71 | | cnt += 1; [INFO] [stderr] 72 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(it) = iter.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:110:5 [INFO] [stderr] | [INFO] [stderr] 110 | / match file.read_to_string(&mut s) { [INFO] [stderr] 111 | | Err(why) => panic!("couldn't read {}: {}", display, [INFO] [stderr] 112 | | Error::description(&why)), [INFO] [stderr] 113 | | Ok(_) => {}, //print!("{} contains:\n{}", display, s), [INFO] [stderr] 114 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 110 | if let Err(why) = file.read_to_string(&mut s) { panic!("couldn't read {}: {}", display, [INFO] [stderr] 111 | Error::description(&why)) } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | / loop { [INFO] [stderr] 122 | | match iters.next() { [INFO] [stderr] 123 | | Some(it) => { [INFO] [stderr] 124 | | // println!("{:?}\n", it); [INFO] [stderr] ... | [INFO] [stderr] 139 | | cnt += 1; [INFO] [stderr] 140 | | } [INFO] [stderr] | |_____^ help: try: `while let Some(it) = iters.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/main.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | / let mut fu_s = String::new(); [INFO] [stderr] 206 | | if score >= fusion_num { [INFO] [stderr] 207 | | r1_tail = &r1_str[r1_str.len()-flag..]; [INFO] [stderr] 208 | | r2_head = &r2_str[..flag]; [INFO] [stderr] ... | [INFO] [stderr] 212 | | return (false, fu_s) [INFO] [stderr] 213 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let fu_s = if score >= fusion_num { ..; process_n(r1_tail,r2_head) } else { ..; String::new() };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] error: using `clone` on a double-reference; this will copy the reference instead of cloning the inner type [INFO] [stderr] --> src/main.rs:218:12 [INFO] [stderr] | [INFO] [stderr] 218 | fu_s = r1_head.clone().to_string() + &fu_s + r2_tail; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::clone_double_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_double_ref [INFO] [stderr] help: try dereferencing it [INFO] [stderr] | [INFO] [stderr] 218 | fu_s = &(*r1_head).clone().to_string() + &fu_s + r2_tail; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] help: or try being explicit about what type to clone [INFO] [stderr] | [INFO] [stderr] 218 | fu_s = &str::clone(r1_head).to_string() + &fu_s + r2_tail; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:249:5 [INFO] [stderr] | [INFO] [stderr] 249 | / match r1_str.len()==r2_str.len(){ [INFO] [stderr] 250 | | true => {}, [INFO] [stderr] 251 | | false => {return (0, 0)}, [INFO] [stderr] 252 | | } [INFO] [stderr] | |_____^ help: consider using an if/else expression: `if !(r1_str.len()==r2_str.len()) {return (0, 0)}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:259:16 [INFO] [stderr] | [INFO] [stderr] 259 | for num in 0..r1_str.len()+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `0..=r1_str.len()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:266:9 [INFO] [stderr] | [INFO] [stderr] 266 | / match yes_no { [INFO] [stderr] 267 | | false => continue, [INFO] [stderr] 268 | | true => { [INFO] [stderr] 269 | | if sc >= score{ [INFO] [stderr] ... | [INFO] [stderr] 274 | | }, [INFO] [stderr] 275 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 266 | if yes_no { [INFO] [stderr] 267 | if sc >= score{ [INFO] [stderr] 268 | score = sc; [INFO] [stderr] 269 | flag = f; [INFO] [stderr] 270 | } [INFO] [stderr] 271 | else{ continue; } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:336:9 [INFO] [stderr] | [INFO] [stderr] 336 | / match s0.pop(){ [INFO] [stderr] 337 | | Some(ch) => s1.push(ch), [INFO] [stderr] 338 | | None => {}, [INFO] [stderr] 339 | | } [INFO] [stderr] | |_________^ help: try this: `if let Some(ch) = s0.pop() { s1.push(ch) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/main.rs:390:14 [INFO] [stderr] | [INFO] [stderr] 390 | for i in 0..len1-len2+1 { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: use: `0..=len1-len2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is only used to index `label_vec`. [INFO] [stderr] --> src/main.rs:400:14 [INFO] [stderr] | [INFO] [stderr] 400 | for i in 1..vlen { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 400 | for in label_vec.iter().take(vlen).skip(1) { [INFO] [stderr] | ^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:416:11 [INFO] [stderr] | [INFO] [stderr] 416 | if(flag == true) { [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try simplifying it as shown: `flag` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/main.rs:441:9 [INFO] [stderr] | [INFO] [stderr] 441 | / loop { [INFO] [stderr] 442 | | match r1_vec_iter.next() { [INFO] [stderr] 443 | | Some(it) => { [INFO] [stderr] 444 | | let len1 = it.seq.len(); [INFO] [stderr] ... | [INFO] [stderr] 457 | | } [INFO] [stderr] 458 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(it) = r1_vec_iter.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:473:21 [INFO] [stderr] | [INFO] [stderr] 473 | / match isfu { [INFO] [stderr] 474 | | true => { [INFO] [stderr] 475 | | //println!("isfu:"); [INFO] [stderr] 476 | | //println!("{:?}", fu_s); [INFO] [stderr] ... | [INFO] [stderr] 511 | | } [INFO] [stderr] 512 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 473 | if isfu { [INFO] [stderr] 474 | //println!("isfu:"); [INFO] [stderr] 475 | //println!("{:?}", fu_s); [INFO] [stderr] 476 | let mut it = FastqRecord::init(); [INFO] [stderr] 477 | it.header = it1.header.clone() + &it2.header; [INFO] [stderr] 478 | it.seq = fu_s; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:503:29 [INFO] [stderr] | [INFO] [stderr] 503 | / match flag1 { [INFO] [stderr] 504 | | true => result_vec.push(snp_rs1), [INFO] [stderr] 505 | | false => {}, [INFO] [stderr] 506 | | } [INFO] [stderr] | |_____________________________^ help: consider using an if/else expression: `if flag1 { result_vec.push(snp_rs1) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:507:29 [INFO] [stderr] | [INFO] [stderr] 507 | / match flag2 { [INFO] [stderr] 508 | | true => result_vec.push(snp_rs2), [INFO] [stderr] 509 | | false => {continue;}, [INFO] [stderr] 510 | | } [INFO] [stderr] | |_____________________________^ help: consider using an if/else expression: `if flag2 { result_vec.push(snp_rs2) } else {continue;}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:533:5 [INFO] [stderr] | [INFO] [stderr] 533 | / match args.len() >= 4 { [INFO] [stderr] 534 | | true => { [INFO] [stderr] 535 | | match args[3].clone().trim().parse::() { [INFO] [stderr] 536 | | Ok(t_v) => { [INFO] [stderr] ... | [INFO] [stderr] 579 | | }, [INFO] [stderr] 580 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 533 | if args.len() >= 4 { [INFO] [stderr] 534 | match args[3].clone().trim().parse::() { [INFO] [stderr] 535 | Ok(t_v) => { [INFO] [stderr] 536 | let ref r0 = args[1]; [INFO] [stderr] 537 | let ref snp = args[2]; [INFO] [stderr] 538 | let threshold_value = t_v; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:537:25 [INFO] [stderr] | [INFO] [stderr] 537 | let ref r0 = args[1]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r0 = &args[1];` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:538:25 [INFO] [stderr] | [INFO] [stderr] 538 | let ref snp = args[2]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let snp = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:544:25 [INFO] [stderr] | [INFO] [stderr] 544 | let ref r1 = args[1]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r1 = &args[1];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:545:25 [INFO] [stderr] | [INFO] [stderr] 545 | let ref r2 = args[2]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r2 = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:546:25 [INFO] [stderr] | [INFO] [stderr] 546 | let ref snp = args[3]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let snp = &args[3];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to match on a boolean expression [INFO] [stderr] --> src/main.rs:570:18 [INFO] [stderr] | [INFO] [stderr] 570 | false => match args.len() == 3 { [INFO] [stderr] | __________________^ [INFO] [stderr] 571 | | true => { [INFO] [stderr] 572 | | println!("start run_with_one function with threshold_value => 2:"); [INFO] [stderr] 573 | | let ref r0 = args[1]; [INFO] [stderr] ... | [INFO] [stderr] 578 | | false => panic!("the length of arguments vec is not bigger than 3"), [INFO] [stderr] 579 | | }, [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_bool [INFO] [stderr] help: consider using an if/else expression [INFO] [stderr] | [INFO] [stderr] 570 | false => if args.len() == 3 { [INFO] [stderr] 571 | println!("start run_with_one function with threshold_value => 2:"); [INFO] [stderr] 572 | let ref r0 = args[1]; [INFO] [stderr] 573 | let ref snp = args[2]; [INFO] [stderr] 574 | let threshold_value = 2; [INFO] [stderr] 575 | run_with_one(&r0, &snp, threshold_value); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:573:21 [INFO] [stderr] | [INFO] [stderr] 573 | let ref r0 = args[1]; [INFO] [stderr] | ----^^^^^^----------- help: try: `let r0 = &args[1];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/main.rs:574:21 [INFO] [stderr] | [INFO] [stderr] 574 | let ref snp = args[2]; [INFO] [stderr] | ----^^^^^^^----------- help: try: `let snp = &args[2];` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `MutationScan`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "82f163b7ffcad8c74aa0034627033a3d27a9c091c8eb2eaf87274f144ef3075b"` [INFO] running `"docker" "rm" "-f" "82f163b7ffcad8c74aa0034627033a3d27a9c091c8eb2eaf87274f144ef3075b"` [INFO] [stdout] 82f163b7ffcad8c74aa0034627033a3d27a9c091c8eb2eaf87274f144ef3075b