[INFO] crate overdose 0.1.0 is already in cache [INFO] extracting crate overdose 0.1.0 into work/ex/clippy-test-run/sources/stable/reg/overdose/0.1.0 [INFO] extracting crate overdose 0.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/overdose/0.1.0 [INFO] validating manifest of overdose-0.1.0 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 overdose-0.1.0 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 overdose-0.1.0 [INFO] finished frobbing overdose-0.1.0 [INFO] frobbed toml for overdose-0.1.0 written to work/ex/clippy-test-run/sources/stable/reg/overdose/0.1.0/Cargo.toml [INFO] started frobbing overdose-0.1.0 [INFO] finished frobbing overdose-0.1.0 [INFO] frobbed toml for overdose-0.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/overdose/0.1.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting overdose-0.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/overdose/0.1.0:/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] 4ded62edc20b97564f093c383a8b54750c794d9879ddb3170324678b232c660a [INFO] running `"docker" "start" "-a" "4ded62edc20b97564f093c383a8b54750c794d9879ddb3170324678b232c660a"` [INFO] [stderr] Checking overdose v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `itertools::Itertools` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use itertools::Itertools; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `BufWriter` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:5:15 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Add` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:12:16 [INFO] [stderr] | [INFO] [stderr] 12 | use std::ops::{Add}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::num::FromPrimitive` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use self::num::FromPrimitive; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn push(mut self, t:T) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn show(self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:160:21 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn echo(self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:248:18 [INFO] [stderr] | [INFO] [stderr] 248 | let result = match self.vec.clone().first() { [INFO] [stderr] | __________________^ [INFO] [stderr] 249 | | Some(head) => { [INFO] [stderr] 250 | | let mut ret = *head; [INFO] [stderr] 251 | | for v in self.vec { [INFO] [stderr] ... | [INFO] [stderr] 256 | | None => None [INFO] [stderr] 257 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:252:13 [INFO] [stderr] | [INFO] [stderr] 252 | if( ret > v ) { ret = v; } [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 274 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:264:18 [INFO] [stderr] | [INFO] [stderr] 264 | let result = match self.vec.clone().first() { [INFO] [stderr] | __________________^ [INFO] [stderr] 265 | | Some(head) => { [INFO] [stderr] 266 | | let mut ret = *head; [INFO] [stderr] 267 | | for v in self.vec { [INFO] [stderr] ... | [INFO] [stderr] 272 | | None => None [INFO] [stderr] 273 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | if( ret < v ) { ret = v; } [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `RFrame` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use RFrame; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `BufWriter` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:6:15 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufWriter` [INFO] [stderr] --> src/OVERDOSE/File.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/File.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/OVERDOSE/File.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/OVERDOSE/File.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/OVERDOSE/File.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Display` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fmt::{Debug, Display}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufWriter` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | for cursol in (1..chars.len()-1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:99:7 [INFO] [stderr] | [INFO] [stderr] 99 | map [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:98:17 [INFO] [stderr] | [INFO] [stderr] 98 | let map = keys.clone().iter().zip(vals.clone()).map(|x| { let (key,val) = x; (key.clone(),val.clone()) }).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `OVERDOSE::File::Read` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use OVERDOSE::File::Read; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OVERDOSE::Enumerate::Enumerate` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use OVERDOSE::Enumerate::Enumerate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:39:23 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!( reduce, 362880 ); [INFO] [stderr] | ^^^^^^ help: consider: `362_880` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:47:7 [INFO] [stderr] | [INFO] [stderr] 47 | key [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | let key = x%3; [INFO] [stderr] | ^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/main.rs:129:14 [INFO] [stderr] | [INFO] [stderr] 129 | for s in (2..x/2) { [INFO] [stderr] | ^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/main.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `itertools::Itertools` [INFO] [stderr] --> src/main.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use itertools::Itertools; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/main.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `BufWriter` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:5:15 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Add` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:12:16 [INFO] [stderr] | [INFO] [stderr] 12 | use std::ops::{Add}; [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `self::num::FromPrimitive` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | use self::num::FromPrimitive; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn push(mut self, t:T) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | pub fn show(self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:160:21 [INFO] [stderr] | [INFO] [stderr] 160 | pub fn echo(self) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:258:5 [INFO] [stderr] | [INFO] [stderr] 258 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:248:18 [INFO] [stderr] | [INFO] [stderr] 248 | let result = match self.vec.clone().first() { [INFO] [stderr] | __________________^ [INFO] [stderr] 249 | | Some(head) => { [INFO] [stderr] 250 | | let mut ret = *head; [INFO] [stderr] 251 | | for v in self.vec { [INFO] [stderr] ... | [INFO] [stderr] 256 | | None => None [INFO] [stderr] 257 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:252:13 [INFO] [stderr] | [INFO] [stderr] 252 | if( ret > v ) { ret = v; } [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_parens)] on by default [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:274:5 [INFO] [stderr] | [INFO] [stderr] 274 | result [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:264:18 [INFO] [stderr] | [INFO] [stderr] 264 | let result = match self.vec.clone().first() { [INFO] [stderr] | __________________^ [INFO] [stderr] 265 | | Some(head) => { [INFO] [stderr] 266 | | let mut ret = *head; [INFO] [stderr] 267 | | for v in self.vec { [INFO] [stderr] ... | [INFO] [stderr] 272 | | None => None [INFO] [stderr] 273 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `if` condition [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | if( ret < v ) { ret = v; } [INFO] [stderr] | ^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `RFrame` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:2:5 [INFO] [stderr] | [INFO] [stderr] 2 | use RFrame; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fs::File` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:3:5 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fs::File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::io::prelude::*` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:4:5 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::prelude::*; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::Path` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path::Path; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `BufReader`, `BufWriter` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:6:15 [INFO] [stderr] | [INFO] [stderr] 6 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufWriter` [INFO] [stderr] --> src/OVERDOSE/File.rs:5:26 [INFO] [stderr] | [INFO] [stderr] 5 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/File.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/OVERDOSE/File.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/OVERDOSE/File.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/OVERDOSE/File.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | return ret; [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `ret` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `Display` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | use std::fmt::{Debug, Display}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `BufWriter` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:4:26 [INFO] [stderr] | [INFO] [stderr] 4 | use std::io::{BufReader, BufWriter}; [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::btree_map` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::collections::btree_map; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::ops::Shr` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use std::ops::Shr; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::fmt::Debug` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use std::fmt::Debug; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | for cursol in (1..chars.len()-1) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:99:7 [INFO] [stderr] | [INFO] [stderr] 99 | map [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:98:17 [INFO] [stderr] | [INFO] [stderr] 98 | let map = keys.clone().iter().zip(vals.clone()).map(|x| { let (key,val) = x; (key.clone(),val.clone()) }).collect::>(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `OVERDOSE::File::Read` [INFO] [stderr] --> src/main.rs:10:5 [INFO] [stderr] | [INFO] [stderr] 10 | use OVERDOSE::File::Read; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `OVERDOSE::Enumerate::Enumerate` [INFO] [stderr] --> src/main.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 11 | use OVERDOSE::Enumerate::Enumerate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/main.rs:39:23 [INFO] [stderr] | [INFO] [stderr] 39 | assert_eq!( reduce, 362880 ); [INFO] [stderr] | ^^^^^^ help: consider: `362_880` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/main.rs:47:7 [INFO] [stderr] | [INFO] [stderr] 47 | key [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/main.rs:46:17 [INFO] [stderr] | [INFO] [stderr] 46 | let key = x%3; [INFO] [stderr] | ^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: unnecessary parentheses around `for` head expression [INFO] [stderr] --> src/main.rs:129:14 [INFO] [stderr] | [INFO] [stderr] 129 | for s in (2..x/2) { [INFO] [stderr] | ^^^^^^^^ help: remove these parentheses [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hasher` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:20:23 [INFO] [stderr] | [INFO] [stderr] 20 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `header` [INFO] [stderr] --> src/OVERDOSE/File.rs:10:25 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn Read( name:&str, header:bool ) -> Vec> { [INFO] [stderr] | ^^^^^^ help: consider using `_header` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> src/main.rs:164:10 [INFO] [stderr] | [INFO] [stderr] 164 | let (k, num) = xs; [INFO] [stderr] | ^ help: consider using `_k` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> src/main.rs:191:10 [INFO] [stderr] | [INFO] [stderr] 191 | let (k, reduce) = xs; [INFO] [stderr] | ^ help: consider using `_k` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | fn shr(self, rhs: usize) -> RFrame { [INFO] [stderr] | ^^^ help: consider using `_rhs` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | for x in 0..repeatNum { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 176 | for r in 0..depth-1 { [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ten_millis` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | let ten_millis = time::Duration::from_millis(10); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_ten_millis` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | let mut start = 0; [INFO] [stderr] | ^^^^^ help: consider using `_start` instead [INFO] [stderr] [INFO] [stderr] warning: variable `i` is assigned to, but never used [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut i = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | for v in sv.clone() { [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `keysc` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:96:11 [INFO] [stderr] | [INFO] [stderr] 96 | let keysc = &keys.clone(); [INFO] [stderr] | ^^^^^ help: consider using `_keysc` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ret` is never read [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let mut ret:Vec> = Vec::new(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `Hasher` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:20:23 [INFO] [stderr] | [INFO] [stderr] 20 | use std::hash::{Hash, Hasher}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `header` [INFO] [stderr] --> src/OVERDOSE/File.rs:10:25 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn Read( name:&str, header:bool ) -> Vec> { [INFO] [stderr] | ^^^^^^ help: consider using `_header` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> src/main.rs:164:10 [INFO] [stderr] | [INFO] [stderr] 164 | let (k, num) = xs; [INFO] [stderr] | ^ help: consider using `_k` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `k` [INFO] [stderr] --> src/main.rs:191:10 [INFO] [stderr] | [INFO] [stderr] 191 | let (k, reduce) = xs; [INFO] [stderr] | ^ help: consider using `_k` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `rhs` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:38:16 [INFO] [stderr] | [INFO] [stderr] 38 | fn shr(self, rhs: usize) -> RFrame { [INFO] [stderr] | ^^^ help: consider using `_rhs` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `x` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | for x in 0..repeatNum { [INFO] [stderr] | ^ help: consider using `_x` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `r` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:176:9 [INFO] [stderr] | [INFO] [stderr] 176 | for r in 0..depth-1 { [INFO] [stderr] | ^ help: consider using `_r` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `ten_millis` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:13:9 [INFO] [stderr] | [INFO] [stderr] 13 | let ten_millis = time::Duration::from_millis(10); [INFO] [stderr] | ^^^^^^^^^^ help: consider using `_ten_millis` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `start` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:25:13 [INFO] [stderr] | [INFO] [stderr] 25 | let mut start = 0; [INFO] [stderr] | ^^^^^ help: consider using `_start` instead [INFO] [stderr] [INFO] [stderr] warning: variable `i` is assigned to, but never used [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut i = 0; [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_i` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `v` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:54:9 [INFO] [stderr] | [INFO] [stderr] 54 | for v in sv.clone() { [INFO] [stderr] | ^ help: consider using `_v` instead [INFO] [stderr] [INFO] [stderr] warning: unused variable: `keysc` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:96:11 [INFO] [stderr] | [INFO] [stderr] 96 | let keysc = &keys.clone(); [INFO] [stderr] | ^^^^^ help: consider using `_keysc` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `ret` is never read [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | let mut ret:Vec> = Vec::new(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_assignments)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:282:9 [INFO] [stderr] | [INFO] [stderr] 282 | let mut tmp:Vec = (start..end).collect::>(); [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: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:14:7 [INFO] [stderr] | [INFO] [stderr] 14 | let mut index:i32 = 0; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/File.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | let mut start = 0; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `INNER` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub struct INNER{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn new>(it:IT) -> RFrame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `push` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:63:3 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn push(mut self, t:T) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `index` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:303:3 [INFO] [stderr] | [INFO] [stderr] 303 | pub fn index(self, key:AG) -> RFrame> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `withBlank` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:365:3 [INFO] [stderr] | [INFO] [stderr] 365 | pub fn withBlank( ) -> RFrame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `Enumerate` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn Enumerate>(i:I) -> Vec<(i32,A)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `Read` [INFO] [stderr] --> src/OVERDOSE/File.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn Read( name:&str, header:bool ) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `echo` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:14:3 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn echo() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `open` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn open(filename:String) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: module `OVERDOSE` should have a snake case name such as `overdose` [INFO] [stderr] --> src/main.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | mod OVERDOSE; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: module `RFrame` should have a snake case name such as `rframe` [INFO] [stderr] --> src/OVERDOSE/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod RFrame; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | / pub fn new>(it:IT) -> RFrame { [INFO] [stderr] 53 | | let mut tmp:Vec = Vec::new(); [INFO] [stderr] 54 | | for i in it { [INFO] [stderr] 55 | | tmp.push(i); [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | RFrame::withVec(tmp) [INFO] [stderr] 58 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:104:10 [INFO] [stderr] | [INFO] [stderr] 104 | if functor(v.clone()) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `functor(v.clone())` [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: method `sortBy` should have a snake case name such as `sort_by` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:111:3 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn sortBy(self, functor: &Fn(T) -> FUNCRET) -> RFrame { [INFO] [stderr] 112 | | let mut cloned = self.vec.clone(); [INFO] [stderr] 113 | | cloned.sort_by_key( |key|{ [INFO] [stderr] 114 | | let funcret:FUNCRET = functor(key.clone()); [INFO] [stderr] ... | [INFO] [stderr] 117 | | RFrame::withVec(cloned) [INFO] [stderr] 118 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `groupBy` should have a snake case name such as `group_by` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:120:3 [INFO] [stderr] | [INFO] [stderr] 120 | / pub fn groupBy(self, functor: &Fn(T) -> OUTPUT) -> RFrame<(OUTPUT,RFrame)> { [INFO] [stderr] 121 | | let mut map:HashMap> = HashMap::new(); [INFO] [stderr] 122 | | for v in self.vec.clone() { [INFO] [stderr] 123 | | let key:OUTPUT = functor(v.clone()); [INFO] [stderr] ... | [INFO] [stderr] 135 | | ret [INFO] [stderr] 136 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | if functor(v) == true { counter+=1 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `functor(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: variable `repeatNum` should have a snake case name such as `repeat_num` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn repeat(self, repeatNum: i32) -> RFrame { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `toVec` should have a snake case name such as `to_vec` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:195:3 [INFO] [stderr] | [INFO] [stderr] 195 | / pub fn toVec(self) -> Vec { [INFO] [stderr] 196 | | self.vec.clone() [INFO] [stderr] 197 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `toSet` should have a snake case name such as `to_set` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:201:3 [INFO] [stderr] | [INFO] [stderr] 201 | / pub fn toSet(self) -> HashSet { [INFO] [stderr] 202 | | let mut set:HashSet = HashSet::new(); [INFO] [stderr] 203 | | for v in self.vec { [INFO] [stderr] 204 | | set.insert(v); [INFO] [stderr] 205 | | } [INFO] [stderr] 206 | | set [INFO] [stderr] 207 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `toUniq` should have a snake case name such as `to_uniq` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:211:3 [INFO] [stderr] | [INFO] [stderr] 211 | / pub fn toUniq(self) -> RFrame { [INFO] [stderr] 212 | | let mut set:HashSet = HashSet::new(); [INFO] [stderr] 213 | | for v in self.vec { [INFO] [stderr] 214 | | set.insert(v); [INFO] [stderr] ... | [INFO] [stderr] 220 | | RFrame::withVec(vec) [INFO] [stderr] 221 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `withRange` should have a snake case name such as `with_range` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:281:3 [INFO] [stderr] | [INFO] [stderr] 281 | / pub fn withRange(start:i32, end:i32) -> RFrame { [INFO] [stderr] 282 | | let mut tmp:Vec = (start..end).collect::>(); [INFO] [stderr] 283 | | RFrame::withVec( tmp ) [INFO] [stderr] 284 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `withVec` should have a snake case name such as `with_vec` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:288:3 [INFO] [stderr] | [INFO] [stderr] 288 | / pub fn withVec( vs:Vec ) -> RFrame { [INFO] [stderr] 289 | | RFrame { header:None, cursol:0, vec:vs } [INFO] [stderr] 290 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `withVecIndexed` should have a snake case name such as `with_vec_indexed` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:291:3 [INFO] [stderr] | [INFO] [stderr] 291 | / pub fn withVecIndexed( vi:Vec, vs:Vec ) -> RFrame { [INFO] [stderr] 292 | | let mut i = 0; [INFO] [stderr] 293 | | let mut map:HashMap = HashMap::new(); [INFO] [stderr] 294 | | for v in vi { [INFO] [stderr] ... | [INFO] [stderr] 298 | | RFrame { header:Some(map), cursol:0, vec:vs } [INFO] [stderr] 299 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in vi.enumerate()` or similar iterators [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:294:14 [INFO] [stderr] | [INFO] [stderr] 294 | for v in vi { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_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/OVERDOSE/RFrame.rs:306:5 [INFO] [stderr] | [INFO] [stderr] 306 | / match self.header { [INFO] [stderr] 307 | | Some(head) => { [INFO] [stderr] 308 | | let index:usize = match head.get(&key) { [INFO] [stderr] 309 | | Some(entry) => *entry as usize, [INFO] [stderr] ... | [INFO] [stderr] 316 | | None => {}, [INFO] [stderr] 317 | | }; [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] 306 | if let Some(head) = self.header { [INFO] [stderr] 307 | let index:usize = match head.get(&key) { [INFO] [stderr] 308 | Some(entry) => *entry as usize, [INFO] [stderr] 309 | None => 0, [INFO] [stderr] 310 | }; [INFO] [stderr] 311 | for v in self.vec { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:282:9 [INFO] [stderr] | [INFO] [stderr] 282 | let mut tmp:Vec = (start..end).collect::>(); [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: variable `keysStr` should have a snake case name such as `keys_str` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | let keysStr:Vec = keys.iter().map( |x| x.to_string()).collect::>(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `withBlank` should have a snake case name such as `with_blank` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:365:3 [INFO] [stderr] | [INFO] [stderr] 365 | / pub fn withBlank( ) -> RFrame { [INFO] [stderr] 366 | | let v:Vec = Vec::new(); [INFO] [stderr] 367 | | RFrame::withVec(v) [INFO] [stderr] 368 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: module `Enumerate` should have a snake case name such as `enumerate` [INFO] [stderr] --> src/OVERDOSE/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | pub mod Enumerate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `Enumerate` should have a snake case name such as `enumerate` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | / pub fn Enumerate>(i:I) -> Vec<(i32,A)> { [INFO] [stderr] 14 | | let mut index:i32 = 0; [INFO] [stderr] 15 | | let mut tmp:Vec<(i32,A)> = Vec::new(); [INFO] [stderr] 16 | | for a in i { [INFO] [stderr] ... | [INFO] [stderr] 19 | | tmp [INFO] [stderr] 20 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: module `File` should have a snake case name such as `file` [INFO] [stderr] --> src/OVERDOSE/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub mod File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `Read` should have a snake case name such as `read` [INFO] [stderr] --> src/OVERDOSE/File.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / pub fn Read( name:&str, header:bool ) -> Vec> { [INFO] [stderr] 11 | | let path = Path::new(name); [INFO] [stderr] 12 | | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] 13 | | let v:Vec = file.lines().map(|x| { x.unwrap() }).collect(); [INFO] [stderr] ... | [INFO] [stderr] 33 | | return ret; [INFO] [stderr] 34 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/OVERDOSE/File.rs:16:25 [INFO] [stderr] | [INFO] [stderr] 16 | let keys = keys.split(",").map( |x| { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/OVERDOSE/File.rs:24:26 [INFO] [stderr] | [INFO] [stderr] 24 | let vals = val.split(",").map( |x| x.to_string() ).collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: module `Concurrent` should have a snake case name such as `concurrent` [INFO] [stderr] --> src/OVERDOSE/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub mod Concurrent; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:14:7 [INFO] [stderr] | [INFO] [stderr] 14 | let mut index:i32 = 0; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [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/OVERDOSE/Concurrent.rs:32:7 [INFO] [stderr] | [INFO] [stderr] 32 | / match handle.join().ok() { [INFO] [stderr] 33 | | Some(r) => { res.push(r);}, [INFO] [stderr] 34 | | None => {}, [INFO] [stderr] 35 | | } [INFO] [stderr] | |_______^ help: try this: `if let Some(r) = handle.join().ok() { res.push(r);}` [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: method `chunkedMap` should have a snake case name such as `chunked_map` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn chunkedMap( vec: Vec, functor: F ) [INFO] [stderr] 41 | | -> Vec where F: Send + 'static + Fn(T) -> OUTPUT + Sync{ [INFO] [stderr] 42 | | let functor = Arc::new(functor); [INFO] [stderr] 43 | | // default chunk size = 32 [INFO] [stderr] ... | [INFO] [stderr] 89 | | [INFO] [stderr] 90 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: variable `CHUNK_SIZE` should have a snake case name such as `chunk_size` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | let CHUNK_SIZE = 32; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in vec.enumerate()` or similar iterators [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:48:15 [INFO] [stderr] | [INFO] [stderr] 48 | for v in vec { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/File.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [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/OVERDOSE/Concurrent.rs:79:7 [INFO] [stderr] | [INFO] [stderr] 79 | / match handle.join().ok() { [INFO] [stderr] 80 | | Some(rs) => { [INFO] [stderr] 81 | | for r in rs { [INFO] [stderr] 82 | | res.push(r); [INFO] [stderr] ... | [INFO] [stderr] 85 | | None => {}, [INFO] [stderr] 86 | | } [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] 79 | if let Some(rs) = handle.join().ok() { [INFO] [stderr] 80 | for r in rs { [INFO] [stderr] 81 | res.push(r); [INFO] [stderr] 82 | } [INFO] [stderr] 83 | ;} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: module `RowOrientedCSV` should have a snake case name such as `row_oriented_csv` [INFO] [stderr] --> src/OVERDOSE/mod.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub mod RowOrientedCSV; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `stateMachine` should have a snake case name such as `state_machine` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | / fn stateMachine(line:String) -> Vec { [INFO] [stderr] 20 | | let chars:Vec = line.chars().collect::>(); [INFO] [stderr] 21 | | // ,であって"が続かない系列を発見したらそれはsplitコードである [INFO] [stderr] 22 | | let mut sv:Vec = Vec::new(); [INFO] [stderr] ... | [INFO] [stderr] 60 | | sv [INFO] [stderr] 61 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:35:11 [INFO] [stderr] | [INFO] [stderr] 35 | if (qo == true && chars[cursol-1] == '"' || qo == false ) && chars[cursol] == ',' { [INFO] [stderr] | ^^^^^^^^^^ help: try simplifying it as shown: `qo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:35:51 [INFO] [stderr] | [INFO] [stderr] 35 | if (qo == true && chars[cursol-1] == '"' || qo == false ) && chars[cursol] == ',' { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!qo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in sv.clone().enumerate()` or similar iterators [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:54:14 [INFO] [stderr] | [INFO] [stderr] 54 | for v in sv.clone() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | let mut start = 0; [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: method `concurrentOpen` should have a snake case name such as `concurrent_open` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | / pub fn concurrentOpen(filename:String) -> Vec> { [INFO] [stderr] 82 | | let path = Path::new(&filename); [INFO] [stderr] 83 | | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] 84 | | let v:Vec = file.lines().map(|x| { x.unwrap() }).collect(); [INFO] [stderr] ... | [INFO] [stderr] 102 | | ret [INFO] [stderr] 103 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:64:9 [INFO] [stderr] | [INFO] [stderr] 64 | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: struct is never constructed: `INNER` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:30:1 [INFO] [stderr] | [INFO] [stderr] 30 | pub struct INNER{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: method is never used: `new` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn new>(it:IT) -> RFrame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `push` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:63:3 [INFO] [stderr] | [INFO] [stderr] 63 | pub fn push(mut self, t:T) -> () { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `index` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:303:3 [INFO] [stderr] | [INFO] [stderr] 303 | pub fn index(self, key:AG) -> RFrame> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `withBlank` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:365:3 [INFO] [stderr] | [INFO] [stderr] 365 | pub fn withBlank( ) -> RFrame { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `Enumerate` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:13:1 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn Enumerate>(i:I) -> Vec<(i32,A)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function is never used: `Read` [INFO] [stderr] --> src/OVERDOSE/File.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | pub fn Read( name:&str, header:bool ) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `echo` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:14:3 [INFO] [stderr] | [INFO] [stderr] 14 | pub fn echo() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method is never used: `open` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:62:3 [INFO] [stderr] | [INFO] [stderr] 62 | pub fn open(filename:String) -> Vec> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: module `OVERDOSE` should have a snake case name such as `overdose` [INFO] [stderr] --> src/main.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | mod OVERDOSE; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: module `RFrame` should have a snake case name such as `rframe` [INFO] [stderr] --> src/OVERDOSE/mod.rs:1:1 [INFO] [stderr] | [INFO] [stderr] 1 | pub mod RFrame; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods called `new` usually return `Self` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:52:3 [INFO] [stderr] | [INFO] [stderr] 52 | / pub fn new>(it:IT) -> RFrame { [INFO] [stderr] 53 | | let mut tmp:Vec = Vec::new(); [INFO] [stderr] 54 | | for i in it { [INFO] [stderr] 55 | | tmp.push(i); [INFO] [stderr] 56 | | } [INFO] [stderr] 57 | | RFrame::withVec(tmp) [INFO] [stderr] 58 | | } [INFO] [stderr] | |___^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_ret_no_self)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_ret_no_self [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:104:10 [INFO] [stderr] | [INFO] [stderr] 104 | if functor(v.clone()) == true { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `functor(v.clone())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::bool_comparison)] on by default [INFO] [stderr] warning: unused `std::iter::Map` that must be used [INFO] [stderr] --> src/main.rs:15:3 [INFO] [stderr] | [INFO] [stderr] 15 | (0..100).map( |x| { println!("{}",x);(x%5,x)}) ; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] 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] = note: iterator adaptors are lazy and do nothing unless consumed [INFO] [stderr] [INFO] [stderr] warning: method `sortBy` should have a snake case name such as `sort_by` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:111:3 [INFO] [stderr] | [INFO] [stderr] 111 | / pub fn sortBy(self, functor: &Fn(T) -> FUNCRET) -> RFrame { [INFO] [stderr] 112 | | let mut cloned = self.vec.clone(); [INFO] [stderr] 113 | | cloned.sort_by_key( |key|{ [INFO] [stderr] 114 | | let funcret:FUNCRET = functor(key.clone()); [INFO] [stderr] ... | [INFO] [stderr] 117 | | RFrame::withVec(cloned) [INFO] [stderr] 118 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `groupBy` should have a snake case name such as `group_by` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:120:3 [INFO] [stderr] | [INFO] [stderr] 120 | / pub fn groupBy(self, functor: &Fn(T) -> OUTPUT) -> RFrame<(OUTPUT,RFrame)> { [INFO] [stderr] 121 | | let mut map:HashMap> = HashMap::new(); [INFO] [stderr] 122 | | for v in self.vec.clone() { [INFO] [stderr] 123 | | let key:OUTPUT = functor(v.clone()); [INFO] [stderr] ... | [INFO] [stderr] 135 | | ret [INFO] [stderr] 136 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | if functor(v) == true { counter+=1 } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try simplifying it as shown: `functor(v)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: variable `repeatNum` should have a snake case name such as `repeat_num` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | pub fn repeat(self, repeatNum: i32) -> RFrame { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/main.rs:55:27 [INFO] [stderr] | [INFO] [stderr] 55 | assert_eq!(groupby.vec, [(0, 33), (1, 33), (2, 33)].iter().cloned().collect::>()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: method `toVec` should have a snake case name such as `to_vec` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:195:3 [INFO] [stderr] | [INFO] [stderr] 195 | / pub fn toVec(self) -> Vec { [INFO] [stderr] 196 | | self.vec.clone() [INFO] [stderr] 197 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `toSet` should have a snake case name such as `to_set` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:201:3 [INFO] [stderr] | [INFO] [stderr] 201 | / pub fn toSet(self) -> HashSet { [INFO] [stderr] 202 | | let mut set:HashSet = HashSet::new(); [INFO] [stderr] 203 | | for v in self.vec { [INFO] [stderr] 204 | | set.insert(v); [INFO] [stderr] 205 | | } [INFO] [stderr] 206 | | set [INFO] [stderr] 207 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `toUniq` should have a snake case name such as `to_uniq` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:211:3 [INFO] [stderr] | [INFO] [stderr] 211 | / pub fn toUniq(self) -> RFrame { [INFO] [stderr] 212 | | let mut set:HashSet = HashSet::new(); [INFO] [stderr] 213 | | for v in self.vec { [INFO] [stderr] 214 | | set.insert(v); [INFO] [stderr] ... | [INFO] [stderr] 220 | | RFrame::withVec(vec) [INFO] [stderr] 221 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `withRange` should have a snake case name such as `with_range` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:281:3 [INFO] [stderr] | [INFO] [stderr] 281 | / pub fn withRange(start:i32, end:i32) -> RFrame { [INFO] [stderr] 282 | | let mut tmp:Vec = (start..end).collect::>(); [INFO] [stderr] 283 | | RFrame::withVec( tmp ) [INFO] [stderr] 284 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `withVec` should have a snake case name such as `with_vec` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:288:3 [INFO] [stderr] | [INFO] [stderr] 288 | / pub fn withVec( vs:Vec ) -> RFrame { [INFO] [stderr] 289 | | RFrame { header:None, cursol:0, vec:vs } [INFO] [stderr] 290 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: method `withVecIndexed` should have a snake case name such as `with_vec_indexed` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:291:3 [INFO] [stderr] | [INFO] [stderr] 291 | / pub fn withVecIndexed( vi:Vec, vs:Vec ) -> RFrame { [INFO] [stderr] 292 | | let mut i = 0; [INFO] [stderr] 293 | | let mut map:HashMap = HashMap::new(); [INFO] [stderr] 294 | | for v in vi { [INFO] [stderr] ... | [INFO] [stderr] 298 | | RFrame { header:Some(map), cursol:0, vec:vs } [INFO] [stderr] 299 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in vi.enumerate()` or similar iterators [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:294:14 [INFO] [stderr] | [INFO] [stderr] 294 | for v in vi { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: variable `isPrime` should have a snake case name such as `is_prime` [INFO] [stderr] --> src/main.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | let mut isPrime = true; [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/OVERDOSE/RFrame.rs:306:5 [INFO] [stderr] | [INFO] [stderr] 306 | / match self.header { [INFO] [stderr] 307 | | Some(head) => { [INFO] [stderr] 308 | | let index:usize = match head.get(&key) { [INFO] [stderr] 309 | | Some(entry) => *entry as usize, [INFO] [stderr] ... | [INFO] [stderr] 316 | | None => {}, [INFO] [stderr] 317 | | }; [INFO] [stderr] | |_____^ [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:138:58 [INFO] [stderr] | [INFO] [stderr] 138 | assert_eq!(1231, RFrame::withVec(primes).filter(&|x| { x.1 == true }).vec.len()); [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `x.1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [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] 306 | if let Some(head) = self.header { [INFO] [stderr] 307 | let index:usize = match head.get(&key) { [INFO] [stderr] 308 | Some(entry) => *entry as usize, [INFO] [stderr] 309 | None => 0, [INFO] [stderr] 310 | }; [INFO] [stderr] 311 | for v in self.vec { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:151:23 [INFO] [stderr] | [INFO] [stderr] 151 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: variable `keysStr` should have a snake case name such as `keys_str` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:324:9 [INFO] [stderr] | [INFO] [stderr] 324 | let keysStr:Vec = keys.iter().map( |x| x.to_string()).collect::>(); [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `withBlank` should have a snake case name such as `with_blank` [INFO] [stderr] --> src/OVERDOSE/RFrame.rs:365:3 [INFO] [stderr] | [INFO] [stderr] 365 | / pub fn withBlank( ) -> RFrame { [INFO] [stderr] 366 | | let v:Vec = Vec::new(); [INFO] [stderr] 367 | | RFrame::withVec(v) [INFO] [stderr] 368 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:173:23 [INFO] [stderr] | [INFO] [stderr] 173 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: module `Enumerate` should have a snake case name such as `enumerate` [INFO] [stderr] --> src/OVERDOSE/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | pub mod Enumerate; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `Enumerate` should have a snake case name such as `enumerate` [INFO] [stderr] --> src/OVERDOSE/Enumerate.rs:13:1 [INFO] [stderr] | [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] 13 | / pub fn Enumerate>(i:I) -> Vec<(i32,A)> { [INFO] [stderr] --> src/main.rs:177:23 [INFO] [stderr] 14 | | let mut index:i32 = 0; [INFO] [stderr] | [INFO] [stderr] 15 | | let mut tmp:Vec<(i32,A)> = Vec::new(); [INFO] [stderr] 177 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] 16 | | for a in i { [INFO] [stderr] ... | [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] 19 | | tmp [INFO] [stderr] 20 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] [INFO] [stderr] warning: module `File` should have a snake case name such as `file` [INFO] [stderr] --> src/OVERDOSE/mod.rs:3:1 [INFO] [stderr] | [INFO] [stderr] 3 | pub mod File; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `Read` should have a snake case name such as `read` [INFO] [stderr] --> src/OVERDOSE/File.rs:10:1 [INFO] [stderr] | [INFO] [stderr] 10 | / pub fn Read( name:&str, header:bool ) -> Vec> { [INFO] [stderr] 11 | | let path = Path::new(name); [INFO] [stderr] 12 | | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] 13 | | let v:Vec = file.lines().map(|x| { x.unwrap() }).collect(); [INFO] [stderr] ... | [INFO] [stderr] 33 | | return ret; [INFO] [stderr] 34 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/OVERDOSE/File.rs:16:25 [INFO] [stderr] | [INFO] [stderr] 16 | let keys = keys.split(",").map( |x| { [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/OVERDOSE/File.rs:24:26 [INFO] [stderr] | [INFO] [stderr] 24 | let vals = val.split(",").map( |x| x.to_string() ).collect::>(); [INFO] [stderr] | ^^^ help: try using a char instead: `','` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] warning: module `Concurrent` should have a snake case name such as `concurrent` [INFO] [stderr] --> src/OVERDOSE/mod.rs:4:1 [INFO] [stderr] | [INFO] [stderr] 4 | pub mod Concurrent; [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/OVERDOSE/Concurrent.rs:32:7 [INFO] [stderr] | [INFO] [stderr] 32 | / match handle.join().ok() { [INFO] [stderr] 33 | | Some(r) => { res.push(r);}, [INFO] [stderr] 34 | | None => {}, [INFO] [stderr] 35 | | } [INFO] [stderr] | |_______^ help: try this: `if let Some(r) = handle.join().ok() { res.push(r);}` [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: method `chunkedMap` should have a snake case name such as `chunked_map` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:40:3 [INFO] [stderr] | [INFO] [stderr] 40 | / pub fn chunkedMap( vec: Vec, functor: F ) [INFO] [stderr] 41 | | -> Vec where F: Send + 'static + Fn(T) -> OUTPUT + Sync{ [INFO] [stderr] 42 | | let functor = Arc::new(functor); [INFO] [stderr] 43 | | // default chunk size = 32 [INFO] [stderr] ... | [INFO] [stderr] 89 | | [INFO] [stderr] 90 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: variable `CHUNK_SIZE` should have a snake case name such as `chunk_size` [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:44:9 [INFO] [stderr] | [INFO] [stderr] 44 | let CHUNK_SIZE = 32; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in vec.enumerate()` or similar iterators [INFO] [stderr] --> src/OVERDOSE/Concurrent.rs:48:15 [INFO] [stderr] | [INFO] [stderr] 48 | for v in vec { [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_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/OVERDOSE/Concurrent.rs:79:7 [INFO] [stderr] | [INFO] [stderr] 79 | / match handle.join().ok() { [INFO] [stderr] 80 | | Some(rs) => { [INFO] [stderr] 81 | | for r in rs { [INFO] [stderr] 82 | | res.push(r); [INFO] [stderr] ... | [INFO] [stderr] 85 | | None => {}, [INFO] [stderr] 86 | | } [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] 79 | if let Some(rs) = handle.join().ok() { [INFO] [stderr] 80 | for r in rs { [INFO] [stderr] 81 | res.push(r); [INFO] [stderr] 82 | } [INFO] [stderr] 83 | ;} [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: module `RowOrientedCSV` should have a snake case name such as `row_oriented_csv` [INFO] [stderr] --> src/OVERDOSE/mod.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | pub mod RowOrientedCSV; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `stateMachine` should have a snake case name such as `state_machine` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:19:3 [INFO] [stderr] | [INFO] [stderr] 19 | / fn stateMachine(line:String) -> Vec { [INFO] [stderr] 20 | | let chars:Vec = line.chars().collect::>(); [INFO] [stderr] 21 | | // ,であって"が続かない系列を発見したらそれはsplitコードである [INFO] [stderr] 22 | | let mut sv:Vec = Vec::new(); [INFO] [stderr] ... | [INFO] [stderr] 60 | | sv [INFO] [stderr] 61 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:35:11 [INFO] [stderr] | [INFO] [stderr] 35 | if (qo == true && chars[cursol-1] == '"' || qo == false ) && chars[cursol] == ',' { [INFO] [stderr] | ^^^^^^^^^^ help: try simplifying it as shown: `qo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: equality checks against false can be replaced by a negation [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:35:51 [INFO] [stderr] | [INFO] [stderr] 35 | if (qo == true && chars[cursol-1] == '"' || qo == false ) && chars[cursol] == ',' { [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `!qo` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: the variable `i` is used as a loop counter. Consider using `for (i, item) in sv.clone().enumerate()` or similar iterators [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:54:14 [INFO] [stderr] | [INFO] [stderr] 54 | for v in sv.clone() { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: method `concurrentOpen` should have a snake case name such as `concurrent_open` [INFO] [stderr] --> src/OVERDOSE/RowOrientedCSV.rs:81:3 [INFO] [stderr] | [INFO] [stderr] 81 | / pub fn concurrentOpen(filename:String) -> Vec> { [INFO] [stderr] 82 | | let path = Path::new(&filename); [INFO] [stderr] 83 | | let mut file = BufReader::new(File::open(&path).unwrap()); [INFO] [stderr] 84 | | let v:Vec = file.lines().map(|x| { x.unwrap() }).collect(); [INFO] [stderr] ... | [INFO] [stderr] 102 | | ret [INFO] [stderr] 103 | | } [INFO] [stderr] | |___^ [INFO] [stderr] [INFO] [stderr] warning: unused `std::iter::Map` that must be used [INFO] [stderr] --> src/main.rs:15:3 [INFO] [stderr] | [INFO] [stderr] 15 | (0..100).map( |x| { println!("{}",x);(x%5,x)}) ; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: iterator adaptors are lazy and do nothing unless consumed [INFO] [stderr] [INFO] [stderr] warning: called `cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stderr] --> src/main.rs:55:27 [INFO] [stderr] | [INFO] [stderr] 55 | assert_eq!(groupby.vec, [(0, 33), (1, 33), (2, 33)].iter().cloned().collect::>()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_cloned_collect)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stderr] [INFO] [stderr] warning: variable `isPrime` should have a snake case name such as `is_prime` [INFO] [stderr] --> src/main.rs:128:9 [INFO] [stderr] | [INFO] [stderr] 128 | let mut isPrime = true; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: equality checks against true are unnecessary [INFO] [stderr] --> src/main.rs:138:58 [INFO] [stderr] | [INFO] [stderr] 138 | assert_eq!(1231, RFrame::withVec(primes).filter(&|x| { x.1 == true }).vec.len()); [INFO] [stderr] | ^^^^^^^^^^^ help: try simplifying it as shown: `x.1` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:147:23 [INFO] [stderr] | [INFO] [stderr] 147 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:151:23 [INFO] [stderr] | [INFO] [stderr] 151 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:173:23 [INFO] [stderr] | [INFO] [stderr] 173 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:177:23 [INFO] [stderr] | [INFO] [stderr] 177 | Some(c) => Some(format!("{}", c)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: consider using .to_string(): `c.to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 2.54s [INFO] running `"docker" "inspect" "4ded62edc20b97564f093c383a8b54750c794d9879ddb3170324678b232c660a"` [INFO] running `"docker" "rm" "-f" "4ded62edc20b97564f093c383a8b54750c794d9879ddb3170324678b232c660a"` [INFO] [stdout] 4ded62edc20b97564f093c383a8b54750c794d9879ddb3170324678b232c660a