[INFO] fetching crate idcard 0.3.0... [INFO] linting idcard-0.3.0 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate idcard 0.3.0 into /workspace/builds/worker-4-tc1/source [INFO] started tweaking crates.io crate idcard 0.3.0 [INFO] finished tweaking crates.io crate idcard 0.3.0 [INFO] tweaked toml for crates.io crate idcard 0.3.0 written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate idcard 0.3.0 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] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 45 packages to latest compatible versions [INFO] [stderr] Adding rand v0.8.5 (available: v0.10.0) [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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 662c08e8266080216488a826b14f73daee7091329467d2c4c33c5e593179b45e [INFO] running `Command { std: "docker" "start" "-a" "662c08e8266080216488a826b14f73daee7091329467d2c4c33c5e593179b45e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "662c08e8266080216488a826b14f73daee7091329467d2c4c33c5e593179b45e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "662c08e8266080216488a826b14f73daee7091329467d2c4c33c5e593179b45e", kill_on_drop: false }` [INFO] [stdout] 662c08e8266080216488a826b14f73daee7091329467d2c4c33c5e593179b45e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] dfd3acd3c060b9309e8e99bcb401d3378ec78414f21dd1f135f72bb131823912 [INFO] running `Command { std: "docker" "start" "-a" "dfd3acd3c060b9309e8e99bcb401d3378ec78414f21dd1f135f72bb131823912", kill_on_drop: false }` [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking idcard v0.3.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/lib.rs:62:26 [INFO] [stdout] | [INFO] [stdout] 62 | static CHINESE_ZODIAC: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/lib.rs:66:26 [INFO] [stdout] | [INFO] [stdout] 66 | static CELESTIAL_STEM: [&'static str; 10] = [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/lib.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | static TERRESTRIAL_BRANCH: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/lib.rs:62:26 [INFO] [stdout] | [INFO] [stdout] 62 | static CHINESE_ZODIAC: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/lib.rs:66:26 [INFO] [stdout] | [INFO] [stdout] 66 | static CELESTIAL_STEM: [&'static str; 10] = [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> src/lib.rs:69:30 [INFO] [stdout] | [INFO] [stdout] 69 | static TERRESTRIAL_BRANCH: [&'static str; 12] = [ [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fake.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | return Err(Error::GenerateFakeIDError("Invalid check code".to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return Err(Error::GenerateFakeIDError("Invalid check code".to_string())); [INFO] [stdout] 47 + Err(Error::GenerateFakeIDError("Invalid check code".to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `options.min_year` after checking its variant with `is_some` [INFO] [stdout] --> src/fake.rs:140:19 [INFO] [stdout] | [INFO] [stdout] 139 | if options.min_year.is_some() && options.max_year.is_some() { [INFO] [stdout] | -------------------------- the check is happening here [INFO] [stdout] 140 | let min = options.min_year.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: called `unwrap` on `options.max_year` after checking its variant with `is_some` [INFO] [stdout] --> src/fake.rs:141:19 [INFO] [stdout] | [INFO] [stdout] 139 | if options.min_year.is_some() && options.max_year.is_some() { [INFO] [stdout] | -------------------------- the check is happening here [INFO] [stdout] 140 | let min = options.min_year.unwrap(); [INFO] [stdout] 141 | let max = options.max_year.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fake.rs:106:45 [INFO] [stdout] | [INFO] [stdout] 106 | match region::rand_code_starts_with(®) { [INFO] [stdout] | ^^^^ help: change this to: `reg` [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/fake.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | ®ion_code, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `region_code` [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: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/hk.rs:39:27 [INFO] [stdout] | [INFO] [stdout] 39 | let first = match number.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `number.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/hk.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | let first = match number.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `number.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/hk.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | sum = sum + i * flag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += i * flag` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/hk.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | sum = sum + 10; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `sum += 10` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/hk.rs:73:23 [INFO] [stdout] | [INFO] [stdout] 73 | let i = match end.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `end.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/hk.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | sum = sum + i; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `sum += i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/hk.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | sum % 11 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `sum.is_multiple_of(11)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/mo.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / if number.len() == 8 && PATTERN.is_match(&number) { [INFO] [stdout] 17 | | true [INFO] [stdout] 18 | | } else { [INFO] [stdout] 19 | | false [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `number.len() == 8 && PATTERN.is_match(&number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/fake.rs:47:9 [INFO] [stdout] | [INFO] [stdout] 47 | return Err(Error::GenerateFakeIDError("Invalid check code".to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 47 - return Err(Error::GenerateFakeIDError("Invalid check code".to_string())); [INFO] [stdout] 47 + Err(Error::GenerateFakeIDError("Invalid check code".to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `options.min_year` after checking its variant with `is_some` [INFO] [stdout] --> src/fake.rs:140:19 [INFO] [stdout] | [INFO] [stdout] 139 | if options.min_year.is_some() && options.max_year.is_some() { [INFO] [stdout] | -------------------------- the check is happening here [INFO] [stdout] 140 | let min = options.min_year.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: called `unwrap` on `options.max_year` after checking its variant with `is_some` [INFO] [stdout] --> src/fake.rs:141:19 [INFO] [stdout] | [INFO] [stdout] 139 | if options.min_year.is_some() && options.max_year.is_some() { [INFO] [stdout] | -------------------------- the check is happening here [INFO] [stdout] 140 | let min = options.min_year.unwrap(); [INFO] [stdout] 141 | let max = options.max_year.unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fake.rs:106:45 [INFO] [stdout] | [INFO] [stdout] 106 | match region::rand_code_starts_with(®) { [INFO] [stdout] | ^^^^ help: change this to: `reg` [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/fake.rs:183:9 [INFO] [stdout] | [INFO] [stdout] 183 | ®ion_code, [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `region_code` [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: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/fake.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | assert_eq!(id.is_valid(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 200 - assert_eq!(id.is_valid(), true); [INFO] [stdout] 200 + assert!(id.is_valid()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/fake.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | assert_eq!(id.is_valid(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 204 - assert_eq!(id.is_valid(), true); [INFO] [stdout] 204 + assert!(id.is_valid()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/fake.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | assert_eq!(f.is_err(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 207 - assert_eq!(f.is_err(), true); [INFO] [stdout] 207 + assert!(f.is_err()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/fake.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | assert_eq!(f.is_err(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 210 - assert_eq!(f.is_err(), true); [INFO] [stdout] 210 + assert!(f.is_err()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/hk.rs:39:27 [INFO] [stdout] | [INFO] [stdout] 39 | let first = match number.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `number.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] = note: `#[warn(clippy::iter_nth_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/hk.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | let first = match number.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `number.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/hk.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | sum = sum + i * flag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += i * flag` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/hk.rs:71:9 [INFO] [stdout] | [INFO] [stdout] 71 | sum = sum + 10; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `sum += 10` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/hk.rs:73:23 [INFO] [stdout] | [INFO] [stdout] 73 | let i = match end.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `end.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/hk.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | sum = sum + i; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `sum += i` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/hk.rs:82:5 [INFO] [stdout] | [INFO] [stdout] 82 | sum % 11 == 0 [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace with: `sum.is_multiple_of(11)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:91:9 [INFO] [stdout] | [INFO] [stdout] 91 | assert_eq!(validate("G123456(A)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 91 - assert_eq!(validate("G123456(A)"), true); [INFO] [stdout] 91 + assert!(validate("G123456(A)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | assert_eq!(validate("G123456(a)"), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 92 - assert_eq!(validate("G123456(a)"), false); [INFO] [stdout] 92 + assert!(!validate("G123456(a)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:93:9 [INFO] [stdout] | [INFO] [stdout] 93 | assert_eq!(validate("G123456A"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 93 - assert_eq!(validate("G123456A"), true); [INFO] [stdout] 93 + assert!(validate("G123456A")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | assert_eq!(validate("L555555(0)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 94 - assert_eq!(validate("L555555(0)"), true); [INFO] [stdout] 94 + assert!(validate("L555555(0)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:95:9 [INFO] [stdout] | [INFO] [stdout] 95 | assert_eq!(validate("AB987654(3)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 95 - assert_eq!(validate("AB987654(3)"), true); [INFO] [stdout] 95 + assert!(validate("AB987654(3)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | assert_eq!(validate("C123456(9)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 96 - assert_eq!(validate("C123456(9)"), true); [INFO] [stdout] 96 + assert!(validate("C123456(9)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/hk.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | assert_eq!(validate("AY987654(A)"), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 97 - assert_eq!(validate("AY987654(A)"), false); [INFO] [stdout] 97 + assert!(!validate("AY987654(A)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/mo.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | / if number.len() == 8 && PATTERN.is_match(&number) { [INFO] [stdout] 17 | | true [INFO] [stdout] 18 | | } else { [INFO] [stdout] 19 | | false [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ help: you can reduce it to: `number.len() == 8 && PATTERN.is_match(&number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/mo.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | assert_eq!(validate("1123456(A)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 29 - assert_eq!(validate("1123456(A)"), true); [INFO] [stdout] 29 + assert!(validate("1123456(A)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/mo.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | assert_eq!(validate("7431243(3)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 30 - assert_eq!(validate("7431243(3)"), true); [INFO] [stdout] 30 + assert!(validate("7431243(3)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/mo.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | assert_eq!(validate("5631279(0)"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 31 - assert_eq!(validate("5631279(0)"), true); [INFO] [stdout] 31 + assert!(validate("5631279(0)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/mo.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | assert_eq!(validate("2000148(3)"), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 32 - assert_eq!(validate("2000148(3)"), false); [INFO] [stdout] 32 + assert!(!validate("2000148(3)")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/mo.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | assert_eq!(validate("5215299A"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 33 - assert_eq!(validate("5215299A"), true); [INFO] [stdout] 33 + assert!(validate("5215299A")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/region.rs:3219:43 [INFO] [stdout] | [INFO] [stdout] 3219 | static ref CODES: Vec<&'static str> = REGIONS.keys().map(|k| *k).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `REGIONS.keys().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/tw.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | sum = sum + i * flag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += i * flag` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/tw.rs:71:25 [INFO] [stdout] | [INFO] [stdout] 71 | let end = match end.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `end.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/lib.rs:166:24 [INFO] [stdout] | [INFO] [stdout] 166 | id.valid = if validate_v2(&id.number) { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `validate_v2(&id.number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | / if let Ok(year) = self.number[6..10].parse::() { [INFO] [stdout] 196 | | Some(year) [INFO] [stdout] 197 | | } else { [INFO] [stdout] 198 | | None [INFO] [stdout] 199 | | } [INFO] [stdout] | |_________^ help: replace with: `self.number[6..10].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | / if let Ok(month) = self.number[10..12].parse::() { [INFO] [stdout] 208 | | Some(month) [INFO] [stdout] 209 | | } else { [INFO] [stdout] 210 | | None [INFO] [stdout] 211 | | } [INFO] [stdout] | |_________^ help: replace with: `self.number[10..12].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | / if let Ok(day) = self.number[12..14].parse::() { [INFO] [stdout] 220 | | Some(day) [INFO] [stdout] 221 | | } else { [INFO] [stdout] 222 | | None [INFO] [stdout] 223 | | } [INFO] [stdout] | |_________^ help: replace with: `self.number[12..14].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:308:21 [INFO] [stdout] | [INFO] [stdout] 308 | let month = match self.month() { [INFO] [stdout] | _____________________^ [INFO] [stdout] 309 | | Some(value) => value, [INFO] [stdout] 310 | | None => return None, [INFO] [stdout] 311 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.month()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:312:19 [INFO] [stdout] | [INFO] [stdout] 312 | let day = match self.day() { [INFO] [stdout] | ___________________^ [INFO] [stdout] 313 | | Some(value) => value, [INFO] [stdout] 314 | | None => return None, [INFO] [stdout] 315 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.day()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:324:20 [INFO] [stdout] | [INFO] [stdout] 324 | let year = match self.year() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 325 | | Some(value) => value, [INFO] [stdout] 326 | | None => return None, [INFO] [stdout] 327 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.year()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:336:20 [INFO] [stdout] | [INFO] [stdout] 336 | let year = match self.year() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 337 | | Some(value) => value, [INFO] [stdout] 338 | | None => return None, [INFO] [stdout] 339 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.year()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | return Err(Error::UpgradeError); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 445 - return Err(Error::UpgradeError); [INFO] [stdout] 445 + Err(Error::UpgradeError) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/region.rs:3219:43 [INFO] [stdout] | [INFO] [stdout] 3219 | static ref CODES: Vec<&'static str> = REGIONS.keys().map(|k| *k).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `REGIONS.keys().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:485:8 [INFO] [stdout] | [INFO] [stdout] 485 | if !birth_date.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `birth_date.is_err()` [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: the loop variable `i` is used to index `arr` [INFO] [stdout] --> src/lib.rs:548:18 [INFO] [stdout] | [INFO] [stdout] 548 | for i in 0..arr.len() { [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] 548 - for i in 0..arr.len() { [INFO] [stdout] 548 + for (i, ) in arr.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `weights` [INFO] [stdout] --> src/lib.rs:549:22 [INFO] [stdout] | [INFO] [stdout] 549 | for j in 0..weights.len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 549 - for j in 0..weights.len() { [INFO] [stdout] 549 + for (j, ) in weights.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:551:21 [INFO] [stdout] | [INFO] [stdout] 551 | sum = sum + arr[i] * weights[j]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += arr[i] * weights[j]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/tw.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | sum = sum + i * flag; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += i * flag` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.nth(0)` on a `std::iter::Iterator`, when `.next()` is equivalent [INFO] [stdout] --> src/tw.rs:71:25 [INFO] [stdout] | [INFO] [stdout] 71 | let end = match end.chars().nth(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try calling `.next()` instead of `.nth(0)`: `end.chars().next()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tw.rs:128:9 [INFO] [stdout] | [INFO] [stdout] 128 | assert_eq!(validate("A123456789"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 128 - assert_eq!(validate("A123456789"), true); [INFO] [stdout] 128 + assert!(validate("A123456789")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tw.rs:129:9 [INFO] [stdout] | [INFO] [stdout] 129 | assert_eq!(validate("B142610160"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 129 - assert_eq!(validate("B142610160"), true); [INFO] [stdout] 129 + assert!(validate("B142610160")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tw.rs:130:9 [INFO] [stdout] | [INFO] [stdout] 130 | assert_eq!(validate("Q155304682"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 130 - assert_eq!(validate("Q155304682"), true); [INFO] [stdout] 130 + assert!(validate("Q155304682")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/tw.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | assert_eq!(validate("Q155304680"), false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 131 - assert_eq!(validate("Q155304680"), false); [INFO] [stdout] 131 + assert!(!validate("Q155304680")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/lib.rs:166:24 [INFO] [stdout] | [INFO] [stdout] 166 | id.valid = if validate_v2(&id.number) { true } else { false } [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can reduce it to: `validate_v2(&id.number)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:195:9 [INFO] [stdout] | [INFO] [stdout] 195 | / if let Ok(year) = self.number[6..10].parse::() { [INFO] [stdout] 196 | | Some(year) [INFO] [stdout] 197 | | } else { [INFO] [stdout] 198 | | None [INFO] [stdout] 199 | | } [INFO] [stdout] | |_________^ help: replace with: `self.number[6..10].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:207:9 [INFO] [stdout] | [INFO] [stdout] 207 | / if let Ok(month) = self.number[10..12].parse::() { [INFO] [stdout] 208 | | Some(month) [INFO] [stdout] 209 | | } else { [INFO] [stdout] 210 | | None [INFO] [stdout] 211 | | } [INFO] [stdout] | |_________^ help: replace with: `self.number[10..12].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/lib.rs:219:9 [INFO] [stdout] | [INFO] [stdout] 219 | / if let Ok(day) = self.number[12..14].parse::() { [INFO] [stdout] 220 | | Some(day) [INFO] [stdout] 221 | | } else { [INFO] [stdout] 222 | | None [INFO] [stdout] 223 | | } [INFO] [stdout] | |_________^ help: replace with: `self.number[12..14].parse::().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:308:21 [INFO] [stdout] | [INFO] [stdout] 308 | let month = match self.month() { [INFO] [stdout] | _____________________^ [INFO] [stdout] 309 | | Some(value) => value, [INFO] [stdout] 310 | | None => return None, [INFO] [stdout] 311 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.month()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:312:19 [INFO] [stdout] | [INFO] [stdout] 312 | let day = match self.day() { [INFO] [stdout] | ___________________^ [INFO] [stdout] 313 | | Some(value) => value, [INFO] [stdout] 314 | | None => return None, [INFO] [stdout] 315 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.day()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:324:20 [INFO] [stdout] | [INFO] [stdout] 324 | let year = match self.year() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 325 | | Some(value) => value, [INFO] [stdout] 326 | | None => return None, [INFO] [stdout] 327 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.year()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/lib.rs:336:20 [INFO] [stdout] | [INFO] [stdout] 336 | let year = match self.year() { [INFO] [stdout] | ____________________^ [INFO] [stdout] 337 | | Some(value) => value, [INFO] [stdout] 338 | | None => return None, [INFO] [stdout] 339 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.year()?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:445:13 [INFO] [stdout] | [INFO] [stdout] 445 | return Err(Error::UpgradeError); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 445 - return Err(Error::UpgradeError); [INFO] [stdout] 445 + Err(Error::UpgradeError) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:485:8 [INFO] [stdout] | [INFO] [stdout] 485 | if !birth_date.is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `birth_date.is_err()` [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: the loop variable `i` is used to index `arr` [INFO] [stdout] --> src/lib.rs:548:18 [INFO] [stdout] | [INFO] [stdout] 548 | for i in 0..arr.len() { [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] 548 - for i in 0..arr.len() { [INFO] [stdout] 548 + for (i, ) in arr.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `j` is used to index `weights` [INFO] [stdout] --> src/lib.rs:549:22 [INFO] [stdout] | [INFO] [stdout] 549 | for j in 0..weights.len() { [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] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 549 - for j in 0..weights.len() { [INFO] [stdout] 549 + for (j, ) in weights.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/lib.rs:551:21 [INFO] [stdout] | [INFO] [stdout] 551 | sum = sum + arr[i] * weights[j]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `sum += arr[i] * weights[j]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lib.rs:566:9 [INFO] [stdout] | [INFO] [stdout] 566 | assert_eq!(id.is_valid(), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 566 - assert_eq!(id.is_valid(), true); [INFO] [stdout] 566 + assert!(id.is_valid()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lib.rs:574:9 [INFO] [stdout] | [INFO] [stdout] 574 | assert_eq!(validate("511702800222130"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 574 - assert_eq!(validate("511702800222130"), true); [INFO] [stdout] 574 + assert!(validate("511702800222130")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lib.rs:575:9 [INFO] [stdout] | [INFO] [stdout] 575 | assert_eq!(validate("230127197908177456"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 575 - assert_eq!(validate("230127197908177456"), true); [INFO] [stdout] 575 + assert!(validate("230127197908177456")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lib.rs:603:9 [INFO] [stdout] | [INFO] [stdout] 603 | assert_eq!(a == b, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 603 - assert_eq!(a == b, true); [INFO] [stdout] 603 + assert!(a == b); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lib.rs:606:9 [INFO] [stdout] | [INFO] [stdout] 606 | assert_eq!(a == b, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 606 - assert_eq!(a == b, true); [INFO] [stdout] 606 + assert!(a == b); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/lib.rs:609:9 [INFO] [stdout] | [INFO] [stdout] 609 | assert_eq!(a != b, true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 609 - assert_eq!(a != b, true); [INFO] [stdout] 609 + assert!(a != b); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.06s [INFO] running `Command { std: "docker" "inspect" "dfd3acd3c060b9309e8e99bcb401d3378ec78414f21dd1f135f72bb131823912", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dfd3acd3c060b9309e8e99bcb401d3378ec78414f21dd1f135f72bb131823912", kill_on_drop: false }` [INFO] [stdout] dfd3acd3c060b9309e8e99bcb401d3378ec78414f21dd1f135f72bb131823912