[INFO] cloning repository https://github.com/mikolasan/activity-brush [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/mikolasan/activity-brush" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmikolasan%2Factivity-brush", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmikolasan%2Factivity-brush'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 85c1f6ba2688260408c3f559b6ab57355ac94f7c [INFO] linting mikolasan/activity-brush against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmikolasan%2Factivity-brush" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/mikolasan/activity-brush [INFO] finished tweaking git repo https://github.com/mikolasan/activity-brush [INFO] tweaked toml for git repo https://github.com/mikolasan/activity-brush written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/mikolasan/activity-brush on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/mikolasan/activity-brush already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded glib-sys v0.15.10 [INFO] [stderr] Downloaded cairo-rs v0.15.12 [INFO] [stderr] Downloaded futures-io v0.3.23 [INFO] [stderr] Downloaded futures-sink v0.3.23 [INFO] [stderr] Downloaded cairo-sys-rs v0.15.1 [INFO] [stderr] Downloaded freetype v0.7.0 [INFO] [stderr] Downloaded cfg-expr v0.10.3 [INFO] [stderr] Downloaded system-deps v6.0.2 [INFO] [stderr] Downloaded glib-macros v0.15.11 [INFO] [stderr] Downloaded gobject-sys v0.15.10 [INFO] [stderr] Downloaded glib v0.15.12 [INFO] [stderr] Downloaded tokio v1.20.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 37685f2824c1279ad7963612c3d5284fe70426d3cc18319420c5237204cb03a7 [INFO] running `Command { std: "docker" "start" "-a" "37685f2824c1279ad7963612c3d5284fe70426d3cc18319420c5237204cb03a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "37685f2824c1279ad7963612c3d5284fe70426d3cc18319420c5237204cb03a7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "37685f2824c1279ad7963612c3d5284fe70426d3cc18319420c5237204cb03a7", kill_on_drop: false }` [INFO] [stdout] 37685f2824c1279ad7963612c3d5284fe70426d3cc18319420c5237204cb03a7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 285f05a85f139176d183e9857e000403612657c8a4e2e1c335568be164e48ccd [INFO] running `Command { std: "docker" "start" "-a" "285f05a85f139176d183e9857e000403612657c8a4e2e1c335568be164e48ccd", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.126 [INFO] [stderr] Compiling proc-macro2 v1.0.40 [INFO] [stderr] Compiling quote v1.0.20 [INFO] [stderr] Compiling unicode-ident v1.0.2 [INFO] [stderr] Compiling pkg-config v0.3.25 [INFO] [stderr] Compiling syn v1.0.98 [INFO] [stderr] Compiling cc v1.0.73 [INFO] [stderr] Compiling serde v1.0.143 [INFO] [stderr] Compiling smallvec v1.9.0 [INFO] [stderr] Checking once_cell v1.13.0 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling futures-core v0.3.21 [INFO] [stderr] Compiling version-compare v0.1.0 [INFO] [stderr] Compiling lock_api v0.4.7 [INFO] [stderr] Compiling slab v0.4.7 [INFO] [stderr] Compiling futures-task v0.3.21 [INFO] [stderr] Compiling parking_lot_core v0.9.3 [INFO] [stderr] Compiling futures-util v0.3.21 [INFO] [stderr] Compiling cfg-expr v0.10.3 [INFO] [stderr] Checking bytes v1.2.1 [INFO] [stderr] Compiling tokio v1.20.1 [INFO] [stderr] Checking itoa v1.0.3 [INFO] [stderr] Checking futures-io v0.3.23 [INFO] [stderr] Compiling futures-channel v0.3.21 [INFO] [stderr] Checking tracing-core v0.1.29 [INFO] [stderr] Compiling indexmap v1.9.1 [INFO] [stderr] Compiling openssl v0.10.41 [INFO] [stderr] Compiling serde_derive v1.0.143 [INFO] [stderr] Checking tinyvec_macros v0.1.0 [INFO] [stderr] Checking http v0.2.8 [INFO] [stderr] Compiling httparse v1.7.1 [INFO] [stderr] Compiling native-tls v0.2.10 [INFO] [stderr] Checking matches v0.1.9 [INFO] [stderr] Compiling anyhow v1.0.58 [INFO] [stderr] Checking futures-sink v0.3.23 [INFO] [stderr] Checking tinyvec v1.6.0 [INFO] [stderr] Compiling num-traits v0.2.15 [INFO] [stderr] Checking try-lock v0.2.3 [INFO] [stderr] Checking percent-encoding v2.1.0 [INFO] [stderr] Checking want v0.3.0 [INFO] [stderr] Checking form_urlencoded v1.0.1 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Checking ryu v1.0.11 [INFO] [stderr] Compiling serde_json v1.0.83 [INFO] [stderr] Compiling cmake v0.1.48 [INFO] [stderr] Checking num_cpus v1.13.1 [INFO] [stderr] Checking mio v0.8.4 [INFO] [stderr] Checking signal-hook-registry v1.4.0 [INFO] [stderr] Checking socket2 v0.4.4 [INFO] [stderr] Checking tracing v0.1.36 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking unicode-bidi v0.3.8 [INFO] [stderr] Compiling encoding_rs v0.8.31 [INFO] [stderr] Checking gimli v0.26.2 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking httpdate v1.0.2 [INFO] [stderr] Checking http-body v0.4.5 [INFO] [stderr] Checking miniz_oxide v0.5.3 [INFO] [stderr] Checking object v0.29.0 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Checking unicode-normalization v0.1.21 [INFO] [stderr] Checking rustc-demangle v0.1.21 [INFO] [stderr] Checking time v0.1.44 [INFO] [stderr] Checking base64 v0.13.0 [INFO] [stderr] Checking mime v0.3.16 [INFO] [stderr] Checking ipnet v2.5.0 [INFO] [stderr] Checking regex v1.6.0 [INFO] [stderr] Compiling openssl-sys v0.9.75 [INFO] [stderr] Compiling freetype-sys v0.13.1 [INFO] [stderr] Compiling backtrace v0.3.66 [INFO] [stderr] Checking idna v0.2.3 [INFO] [stderr] Checking freetype v0.7.0 [INFO] [stderr] Checking url v2.2.2 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking futures-executor v0.3.21 [INFO] [stderr] Checking addr2line v0.17.0 [INFO] [stderr] Compiling toml v0.5.9 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Compiling system-deps v6.0.2 [INFO] [stderr] Compiling tokio-macros v1.8.0 [INFO] [stderr] Compiling thiserror-impl v1.0.31 [INFO] [stderr] Compiling openssl-macros v0.1.0 [INFO] [stderr] Compiling glib-sys v0.15.10 [INFO] [stderr] Compiling gobject-sys v0.15.10 [INFO] [stderr] Compiling cairo-sys-rs v0.15.1 [INFO] [stderr] Compiling thiserror v1.0.31 [INFO] [stderr] Compiling proc-macro-crate v1.1.3 [INFO] [stderr] Compiling glib-macros v0.15.11 [INFO] [stderr] Checking glib v0.15.12 [INFO] [stderr] Checking tokio-util v0.7.3 [INFO] [stderr] Checking tokio-native-tls v0.3.0 [INFO] [stderr] Checking h2 v0.3.13 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking hyper v0.14.20 [INFO] [stderr] Checking cairo-rs v0.15.12 [INFO] [stderr] Checking hyper-tls v0.5.0 [INFO] [stderr] Checking reqwest v0.11.11 [INFO] [stderr] Checking github-brush v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `dots_to_dates` and `wrap_into_iter` [INFO] [stdout] --> src/main.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use dates::{wrap_into_iter, dots_to_dates, dots_to_dates_flat}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> src/github.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::{self, Read, Write, BufReader, BufRead}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/main.rs:125:59 [INFO] [stdout] | [INFO] [stdout] 125 | let start_date = NaiveDate::from_weekday_of_month(2021, 09, Weekday::Sun, 1); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] = note: `#[warn(clippy::zero_prefixed_literal)]` on by default [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 125 - let start_date = NaiveDate::from_weekday_of_month(2021, 09, Weekday::Sun, 1); [INFO] [stdout] 125 + let start_date = NaiveDate::from_weekday_of_month(2021, 9, Weekday::Sun, 1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `dots_to_dates` and `wrap_into_iter` [INFO] [stdout] --> src/main.rs:8:13 [INFO] [stdout] | [INFO] [stdout] 8 | use dates::{wrap_into_iter, dots_to_dates, dots_to_dates_flat}; [INFO] [stdout] | ^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `BufRead` [INFO] [stdout] --> src/github.rs:9:45 [INFO] [stdout] | [INFO] [stdout] 9 | use std::io::{self, Read, Write, BufReader, BufRead}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this is a decimal constant [INFO] [stdout] --> src/main.rs:125:59 [INFO] [stdout] | [INFO] [stdout] 125 | let start_date = NaiveDate::from_weekday_of_month(2021, 09, Weekday::Sun, 1); [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zero_prefixed_literal [INFO] [stdout] = note: `#[warn(clippy::zero_prefixed_literal)]` on by default [INFO] [stdout] help: if you mean to use a decimal constant, remove the `0` to avoid confusion [INFO] [stdout] | [INFO] [stdout] 125 - let start_date = NaiveDate::from_weekday_of_month(2021, 09, Weekday::Sun, 1); [INFO] [stdout] 125 + let start_date = NaiveDate::from_weekday_of_month(2021, 9, Weekday::Sun, 1); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/github.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let e = io::Error::new(io::ErrorKind::Other, "Code has expired!"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `e` [INFO] [stdout] --> src/github.rs:130:13 [INFO] [stdout] | [INFO] [stdout] 130 | let e = io::Error::new(io::ErrorKind::Other, "Code has expired!"); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_e` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `owner` [INFO] [stdout] --> src/github.rs:238:41 [INFO] [stdout] | [INFO] [stdout] 238 | pub async fn create_repo(repo: &String, owner: &String, token: &String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_owner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `owner` [INFO] [stdout] --> src/github.rs:238:41 [INFO] [stdout] | [INFO] [stdout] 238 | pub async fn create_repo(repo: &String, owner: &String, token: &String) -> Result { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_owner` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias `Week` is never used [INFO] [stdout] --> src/dates.rs:6:10 [INFO] [stdout] | [INFO] [stdout] 6 | pub type Week = [Option; 7]; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VecOfWeeksIter` is never constructed [INFO] [stdout] --> src/dates.rs:9:12 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct VecOfWeeksIter<'a, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `wrap_into_iter` is never used [INFO] [stdout] --> src/dates.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn wrap_into_iter<'a, D>(data: &'a Vec<[Option; 7]>) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `verified` and `visibility` are never read [INFO] [stdout] --> src/github.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 38 | struct EmailResponse { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 39 | email: String, [INFO] [stdout] 40 | verified: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 41 | primary: bool, [INFO] [stdout] 42 | visibility: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EmailResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `owner` is never read [INFO] [stdout] --> src/github.rs:49:3 [INFO] [stdout] | [INFO] [stdout] 47 | struct CreateRepoResponse { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 48 | git_url: String, [INFO] [stdout] 49 | owner: UserResponse, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CreateRepoResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `verified` and `visibility` are never read [INFO] [stdout] --> src/github.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 38 | struct EmailResponse { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 39 | email: String, [INFO] [stdout] 40 | verified: bool, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 41 | primary: bool, [INFO] [stdout] 42 | visibility: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `EmailResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `owner` is never read [INFO] [stdout] --> src/github.rs:49:3 [INFO] [stdout] | [INFO] [stdout] 47 | struct CreateRepoResponse { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 48 | git_url: String, [INFO] [stdout] 49 | owner: UserResponse, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CreateRepoResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/dates.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | while !value.is_some() && self.remaining_weeks.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `value.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/dates.rs:28:31 [INFO] [stdout] | [INFO] [stdout] 28 | while !value.is_some() && self.remaining_weeks.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.remaining_weeks.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/dates.rs:41:36 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn wrap_into_iter<'a, D>(data: &'a Vec<[Option; 7]>) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 41 - pub fn wrap_into_iter<'a, D>(data: &'a Vec<[Option; 7]>) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] 41 + pub fn wrap_into_iter<'a, D>(data: &'a [[Option; 7]]) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/dates.rs:28:11 [INFO] [stdout] | [INFO] [stdout] 28 | while !value.is_some() && self.remaining_weeks.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `value.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `i` after checking its variant with `is_some` [INFO] [stdout] --> src/dates.rs:103:23 [INFO] [stdout] | [INFO] [stdout] 102 | if i.is_some() { [INFO] [stdout] | -------------- help: try: `if let Some() = i` [INFO] [stdout] 103 | print!("{} ", i.expect("date is ok").format("%Y-%m-%d").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/dates.rs:97:23 [INFO] [stdout] | [INFO] [stdout] 97 | fn print_dates(dates: &Vec<[Option; 7]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 97 - fn print_dates(dates: &Vec<[Option; 7]>) { [INFO] [stdout] 97 + fn print_dates(dates: &[[Option; 7]]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/dates.rs:28:31 [INFO] [stdout] | [INFO] [stdout] 28 | while !value.is_some() && self.remaining_weeks.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.remaining_weeks.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `print!` args [INFO] [stdout] --> src/dates.rs:103:64 [INFO] [stdout] | [INFO] [stdout] 103 | print!("{} ", i.expect("date is ok").format("%Y-%m-%d").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/dates.rs:41:36 [INFO] [stdout] | [INFO] [stdout] 41 | pub fn wrap_into_iter<'a, D>(data: &'a Vec<[Option; 7]>) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 41 - pub fn wrap_into_iter<'a, D>(data: &'a Vec<[Option; 7]>) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] 41 + pub fn wrap_into_iter<'a, D>(data: &'a [[Option; 7]]) -> VecOfWeeksIter<'a, D> { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/dates.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/dots.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | fn print_dots(dots: &Vec<[u8; 7]>) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 3 - fn print_dots(dots: &Vec<[u8; 7]>) { [INFO] [stdout] 3 + fn print_dots(dots: &[[u8; 7]]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/dots.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `i` after checking its variant with `is_some` [INFO] [stdout] --> src/dates.rs:103:23 [INFO] [stdout] | [INFO] [stdout] 102 | if i.is_some() { [INFO] [stdout] | -------------- help: try: `if let Some() = i` [INFO] [stdout] 103 | print!("{} ", i.expect("date is ok").format("%Y-%m-%d").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/dates.rs:97:23 [INFO] [stdout] | [INFO] [stdout] 97 | fn print_dates(dates: &Vec<[Option; 7]>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 97 - fn print_dates(dates: &Vec<[Option; 7]>) { [INFO] [stdout] 97 + fn print_dates(dates: &[[Option; 7]]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `print!` args [INFO] [stdout] --> src/dates.rs:103:64 [INFO] [stdout] | [INFO] [stdout] 103 | print!("{} ", i.expect("date is ok").format("%Y-%m-%d").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | return Err(Error::new(ErrorKind::Other, "git init failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 15 - return Err(Error::new(ErrorKind::Other, "git init failed")); [INFO] [stdout] 15 + return Err(Error::other("git init failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/dates.rs:109:5 [INFO] [stdout] | [INFO] [stdout] 109 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] = note: `#[warn(clippy::println_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/dots.rs:3:21 [INFO] [stdout] | [INFO] [stdout] 3 | fn print_dots(dots: &Vec<[u8; 7]>) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 3 - fn print_dots(dots: &Vec<[u8; 7]>) { [INFO] [stdout] 3 + fn print_dots(dots: &[[u8; 7]]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | return Err(Error::new(ErrorKind::Other, "git add failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 29 - return Err(Error::new(ErrorKind::Other, "git add failed")); [INFO] [stdout] 29 + return Err(Error::other("git add failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/dots.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/git.rs:37:38 [INFO] [stdout] | [INFO] [stdout] 37 | env::set_var("GIT_COMMITTER_DATE", format!("{date}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `date.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | return Err(Error::new(ErrorKind::Other, "git init failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 15 - return Err(Error::new(ErrorKind::Other, "git init failed")); [INFO] [stdout] 15 + return Err(Error::other("git init failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | return Err(Error::new(ErrorKind::Other, "git commit failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 48 - return Err(Error::new(ErrorKind::Other, "git commit failed")); [INFO] [stdout] 48 + return Err(Error::other("git commit failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:29:16 [INFO] [stdout] | [INFO] [stdout] 29 | return Err(Error::new(ErrorKind::Other, "git add failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 29 - return Err(Error::new(ErrorKind::Other, "git add failed")); [INFO] [stdout] 29 + return Err(Error::other("git add failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/git.rs:37:38 [INFO] [stdout] | [INFO] [stdout] 37 | env::set_var("GIT_COMMITTER_DATE", format!("{date}")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `date.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:64:16 [INFO] [stdout] | [INFO] [stdout] 64 | return Err(Error::new(ErrorKind::Other, "git remote failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 64 - return Err(Error::new(ErrorKind::Other, "git remote failed")); [INFO] [stdout] 64 + return Err(Error::other("git remote failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:80:16 [INFO] [stdout] | [INFO] [stdout] 80 | return Err(Error::new(ErrorKind::Other, "git push failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 80 - return Err(Error::new(ErrorKind::Other, "git push failed")); [INFO] [stdout] 80 + return Err(Error::other("git push failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:48:16 [INFO] [stdout] | [INFO] [stdout] 48 | return Err(Error::new(ErrorKind::Other, "git commit failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 48 - return Err(Error::new(ErrorKind::Other, "git commit failed")); [INFO] [stdout] 48 + return Err(Error::other("git commit failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:64:16 [INFO] [stdout] | [INFO] [stdout] 64 | return Err(Error::new(ErrorKind::Other, "git remote failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 64 - return Err(Error::new(ErrorKind::Other, "git remote failed")); [INFO] [stdout] 64 + return Err(Error::other("git remote failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/git.rs:80:16 [INFO] [stdout] | [INFO] [stdout] 80 | return Err(Error::new(ErrorKind::Other, "git push failed")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 80 - return Err(Error::new(ErrorKind::Other, "git push failed")); [INFO] [stdout] 80 + return Err(Error::other("git push failed")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/github.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/github.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/github.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/github.rs:125:88 [INFO] [stdout] | [INFO] [stdout] 125 | println!("This code will expire at {}", expiration_time.format("%Y-%m-%d %H:%M:%S").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/github.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | let e = io::Error::new(io::ErrorKind::Other, "Code has expired!"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 130 - let e = io::Error::new(io::ErrorKind::Other, "Code has expired!"); [INFO] [stdout] 130 + let e = io::Error::other("Code has expired!"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/github.rs:112:5 [INFO] [stdout] | [INFO] [stdout] 112 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/github.rs:171:10 [INFO] [stdout] | [INFO] [stdout] 171 | .get(format!("https://api.github.com/user")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://api.github.com/user".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/github.rs:114:5 [INFO] [stdout] | [INFO] [stdout] 114 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `println!` [INFO] [stdout] --> src/github.rs:116:5 [INFO] [stdout] | [INFO] [stdout] 116 | println!(""); [INFO] [stdout] | ^^^^^^^^^--^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#println_empty_string [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/github.rs:125:88 [INFO] [stdout] | [INFO] [stdout] 125 | println!("This code will expire at {}", expiration_time.format("%Y-%m-%d %H:%M:%S").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/github.rs:130:17 [INFO] [stdout] | [INFO] [stdout] 130 | let e = io::Error::new(io::ErrorKind::Other, "Code has expired!"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 130 - let e = io::Error::new(io::ErrorKind::Other, "Code has expired!"); [INFO] [stdout] 130 + let e = io::Error::other("Code has expired!"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/github.rs:196:10 [INFO] [stdout] | [INFO] [stdout] 196 | .get(format!("https://api.github.com/user/emails")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://api.github.com/user/emails".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/github.rs:211:19 [INFO] [stdout] | [INFO] [stdout] 211 | .filter(|e| e.primary == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `e.primary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/github.rs:171:10 [INFO] [stdout] | [INFO] [stdout] 171 | .get(format!("https://api.github.com/user")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://api.github.com/user".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/github.rs:238:48 [INFO] [stdout] | [INFO] [stdout] 238 | pub async fn create_repo(repo: &String, owner: &String, token: &String) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 238 - pub async fn create_repo(repo: &String, owner: &String, token: &String) -> Result { [INFO] [stdout] 238 + pub async fn create_repo(repo: &String, owner: &str, token: &String) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/github.rs:196:10 [INFO] [stdout] | [INFO] [stdout] 196 | .get(format!("https://api.github.com/user/emails")) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"https://api.github.com/user/emails".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/github.rs:211:19 [INFO] [stdout] | [INFO] [stdout] 211 | .filter(|e| e.primary == true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `e.primary` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/github.rs:238:48 [INFO] [stdout] | [INFO] [stdout] 238 | pub async fn create_repo(repo: &String, owner: &String, token: &String) -> Result { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 238 - pub async fn create_repo(repo: &String, owner: &String, token: &String) -> Result { [INFO] [stdout] 238 + pub async fn create_repo(repo: &String, owner: &str, token: &String) -> Result { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `panic!` args [INFO] [stdout] --> src/raster.rs:28:47 [INFO] [stdout] | [INFO] [stdout] 28 | panic!("no data in the surface: {}", error.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i_y` is used to index `week` [INFO] [stdout] --> src/raster.rs:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | for i_y in 0..(height / box_size) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 52 - for i_y in 0..(height / box_size) { [INFO] [stdout] 52 + for (i_y, ) in week.iter_mut().enumerate().take((height / box_size)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> src/raster.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | let font_family = b"Source Code Pro\0".as_ptr(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use a `c""` literal: `c"Source Code Pro"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] = note: `#[warn(clippy::manual_c_str_literals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/raster.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 199 | if result.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = result` [INFO] [stdout] 200 | let image = result.expect("image surface wow"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `file_result` after checking its variant with `is_ok` [INFO] [stdout] --> src/raster.rs:203:22 [INFO] [stdout] | [INFO] [stdout] 202 | if file_result.is_ok() { [INFO] [stdout] | ---------------------- help: try: `if let Ok() = file_result` [INFO] [stdout] 203 | let mut file = file_result.expect("file is open"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> src/raster.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | let font_family = b"Source Code Pro\0".as_ptr(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use a `c""` literal: `c"Source Code Pro"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `panic!` args [INFO] [stdout] --> src/raster.rs:28:47 [INFO] [stdout] | [INFO] [stdout] 28 | panic!("no data in the surface: {}", error.to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i_y` is used to index `week` [INFO] [stdout] --> src/raster.rs:52:16 [INFO] [stdout] | [INFO] [stdout] 52 | for i_y in 0..(height / box_size) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 52 - for i_y in 0..(height / box_size) { [INFO] [stdout] 52 + for (i_y, ) in week.iter_mut().enumerate().take((height / box_size)) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> src/raster.rs:125:21 [INFO] [stdout] | [INFO] [stdout] 125 | let font_family = b"Source Code Pro\0".as_ptr(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use a `c""` literal: `c"Source Code Pro"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] = note: `#[warn(clippy::manual_c_str_literals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:73:24 [INFO] [stdout] | [INFO] [stdout] 73 | env::set_current_dir(&repo_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `repo_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `result` after checking its variant with `is_ok` [INFO] [stdout] --> src/raster.rs:200:17 [INFO] [stdout] | [INFO] [stdout] 199 | if result.is_ok() { [INFO] [stdout] | ----------------- help: try: `if let Ok() = result` [INFO] [stdout] 200 | let image = result.expect("image surface wow"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `expect` on `file_result` after checking its variant with `is_ok` [INFO] [stdout] --> src/raster.rs:203:22 [INFO] [stdout] | [INFO] [stdout] 202 | if file_result.is_ok() { [INFO] [stdout] | ---------------------- help: try: `if let Ok() = file_result` [INFO] [stdout] 203 | let mut file = file_result.expect("file is open"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `consecutive_counter` is used as a loop counter [INFO] [stdout] --> src/main.rs:87:3 [INFO] [stdout] | [INFO] [stdout] 87 | for date_time in date_iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (consecutive_counter, date_time) in date_iterator.enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> src/raster.rs:172:21 [INFO] [stdout] | [INFO] [stdout] 172 | let font_family = b"Source Code Pro\0".as_ptr(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use a `c""` literal: `c"Source Code Pro"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:94:7 [INFO] [stdout] | [INFO] [stdout] 94 | &name, [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:95:7 [INFO] [stdout] | [INFO] [stdout] 95 | &email [INFO] [stdout] | ^^^^^^ help: change this to: `email` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:101:18 [INFO] [stdout] | [INFO] [stdout] 101 | git_remote_add(&git_url)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `git_url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/main.rs:126:59 [INFO] [stdout] | [INFO] [stdout] 126 | println!("start date: {}", start_date.format("%Y-%m-%d").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/main.rs:73:24 [INFO] [stdout] | [INFO] [stdout] 73 | env::set_current_dir(&repo_root)?; [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `repo_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the variable `consecutive_counter` is used as a loop counter [INFO] [stdout] --> src/main.rs:87:3 [INFO] [stdout] | [INFO] [stdout] 87 | for date_time in date_iterator { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `for (consecutive_counter, date_time) in date_iterator.enumerate()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stdout] = note: `#[warn(clippy::explicit_counter_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:94:7 [INFO] [stdout] | [INFO] [stdout] 94 | &name, [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:95:7 [INFO] [stdout] | [INFO] [stdout] 95 | &email [INFO] [stdout] | ^^^^^^ help: change this to: `email` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:101:18 [INFO] [stdout] | [INFO] [stdout] 101 | git_remote_add(&git_url)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `git_url` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `println!` args [INFO] [stdout] --> src/main.rs:126:59 [INFO] [stdout] | [INFO] [stdout] 126 | println!("start date: {}", start_date.format("%Y-%m-%d").to_string()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.84s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: openssl v0.10.41 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "285f05a85f139176d183e9857e000403612657c8a4e2e1c335568be164e48ccd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "285f05a85f139176d183e9857e000403612657c8a4e2e1c335568be164e48ccd", kill_on_drop: false }` [INFO] [stdout] 285f05a85f139176d183e9857e000403612657c8a4e2e1c335568be164e48ccd