[INFO] updating cached repository cannero/reportserver [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/cannero/reportserver [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/cannero/reportserver" "work/ex/clippy-test-run/sources/stable/gh/cannero/reportserver"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/cannero/reportserver'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/cannero/reportserver" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cannero/reportserver"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cannero/reportserver'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] d2e6edb5241fd513efdfa5cc4879cf65047f295c [INFO] sha for GitHub repo cannero/reportserver: d2e6edb5241fd513efdfa5cc4879cf65047f295c [INFO] validating manifest of cannero/reportserver 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 cannero/reportserver 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 cannero/reportserver [INFO] finished frobbing cannero/reportserver [INFO] frobbed toml for cannero/reportserver written to work/ex/clippy-test-run/sources/stable/gh/cannero/reportserver/Cargo.toml [INFO] started frobbing cannero/reportserver [INFO] finished frobbing cannero/reportserver [INFO] frobbed toml for cannero/reportserver written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/cannero/reportserver/Cargo.toml [INFO] crate cannero/reportserver 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 cannero/reportserver against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/cannero/reportserver:/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] 597c69211754a22bdb7a319bccacad7d547c555572339b6a6b40153e8717adb7 [INFO] running `"docker" "start" "-a" "597c69211754a22bdb7a319bccacad7d547c555572339b6a6b40153e8717adb7"` [INFO] [stderr] Checking serde v1.0.4 [INFO] [stderr] Checking memchr v0.1.11 [INFO] [stderr] Checking hostname v0.1.3 [INFO] [stderr] Compiling rust-crypto v0.2.36 [INFO] [stderr] Checking textnonce v0.4.1 [INFO] [stderr] Checking thread-id v2.0.0 [INFO] [stderr] Checking hyper v0.10.12 [INFO] [stderr] Checking chrono v0.3.1 [INFO] [stderr] Checking aho-corasick v0.5.3 [INFO] [stderr] Checking thread_local v0.2.7 [INFO] [stderr] Checking regex v0.1.80 [INFO] [stderr] Checking semver-parser v0.6.2 [INFO] [stderr] Checking iron v0.5.1 [INFO] [stderr] Checking semver v0.5.1 [INFO] [stderr] Checking mount v0.3.0 [INFO] [stderr] Checking router v0.5.1 [INFO] [stderr] Checking staticfile v0.4.0 [INFO] [stderr] Checking serde_json v1.0.2 [INFO] [stderr] Checking bson v0.7.1 [INFO] [stderr] Checking mongodb v0.2.9 [INFO] [stderr] Checking reportserver v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/dbaccess.rs:187:16 [INFO] [stderr] | [INFO] [stderr] 187 | const FORMAT: &'static str = "%Y-%m-%d"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/dbaccess.rs:237:5 [INFO] [stderr] | [INFO] [stderr] 237 | date_from [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/dbaccess.rs:236:21 [INFO] [stderr] | [INFO] [stderr] 236 | let date_from = now - duration; [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/dbaccess.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | client [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/dbaccess.rs:249:18 [INFO] [stderr] | [INFO] [stderr] 249 | let client = Client::connect("localhost", 27017).expect("could not connect to mongodb"); [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lib.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | content [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/lib.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | let content = match ISO_8859_1.decode(&content_as_byte, DecoderTrap::Strict) { [INFO] [stderr] | ____________________^ [INFO] [stderr] 65 | | Err(why) => panic!("decode failed {}", why), [INFO] [stderr] 66 | | Ok(content) => content, [INFO] [stderr] 67 | | }; [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 variable: `total_duration` [INFO] [stderr] --> src/dbaccess.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut total_duration = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_total_duration` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/dbaccess.rs:187:16 [INFO] [stderr] | [INFO] [stderr] 187 | const FORMAT: &'static str = "%Y-%m-%d"; [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/dbaccess.rs:237:5 [INFO] [stderr] | [INFO] [stderr] 237 | date_from [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/dbaccess.rs:236:21 [INFO] [stderr] | [INFO] [stderr] 236 | let date_from = now - duration; [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/dbaccess.rs:250:5 [INFO] [stderr] | [INFO] [stderr] 250 | client [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/dbaccess.rs:249:18 [INFO] [stderr] | [INFO] [stderr] 249 | let client = Client::connect("localhost", 27017).expect("could not connect to mongodb"); [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/lib.rs:69:5 [INFO] [stderr] | [INFO] [stderr] 69 | content [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/lib.rs:64:20 [INFO] [stderr] | [INFO] [stderr] 64 | let content = match ISO_8859_1.decode(&content_as_byte, DecoderTrap::Strict) { [INFO] [stderr] | ____________________^ [INFO] [stderr] 65 | | Err(why) => panic!("decode failed {}", why), [INFO] [stderr] 66 | | Ok(content) => content, [INFO] [stderr] 67 | | }; [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: variable does not need to be mutable [INFO] [stderr] --> src/dbaccess.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | let mut total_duration = 0; [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reportserver.rs:4:33 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn get_utc_from_naive(date: &NaiveDate) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `NaiveDate` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/reportserver.rs:71:52 [INFO] [stderr] | [INFO] [stderr] 71 | let hours_and_minutes: Vec<&str> = input.split(":").collect(); [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: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/dbaccess.rs:42:62 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn get_entries_containing_comment(client: &Client, part: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:60:21 [INFO] [stderr] | [INFO] [stderr] 60 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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 `matchClause` should have a snake case name such as `match_clause` [INFO] [stderr] --> src/dbaccess.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | let matchClause = doc!{"$match" => {"date" => {"$gte" => date_from}}}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/dbaccess.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | / match doc.get("duration").expect("time per customer no duration defined") { [INFO] [stderr] 103 | | &Bson::I32(v) => { [INFO] [stderr] 104 | | let duration_hours = v / 3600; [INFO] [stderr] 105 | | total_duration = total_duration + duration_hours; [INFO] [stderr] ... | [INFO] [stderr] 108 | | _ => panic!("time per customer duration not an i32"), [INFO] [stderr] 109 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 102 | match *doc.get("duration").expect("time per customer no duration defined") { [INFO] [stderr] 103 | Bson::I32(v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/dbaccess.rs:105:25 [INFO] [stderr] | [INFO] [stderr] 105 | total_duration = total_duration + duration_hours; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration += duration_hours` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dbaccess.rs:144:40 [INFO] [stderr] | [INFO] [stderr] 144 | let mut total_duration_krailling = 0 as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dbaccess.rs:145:35 [INFO] [stderr] | [INFO] [stderr] 145 | let mut total_duration_arad = 0 as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/dbaccess.rs:154:17 [INFO] [stderr] | [INFO] [stderr] 154 | / match doc.get("duration").expect("time per customer per division no duration defined") { [INFO] [stderr] 155 | | &Bson::FloatingPoint(duration) => { [INFO] [stderr] 156 | | if "Arad" == doc_id_and_duration.get_str("division").expect("no division defined") { [INFO] [stderr] 157 | | total_duration_arad = total_duration_arad + duration; [INFO] [stderr] ... | [INFO] [stderr] 163 | | _ => panic!("time per customer division duration not a float"), [INFO] [stderr] 164 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 154 | match *doc.get("duration").expect("time per customer per division no duration defined") { [INFO] [stderr] 155 | Bson::FloatingPoint(duration) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/dbaccess.rs:157:29 [INFO] [stderr] | [INFO] [stderr] 157 | total_duration_arad = total_duration_arad + duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration_arad += duration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/dbaccess.rs:159:29 [INFO] [stderr] | [INFO] [stderr] 159 | total_duration_krailling = total_duration_krailling + duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration_krailling += duration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:168:21 [INFO] [stderr] | [INFO] [stderr] 168 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/dbaccess.rs:235:35 [INFO] [stderr] | [INFO] [stderr] 235 | let duration = Duration::days(days as i64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(days)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:22:35 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn read_file_and_insert(path: &String, seperator: char) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/lib.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match result{ [INFO] [stderr] 47 | | Err(e) => println! ("error during insert: {}", e), [INFO] [stderr] 48 | | Ok(_) => (), [INFO] [stderr] 49 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(e) = result { println! ("error during insert: {}", e) }` [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] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:53:32 [INFO] [stderr] | [INFO] [stderr] 53 | fn read_latin1_file(file_name: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:76:71 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn get_entries_containing_comment(client: &mongodb::Client, part: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: unused variable: `total_duration` [INFO] [stderr] --> src/dbaccess.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | let mut total_duration = 0; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider using `_total_duration` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/dbaccess.rs:53:9 [INFO] [stderr] | [INFO] [stderr] 53 | let mut total_duration = 0; [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/reportserver.rs:4:33 [INFO] [stderr] | [INFO] [stderr] 4 | pub fn get_utc_from_naive(date: &NaiveDate) -> DateTime { [INFO] [stderr] | ^^^^^^^^^^ help: consider passing by value instead: `NaiveDate` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/reportserver.rs:71:52 [INFO] [stderr] | [INFO] [stderr] 71 | let hours_and_minutes: Vec<&str> = input.split(":").collect(); [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: redundant field names in struct initialization [INFO] [stderr] --> src/server.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | message: message [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/dbaccess.rs:42:62 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn get_entries_containing_comment(client: &Client, part: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:60:21 [INFO] [stderr] | [INFO] [stderr] 60 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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 `matchClause` should have a snake case name such as `match_clause` [INFO] [stderr] --> src/dbaccess.rs:79:9 [INFO] [stderr] | [INFO] [stderr] 79 | let matchClause = doc!{"$match" => {"date" => {"$gte" => date_from}}}; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_snake_case)] on by default [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/dbaccess.rs:102:17 [INFO] [stderr] | [INFO] [stderr] 102 | / match doc.get("duration").expect("time per customer no duration defined") { [INFO] [stderr] 103 | | &Bson::I32(v) => { [INFO] [stderr] 104 | | let duration_hours = v / 3600; [INFO] [stderr] 105 | | total_duration = total_duration + duration_hours; [INFO] [stderr] ... | [INFO] [stderr] 108 | | _ => panic!("time per customer duration not an i32"), [INFO] [stderr] 109 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 102 | match *doc.get("duration").expect("time per customer no duration defined") { [INFO] [stderr] 103 | Bson::I32(v) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/dbaccess.rs:105:25 [INFO] [stderr] | [INFO] [stderr] 105 | total_duration = total_duration + duration_hours; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration += duration_hours` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::assign_op_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:113:21 [INFO] [stderr] | [INFO] [stderr] 113 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dbaccess.rs:144:40 [INFO] [stderr] | [INFO] [stderr] 144 | let mut total_duration_krailling = 0 as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(0)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dbaccess.rs:145:35 [INFO] [stderr] | [INFO] [stderr] 145 | let mut total_duration_arad = 0 as f64; [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(0)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/dbaccess.rs:154:17 [INFO] [stderr] | [INFO] [stderr] 154 | / match doc.get("duration").expect("time per customer per division no duration defined") { [INFO] [stderr] 155 | | &Bson::FloatingPoint(duration) => { [INFO] [stderr] 156 | | if "Arad" == doc_id_and_duration.get_str("division").expect("no division defined") { [INFO] [stderr] 157 | | total_duration_arad = total_duration_arad + duration; [INFO] [stderr] ... | [INFO] [stderr] 163 | | _ => panic!("time per customer division duration not a float"), [INFO] [stderr] 164 | | }; [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 154 | match *doc.get("duration").expect("time per customer per division no duration defined") { [INFO] [stderr] 155 | Bson::FloatingPoint(duration) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/dbaccess.rs:157:29 [INFO] [stderr] | [INFO] [stderr] 157 | total_duration_arad = total_duration_arad + duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration_arad += duration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/dbaccess.rs:159:29 [INFO] [stderr] | [INFO] [stderr] 159 | total_duration_krailling = total_duration_krailling + duration; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `total_duration_krailling += duration` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/dbaccess.rs:168:21 [INFO] [stderr] | [INFO] [stderr] 168 | format!("{}", json_string) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `json_string.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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/dbaccess.rs:235:35 [INFO] [stderr] | [INFO] [stderr] 235 | let duration = Duration::days(days as i64); [INFO] [stderr] | ^^^^^^^^^^^ help: try: `i64::from(days)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:22:35 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn read_file_and_insert(path: &String, seperator: char) { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [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/lib.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 46 | / match result{ [INFO] [stderr] 47 | | Err(e) => println! ("error during insert: {}", e), [INFO] [stderr] 48 | | Ok(_) => (), [INFO] [stderr] 49 | | } [INFO] [stderr] | |_________^ help: try this: `if let Err(e) = result { println! ("error during insert: {}", e) }` [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] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:53:32 [INFO] [stderr] | [INFO] [stderr] 53 | fn read_latin1_file(file_name: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/lib.rs:76:71 [INFO] [stderr] | [INFO] [stderr] 76 | pub fn get_entries_containing_comment(client: &mongodb::Client, part: &String) -> String { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/server.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | message: message [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `message` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/console_middleware.rs:23:35 [INFO] [stderr] | [INFO] [stderr] 23 | (delta as f64) / 1000000.0); [INFO] [stderr] | ^^^^^^^^^ help: consider: `1_000_000.0` [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: long literal lacking separators [INFO] [stderr] --> src/console_middleware.rs:23:35 [INFO] [stderr] | [INFO] [stderr] 23 | (delta as f64) / 1000000.0); [INFO] [stderr] | ^^^^^^^^^ help: consider: `1_000_000.0` [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] Finished dev [unoptimized + debuginfo] target(s) in 32.10s [INFO] running `"docker" "inspect" "597c69211754a22bdb7a319bccacad7d547c555572339b6a6b40153e8717adb7"` [INFO] running `"docker" "rm" "-f" "597c69211754a22bdb7a319bccacad7d547c555572339b6a6b40153e8717adb7"` [INFO] [stdout] 597c69211754a22bdb7a319bccacad7d547c555572339b6a6b40153e8717adb7