[INFO] cloning repository https://github.com/ajms/comprehensive_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ajms/comprehensive_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fajms%2Fcomprehensive_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fajms%2Fcomprehensive_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 4a6e600af94a0c6b955cf30b42a5b6fcfab7e1a7 [INFO] linting ajms/comprehensive_rust against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fajms%2Fcomprehensive_rust" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ajms/comprehensive_rust [INFO] finished tweaking git repo https://github.com/ajms/comprehensive_rust [INFO] tweaked toml for git repo https://github.com/ajms/comprehensive_rust written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ajms/comprehensive_rust 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/ajms/comprehensive_rust 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 122ab366e3cba689dc9ffd342acfdbf93f3593cc093402e7fa4065e990864353 [INFO] running `Command { std: "docker" "start" "-a" "122ab366e3cba689dc9ffd342acfdbf93f3593cc093402e7fa4065e990864353", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "122ab366e3cba689dc9ffd342acfdbf93f3593cc093402e7fa4065e990864353", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "122ab366e3cba689dc9ffd342acfdbf93f3593cc093402e7fa4065e990864353", kill_on_drop: false }` [INFO] [stdout] 122ab366e3cba689dc9ffd342acfdbf93f3593cc093402e7fa4065e990864353 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 2ca331bca2a5d7d54f25ac19aad0f512ac3903bddf354369f32e665b89109f3f [INFO] running `Command { std: "docker" "start" "-a" "2ca331bca2a5d7d54f25ac19aad0f512ac3903bddf354369f32e665b89109f3f", kill_on_drop: false }` [INFO] [stderr] Checking exercise v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `callback` is never read [INFO] [stdout] --> src/gui_library.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct Button { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 44 | label: Label, [INFO] [stdout] 45 | callback: Box, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return (1.0 - x.powf(4.0)).powf(0.25); [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] 15 - return (1.0 - x.powf(4.0)).powf(0.25); [INFO] [stdout] 15 + (1.0 - x.powf(4.0)).powf(0.25) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return 2.0_f64.sqrt() - 1.0; [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] 20 - return 2.0_f64.sqrt() - 1.0; [INFO] [stdout] 20 + 2.0_f64.sqrt() - 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return yk; [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] 23 - return yk; [INFO] [stdout] 23 + yk [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return 6.0 - 4.0 * 2.0_f64.sqrt(); [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] 29 - return 6.0 - 4.0 * 2.0_f64.sqrt(); [INFO] [stdout] 29 + 6.0 - 4.0 * 2.0_f64.sqrt() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | return ak; [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] 33 - return ak; [INFO] [stdout] 33 + ak [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/exercises.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | return mt; [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] 28 - return mt; [INFO] [stdout] 28 + mt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/luhn_alg.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | if chr.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `chr.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/luhn_alg.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | y = y * 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `y *= 2` [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: unneeded `return` statement [INFO] [stdout] --> src/polygon.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | return 0.0; [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] 66 - return 0.0; [INFO] [stdout] 66 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polygon.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | return result; [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] 75 - return result; [INFO] [stdout] 75 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/webserver_routing.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | && !(remaining_path[idx + prefix_elt.len()..idx + prefix_elt.len() + 1] == *"/") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(remaining_path[idx + prefix_elt.len()..idx + prefix_elt.len() + 1] != *"/")` [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: unneeded `return` statement [INFO] [stdout] --> src/webserver_routing.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | return true; [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] 27 - return true; [INFO] [stdout] 27 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/webserver_routing.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | while let Some(prefix_elt) = prefix_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for prefix_elt in prefix_iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/webserver_routing.rs:8:48 [INFO] [stdout] | [INFO] [stdout] 8 | if let Some(idx) = remaining_path.find(&prefix_elt) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `prefix_elt` [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: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 32 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 31 ~ [INFO] [stdout] 32 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 35 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/bar/books"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 34 ~ [INFO] [stdout] 35 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/bar/books"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 38 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books/book1"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 37 ~ [INFO] [stdout] 38 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books/book1"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 42 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 41 ~ [INFO] [stdout] 42 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 46 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/booksByAuthor"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 45 ~ [INFO] [stdout] 46 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/booksByAuthor"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 50 | result = prefix_matches("/v1/publishers", "/v1/publishersBooks"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 49 ~ [INFO] [stdout] 50 ~ let result = prefix_matches("/v1/publishers", "/v1/publishersBooks"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `callback` is never read [INFO] [stdout] --> src/gui_library.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 43 | pub struct Button { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 44 | label: Label, [INFO] [stdout] 45 | callback: Box, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | return (1.0 - x.powf(4.0)).powf(0.25); [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] 15 - return (1.0 - x.powf(4.0)).powf(0.25); [INFO] [stdout] 15 + (1.0 - x.powf(4.0)).powf(0.25) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:20:9 [INFO] [stdout] | [INFO] [stdout] 20 | return 2.0_f64.sqrt() - 1.0; [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] 20 - return 2.0_f64.sqrt() - 1.0; [INFO] [stdout] 20 + 2.0_f64.sqrt() - 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | return yk; [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] 23 - return yk; [INFO] [stdout] 23 + yk [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:29:9 [INFO] [stdout] | [INFO] [stdout] 29 | return 6.0 - 4.0 * 2.0_f64.sqrt(); [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] 29 - return 6.0 - 4.0 * 2.0_f64.sqrt(); [INFO] [stdout] 29 + 6.0 - 4.0 * 2.0_f64.sqrt() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/borwein_pi.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | return ak; [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] 33 - return ak; [INFO] [stdout] 33 + ak [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/exercises.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | return mt; [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] 28 - return mt; [INFO] [stdout] 28 + mt [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/luhn_alg.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | if chr.is_digit(10) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `chr.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/luhn_alg.rs:17:17 [INFO] [stdout] | [INFO] [stdout] 17 | y = y * 2; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `y *= 2` [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: items after a test module [INFO] [stdout] --> src/polygon.rs:122:1 [INFO] [stdout] | [INFO] [stdout] 122 | mod tests { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 193 | pub fn exercise7() {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#items_after_test_module [INFO] [stdout] = note: `#[warn(clippy::items_after_test_module)]` on by default [INFO] [stdout] = help: move the items to before the test module was defined [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polygon.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | return 0.0; [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] 66 - return 0.0; [INFO] [stdout] 66 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/polygon.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | return result; [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] 75 - return result; [INFO] [stdout] 75 + result [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/webserver_routing.rs:17:20 [INFO] [stdout] | [INFO] [stdout] 17 | && !(remaining_path[idx + prefix_elt.len()..idx + prefix_elt.len() + 1] == *"/") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(remaining_path[idx + prefix_elt.len()..idx + prefix_elt.len() + 1] != *"/")` [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: unneeded `return` statement [INFO] [stdout] --> src/webserver_routing.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | return true; [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] 27 - return true; [INFO] [stdout] 27 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/webserver_routing.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | while let Some(prefix_elt) = prefix_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for prefix_elt in prefix_iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/webserver_routing.rs:8:48 [INFO] [stdout] | [INFO] [stdout] 8 | if let Some(idx) = remaining_path.find(&prefix_elt) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `prefix_elt` [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: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 32 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 31 ~ [INFO] [stdout] 32 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 35 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/bar/books"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 34 ~ [INFO] [stdout] 35 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/bar/books"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 37 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 38 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books/book1"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 37 ~ [INFO] [stdout] 38 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/books/book1"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 42 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 41 ~ [INFO] [stdout] 42 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:45:5 [INFO] [stdout] | [INFO] [stdout] 45 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 46 | result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/booksByAuthor"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 45 ~ [INFO] [stdout] 46 ~ let result = prefix_matches("/v1/publishers/*/books", "/v1/publishers/foo/booksByAuthor"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/webserver_routing.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | let result; [INFO] [stdout] | ^^^^^^^^^^^ created here [INFO] [stdout] 50 | result = prefix_matches("/v1/publishers", "/v1/publishersBooks"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ initialised here [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] help: move the declaration `result` here [INFO] [stdout] | [INFO] [stdout] 49 ~ [INFO] [stdout] 50 ~ let result = prefix_matches("/v1/publishers", "/v1/publishersBooks"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/polygon.rs:179:22 [INFO] [stdout] | [INFO] [stdout] 179 | let shapes = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 180 | | Shape::from(poly), [INFO] [stdout] 181 | | Shape::from(Circle::new(5, Point::new(10, 20))), [INFO] [stdout] 182 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 179 ~ let shapes = [Shape::from(poly), [INFO] [stdout] 180 ~ Shape::from(Circle::new(5, Point::new(10, 20)))]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.37s [INFO] running `Command { std: "docker" "inspect" "2ca331bca2a5d7d54f25ac19aad0f512ac3903bddf354369f32e665b89109f3f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ca331bca2a5d7d54f25ac19aad0f512ac3903bddf354369f32e665b89109f3f", kill_on_drop: false }` [INFO] [stdout] 2ca331bca2a5d7d54f25ac19aad0f512ac3903bddf354369f32e665b89109f3f