[INFO] updating cached repository asteroidb612/printer [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/asteroidb612/printer [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/asteroidb612/printer" "work/ex/clippy-test-run/sources/stable/gh/asteroidb612/printer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/asteroidb612/printer'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/asteroidb612/printer" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/asteroidb612/printer"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/asteroidb612/printer'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 1cee01123bb449934af956202b1adfd1fe32f0de [INFO] sha for GitHub repo asteroidb612/printer: 1cee01123bb449934af956202b1adfd1fe32f0de [INFO] validating manifest of asteroidb612/printer 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 asteroidb612/printer 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 asteroidb612/printer [INFO] finished frobbing asteroidb612/printer [INFO] frobbed toml for asteroidb612/printer written to work/ex/clippy-test-run/sources/stable/gh/asteroidb612/printer/Cargo.toml [INFO] started frobbing asteroidb612/printer [INFO] finished frobbing asteroidb612/printer [INFO] frobbed toml for asteroidb612/printer written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/asteroidb612/printer/Cargo.toml [INFO] crate asteroidb612/printer 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 asteroidb612/printer against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/asteroidb612/printer:/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] 4a5b9ef12716a6eec08e6df9ce6a4575fa93c4a854e4b3795a1206c2361d267d [INFO] running `"docker" "start" "-a" "4a5b9ef12716a6eec08e6df9ce6a4575fa93c4a854e4b3795a1206c2361d267d"` [INFO] [stderr] Checking serial-core v0.4.0 [INFO] [stderr] Checking ioctl-rs v0.1.6 [INFO] [stderr] Checking unicode-bidi v0.2.6 [INFO] [stderr] Compiling memchr v2.1.0 [INFO] [stderr] Checking buf_redux v0.6.3 [INFO] [stderr] Checking tokio-io v0.1.10 [INFO] [stderr] Checking uuid v0.2.3 [INFO] [stderr] Checking gag v0.1.10 [INFO] [stderr] Checking hyper v0.10.14 [INFO] [stderr] Checking gzip-header v0.2.0 [INFO] [stderr] Checking chrono v0.4.6 [INFO] [stderr] Checking error-chain v0.10.0 [INFO] [stderr] Checking serial-unix v0.4.0 [INFO] [stderr] Checking tokio-threadpool v0.1.8 [INFO] [stderr] Checking rustls v0.13.1 [INFO] [stderr] Checking url v0.5.10 [INFO] [stderr] Checking deflate v0.7.19 [INFO] [stderr] Checking tokio-codec v0.1.1 [INFO] [stderr] Checking tokio-reactor v0.1.6 [INFO] [stderr] Checking h2 v0.1.13 [INFO] [stderr] Checking serial v0.4.0 [INFO] [stderr] Checking twoway v0.1.8 [INFO] [stderr] Checking tokio-fs v0.1.4 [INFO] [stderr] Checking cron v0.6.0 [INFO] [stderr] Checking tiny_http v0.6.0 [INFO] [stderr] Checking multipart v0.13.6 [INFO] [stderr] Checking tokio-tcp v0.1.2 [INFO] [stderr] Checking tokio-udp v0.1.2 [INFO] [stderr] Checking tokio-uds v0.2.3 [INFO] [stderr] Checking hyper-native-tls v0.3.0 [INFO] [stderr] Checking job_scheduler v1.0.5 [INFO] [stderr] Checking hyper-rustls v0.6.2 [INFO] [stderr] Checking rouille v2.2.0 [INFO] [stderr] Checking tokio v0.1.11 [INFO] [stderr] Checking yup-oauth2 v1.0.9 [INFO] [stderr] Checking hyper v0.12.12 [INFO] [stderr] Checking google-calendar3 v1.0.5+20170514 [INFO] [stderr] Checking hyper-tls v0.3.1 [INFO] [stderr] Checking reqwest v0.9.3 [INFO] [stderr] Checking lumberjack v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:466:17 [INFO] [stderr] | [INFO] [stderr] 466 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:467:17 [INFO] [stderr] | [INFO] [stderr] 467 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:468:17 [INFO] [stderr] | [INFO] [stderr] 468 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:466:17 [INFO] [stderr] | [INFO] [stderr] 466 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:467:17 [INFO] [stderr] | [INFO] [stderr] 467 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:468:17 [INFO] [stderr] | [INFO] [stderr] 468 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: The function/method `reconfigure` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:87:26 [INFO] [stderr] | [INFO] [stderr] 87 | port.reconfigure(&mut |settings| settings.set_baud_rate(serial::Baud19200)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/main.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | / port.write("Fuck Accordions".as_bytes()) [INFO] [stderr] 90 | | .expect("Couldn't write to serial port"); [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:89:20 [INFO] [stderr] | [INFO] [stderr] 89 | port.write("Fuck Accordions".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Fuck Accordions"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: The function/method `serde_json::from_str` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:132:53 [INFO] [stderr] | [INFO] [stderr] 132 | Ok(_) => match serde_json::from_str(&mut s) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:149:25 [INFO] [stderr] | [INFO] [stderr] 149 | let next_week = now [INFO] [stderr] | _________________________^ [INFO] [stderr] 150 | | .clone() [INFO] [stderr] | |____________________^ help: try removing the `clone` call: `now` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | print(format!("{}", view_from_items(all_events))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `view_from_items(all_events).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: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/main.rs:211:73 [INFO] [stderr] | [INFO] [stderr] 211 | if response.data.transactions.into_iter().all(|transaction| { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 212 | | match transaction.flag_color { [INFO] [stderr] 213 | | None => transaction.approved, [INFO] [stderr] 214 | | _ => true, [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:258:21 [INFO] [stderr] | [INFO] [stderr] 258 | Err(_) => panic!("couldn't create file for server storage"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | / match file.write_all(serialized.as_bytes()) { [INFO] [stderr] 262 | | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] 263 | | Ok(_) => () [INFO] [stderr] 264 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Err(_) = file.write_all(serialized.as_bytes()) { panic!("server couldn't write store to file") }` [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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:262:21 [INFO] [stderr] | [INFO] [stderr] 262 | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:292:21 [INFO] [stderr] | [INFO] [stderr] 292 | Err(_) => panic!("couldn't create file for server storage"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:295:17 [INFO] [stderr] | [INFO] [stderr] 295 | / match file.write_all(serialized.as_bytes()) { [INFO] [stderr] 296 | | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] 297 | | Ok(_) => () [INFO] [stderr] 298 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Err(_) = file.write_all(serialized.as_bytes()) { panic!("server couldn't write store to file") }` [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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:296:21 [INFO] [stderr] | [INFO] [stderr] 296 | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:349:22 [INFO] [stderr] | [INFO] [stderr] 349 | for event in group.into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `group` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:381:24 [INFO] [stderr] | [INFO] [stderr] 381 | Some(x) => x.clone(), //TODO why does clone() change the type here? //(Later) do I see a type error or a borrow error... [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:390:26 [INFO] [stderr] | [INFO] [stderr] 390 | let mut output = String::from(format!("Game /{}\n", &g.name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Game /{}\n", &g.name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/main.rs:494:26 [INFO] [stderr] | [INFO] [stderr] 494 | for date in (&dates).into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:499:13 [INFO] [stderr] | [INFO] [stderr] 499 | days = days + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `days += 1` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `lumberjack`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: The function/method `reconfigure` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:87:26 [INFO] [stderr] | [INFO] [stderr] 87 | port.reconfigure(&mut |settings| settings.set_baud_rate(serial::Baud19200)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unnecessary_mut_passed)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] error: handle written amount returned or use `Write::write_all` instead [INFO] [stderr] --> src/main.rs:89:9 [INFO] [stderr] | [INFO] [stderr] 89 | / port.write("Fuck Accordions".as_bytes()) [INFO] [stderr] 90 | | .expect("Couldn't write to serial port"); [INFO] [stderr] | |____________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::unused_io_amount)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stderr] [INFO] [stderr] warning: calling `as_bytes()` on a string literal [INFO] [stderr] --> src/main.rs:89:20 [INFO] [stderr] | [INFO] [stderr] 89 | port.write("Fuck Accordions".as_bytes()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using a byte string literal instead: `b"Fuck Accordions"` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::string_lit_as_bytes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#string_lit_as_bytes [INFO] [stderr] [INFO] [stderr] warning: The function/method `serde_json::from_str` doesn't need a mutable reference [INFO] [stderr] --> src/main.rs:132:53 [INFO] [stderr] | [INFO] [stderr] 132 | Ok(_) => match serde_json::from_str(&mut s) { [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_mut_passed [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:149:25 [INFO] [stderr] | [INFO] [stderr] 149 | let next_week = now [INFO] [stderr] | _________________________^ [INFO] [stderr] 150 | | .clone() [INFO] [stderr] | |____________________^ help: try removing the `clone` call: `now` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/main.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | print(format!("{}", view_from_items(all_events))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `view_from_items(all_events).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: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/main.rs:211:73 [INFO] [stderr] | [INFO] [stderr] 211 | if response.data.transactions.into_iter().all(|transaction| { [INFO] [stderr] | _________________________________________________________________________^ [INFO] [stderr] 212 | | match transaction.flag_color { [INFO] [stderr] 213 | | None => transaction.approved, [INFO] [stderr] 214 | | _ => true, [INFO] [stderr] 215 | | } [INFO] [stderr] 216 | | }) { [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:258:21 [INFO] [stderr] | [INFO] [stderr] 258 | Err(_) => panic!("couldn't create file for server storage"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:261:17 [INFO] [stderr] | [INFO] [stderr] 261 | / match file.write_all(serialized.as_bytes()) { [INFO] [stderr] 262 | | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] 263 | | Ok(_) => () [INFO] [stderr] 264 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Err(_) = file.write_all(serialized.as_bytes()) { panic!("server couldn't write store to file") }` [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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:262:21 [INFO] [stderr] | [INFO] [stderr] 262 | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:292:21 [INFO] [stderr] | [INFO] [stderr] 292 | Err(_) => panic!("couldn't create file for server storage"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/main.rs:295:17 [INFO] [stderr] | [INFO] [stderr] 295 | / match file.write_all(serialized.as_bytes()) { [INFO] [stderr] 296 | | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] 297 | | Ok(_) => () [INFO] [stderr] 298 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Err(_) = file.write_all(serialized.as_bytes()) { panic!("server couldn't write store to file") }` [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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/main.rs:296:21 [INFO] [stderr] | [INFO] [stderr] 296 | Err(_) => panic!("server couldn't write store to file"), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:349:22 [INFO] [stderr] | [INFO] [stderr] 349 | for event in group.into_iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `group` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/main.rs:381:24 [INFO] [stderr] | [INFO] [stderr] 381 | Some(x) => x.clone(), //TODO why does clone() change the type here? //(Later) do I see a type error or a borrow error... [INFO] [stderr] | ^^^^^^^^^ help: try dereferencing it: `*x` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/main.rs:390:26 [INFO] [stderr] | [INFO] [stderr] 390 | let mut output = String::from(format!("Game /{}\n", &g.name)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `format!("Game /{}\n", &g.name)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this .into_iter() call is equivalent to .iter() and will not move the Vec [INFO] [stderr] --> src/main.rs:494:26 [INFO] [stderr] | [INFO] [stderr] 494 | for date in (&dates).into_iter() { [INFO] [stderr] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::into_iter_on_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stderr] [INFO] [stderr] warning: manual implementation of an assign operation [INFO] [stderr] --> src/main.rs:499:13 [INFO] [stderr] | [INFO] [stderr] 499 | days = days + 1; [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: replace it with: `days += 1` [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] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `lumberjack`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4a5b9ef12716a6eec08e6df9ce6a4575fa93c4a854e4b3795a1206c2361d267d"` [INFO] running `"docker" "rm" "-f" "4a5b9ef12716a6eec08e6df9ce6a4575fa93c4a854e4b3795a1206c2361d267d"` [INFO] [stdout] 4a5b9ef12716a6eec08e6df9ce6a4575fa93c4a854e4b3795a1206c2361d267d