[INFO] cloning repository https://github.com/matt-codecov/standalone-ribs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/matt-codecov/standalone-ribs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-codecov%2Fstandalone-ribs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-codecov%2Fstandalone-ribs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f2ea71f9d4a5f3ca7dcbc02295b5eccb15d62e0a [INFO] linting matt-codecov/standalone-ribs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmatt-codecov%2Fstandalone-ribs" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/matt-codecov/standalone-ribs [INFO] finished tweaking git repo https://github.com/matt-codecov/standalone-ribs [INFO] tweaked toml for git repo https://github.com/matt-codecov/standalone-ribs written to /workspace/builds/worker-4-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/matt-codecov/standalone-ribs 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/matt-codecov/standalone-ribs 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] warning: unused manifest key: target.cfg(target_env = "musl").dependencies.jemallocator.profiler [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded smallvec v1.11.1 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.15 [INFO] [stderr] Downloaded target-lexicon v0.12.12 [INFO] [stderr] Downloaded jemallocator v0.3.2 [INFO] [stderr] Downloaded serde v1.0.192 [INFO] [stderr] Downloaded proc-macro2 v1.0.69 [INFO] [stderr] Downloaded fraction v0.6.3 [INFO] [stderr] Downloaded rayon-core v1.12.0 [INFO] [stderr] Downloaded serde_derive v1.0.192 [INFO] [stderr] Downloaded rayon v1.8.0 [INFO] [stderr] Downloaded jemalloc-sys v0.3.2 [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] 1b51de589a56c59a9cb7249cc3e51cdd02bb82e46cdda575a365f51af317b3ca [INFO] running `Command { std: "docker" "start" "-a" "1b51de589a56c59a9cb7249cc3e51cdd02bb82e46cdda575a365f51af317b3ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1b51de589a56c59a9cb7249cc3e51cdd02bb82e46cdda575a365f51af317b3ca", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1b51de589a56c59a9cb7249cc3e51cdd02bb82e46cdda575a365f51af317b3ca", kill_on_drop: false }` [INFO] [stdout] 1b51de589a56c59a9cb7249cc3e51cdd02bb82e46cdda575a365f51af317b3ca [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] aa8dbdf67b085eab39a47169cccfb7eed0cbbf97f0a03f6e1c0f9d2e74a76285 [INFO] running `Command { std: "docker" "start" "-a" "aa8dbdf67b085eab39a47169cccfb7eed0cbbf97f0a03f6e1c0f9d2e74a76285", kill_on_drop: false }` [INFO] [stderr] warning: unused manifest key: target.cfg(target_env = "musl").dependencies.jemallocator.profiler [INFO] [stderr] Compiling target-lexicon v0.12.12 [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling memoffset v0.9.0 [INFO] [stderr] Compiling num-integer v0.1.45 [INFO] [stderr] Compiling once_cell v1.18.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.16 [INFO] [stderr] Compiling crossbeam-epoch v0.9.15 [INFO] [stderr] Compiling num-bigint v0.2.6 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling num-complex v0.2.4 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Compiling num-iter v0.1.43 [INFO] [stderr] Compiling serde v1.0.192 [INFO] [stderr] Compiling rayon-core v1.12.0 [INFO] [stderr] Checking smallvec v1.11.1 [INFO] [stderr] Checking lock_api v0.4.11 [INFO] [stderr] Compiling serde_json v1.0.108 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Checking crossbeam-deque v0.8.3 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Compiling indoc v1.0.9 [INFO] [stderr] Checking unindent v0.1.11 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Compiling syn v2.0.39 [INFO] [stderr] Compiling pyo3-build-config v0.19.2 [INFO] [stderr] Checking rayon v1.8.0 [INFO] [stderr] Compiling pyo3-ffi v0.19.2 [INFO] [stderr] Compiling pyo3 v0.19.2 [INFO] [stderr] Checking num v0.2.1 [INFO] [stderr] Checking fraction v0.6.3 [INFO] [stderr] Compiling serde_derive v1.0.192 [INFO] [stderr] Compiling pyo3-macros-backend v0.19.2 [INFO] [stderr] Compiling pyo3-macros v0.19.2 [INFO] [stderr] Checking rustyribs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | patch_totals: patch_totals, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `patch_totals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `removed_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:265:13 [INFO] [stdout] | [INFO] [stdout] 265 | added_diff_coverage: added_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `added_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | lines_only_on_head: lines_only_on_head, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:270:13 [INFO] [stdout] | [INFO] [stdout] 270 | lines_only_on_base: lines_only_on_base, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `removed_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | added_diff_coverage: added_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `added_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:282:13 [INFO] [stdout] | [INFO] [stdout] 282 | lines_only_on_head: lines_only_on_head, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | lines_only_on_base: lines_only_on_base, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:303:17 [INFO] [stdout] | [INFO] [stdout] 303 | added_diff_coverage: added_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `added_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:310:17 [INFO] [stdout] | [INFO] [stdout] 310 | removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `removed_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:312:17 [INFO] [stdout] | [INFO] [stdout] 312 | lines_only_on_head: lines_only_on_head, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:313:17 [INFO] [stdout] | [INFO] [stdout] 313 | lines_only_on_base: lines_only_on_base, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/line.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | coverage: coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | sessions: sessions, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sessions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | session_mapping: session_mapping, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `session_mapping` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | session_mapping: session_mapping, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `session_mapping` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | patch_totals: patch_totals, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `patch_totals` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:264:13 [INFO] [stdout] | [INFO] [stdout] 264 | removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `removed_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:265:13 [INFO] [stdout] | [INFO] [stdout] 265 | added_diff_coverage: added_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `added_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:269:13 [INFO] [stdout] | [INFO] [stdout] 269 | lines_only_on_head: lines_only_on_head, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:270:13 [INFO] [stdout] | [INFO] [stdout] 270 | lines_only_on_base: lines_only_on_base, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:277:13 [INFO] [stdout] | [INFO] [stdout] 277 | removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `removed_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:278:13 [INFO] [stdout] | [INFO] [stdout] 278 | added_diff_coverage: added_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `added_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:282:13 [INFO] [stdout] | [INFO] [stdout] 282 | lines_only_on_head: lines_only_on_head, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | lines_only_on_base: lines_only_on_base, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:303:17 [INFO] [stdout] | [INFO] [stdout] 303 | added_diff_coverage: added_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `added_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:310:17 [INFO] [stdout] | [INFO] [stdout] 310 | removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `removed_diff_coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:312:17 [INFO] [stdout] | [INFO] [stdout] 312 | lines_only_on_head: lines_only_on_head, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_head` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:313:17 [INFO] [stdout] | [INFO] [stdout] 313 | lines_only_on_base: lines_only_on_base, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `lines_only_on_base` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/changes.rs:333:21 [INFO] [stdout] | [INFO] [stdout] 333 | coverage: coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/file.rs:171:21 [INFO] [stdout] | [INFO] [stdout] 171 | coverage: coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/line.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | coverage: coverage, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `coverage` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:168:17 [INFO] [stdout] | [INFO] [stdout] 168 | sessions: sessions, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `sessions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:193:13 [INFO] [stdout] | [INFO] [stdout] 193 | session_mapping: session_mapping, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `session_mapping` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/parser.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | session_mapping: session_mapping, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `session_mapping` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rayon::prelude` [INFO] [stdout] --> src/changes.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rayon::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/file.rs:127:33 [INFO] [stdout] | [INFO] [stdout] 127 | ... let mut stat = [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `rayon::prelude` [INFO] [stdout] --> src/changes.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use rayon::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/file.rs:127:33 [INFO] [stdout] | [INFO] [stdout] 127 | ... let mut stat = [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return Ok(initial); [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] 59 - return Ok(initial); [INFO] [stdout] 59 + Ok(initial) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/analyzers/filter.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | let sessions = match &self.flags { [INFO] [stdout] | ________________________^ [INFO] [stdout] 27 | | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] 28 | | None => None, [INFO] [stdout] 29 | | }; [INFO] [stdout] | |_________^ help: try: `self.flags.as_ref().map(|actual_flags| report.get_sessions_from_flags(&actual_flags))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` 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/analyzers/filter.rs:27:71 [INFO] [stdout] | [INFO] [stdout] 27 | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `actual_flags` [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: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:64:24 [INFO] [stdout] | [INFO] [stdout] 64 | Some(f) => return f.contains(filename), [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] 64 - Some(f) => return f.contains(filename), [INFO] [stdout] 64 + Some(f) => f.contains(filename), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 65 | None => 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] 65 - None => return true, [INFO] [stdout] 65 + None => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | return (res, mapping); [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] 96 - return (res, mapping); [INFO] [stdout] 96 + (res, mapping) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/analyzers/filter.rs:77:24 [INFO] [stdout] | [INFO] [stdout] 77 | let sessions = match &self.flags { [INFO] [stdout] | ________________________^ [INFO] [stdout] 78 | | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] 79 | | None => None, [INFO] [stdout] 80 | | }; [INFO] [stdout] | |_________^ help: try: `self.flags.as_ref().map(|actual_flags| report.get_sessions_from_flags(&actual_flags))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/analyzers/filter.rs:78:71 [INFO] [stdout] | [INFO] [stdout] 78 | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `actual_flags` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/analyzers/filter.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | diff_data: &( [INFO] [stdout] | ____________________^ [INFO] [stdout] 105 | | String, [INFO] [stdout] 106 | | Option, [INFO] [stdout] 107 | | Vec<((i32, i32, i32, i32), Vec)>, [INFO] [stdout] 108 | | ), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return res; [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] 154 - return res; [INFO] [stdout] 154 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/analyzers/filter.rs:121:21 [INFO] [stdout] | [INFO] [stdout] 121 | / match possible_filtered_line { [INFO] [stdout] 122 | | Some(calculated_line) => { [INFO] [stdout] 123 | | involved_lines.push((*line_number, calculated_line)); [INFO] [stdout] ... | [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 121 ~ if let Some(calculated_line) = possible_filtered_line { [INFO] [stdout] 122 + involved_lines.push((*line_number, calculated_line)); [INFO] [stdout] 123 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/changes.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / return ChangeAnalysis { [INFO] [stdout] 102 | | changes_summary: produce_summary_from_changes_list(&changes_list), [INFO] [stdout] 103 | | files: changes_list, [INFO] [stdout] 104 | | }; [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] 101 ~ ChangeAnalysis { [INFO] [stdout] 102 + changes_summary: produce_summary_from_changes_list(&changes_list), [INFO] [stdout] 103 + files: changes_list, [INFO] [stdout] 104 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/changes.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | .filter_map(|(k, v)| match v { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 58 | | None => None, [INFO] [stdout] 59 | | Some(renamed) => Some((renamed.to_string(), k.to_string())), [INFO] [stdout] 60 | | }) [INFO] [stdout] | |_________^ help: try: `v.as_ref().map(|renamed| (renamed.to_string(), k.to_string()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/changes.rs:70:28 [INFO] [stdout] | [INFO] [stdout] 70 | HashSet::from_iter(head_report.report_files.keys().map(|f| f.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `head_report.report_files.keys().cloned()` [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: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/changes.rs:71:42 [INFO] [stdout] | [INFO] [stdout] 71 | let all_filenames: HashSet = base_filenames_accounted_for_renames [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 72 | | .union(&head_filenames) [INFO] [stdout] 73 | | .map(|f| f.clone()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 71 ~ let all_filenames: HashSet = base_filenames_accounted_for_renames [INFO] [stdout] 72 + .union(&head_filenames).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/changes.rs:99:10 [INFO] [stdout] | [INFO] [stdout] 99 | .filter_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/changes.rs:86:16 [INFO] [stdout] | [INFO] [stdout] 86 | if !base_report.get_by_filename(&original_name).is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `base_report.get_by_filename(&original_name).is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/changes.rs:87:20 [INFO] [stdout] | [INFO] [stdout] 87 | || !head_report.get_by_filename(&filename).is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `head_report.get_by_filename(&filename).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/changes.rs:87:49 [INFO] [stdout] | [INFO] [stdout] 87 | || !head_report.get_by_filename(&filename).is_none() [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [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/changes.rs:91:49 [INFO] [stdout] | [INFO] [stdout] 91 | head_report.get_by_filename(&filename), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [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/changes.rs:93:38 [INFO] [stdout] | [INFO] [stdout] 93 | (&original_name, &filename), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/changes.rs:108:19 [INFO] [stdout] | [INFO] [stdout] 108 | changes_list: &Vec, [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] 108 - changes_list: &Vec, [INFO] [stdout] 108 + changes_list: &[FileChangesAnalysis], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/changes.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | / return match (old_file, new_file) { [INFO] [stdout] 258 | | (None, None) => None, [INFO] [stdout] 259 | | (None, Some(new)) => Some(FileChangesAnalysis { [INFO] [stdout] 260 | | file_was_added_by_diff: is_new, [INFO] [stdout] ... | [INFO] [stdout] 316 | | }; [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] 257 ~ match (old_file, new_file) { [INFO] [stdout] 258 + (None, None) => None, [INFO] [stdout] 259 + (None, Some(new)) => Some(FileChangesAnalysis { [INFO] [stdout] 260 + file_was_added_by_diff: is_new, [INFO] [stdout] 261 + file_was_removed_by_diff: was_deleted, [INFO] [stdout] 262 + head_coverage: Some(new.get_totals()), [INFO] [stdout] 263 + base_coverage: None, [INFO] [stdout] 264 + removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] 265 + added_diff_coverage: added_diff_coverage, [INFO] [stdout] 266 + unexpected_line_changes: unexpected_vec, [INFO] [stdout] 267 + base_name: base_name.to_string(), [INFO] [stdout] 268 + head_name: head_name.to_string(), [INFO] [stdout] 269 + lines_only_on_head: lines_only_on_head, [INFO] [stdout] 270 + lines_only_on_base: lines_only_on_base, [INFO] [stdout] 271 + }), [INFO] [stdout] 272 + (Some(old), None) => Some(FileChangesAnalysis { [INFO] [stdout] 273 + file_was_added_by_diff: is_new, [INFO] [stdout] 274 + file_was_removed_by_diff: was_deleted, [INFO] [stdout] 275 + head_coverage: None, [INFO] [stdout] 276 + base_coverage: Some(old.get_totals()), [INFO] [stdout] 277 + removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] 278 + added_diff_coverage: added_diff_coverage, [INFO] [stdout] 279 + unexpected_line_changes: unexpected_vec, [INFO] [stdout] 280 + base_name: base_name.to_string(), [INFO] [stdout] 281 + head_name: head_name.to_string(), [INFO] [stdout] 282 + lines_only_on_head: lines_only_on_head, [INFO] [stdout] 283 + lines_only_on_base: lines_only_on_base, [INFO] [stdout] 284 + }), [INFO] [stdout] 285 + (Some(base_report), Some(head_report)) => { [INFO] [stdout] 286 + let has_removed_diff_coverage = match &removed_diff_coverage { [INFO] [stdout] 287 + None => false, [INFO] [stdout] 288 + Some(x) => !x.is_empty(), [INFO] [stdout] 289 + }; [INFO] [stdout] 290 + let has_added_diff_coverage = match &added_diff_coverage { [INFO] [stdout] 291 + None => false, [INFO] [stdout] 292 + Some(x) => !x.is_empty(), [INFO] [stdout] 293 + }; [INFO] [stdout] 294 + if unexpected_vec.is_empty() [INFO] [stdout] 295 + && !has_removed_diff_coverage [INFO] [stdout] 296 + && !has_added_diff_coverage [INFO] [stdout] 297 + && lines_only_on_base.is_empty() [INFO] [stdout] 298 + && lines_only_on_head.is_empty() [INFO] [stdout] 299 + { [INFO] [stdout] 300 + return None; [INFO] [stdout] 301 + } [INFO] [stdout] 302 + return Some(FileChangesAnalysis { [INFO] [stdout] 303 + added_diff_coverage: added_diff_coverage, [INFO] [stdout] 304 + base_coverage: Some(base_report.get_totals()), [INFO] [stdout] 305 + base_name: base_name.to_string(), [INFO] [stdout] 306 + file_was_added_by_diff: is_new, [INFO] [stdout] 307 + file_was_removed_by_diff: was_deleted, [INFO] [stdout] 308 + head_coverage: Some(head_report.get_totals()), [INFO] [stdout] 309 + head_name: head_name.to_string(), [INFO] [stdout] 310 + removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] 311 + unexpected_line_changes: unexpected_vec, [INFO] [stdout] 312 + lines_only_on_head: lines_only_on_head, [INFO] [stdout] 313 + lines_only_on_base: lines_only_on_base, [INFO] [stdout] 314 + }); [INFO] [stdout] 315 + } [INFO] [stdout] 316 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/changes.rs:171:38 [INFO] [stdout] | [INFO] [stdout] 171 | match file.lines.get(&line) { [INFO] [stdout] | ^^^^^ help: change this to: `line` [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/changes.rs:187:38 [INFO] [stdout] | [INFO] [stdout] 187 | match file.lines.get(&line) { [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: you are using an explicit closure for copying elements [INFO] [stdout] --> src/changes.rs:253:42 [INFO] [stdout] | [INFO] [stdout] 253 | let mut lines_only_on_head: Vec<_> = only_on_head.iter().map(|k| *k).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `only_on_head.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/changes.rs:255:42 [INFO] [stdout] | [INFO] [stdout] 255 | let mut lines_only_on_base: Vec<_> = only_on_base.iter().map(|k| *k).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `only_on_base.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | / return match self { [INFO] [stdout] 16 | | Coverage::Hit => 'h', [INFO] [stdout] 17 | | Coverage::Miss => 'm', [INFO] [stdout] 18 | | Coverage::Partial(_) => 'p', [INFO] [stdout] 19 | | Coverage::Ignore => 'i', [INFO] [stdout] 20 | | }; [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] 15 ~ match self { [INFO] [stdout] 16 + Coverage::Hit => 'h', [INFO] [stdout] 17 + Coverage::Miss => 'm', [INFO] [stdout] 18 + Coverage::Partial(_) => 'p', [INFO] [stdout] 19 + Coverage::Ignore => 'i', [INFO] [stdout] 20 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:37:17 [INFO] [stdout] | [INFO] [stdout] 37 | return 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] 37 - return 1.0; [INFO] [stdout] 37 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | 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] 40 - return 0.0; [INFO] [stdout] 40 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | return f.to_f64().unwrap(); [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] 43 - return f.to_f64().unwrap(); [INFO] [stdout] 43 + f.to_f64().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | return -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] 46 - return -1.0; [INFO] [stdout] 46 + -1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return a; [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] 69 - return a; [INFO] [stdout] 69 + a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/diff.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | None => return (HashSet::new(), HashSet::new()), [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] 25 - None => return (HashSet::new(), HashSet::new()), [INFO] [stdout] 25 + None => (HashSet::new(), HashSet::new()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/diff.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | return (only_on_base, only_on_head); [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] 46 - return (only_on_base, only_on_head); [INFO] [stdout] 46 + (only_on_base, only_on_head) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return self.hits + self.misses + self.partials; [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] 36 - return self.hits + self.misses + self.partials; [INFO] [stdout] 36 + self.hits + self.misses + self.partials [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return self.get_line_count() == 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] 53 - return self.get_line_count() == 0; [INFO] [stdout] 53 + self.get_line_count() == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return res; [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] 92 - return res; [INFO] [stdout] 92 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/file.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / match &report_line.complexity { [INFO] [stdout] 75 | | Some(value) => match value { [INFO] [stdout] 76 | | line::Complexity::SingleComplexity(v) => { [INFO] [stdout] 77 | | res.complexity += v; [INFO] [stdout] ... | [INFO] [stdout] 84 | | None => {} [INFO] [stdout] 85 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 74 ~ if let Some(value) = &report_line.complexity { match value { [INFO] [stdout] 75 + line::Complexity::SingleComplexity(v) => { [INFO] [stdout] 76 + res.complexity += v; [INFO] [stdout] 77 + } [INFO] [stdout] 78 + line::Complexity::TotalComplexity((n, d)) => { [INFO] [stdout] 79 + res.complexity += n; [INFO] [stdout] 80 + res.complexity_total += d; [INFO] [stdout] 81 + } [INFO] [stdout] 82 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | / return match self.lines.keys().max() { [INFO] [stdout] 103 | | Some(expr) => *expr + 1, [INFO] [stdout] 104 | | None => 0, [INFO] [stdout] 105 | | }; [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] 102 ~ match self.lines.keys().max() { [INFO] [stdout] 103 + Some(expr) => *expr + 1, [INFO] [stdout] 104 + None => 0, [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | return FileTotals::from_lines(all_lines.iter().collect()); [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] 114 - return FileTotals::from_lines(all_lines.iter().collect()); [INFO] [stdout] 114 + FileTotals::from_lines(all_lines.iter().collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | return book_reviews; [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] 150 - return book_reviews; [INFO] [stdout] 150 + book_reviews [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/file.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | / match flag_mapping.get(&sess.id) { [INFO] [stdout] 125 | | Some(flags) => { [INFO] [stdout] 126 | | for f in flags { [INFO] [stdout] 127 | | let mut stat = [INFO] [stdout] ... | [INFO] [stdout] 146 | | None => {} [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 124 ~ if let Some(flags) = flag_mapping.get(&sess.id) { [INFO] [stdout] 125 + for f in flags { [INFO] [stdout] 126 + let mut stat = [INFO] [stdout] 127 + book_reviews.entry(f.to_string()).or_insert(FileTotals { [INFO] [stdout] 128 + hits: 0, [INFO] [stdout] 129 + misses: 0, [INFO] [stdout] 130 + partials: 0, [INFO] [stdout] 131 + branches: 0, [INFO] [stdout] 132 + sessions: 0, [INFO] [stdout] 133 + complexity: 0, [INFO] [stdout] 134 + complexity_total: 0, [INFO] [stdout] 135 + methods: 0, [INFO] [stdout] 136 + }); [INFO] [stdout] 137 + match sess.coverage { [INFO] [stdout] 138 + cov::Coverage::Hit => stat.hits += 1, [INFO] [stdout] 139 + cov::Coverage::Miss => stat.misses += 1, [INFO] [stdout] 140 + cov::Coverage::Partial(_) => stat.partials += 1, [INFO] [stdout] 141 + cov::Coverage::Ignore => {} [INFO] [stdout] 142 + } [INFO] [stdout] 143 + } [INFO] [stdout] 144 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return FileTotals::from_lines(self.lines.values().collect()); [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] 154 - return FileTotals::from_lines(self.lines.values().collect()); [INFO] [stdout] 154 + FileTotals::from_lines(self.lines.values().collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line.rs:32:54 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn filter_by_session_ids(&self, session_ids: &Vec) -> Option { [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] 32 - pub fn filter_by_session_ids(&self, session_ids: &Vec) -> Option { [INFO] [stdout] 32 + pub fn filter_by_session_ids(&self, session_ids: &[i32]) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/line.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | let valid_sessions: Vec = self [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 34 | | .sessions [INFO] [stdout] 35 | | .iter() [INFO] [stdout] 36 | | .filter(|k| session_ids.contains(&k.id)) [INFO] [stdout] 37 | | .map(|x| x.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 33 ~ let valid_sessions: Vec = self [INFO] [stdout] 34 + .sessions [INFO] [stdout] 35 + .iter() [INFO] [stdout] 36 + .filter(|k| session_ids.contains(&k.id)).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/line.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | return cov::Coverage::join_coverages(valid_sessions); [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] 56 - return cov::Coverage::join_coverages(valid_sessions); [INFO] [stdout] 56 + cov::Coverage::join_coverages(valid_sessions) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line.rs:54:57 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn calculate_sessions_coverage(&self, sessions: &Vec) -> cov::Coverage { [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] 54 - pub fn calculate_sessions_coverage(&self, sessions: &Vec) -> cov::Coverage { [INFO] [stdout] 54 + pub fn calculate_sessions_coverage(&self, sessions: &[LineSession]) -> cov::Coverage { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/line.rs:72:21 [INFO] [stdout] | [INFO] [stdout] 72 | None => return None, [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] 72 - None => return None, [INFO] [stdout] 72 + None => None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/line.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | return Some(Complexity::SingleComplexity(complexity)); [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] 78 - return Some(Complexity::SingleComplexity(complexity)); [INFO] [stdout] 78 + Some(Complexity::SingleComplexity(complexity)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn calculate_sessions_complexity(&self, sessions: &Vec) -> Option { [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] 59 - pub fn calculate_sessions_complexity(&self, sessions: &Vec) -> Option { [INFO] [stdout] 59 + pub fn calculate_sessions_complexity(&self, sessions: &[LineSession]) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | return Err(ParsingError::UnexpectedValue); [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] 36 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 36 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 38 | Value::Null => return Ok(line::CoverageType::Standard), [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] 38 - Value::Null => return Ok(line::CoverageType::Standard), [INFO] [stdout] 38 + Value::Null => Ok(line::CoverageType::Standard), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | return Err(ParsingError::UnexpectedValue); [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] 40 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 40 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:48:13 [INFO] [stdout] | [INFO] [stdout] 48 | / return match o.as_i64() { [INFO] [stdout] 49 | | Some(number) => { [INFO] [stdout] 50 | | if number > 0 { [INFO] [stdout] 51 | | Ok(cov::Coverage::Hit) [INFO] [stdout] ... | [INFO] [stdout] 67 | | }, [INFO] [stdout] 68 | | }; [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] 48 ~ match o.as_i64() { [INFO] [stdout] 49 + Some(number) => { [INFO] [stdout] 50 + if number > 0 { [INFO] [stdout] 51 + Ok(cov::Coverage::Hit) [INFO] [stdout] 52 + } else if number == -1 { [INFO] [stdout] 53 + Ok(cov::Coverage::Ignore) [INFO] [stdout] 54 + } else { [INFO] [stdout] 55 + Ok(cov::Coverage::Miss) [INFO] [stdout] 56 + } [INFO] [stdout] 57 + } [INFO] [stdout] 58 + None => match o.as_f64() { [INFO] [stdout] 59 + Some(alternative_number) => { [INFO] [stdout] 60 + if alternative_number > 0.0 { [INFO] [stdout] 61 + Ok(cov::Coverage::Hit) [INFO] [stdout] 62 + } else { [INFO] [stdout] 63 + Ok(cov::Coverage::Miss) [INFO] [stdout] 64 + } [INFO] [stdout] 65 + } [INFO] [stdout] 66 + None => Err(ParsingError::UnexpectedValue), [INFO] [stdout] 67 + }, [INFO] [stdout] 68 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | return Ok(cov::Coverage::Partial(f)); [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] 82 - return Ok(cov::Coverage::Partial(f)); [INFO] [stdout] 82 + Ok(cov::Coverage::Partial(f)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | / return if val > 0 { [INFO] [stdout] 87 | | Ok(cov::Coverage::Hit) [INFO] [stdout] 88 | | } else { [INFO] [stdout] 89 | | Ok(cov::Coverage::Miss) [INFO] [stdout] 90 | | }; [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] 86 ~ if val > 0 { [INFO] [stdout] 87 + Ok(cov::Coverage::Hit) [INFO] [stdout] 88 + } else { [INFO] [stdout] 89 + Ok(cov::Coverage::Miss) [INFO] [stdout] 90 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | return Err(ParsingError::UnexpectedValue); [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] 94 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 94 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | Value::Null => return Ok(cov::Coverage::Ignore), [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] 96 - Value::Null => return Ok(cov::Coverage::Ignore), [INFO] [stdout] 96 + Value::Null => Ok(cov::Coverage::Ignore), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | return Err(ParsingError::UnexpectedValue); [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] 101 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 101 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | return Err(ParsingError::UnexpectedValue); [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] 104 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 104 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | / return Ok(Some(line::Complexity::SingleComplexity( [INFO] [stdout] 113 | | o.as_i64().unwrap() as i32, [INFO] [stdout] 114 | | ))); [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] 112 ~ Ok(Some(line::Complexity::SingleComplexity( [INFO] [stdout] 113 + o.as_i64().unwrap() as i32, [INFO] [stdout] 114 ~ ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:116:29 [INFO] [stdout] | [INFO] [stdout] 116 | Value::String(_) => return Err(ParsingError::UnexpectedValue), [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] 116 - Value::String(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 116 + Value::String(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | / return Ok(Some(line::Complexity::TotalComplexity(( [INFO] [stdout] 119 | | a[0].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 120 | | a[1].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 121 | | )))); [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] 118 ~ Ok(Some(line::Complexity::TotalComplexity(( [INFO] [stdout] 119 + a[0].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 120 + a[1].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 121 ~ )))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:123:24 [INFO] [stdout] | [INFO] [stdout] 123 | Value::Null => return Ok(None), [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] 123 - Value::Null => return Ok(None), [INFO] [stdout] 123 + Value::Null => Ok(None), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:124:27 [INFO] [stdout] | [INFO] [stdout] 124 | Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [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] 124 - Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 124 + Value::Bool(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:125:29 [INFO] [stdout] | [INFO] [stdout] 125 | Value::Object(_) => return Err(ParsingError::UnexpectedValue), [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] 125 - Value::Object(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 125 + Value::Object(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:137:29 [INFO] [stdout] | [INFO] [stdout] 137 | Value::Number(_) => return Err(ParsingError::UnexpectedValue), [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] 137 - Value::Number(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 137 + Value::Number(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:138:29 [INFO] [stdout] | [INFO] [stdout] 138 | Value::String(_) => return Err(ParsingError::UnexpectedValue), [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] 138 - Value::String(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 138 + Value::String(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | / return Ok(LineType::Content(line::ReportLine { [INFO] [stdout] 162 | | coverage: parse_coverage(&array_data[0])?, [INFO] [stdout] 163 | | coverage_type: if array_data.len() > 1 { [INFO] [stdout] 164 | | parse_coverage_type(&array_data[1])? [INFO] [stdout] ... | [INFO] [stdout] 173 | | })?, [INFO] [stdout] 174 | | })); [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] 161 ~ Ok(LineType::Content(line::ReportLine { [INFO] [stdout] 162 + coverage: parse_coverage(&array_data[0])?, [INFO] [stdout] 163 + coverage_type: if array_data.len() > 1 { [INFO] [stdout] 164 + parse_coverage_type(&array_data[1])? [INFO] [stdout] 165 + } else { [INFO] [stdout] 166 + line::CoverageType::Standard [INFO] [stdout] 167 + }, [INFO] [stdout] 168 + sessions: sessions, [INFO] [stdout] 169 + complexity: parse_complexity(if array_data.len() > 4 { [INFO] [stdout] 170 + &array_data[4] [INFO] [stdout] 171 + } else { [INFO] [stdout] 172 + &Value::Null [INFO] [stdout] 173 + })?, [INFO] [stdout] 174 ~ })) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:176:24 [INFO] [stdout] | [INFO] [stdout] 176 | Value::Null => return Ok(LineType::NoFile), [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] 176 - Value::Null => return Ok(LineType::NoFile), [INFO] [stdout] 176 + Value::Null => Ok(LineType::NoFile), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:177:27 [INFO] [stdout] | [INFO] [stdout] 177 | Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [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] 177 - Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 177 + Value::Bool(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:178:29 [INFO] [stdout] | [INFO] [stdout] 178 | Value::Object(_) => return Ok(LineType::Details), [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] 178 - Value::Object(_) => return Ok(LineType::Details), [INFO] [stdout] 178 + Value::Object(_) => Ok(LineType::Details), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:136:32 [INFO] [stdout] | [INFO] [stdout] 136 | match serde_json::from_str(&line).unwrap() { [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 253 | / return Ok(report::Report { [INFO] [stdout] 254 | | report_files: filename_to_mapping, [INFO] [stdout] 255 | | session_mapping: session_mapping, [INFO] [stdout] 256 | | }); [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] 253 ~ Ok(report::Report { [INFO] [stdout] 254 + report_files: filename_to_mapping, [INFO] [stdout] 255 + session_mapping: session_mapping, [INFO] [stdout] 256 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:187:82 [INFO] [stdout] | [INFO] [stdout] 187 | let all_lines_with_errors: Vec<_> = chunks.par_lines().map(|line| parse_line(&line)).collect(); [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: length comparison to zero [INFO] [stdout] --> src/parser.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | if all_lines.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `all_lines.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: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:202:39 [INFO] [stdout] | [INFO] [stdout] 202 | all_report_files.push(match current_report_lines { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 203 | | Some(lines) => Some(file::ReportFile { lines }), [INFO] [stdout] 204 | | None => None, [INFO] [stdout] 205 | | }); [INFO] [stdout] | |_________________^ help: try: `current_report_lines.map(|lines| file::ReportFile { lines })` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/parser.rs:219:17 [INFO] [stdout] | [INFO] [stdout] 219 | / match current_report_lines.as_mut() { [INFO] [stdout] 220 | | Some(lines) => { [INFO] [stdout] 221 | | lines.insert(line_count, report_line); [INFO] [stdout] ... | [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 219 ~ if let Some(lines) = current_report_lines.as_mut() { [INFO] [stdout] 220 + lines.insert(line_count, report_line); [INFO] [stdout] 221 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:229:27 [INFO] [stdout] | [INFO] [stdout] 229 | all_report_files.push(match current_report_lines { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 230 | | Some(v) => Some(file::ReportFile { lines: v }), [INFO] [stdout] 231 | | None => None, [INFO] [stdout] 232 | | }); [INFO] [stdout] | |_____^ help: try: `current_report_lines.map(|v| file::ReportFile { lines: v })` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Map, {closure@src/parser.rs:235:14: 235:22}>` [INFO] [stdout] --> src/parser.rs:233:52 [INFO] [stdout] | [INFO] [stdout] 233 | let number_to_filename: HashMap = filenames [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 234 | | .iter() [INFO] [stdout] 235 | | .map(|(x, y)| (*y, x.to_string())) [INFO] [stdout] 236 | | .into_iter() [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 233 ~ let number_to_filename: HashMap = filenames [INFO] [stdout] 234 + .iter() [INFO] [stdout] 235 + .map(|(x, y)| (*y, x.to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FilterMap>>, {closure@src/parser.rs:241:21: 241:45}>` [INFO] [stdout] --> src/parser.rs:238:66 [INFO] [stdout] | [INFO] [stdout] 238 | let filename_to_mapping: HashMap = all_report_files [INFO] [stdout] | __________________________________________________________________^ [INFO] [stdout] 239 | | .into_iter() [INFO] [stdout] 240 | | .enumerate() [INFO] [stdout] 241 | | .filter_map(|(current_count, value)| match value { [INFO] [stdout] ... | [INFO] [stdout] 250 | | }) [INFO] [stdout] 251 | | .into_iter() [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 238 ~ let filename_to_mapping: HashMap = all_report_files [INFO] [stdout] 239 + .into_iter() [INFO] [stdout] 240 + .enumerate() [INFO] [stdout] 241 + .filter_map(|(current_count, value)| match value { [INFO] [stdout] 242 + Some(file) => { [INFO] [stdout] 243 + let filename = number_to_filename.get(&(current_count as i32)); [INFO] [stdout] 244 + match filename { [INFO] [stdout] 245 + Some(val) => Some((val.to_string(), file)), [INFO] [stdout] 246 + None => None, [INFO] [stdout] 247 + } [INFO] [stdout] 248 + } [INFO] [stdout] 249 + None => None, [INFO] [stdout] 250 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:244:17 [INFO] [stdout] | [INFO] [stdout] 244 | / match filename { [INFO] [stdout] 245 | | Some(val) => Some((val.to_string(), file)), [INFO] [stdout] 246 | | None => None, [INFO] [stdout] 247 | | } [INFO] [stdout] | |_________________^ help: try: `filename.map(|val| (val.to_string(), file))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / return Some(GroupImpact { [INFO] [stdout] 86 | | group_name: self.group_name.to_owned(), [INFO] [stdout] 87 | | files: files_impacts, [INFO] [stdout] 88 | | }); [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] 85 ~ Some(GroupImpact { [INFO] [stdout] 86 + group_name: self.group_name.to_owned(), [INFO] [stdout] 87 + files: files_impacts, [INFO] [stdout] 88 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/profiling.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | files: &Vec, [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] 40 - files: &Vec, [INFO] [stdout] 40 + files: &[changes::FileChangesAnalysis], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/profiling.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | .filter_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/profiling.rs:64:56 [INFO] [stdout] | [INFO] [stdout] 64 | let impacted_lines: Vec = profiling_lines [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 65 | | .intersection(&changed_lines) [INFO] [stdout] 66 | | .map(|x| *x) [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 64 ~ let impacted_lines: Vec = profiling_lines [INFO] [stdout] 65 + .intersection(&changed_lines).copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | / return Ok(ProfilingData { [INFO] [stdout] 111 | | groups: result.groups, [INFO] [stdout] 112 | | }) [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] 110 ~ Ok(ProfilingData { [INFO] [stdout] 111 + groups: result.groups, [INFO] [stdout] 112 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / return match serde_json::to_string(&res) { [INFO] [stdout] 126 | | Ok(value) => Ok(value), [INFO] [stdout] 127 | | Err(_) => Err(PyException::new_err("Error serializing impact")), [INFO] [stdout] 128 | | }; [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] 125 ~ match serde_json::to_string(&res) { [INFO] [stdout] 126 + Ok(value) => Ok(value), [INFO] [stdout] 127 + Err(_) => Err(PyException::new_err("Error serializing impact")), [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | / return self [INFO] [stdout] 143 | | .groups [INFO] [stdout] 144 | | .iter() [INFO] [stdout] 145 | | .map(|group| group.find_impacted_endpoints(&k.files)) [INFO] [stdout] 146 | | .filter_map(|x| x) [INFO] [stdout] 147 | | .collect(); [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] 142 ~ self [INFO] [stdout] 143 + .groups [INFO] [stdout] 144 + .iter() [INFO] [stdout] 145 + .map(|group| group.find_impacted_endpoints(&k.files)) [INFO] [stdout] 146 + .filter_map(|x| x) [INFO] [stdout] 147 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/profiling.rs:146:14 [INFO] [stdout] | [INFO] [stdout] 146 | .filter_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return Ok(Some(self.complexity)); [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] 90 - return Ok(Some(self.complexity)); [INFO] [stdout] 90 + Ok(Some(self.complexity)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | return t; [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] 110 - return t; [INFO] [stdout] 110 + t [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | return Ok(initial); [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] 59 - return Ok(initial); [INFO] [stdout] 59 + Ok(initial) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/analyzers/filter.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | let sessions = match &self.flags { [INFO] [stdout] | ________________________^ [INFO] [stdout] 27 | | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] 28 | | None => None, [INFO] [stdout] 29 | | }; [INFO] [stdout] | |_________^ help: try: `self.flags.as_ref().map(|actual_flags| report.get_sessions_from_flags(&actual_flags))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` 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/analyzers/filter.rs:27:71 [INFO] [stdout] | [INFO] [stdout] 27 | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `actual_flags` [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: unneeded `return` statement [INFO] [stdout] --> src/report.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | return res; [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] 136 - return res; [INFO] [stdout] 136 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/report.rs:129:50 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn get_sessions_from_flags(&self, flags: &Vec) -> Vec { [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] 129 - pub fn get_sessions_from_flags(&self, flags: &Vec) -> Vec { [INFO] [stdout] 129 + pub fn get_sessions_from_flags(&self, flags: &[String]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:64:24 [INFO] [stdout] | [INFO] [stdout] 64 | Some(f) => return f.contains(filename), [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] 64 - Some(f) => return f.contains(filename), [INFO] [stdout] 64 + Some(f) => f.contains(filename), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:65:21 [INFO] [stdout] | [INFO] [stdout] 65 | None => 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] 65 - None => return true, [INFO] [stdout] 65 + None => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:141:34 [INFO] [stdout] | [INFO] [stdout] 141 | Some(file_report) => return Some(file_report), [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] 141 - Some(file_report) => return Some(file_report), [INFO] [stdout] 141 + Some(file_report) => Some(file_report), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | return (res, mapping); [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] 96 - return (res, mapping); [INFO] [stdout] 96 + (res, mapping) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | return None; [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] 143 - return None; [INFO] [stdout] 143 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/analyzers/filter.rs:77:24 [INFO] [stdout] | [INFO] [stdout] 77 | let sessions = match &self.flags { [INFO] [stdout] | ________________________^ [INFO] [stdout] 78 | | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] 79 | | None => None, [INFO] [stdout] 80 | | }; [INFO] [stdout] | |_________^ help: try: `self.flags.as_ref().map(|actual_flags| report.get_sessions_from_flags(&actual_flags))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/analyzers/filter.rs:78:71 [INFO] [stdout] | [INFO] [stdout] 78 | Some(actual_flags) => Some(report.get_sessions_from_flags(&actual_flags)), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `actual_flags` [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: unneeded `return` statement [INFO] [stdout] --> src/report.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | return book_reviews; [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] 161 - return book_reviews; [INFO] [stdout] 161 + book_reviews [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/report.rs:158:32 [INFO] [stdout] | [INFO] [stdout] 158 | current.add_up(&totals) [INFO] [stdout] | ^^^^^^^ help: change this to: `totals` [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: unneeded `return` statement [INFO] [stdout] --> src/report.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | return Ok(res); [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] 175 - return Ok(res); [INFO] [stdout] 175 + Ok(res) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | Ok(val) => return Ok(val), [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 - Ok(val) => return Ok(val), [INFO] [stdout] 28 + Ok(val) => Ok(val), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 29 | Err(_) => return Err(PyException::new_err("Unable to parse rust report")), [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 - Err(_) => return Err(PyException::new_err("Unable to parse rust report")), [INFO] [stdout] 29 + Err(_) => Err(PyException::new_err("Unable to parse rust report")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / return match serde_json::to_string(&changes::run_comparison_analysis( [INFO] [stdout] 40 | | base_report, [INFO] [stdout] 41 | | head_report, [INFO] [stdout] 42 | | &diff, [INFO] [stdout] ... | [INFO] [stdout] 45 | | Err(_) => Err(PyException::new_err("Error serializing changes")), [INFO] [stdout] 46 | | }; [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] 39 ~ match serde_json::to_string(&changes::run_comparison_analysis( [INFO] [stdout] 40 + base_report, [INFO] [stdout] 41 + head_report, [INFO] [stdout] 42 + &diff, [INFO] [stdout] 43 + )) { [INFO] [stdout] 44 + Ok(value) => Ok(value), [INFO] [stdout] 45 + Err(_) => Err(PyException::new_err("Error serializing changes")), [INFO] [stdout] 46 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/analyzers/filter.rs:104:20 [INFO] [stdout] | [INFO] [stdout] 104 | diff_data: &( [INFO] [stdout] | ____________________^ [INFO] [stdout] 105 | | String, [INFO] [stdout] 106 | | Option, [INFO] [stdout] 107 | | Vec<((i32, i32, i32, i32), Vec)>, [INFO] [stdout] 108 | | ), [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/analyzers/filter.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return res; [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] 154 - return res; [INFO] [stdout] 154 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/analyzers/filter.rs:121:21 [INFO] [stdout] | [INFO] [stdout] 121 | / match possible_filtered_line { [INFO] [stdout] 122 | | Some(calculated_line) => { [INFO] [stdout] 123 | | involved_lines.push((*line_number, calculated_line)); [INFO] [stdout] ... | [INFO] [stdout] 126 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 121 ~ if let Some(calculated_line) = possible_filtered_line { [INFO] [stdout] 122 + involved_lines.push((*line_number, calculated_line)); [INFO] [stdout] 123 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/analyzers/filter.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 19 | impl FilterAnalyzer { [INFO] [stdout] | -------------- [INFO] [stdout] | | [INFO] [stdout] | `FilterAnalyzer` is not local [INFO] [stdout] | `FilterAnalyzer` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/analyzers/simple.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 9 | impl SimpleAnalyzer { [INFO] [stdout] | -------------- [INFO] [stdout] | | [INFO] [stdout] | `SimpleAnalyzer` is not local [INFO] [stdout] | `SimpleAnalyzer` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/changes.rs:101:5 [INFO] [stdout] | [INFO] [stdout] 101 | / return ChangeAnalysis { [INFO] [stdout] 102 | | changes_summary: produce_summary_from_changes_list(&changes_list), [INFO] [stdout] 103 | | files: changes_list, [INFO] [stdout] 104 | | }; [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] 101 ~ ChangeAnalysis { [INFO] [stdout] 102 + changes_summary: produce_summary_from_changes_list(&changes_list), [INFO] [stdout] 103 + files: changes_list, [INFO] [stdout] 104 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/changes.rs:57:30 [INFO] [stdout] | [INFO] [stdout] 57 | .filter_map(|(k, v)| match v { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 58 | | None => None, [INFO] [stdout] 59 | | Some(renamed) => Some((renamed.to_string(), k.to_string())), [INFO] [stdout] 60 | | }) [INFO] [stdout] | |_________^ help: try: `v.as_ref().map(|renamed| (renamed.to_string(), k.to_string()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/changes.rs:70:28 [INFO] [stdout] | [INFO] [stdout] 70 | HashSet::from_iter(head_report.report_files.keys().map(|f| f.clone())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `head_report.report_files.keys().cloned()` [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: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/changes.rs:71:42 [INFO] [stdout] | [INFO] [stdout] 71 | let all_filenames: HashSet = base_filenames_accounted_for_renames [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 72 | | .union(&head_filenames) [INFO] [stdout] 73 | | .map(|f| f.clone()) [INFO] [stdout] | |___________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 71 ~ let all_filenames: HashSet = base_filenames_accounted_for_renames [INFO] [stdout] 72 + .union(&head_filenames).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/changes.rs:99:10 [INFO] [stdout] | [INFO] [stdout] 99 | .filter_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/changes.rs:86:16 [INFO] [stdout] | [INFO] [stdout] 86 | if !base_report.get_by_filename(&original_name).is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `base_report.get_by_filename(&original_name).is_some()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/changes.rs:87:20 [INFO] [stdout] | [INFO] [stdout] 87 | || !head_report.get_by_filename(&filename).is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `head_report.get_by_filename(&filename).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/changes.rs:87:49 [INFO] [stdout] | [INFO] [stdout] 87 | || !head_report.get_by_filename(&filename).is_none() [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [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/changes.rs:91:49 [INFO] [stdout] | [INFO] [stdout] 91 | head_report.get_by_filename(&filename), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [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/changes.rs:93:38 [INFO] [stdout] | [INFO] [stdout] 93 | (&original_name, &filename), [INFO] [stdout] | ^^^^^^^^^ help: change this to: `filename` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/changes.rs:108:19 [INFO] [stdout] | [INFO] [stdout] 108 | changes_list: &Vec, [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] 108 - changes_list: &Vec, [INFO] [stdout] 108 + changes_list: &[FileChangesAnalysis], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/changes.rs:257:5 [INFO] [stdout] | [INFO] [stdout] 257 | / return match (old_file, new_file) { [INFO] [stdout] 258 | | (None, None) => None, [INFO] [stdout] 259 | | (None, Some(new)) => Some(FileChangesAnalysis { [INFO] [stdout] 260 | | file_was_added_by_diff: is_new, [INFO] [stdout] ... | [INFO] [stdout] 316 | | }; [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] 257 ~ match (old_file, new_file) { [INFO] [stdout] 258 + (None, None) => None, [INFO] [stdout] 259 + (None, Some(new)) => Some(FileChangesAnalysis { [INFO] [stdout] 260 + file_was_added_by_diff: is_new, [INFO] [stdout] 261 + file_was_removed_by_diff: was_deleted, [INFO] [stdout] 262 + head_coverage: Some(new.get_totals()), [INFO] [stdout] 263 + base_coverage: None, [INFO] [stdout] 264 + removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] 265 + added_diff_coverage: added_diff_coverage, [INFO] [stdout] 266 + unexpected_line_changes: unexpected_vec, [INFO] [stdout] 267 + base_name: base_name.to_string(), [INFO] [stdout] 268 + head_name: head_name.to_string(), [INFO] [stdout] 269 + lines_only_on_head: lines_only_on_head, [INFO] [stdout] 270 + lines_only_on_base: lines_only_on_base, [INFO] [stdout] 271 + }), [INFO] [stdout] 272 + (Some(old), None) => Some(FileChangesAnalysis { [INFO] [stdout] 273 + file_was_added_by_diff: is_new, [INFO] [stdout] 274 + file_was_removed_by_diff: was_deleted, [INFO] [stdout] 275 + head_coverage: None, [INFO] [stdout] 276 + base_coverage: Some(old.get_totals()), [INFO] [stdout] 277 + removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] 278 + added_diff_coverage: added_diff_coverage, [INFO] [stdout] 279 + unexpected_line_changes: unexpected_vec, [INFO] [stdout] 280 + base_name: base_name.to_string(), [INFO] [stdout] 281 + head_name: head_name.to_string(), [INFO] [stdout] 282 + lines_only_on_head: lines_only_on_head, [INFO] [stdout] 283 + lines_only_on_base: lines_only_on_base, [INFO] [stdout] 284 + }), [INFO] [stdout] 285 + (Some(base_report), Some(head_report)) => { [INFO] [stdout] 286 + let has_removed_diff_coverage = match &removed_diff_coverage { [INFO] [stdout] 287 + None => false, [INFO] [stdout] 288 + Some(x) => !x.is_empty(), [INFO] [stdout] 289 + }; [INFO] [stdout] 290 + let has_added_diff_coverage = match &added_diff_coverage { [INFO] [stdout] 291 + None => false, [INFO] [stdout] 292 + Some(x) => !x.is_empty(), [INFO] [stdout] 293 + }; [INFO] [stdout] 294 + if unexpected_vec.is_empty() [INFO] [stdout] 295 + && !has_removed_diff_coverage [INFO] [stdout] 296 + && !has_added_diff_coverage [INFO] [stdout] 297 + && lines_only_on_base.is_empty() [INFO] [stdout] 298 + && lines_only_on_head.is_empty() [INFO] [stdout] 299 + { [INFO] [stdout] 300 + return None; [INFO] [stdout] 301 + } [INFO] [stdout] 302 + return Some(FileChangesAnalysis { [INFO] [stdout] 303 + added_diff_coverage: added_diff_coverage, [INFO] [stdout] 304 + base_coverage: Some(base_report.get_totals()), [INFO] [stdout] 305 + base_name: base_name.to_string(), [INFO] [stdout] 306 + file_was_added_by_diff: is_new, [INFO] [stdout] 307 + file_was_removed_by_diff: was_deleted, [INFO] [stdout] 308 + head_coverage: Some(head_report.get_totals()), [INFO] [stdout] 309 + head_name: head_name.to_string(), [INFO] [stdout] 310 + removed_diff_coverage: removed_diff_coverage, [INFO] [stdout] 311 + unexpected_line_changes: unexpected_vec, [INFO] [stdout] 312 + lines_only_on_head: lines_only_on_head, [INFO] [stdout] 313 + lines_only_on_base: lines_only_on_base, [INFO] [stdout] 314 + }); [INFO] [stdout] 315 + } [INFO] [stdout] 316 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/changes.rs:171:38 [INFO] [stdout] | [INFO] [stdout] 171 | match file.lines.get(&line) { [INFO] [stdout] | ^^^^^ help: change this to: `line` [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/changes.rs:187:38 [INFO] [stdout] | [INFO] [stdout] 187 | match file.lines.get(&line) { [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: you are using an explicit closure for copying elements [INFO] [stdout] --> src/changes.rs:253:42 [INFO] [stdout] | [INFO] [stdout] 253 | let mut lines_only_on_head: Vec<_> = only_on_head.iter().map(|k| *k).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `only_on_head.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/changes.rs:255:42 [INFO] [stdout] | [INFO] [stdout] 255 | let mut lines_only_on_base: Vec<_> = only_on_base.iter().map(|k| *k).collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `copied` method: `only_on_base.iter().copied()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/changes.rs:492:39 [INFO] [stdout] | [INFO] [stdout] 492 | assert!(present_keys.contains(&"file_p.py".to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `"file_p.py"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] = note: `#[warn(clippy::unnecessary_to_owned)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `to_string` [INFO] [stdout] --> src/changes.rs:493:39 [INFO] [stdout] | [INFO] [stdout] 493 | assert!(present_keys.contains(&"file1.go".to_string())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `"file1.go"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `files_array.get(0)` [INFO] [stdout] --> src/changes.rs:496:24 [INFO] [stdout] | [INFO] [stdout] 496 | let one_case = files_array.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `files_array.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/changes.rs:498:9 [INFO] [stdout] | [INFO] [stdout] 498 | assert_eq!(one_case.file_was_added_by_diff, 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] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 498 - assert_eq!(one_case.file_was_added_by_diff, false); [INFO] [stdout] 498 + assert!(!one_case.file_was_added_by_diff); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/changes.rs:499:9 [INFO] [stdout] | [INFO] [stdout] 499 | assert_eq!(one_case.file_was_removed_by_diff, 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] 499 - assert_eq!(one_case.file_was_removed_by_diff, false); [INFO] [stdout] 499 + assert!(!one_case.file_was_removed_by_diff); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/changes.rs:588:9 [INFO] [stdout] | [INFO] [stdout] 588 | assert_eq!(first_result_file.file_was_added_by_diff, 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] 588 - assert_eq!(first_result_file.file_was_added_by_diff, false); [INFO] [stdout] 588 + assert!(!first_result_file.file_was_added_by_diff); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/changes.rs:589:9 [INFO] [stdout] | [INFO] [stdout] 589 | assert_eq!(first_result_file.file_was_removed_by_diff, 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] 589 - assert_eq!(first_result_file.file_was_removed_by_diff, false); [INFO] [stdout] 589 + assert!(!first_result_file.file_was_removed_by_diff); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Map, {closure@src/changes.rs:1012:22: 1012:25}>` [INFO] [stdout] --> src/changes.rs:1011:13 [INFO] [stdout] | [INFO] [stdout] 1011 | / res.iter() [INFO] [stdout] 1012 | | .map(|b| b.head_name.to_string()) [INFO] [stdout] 1013 | | .into_iter() [INFO] [stdout] | |____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 1011 ~ res.iter() [INFO] [stdout] 1012 + .map(|b| b.head_name.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Map, {closure@src/changes.rs:1028:22: 1028:25}>` [INFO] [stdout] --> src/changes.rs:1027:13 [INFO] [stdout] | [INFO] [stdout] 1027 | / res.iter() [INFO] [stdout] 1028 | | .map(|b| b.base_name.to_string()) [INFO] [stdout] 1029 | | .into_iter() [INFO] [stdout] | |____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 1027 ~ res.iter() [INFO] [stdout] 1028 + .map(|b| b.base_name.to_string()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Map, {closure@src/changes.rs:1035:22: 1035:25}>` [INFO] [stdout] --> src/changes.rs:1034:13 [INFO] [stdout] | [INFO] [stdout] 1034 | / res.iter() [INFO] [stdout] 1035 | | .map(|b| b.file_was_added_by_diff) [INFO] [stdout] 1036 | | .into_iter() [INFO] [stdout] | |____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 1034 ~ res.iter() [INFO] [stdout] 1035 + .map(|b| b.file_was_added_by_diff) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Map, {closure@src/changes.rs:1042:22: 1042:25}>` [INFO] [stdout] --> src/changes.rs:1041:13 [INFO] [stdout] | [INFO] [stdout] 1041 | / res.iter() [INFO] [stdout] 1042 | | .map(|b| b.file_was_removed_by_diff) [INFO] [stdout] 1043 | | .into_iter() [INFO] [stdout] | |____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 1041 ~ res.iter() [INFO] [stdout] 1042 + .map(|b| b.file_was_removed_by_diff) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:15:9 [INFO] [stdout] | [INFO] [stdout] 15 | / return match self { [INFO] [stdout] 16 | | Coverage::Hit => 'h', [INFO] [stdout] 17 | | Coverage::Miss => 'm', [INFO] [stdout] 18 | | Coverage::Partial(_) => 'p', [INFO] [stdout] 19 | | Coverage::Ignore => 'i', [INFO] [stdout] 20 | | }; [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] 15 ~ match self { [INFO] [stdout] 16 + Coverage::Hit => 'h', [INFO] [stdout] 17 + Coverage::Miss => 'm', [INFO] [stdout] 18 + Coverage::Partial(_) => 'p', [INFO] [stdout] 19 + Coverage::Ignore => 'i', [INFO] [stdout] 20 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:37:17 [INFO] [stdout] | [INFO] [stdout] 37 | return 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] 37 - return 1.0; [INFO] [stdout] 37 + 1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | 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] 40 - return 0.0; [INFO] [stdout] 40 + 0.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:43:17 [INFO] [stdout] | [INFO] [stdout] 43 | return f.to_f64().unwrap(); [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] 43 - return f.to_f64().unwrap(); [INFO] [stdout] 43 + f.to_f64().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:46:17 [INFO] [stdout] | [INFO] [stdout] 46 | return -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] 46 - return -1.0; [INFO] [stdout] 46 + -1.0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cov.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | return a; [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] 69 - return a; [INFO] [stdout] 69 + a [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/diff.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | None => return (HashSet::new(), HashSet::new()), [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] 25 - None => return (HashSet::new(), HashSet::new()), [INFO] [stdout] 25 + None => (HashSet::new(), HashSet::new()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/diff.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | return (only_on_base, only_on_head); [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] 46 - return (only_on_base, only_on_head); [INFO] [stdout] 46 + (only_on_base, only_on_head) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | return self.hits + self.misses + self.partials; [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] 36 - return self.hits + self.misses + self.partials; [INFO] [stdout] 36 + self.hits + self.misses + self.partials [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | return self.get_line_count() == 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] 53 - return self.get_line_count() == 0; [INFO] [stdout] 53 + self.get_line_count() == 0 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:92:9 [INFO] [stdout] | [INFO] [stdout] 92 | return res; [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] 92 - return res; [INFO] [stdout] 92 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/file.rs:74:13 [INFO] [stdout] | [INFO] [stdout] 74 | / match &report_line.complexity { [INFO] [stdout] 75 | | Some(value) => match value { [INFO] [stdout] 76 | | line::Complexity::SingleComplexity(v) => { [INFO] [stdout] 77 | | res.complexity += v; [INFO] [stdout] ... | [INFO] [stdout] 84 | | None => {} [INFO] [stdout] 85 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 74 ~ if let Some(value) = &report_line.complexity { match value { [INFO] [stdout] 75 + line::Complexity::SingleComplexity(v) => { [INFO] [stdout] 76 + res.complexity += v; [INFO] [stdout] 77 + } [INFO] [stdout] 78 + line::Complexity::TotalComplexity((n, d)) => { [INFO] [stdout] 79 + res.complexity += n; [INFO] [stdout] 80 + res.complexity_total += d; [INFO] [stdout] 81 + } [INFO] [stdout] 82 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | / return match self.lines.keys().max() { [INFO] [stdout] 103 | | Some(expr) => *expr + 1, [INFO] [stdout] 104 | | None => 0, [INFO] [stdout] 105 | | }; [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] 102 ~ match self.lines.keys().max() { [INFO] [stdout] 103 + Some(expr) => *expr + 1, [INFO] [stdout] 104 + None => 0, [INFO] [stdout] 105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:114:9 [INFO] [stdout] | [INFO] [stdout] 114 | return FileTotals::from_lines(all_lines.iter().collect()); [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] 114 - return FileTotals::from_lines(all_lines.iter().collect()); [INFO] [stdout] 114 + FileTotals::from_lines(all_lines.iter().collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | return book_reviews; [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] 150 - return book_reviews; [INFO] [stdout] 150 + book_reviews [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/file.rs:124:17 [INFO] [stdout] | [INFO] [stdout] 124 | / match flag_mapping.get(&sess.id) { [INFO] [stdout] 125 | | Some(flags) => { [INFO] [stdout] 126 | | for f in flags { [INFO] [stdout] 127 | | let mut stat = [INFO] [stdout] ... | [INFO] [stdout] 146 | | None => {} [INFO] [stdout] 147 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 124 ~ if let Some(flags) = flag_mapping.get(&sess.id) { [INFO] [stdout] 125 + for f in flags { [INFO] [stdout] 126 + let mut stat = [INFO] [stdout] 127 + book_reviews.entry(f.to_string()).or_insert(FileTotals { [INFO] [stdout] 128 + hits: 0, [INFO] [stdout] 129 + misses: 0, [INFO] [stdout] 130 + partials: 0, [INFO] [stdout] 131 + branches: 0, [INFO] [stdout] 132 + sessions: 0, [INFO] [stdout] 133 + complexity: 0, [INFO] [stdout] 134 + complexity_total: 0, [INFO] [stdout] 135 + methods: 0, [INFO] [stdout] 136 + }); [INFO] [stdout] 137 + match sess.coverage { [INFO] [stdout] 138 + cov::Coverage::Hit => stat.hits += 1, [INFO] [stdout] 139 + cov::Coverage::Miss => stat.misses += 1, [INFO] [stdout] 140 + cov::Coverage::Partial(_) => stat.partials += 1, [INFO] [stdout] 141 + cov::Coverage::Ignore => {} [INFO] [stdout] 142 + } [INFO] [stdout] 143 + } [INFO] [stdout] 144 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/file.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | return FileTotals::from_lines(self.lines.values().collect()); [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] 154 - return FileTotals::from_lines(self.lines.values().collect()); [INFO] [stdout] 154 + FileTotals::from_lines(self.lines.values().collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line.rs:32:54 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn filter_by_session_ids(&self, session_ids: &Vec) -> Option { [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] 32 - pub fn filter_by_session_ids(&self, session_ids: &Vec) -> Option { [INFO] [stdout] 32 + pub fn filter_by_session_ids(&self, session_ids: &[i32]) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/line.rs:33:48 [INFO] [stdout] | [INFO] [stdout] 33 | let valid_sessions: Vec = self [INFO] [stdout] | ________________________________________________^ [INFO] [stdout] 34 | | .sessions [INFO] [stdout] 35 | | .iter() [INFO] [stdout] 36 | | .filter(|k| session_ids.contains(&k.id)) [INFO] [stdout] 37 | | .map(|x| x.clone()) [INFO] [stdout] | |_______________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 33 ~ let valid_sessions: Vec = self [INFO] [stdout] 34 + .sessions [INFO] [stdout] 35 + .iter() [INFO] [stdout] 36 + .filter(|k| session_ids.contains(&k.id)).cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/line.rs:56:9 [INFO] [stdout] | [INFO] [stdout] 56 | return cov::Coverage::join_coverages(valid_sessions); [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] 56 - return cov::Coverage::join_coverages(valid_sessions); [INFO] [stdout] 56 + cov::Coverage::join_coverages(valid_sessions) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line.rs:54:57 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn calculate_sessions_coverage(&self, sessions: &Vec) -> cov::Coverage { [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] 54 - pub fn calculate_sessions_coverage(&self, sessions: &Vec) -> cov::Coverage { [INFO] [stdout] 54 + pub fn calculate_sessions_coverage(&self, sessions: &[LineSession]) -> cov::Coverage { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/line.rs:72:21 [INFO] [stdout] | [INFO] [stdout] 72 | None => return None, [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] 72 - None => return None, [INFO] [stdout] 72 + None => None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/line.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | return Some(Complexity::SingleComplexity(complexity)); [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] 78 - return Some(Complexity::SingleComplexity(complexity)); [INFO] [stdout] 78 + Some(Complexity::SingleComplexity(complexity)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/line.rs:59:59 [INFO] [stdout] | [INFO] [stdout] 59 | pub fn calculate_sessions_complexity(&self, sessions: &Vec) -> Option { [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] 59 - pub fn calculate_sessions_complexity(&self, sessions: &Vec) -> Option { [INFO] [stdout] 59 + pub fn calculate_sessions_complexity(&self, sessions: &[LineSession]) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | return Err(ParsingError::UnexpectedValue); [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] 36 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 36 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:38:24 [INFO] [stdout] | [INFO] [stdout] 38 | Value::Null => return Ok(line::CoverageType::Standard), [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] 38 - Value::Null => return Ok(line::CoverageType::Standard), [INFO] [stdout] 38 + Value::Null => Ok(line::CoverageType::Standard), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | return Err(ParsingError::UnexpectedValue); [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] 40 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 40 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:48:13 [INFO] [stdout] | [INFO] [stdout] 48 | / return match o.as_i64() { [INFO] [stdout] 49 | | Some(number) => { [INFO] [stdout] 50 | | if number > 0 { [INFO] [stdout] 51 | | Ok(cov::Coverage::Hit) [INFO] [stdout] ... | [INFO] [stdout] 67 | | }, [INFO] [stdout] 68 | | }; [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] 48 ~ match o.as_i64() { [INFO] [stdout] 49 + Some(number) => { [INFO] [stdout] 50 + if number > 0 { [INFO] [stdout] 51 + Ok(cov::Coverage::Hit) [INFO] [stdout] 52 + } else if number == -1 { [INFO] [stdout] 53 + Ok(cov::Coverage::Ignore) [INFO] [stdout] 54 + } else { [INFO] [stdout] 55 + Ok(cov::Coverage::Miss) [INFO] [stdout] 56 + } [INFO] [stdout] 57 + } [INFO] [stdout] 58 + None => match o.as_f64() { [INFO] [stdout] 59 + Some(alternative_number) => { [INFO] [stdout] 60 + if alternative_number > 0.0 { [INFO] [stdout] 61 + Ok(cov::Coverage::Hit) [INFO] [stdout] 62 + } else { [INFO] [stdout] 63 + Ok(cov::Coverage::Miss) [INFO] [stdout] 64 + } [INFO] [stdout] 65 + } [INFO] [stdout] 66 + None => Err(ParsingError::UnexpectedValue), [INFO] [stdout] 67 + }, [INFO] [stdout] 68 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:82:17 [INFO] [stdout] | [INFO] [stdout] 82 | return Ok(cov::Coverage::Partial(f)); [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] 82 - return Ok(cov::Coverage::Partial(f)); [INFO] [stdout] 82 + Ok(cov::Coverage::Partial(f)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:86:17 [INFO] [stdout] | [INFO] [stdout] 86 | / return if val > 0 { [INFO] [stdout] 87 | | Ok(cov::Coverage::Hit) [INFO] [stdout] 88 | | } else { [INFO] [stdout] 89 | | Ok(cov::Coverage::Miss) [INFO] [stdout] 90 | | }; [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] 86 ~ if val > 0 { [INFO] [stdout] 87 + Ok(cov::Coverage::Hit) [INFO] [stdout] 88 + } else { [INFO] [stdout] 89 + Ok(cov::Coverage::Miss) [INFO] [stdout] 90 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | return Err(ParsingError::UnexpectedValue); [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] 94 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 94 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:96:24 [INFO] [stdout] | [INFO] [stdout] 96 | Value::Null => return Ok(cov::Coverage::Ignore), [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] 96 - Value::Null => return Ok(cov::Coverage::Ignore), [INFO] [stdout] 96 + Value::Null => Ok(cov::Coverage::Ignore), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:101:13 [INFO] [stdout] | [INFO] [stdout] 101 | return Err(ParsingError::UnexpectedValue); [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] 101 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 101 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:104:13 [INFO] [stdout] | [INFO] [stdout] 104 | return Err(ParsingError::UnexpectedValue); [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] 104 - return Err(ParsingError::UnexpectedValue); [INFO] [stdout] 104 + Err(ParsingError::UnexpectedValue) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:112:13 [INFO] [stdout] | [INFO] [stdout] 112 | / return Ok(Some(line::Complexity::SingleComplexity( [INFO] [stdout] 113 | | o.as_i64().unwrap() as i32, [INFO] [stdout] 114 | | ))); [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] 112 ~ Ok(Some(line::Complexity::SingleComplexity( [INFO] [stdout] 113 + o.as_i64().unwrap() as i32, [INFO] [stdout] 114 ~ ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:116:29 [INFO] [stdout] | [INFO] [stdout] 116 | Value::String(_) => return Err(ParsingError::UnexpectedValue), [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] 116 - Value::String(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 116 + Value::String(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | / return Ok(Some(line::Complexity::TotalComplexity(( [INFO] [stdout] 119 | | a[0].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 120 | | a[1].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 121 | | )))); [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] 118 ~ Ok(Some(line::Complexity::TotalComplexity(( [INFO] [stdout] 119 + a[0].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 120 + a[1].as_i64().ok_or(ParsingError::UnexpectedValue)? as i32, [INFO] [stdout] 121 ~ )))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:123:24 [INFO] [stdout] | [INFO] [stdout] 123 | Value::Null => return Ok(None), [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] 123 - Value::Null => return Ok(None), [INFO] [stdout] 123 + Value::Null => Ok(None), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:124:27 [INFO] [stdout] | [INFO] [stdout] 124 | Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [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] 124 - Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 124 + Value::Bool(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:125:29 [INFO] [stdout] | [INFO] [stdout] 125 | Value::Object(_) => return Err(ParsingError::UnexpectedValue), [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] 125 - Value::Object(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 125 + Value::Object(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:137:29 [INFO] [stdout] | [INFO] [stdout] 137 | Value::Number(_) => return Err(ParsingError::UnexpectedValue), [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] 137 - Value::Number(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 137 + Value::Number(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:138:29 [INFO] [stdout] | [INFO] [stdout] 138 | Value::String(_) => return Err(ParsingError::UnexpectedValue), [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] 138 - Value::String(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 138 + Value::String(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:161:13 [INFO] [stdout] | [INFO] [stdout] 161 | / return Ok(LineType::Content(line::ReportLine { [INFO] [stdout] 162 | | coverage: parse_coverage(&array_data[0])?, [INFO] [stdout] 163 | | coverage_type: if array_data.len() > 1 { [INFO] [stdout] 164 | | parse_coverage_type(&array_data[1])? [INFO] [stdout] ... | [INFO] [stdout] 173 | | })?, [INFO] [stdout] 174 | | })); [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] 161 ~ Ok(LineType::Content(line::ReportLine { [INFO] [stdout] 162 + coverage: parse_coverage(&array_data[0])?, [INFO] [stdout] 163 + coverage_type: if array_data.len() > 1 { [INFO] [stdout] 164 + parse_coverage_type(&array_data[1])? [INFO] [stdout] 165 + } else { [INFO] [stdout] 166 + line::CoverageType::Standard [INFO] [stdout] 167 + }, [INFO] [stdout] 168 + sessions: sessions, [INFO] [stdout] 169 + complexity: parse_complexity(if array_data.len() > 4 { [INFO] [stdout] 170 + &array_data[4] [INFO] [stdout] 171 + } else { [INFO] [stdout] 172 + &Value::Null [INFO] [stdout] 173 + })?, [INFO] [stdout] 174 ~ })) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:176:24 [INFO] [stdout] | [INFO] [stdout] 176 | Value::Null => return Ok(LineType::NoFile), [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] 176 - Value::Null => return Ok(LineType::NoFile), [INFO] [stdout] 176 + Value::Null => Ok(LineType::NoFile), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:177:27 [INFO] [stdout] | [INFO] [stdout] 177 | Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [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] 177 - Value::Bool(_) => return Err(ParsingError::UnexpectedValue), [INFO] [stdout] 177 + Value::Bool(_) => Err(ParsingError::UnexpectedValue), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:178:29 [INFO] [stdout] | [INFO] [stdout] 178 | Value::Object(_) => return Ok(LineType::Details), [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] 178 - Value::Object(_) => return Ok(LineType::Details), [INFO] [stdout] 178 + Value::Object(_) => Ok(LineType::Details), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:136:32 [INFO] [stdout] | [INFO] [stdout] 136 | match serde_json::from_str(&line).unwrap() { [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:253:5 [INFO] [stdout] | [INFO] [stdout] 253 | / return Ok(report::Report { [INFO] [stdout] 254 | | report_files: filename_to_mapping, [INFO] [stdout] 255 | | session_mapping: session_mapping, [INFO] [stdout] 256 | | }); [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] 253 ~ Ok(report::Report { [INFO] [stdout] 254 + report_files: filename_to_mapping, [INFO] [stdout] 255 + session_mapping: session_mapping, [INFO] [stdout] 256 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:187:82 [INFO] [stdout] | [INFO] [stdout] 187 | let all_lines_with_errors: Vec<_> = chunks.par_lines().map(|line| parse_line(&line)).collect(); [INFO] [stdout] | ^^^^^ help: change this to: `line` [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: length comparison to zero [INFO] [stdout] --> src/parser.rs:190:8 [INFO] [stdout] | [INFO] [stdout] 190 | if all_lines.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `all_lines.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: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:202:39 [INFO] [stdout] | [INFO] [stdout] 202 | all_report_files.push(match current_report_lines { [INFO] [stdout] | _______________________________________^ [INFO] [stdout] 203 | | Some(lines) => Some(file::ReportFile { lines }), [INFO] [stdout] 204 | | None => None, [INFO] [stdout] 205 | | }); [INFO] [stdout] | |_________________^ help: try: `current_report_lines.map(|lines| file::ReportFile { lines })` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/parser.rs:219:17 [INFO] [stdout] | [INFO] [stdout] 219 | / match current_report_lines.as_mut() { [INFO] [stdout] 220 | | Some(lines) => { [INFO] [stdout] 221 | | lines.insert(line_count, report_line); [INFO] [stdout] ... | [INFO] [stdout] 224 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 219 ~ if let Some(lines) = current_report_lines.as_mut() { [INFO] [stdout] 220 + lines.insert(line_count, report_line); [INFO] [stdout] 221 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:229:27 [INFO] [stdout] | [INFO] [stdout] 229 | all_report_files.push(match current_report_lines { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 230 | | Some(v) => Some(file::ReportFile { lines: v }), [INFO] [stdout] 231 | | None => None, [INFO] [stdout] 232 | | }); [INFO] [stdout] | |_____^ help: try: `current_report_lines.map(|v| file::ReportFile { lines: v })` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::Map, {closure@src/parser.rs:235:14: 235:22}>` [INFO] [stdout] --> src/parser.rs:233:52 [INFO] [stdout] | [INFO] [stdout] 233 | let number_to_filename: HashMap = filenames [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 234 | | .iter() [INFO] [stdout] 235 | | .map(|(x, y)| (*y, x.to_string())) [INFO] [stdout] 236 | | .into_iter() [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 233 ~ let number_to_filename: HashMap = filenames [INFO] [stdout] 234 + .iter() [INFO] [stdout] 235 + .map(|(x, y)| (*y, x.to_string())) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::iter::FilterMap>>, {closure@src/parser.rs:241:21: 241:45}>` [INFO] [stdout] --> src/parser.rs:238:66 [INFO] [stdout] | [INFO] [stdout] 238 | let filename_to_mapping: HashMap = all_report_files [INFO] [stdout] | __________________________________________________________________^ [INFO] [stdout] 239 | | .into_iter() [INFO] [stdout] 240 | | .enumerate() [INFO] [stdout] 241 | | .filter_map(|(current_count, value)| match value { [INFO] [stdout] ... | [INFO] [stdout] 250 | | }) [INFO] [stdout] 251 | | .into_iter() [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 238 ~ let filename_to_mapping: HashMap = all_report_files [INFO] [stdout] 239 + .into_iter() [INFO] [stdout] 240 + .enumerate() [INFO] [stdout] 241 + .filter_map(|(current_count, value)| match value { [INFO] [stdout] 242 + Some(file) => { [INFO] [stdout] 243 + let filename = number_to_filename.get(&(current_count as i32)); [INFO] [stdout] 244 + match filename { [INFO] [stdout] 245 + Some(val) => Some((val.to_string(), file)), [INFO] [stdout] 246 + None => None, [INFO] [stdout] 247 + } [INFO] [stdout] 248 + } [INFO] [stdout] 249 + None => None, [INFO] [stdout] 250 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/parser.rs:244:17 [INFO] [stdout] | [INFO] [stdout] 244 | / match filename { [INFO] [stdout] 245 | | Some(val) => Some((val.to_string(), file)), [INFO] [stdout] 246 | | None => None, [INFO] [stdout] 247 | | } [INFO] [stdout] | |_________________^ help: try: `filename.map(|val| (val.to_string(), file))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:85:9 [INFO] [stdout] | [INFO] [stdout] 85 | / return Some(GroupImpact { [INFO] [stdout] 86 | | group_name: self.group_name.to_owned(), [INFO] [stdout] 87 | | files: files_impacts, [INFO] [stdout] 88 | | }); [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] 85 ~ Some(GroupImpact { [INFO] [stdout] 86 + group_name: self.group_name.to_owned(), [INFO] [stdout] 87 + files: files_impacts, [INFO] [stdout] 88 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/profiling.rs:40:16 [INFO] [stdout] | [INFO] [stdout] 40 | files: &Vec, [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] 40 - files: &Vec, [INFO] [stdout] 40 + files: &[changes::FileChangesAnalysis], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/profiling.rs:80:14 [INFO] [stdout] | [INFO] [stdout] 80 | .filter_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for copying elements [INFO] [stdout] --> src/profiling.rs:64:56 [INFO] [stdout] | [INFO] [stdout] 64 | let impacted_lines: Vec = profiling_lines [INFO] [stdout] | ________________________________________________________^ [INFO] [stdout] 65 | | .intersection(&changed_lines) [INFO] [stdout] 66 | | .map(|x| *x) [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] help: consider calling the dedicated `copied` method [INFO] [stdout] | [INFO] [stdout] 64 ~ let impacted_lines: Vec = profiling_lines [INFO] [stdout] 65 + .intersection(&changed_lines).copied() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:110:17 [INFO] [stdout] | [INFO] [stdout] 110 | / return Ok(ProfilingData { [INFO] [stdout] 111 | | groups: result.groups, [INFO] [stdout] 112 | | }) [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] 110 ~ Ok(ProfilingData { [INFO] [stdout] 111 + groups: result.groups, [INFO] [stdout] 112 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / return match serde_json::to_string(&res) { [INFO] [stdout] 126 | | Ok(value) => Ok(value), [INFO] [stdout] 127 | | Err(_) => Err(PyException::new_err("Error serializing impact")), [INFO] [stdout] 128 | | }; [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] 125 ~ match serde_json::to_string(&res) { [INFO] [stdout] 126 + Ok(value) => Ok(value), [INFO] [stdout] 127 + Err(_) => Err(PyException::new_err("Error serializing impact")), [INFO] [stdout] 128 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/profiling.rs:142:9 [INFO] [stdout] | [INFO] [stdout] 142 | / return self [INFO] [stdout] 143 | | .groups [INFO] [stdout] 144 | | .iter() [INFO] [stdout] 145 | | .map(|group| group.find_impacted_endpoints(&k.files)) [INFO] [stdout] 146 | | .filter_map(|x| x) [INFO] [stdout] 147 | | .collect(); [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] 142 ~ self [INFO] [stdout] 143 + .groups [INFO] [stdout] 144 + .iter() [INFO] [stdout] 145 + .map(|group| group.find_impacted_endpoints(&k.files)) [INFO] [stdout] 146 + .filter_map(|x| x) [INFO] [stdout] 147 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/profiling.rs:146:14 [INFO] [stdout] | [INFO] [stdout] 146 | .filter_map(|x| x) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:90:9 [INFO] [stdout] | [INFO] [stdout] 90 | return Ok(Some(self.complexity)); [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] 90 - return Ok(Some(self.complexity)); [INFO] [stdout] 90 + Ok(Some(self.complexity)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | return t; [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] 110 - return t; [INFO] [stdout] 110 + t [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | return res; [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] 136 - return res; [INFO] [stdout] 136 + res [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/report.rs:129:50 [INFO] [stdout] | [INFO] [stdout] 129 | pub fn get_sessions_from_flags(&self, flags: &Vec) -> Vec { [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] 129 - pub fn get_sessions_from_flags(&self, flags: &Vec) -> Vec { [INFO] [stdout] 129 + pub fn get_sessions_from_flags(&self, flags: &[String]) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:141:34 [INFO] [stdout] | [INFO] [stdout] 141 | Some(file_report) => return Some(file_report), [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] 141 - Some(file_report) => return Some(file_report), [INFO] [stdout] 141 + Some(file_report) => Some(file_report), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:143:17 [INFO] [stdout] | [INFO] [stdout] 143 | return None; [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] 143 - return None; [INFO] [stdout] 143 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/report.rs:161:9 [INFO] [stdout] | [INFO] [stdout] 161 | return book_reviews; [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] 161 - return book_reviews; [INFO] [stdout] 161 + book_reviews [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/report.rs:158:32 [INFO] [stdout] | [INFO] [stdout] 158 | current.add_up(&totals) [INFO] [stdout] | ^^^^^^^ help: change this to: `totals` [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: unneeded `return` statement [INFO] [stdout] --> src/report.rs:175:9 [INFO] [stdout] | [INFO] [stdout] 175 | return Ok(res); [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] 175 - return Ok(res); [INFO] [stdout] 175 + Ok(res) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:28:20 [INFO] [stdout] | [INFO] [stdout] 28 | Ok(val) => return Ok(val), [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 - Ok(val) => return Ok(val), [INFO] [stdout] 28 + Ok(val) => Ok(val), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:29:19 [INFO] [stdout] | [INFO] [stdout] 29 | Err(_) => return Err(PyException::new_err("Unable to parse rust report")), [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 - Err(_) => return Err(PyException::new_err("Unable to parse rust report")), [INFO] [stdout] 29 + Err(_) => Err(PyException::new_err("Unable to parse rust report")), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 39 | / return match serde_json::to_string(&changes::run_comparison_analysis( [INFO] [stdout] 40 | | base_report, [INFO] [stdout] 41 | | head_report, [INFO] [stdout] 42 | | &diff, [INFO] [stdout] ... | [INFO] [stdout] 45 | | Err(_) => Err(PyException::new_err("Error serializing changes")), [INFO] [stdout] 46 | | }; [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] 39 ~ match serde_json::to_string(&changes::run_comparison_analysis( [INFO] [stdout] 40 + base_report, [INFO] [stdout] 41 + head_report, [INFO] [stdout] 42 + &diff, [INFO] [stdout] 43 + )) { [INFO] [stdout] 44 + Ok(value) => Ok(value), [INFO] [stdout] 45 + Err(_) => Err(PyException::new_err("Error serializing changes")), [INFO] [stdout] 46 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/analyzers/filter.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 19 | impl FilterAnalyzer { [INFO] [stdout] | -------------- [INFO] [stdout] | | [INFO] [stdout] | `FilterAnalyzer` is not local [INFO] [stdout] | `FilterAnalyzer` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/analyzers/simple.rs:8:1 [INFO] [stdout] | [INFO] [stdout] 8 | #[pymethods] [INFO] [stdout] | -^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PyClassImplCollector` is not local [INFO] [stdout] | `PyClassNewTextSignature` is not local [INFO] [stdout] | move the `impl` block outside of this function `trampoline` and up 4 bodies [INFO] [stdout] 9 | impl SimpleAnalyzer { [INFO] [stdout] | -------------- [INFO] [stdout] | | [INFO] [stdout] | `SimpleAnalyzer` is not local [INFO] [stdout] | `SimpleAnalyzer` is not local [INFO] [stdout] | [INFO] [stdout] = note: the attribute macro `pymethods` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the attribute macro `pymethods` may come from an old version of the `pyo3_macros` crate, try updating your dependency with `cargo update -p pyo3_macros` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this warning originates in the attribute macro `pymethods` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/profiling.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 166 | file.read_to_string(&mut contents); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 166 | let _ = file.read_to_string(&mut contents); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.63s [INFO] running `Command { std: "docker" "inspect" "aa8dbdf67b085eab39a47169cccfb7eed0cbbf97f0a03f6e1c0f9d2e74a76285", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aa8dbdf67b085eab39a47169cccfb7eed0cbbf97f0a03f6e1c0f9d2e74a76285", kill_on_drop: false }` [INFO] [stdout] aa8dbdf67b085eab39a47169cccfb7eed0cbbf97f0a03f6e1c0f9d2e74a76285