[INFO] cloning repository https://github.com/avimallu/BorrowChecker [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/avimallu/BorrowChecker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Favimallu%2FBorrowChecker", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Favimallu%2FBorrowChecker'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 1b03e2e9772bf60fe4be3a38c206c776f83fcf0d [INFO] linting avimallu/BorrowChecker against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Favimallu%2FBorrowChecker" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/avimallu/BorrowChecker [INFO] finished tweaking git repo https://github.com/avimallu/BorrowChecker [INFO] tweaked toml for git repo https://github.com/avimallu/BorrowChecker written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/avimallu/BorrowChecker 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/avimallu/BorrowChecker 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded rust_decimal_macros v1.37.1 [INFO] [stderr] Downloaded warnings v0.2.1 [INFO] [stderr] Downloaded gloo-storage v0.3.0 [INFO] [stderr] Downloaded borsh-derive v1.3.0 [INFO] [stderr] Downloaded borsh v1.3.0 [INFO] [stderr] Downloaded cocoa-foundation v0.1.2 [INFO] [stderr] Downloaded zvariant_derive v4.0.0 [INFO] [stderr] Downloaded zbus_macros v4.0.1 [INFO] [stderr] Downloaded serde_qs v0.12.0 [INFO] [stderr] Downloaded async-recursion v1.1.1 [INFO] [stderr] Downloaded server_fn v0.6.15 [INFO] [stderr] Downloaded dioxus-fullstack v0.6.3 [INFO] [stderr] Downloaded blocking v1.6.2 [INFO] [stderr] Downloaded dioxus_server_macro v0.6.2 [INFO] [stderr] Downloaded objc2 v0.6.1 [INFO] [stderr] Downloaded sledgehammer_bindgen v0.6.0 [INFO] [stderr] Downloaded gtk v0.18.2 [INFO] [stderr] Downloaded warnings-macro v0.2.0 [INFO] [stderr] Downloaded objc2-foundation v0.3.1 [INFO] [stderr] Downloaded wry v0.45.0 [INFO] [stderr] Downloaded generational-box v0.6.2 [INFO] [stderr] Downloaded muda v0.11.5 [INFO] [stderr] Downloaded io-uring v0.7.8 [INFO] [stderr] Downloaded gtk-sys v0.18.2 [INFO] [stderr] Downloaded server_fn_macro v0.6.15 [INFO] [stderr] Downloaded server_fn_macro_default v0.6.15 [INFO] [stderr] Downloaded cfb v0.7.3 [INFO] [stderr] Downloaded enumset_derive v0.12.0 [INFO] [stderr] Downloaded sledgehammer_utils v0.3.1 [INFO] [stderr] Downloaded objc2-core-graphics v0.3.1 [INFO] [stderr] Downloaded dioxus-desktop v0.6.3 [INFO] [stderr] Downloaded dioxus-core v0.6.3 [INFO] [stderr] Downloaded objc2-app-kit v0.3.1 [INFO] [stderr] Downloaded euclid v0.22.11 [INFO] [stderr] Downloaded xdg-home v1.3.0 [INFO] [stderr] Downloaded dioxus-free-icons v0.9.0 [INFO] [stderr] Downloaded zbus v4.0.1 [INFO] [stderr] Downloaded objc2-core-foundation v0.3.1 [INFO] [stderr] Downloaded dioxus-html v0.6.3 [INFO] [stderr] Downloaded dioxus-web v0.6.3 [INFO] [stderr] Downloaded dioxus-logger v0.6.2 [INFO] [stderr] Downloaded cocoa v0.26.1 [INFO] [stderr] Downloaded tokio v1.46.1 [INFO] [stderr] Downloaded atk v0.18.2 [INFO] [stderr] Downloaded dioxus-router v0.6.3 [INFO] [stderr] Downloaded tungstenite v0.23.0 [INFO] [stderr] Downloaded dioxus-document v0.6.3 [INFO] [stderr] Downloaded dioxus-rsx v0.6.2 [INFO] [stderr] Downloaded keyboard-types v0.7.0 [INFO] [stderr] Downloaded ashpd v0.8.1 [INFO] [stderr] Downloaded sledgehammer_bindgen_macro v0.6.1 [INFO] [stderr] Downloaded global-hotkey v0.5.5 [INFO] [stderr] Downloaded infer v0.11.0 [INFO] [stderr] Downloaded cocoa v0.25.0 [INFO] [stderr] Downloaded zvariant v4.0.0 [INFO] [stderr] Downloaded libappindicator v0.9.0 [INFO] [stderr] Downloaded tao v0.30.8 [INFO] [stderr] Downloaded gdk-sys v0.18.2 [INFO] [stderr] Downloaded muda v0.15.3 [INFO] [stderr] Downloaded block2 v0.6.1 [INFO] [stderr] Downloaded webbrowser v0.8.15 [INFO] [stderr] Downloaded gdk v0.18.2 [INFO] [stderr] Downloaded dioxus-config-macro v0.6.2 [INFO] [stderr] Downloaded dioxus-lib v0.6.2 [INFO] [stderr] Downloaded dioxus-core-macro v0.6.3 [INFO] [stderr] Downloaded dioxus-html-internal-macro v0.6.2 [INFO] [stderr] Downloaded enumset v1.1.7 [INFO] [stderr] Downloaded dioxus-signals v0.6.3 [INFO] [stderr] Downloaded lazy-js-bundle v0.6.2 [INFO] [stderr] Downloaded const-serialize-macro v0.6.2 [INFO] [stderr] Downloaded const-serialize v0.6.2 [INFO] [stderr] Downloaded dioxus-cli-config v0.6.3 [INFO] [stderr] Downloaded manganis-core v0.6.2 [INFO] [stderr] Downloaded manganis-macro v0.6.2 [INFO] [stderr] Downloaded manganis v0.6.2 [INFO] [stderr] Downloaded uds_windows v1.1.0 [INFO] [stderr] Downloaded zvariant_utils v1.1.0 [INFO] [stderr] Downloaded libxdo v0.6.0 [INFO] [stderr] Downloaded tray-icon v0.19.3 [INFO] [stderr] Downloaded cocoa-foundation v0.2.1 [INFO] [stderr] Downloaded gdkx11-sys v0.18.2 [INFO] [stderr] Downloaded atk-sys v0.18.2 [INFO] [stderr] Downloaded dioxus-router-macro v0.6.3 [INFO] [stderr] Downloaded dioxus-devtools-types v0.6.2 [INFO] [stderr] Downloaded dioxus-history v0.6.2 [INFO] [stderr] Downloaded dioxus-core-types v0.6.2 [INFO] [stderr] Downloaded async-broadcast v0.7.2 [INFO] [stderr] Downloaded zbus_names v3.0.0 [INFO] [stderr] Downloaded enumflags2_derive v0.7.12 [INFO] [stderr] Downloaded rfd v0.14.1 [INFO] [stderr] Downloaded redox_users v0.5.0 [INFO] [stderr] Downloaded dioxus-mobile v0.6.2 [INFO] [stderr] Downloaded dioxus-devtools v0.6.2 [INFO] [stderr] Downloaded longest-increasing-subsequence v0.1.0 [INFO] [stderr] Downloaded rust_decimal v1.37.2 [INFO] [stderr] Downloaded enumflags2 v0.7.12 [INFO] [stderr] Downloaded dispatch2 v0.3.0 [INFO] [stderr] Downloaded gdkx11 v0.18.2 [INFO] [stderr] Downloaded gtk3-macros v0.18.2 [INFO] [stderr] Downloaded dlopen2_derive v0.4.1 [INFO] [stderr] Downloaded libappindicator-sys v0.9.0 [INFO] [stderr] Downloaded libxdo-sys v0.11.0 [INFO] [stderr] Downloaded windows-version v0.1.4 [INFO] [stderr] Downloaded indexmap v2.10.0 [INFO] [stderr] Downloaded endi v1.1.0 [INFO] [stderr] Downloaded gdkwayland-sys v0.18.2 [INFO] [stderr] Downloaded libredox v0.1.4 [INFO] [stderr] Downloaded dioxus-hooks v0.6.2 [INFO] [stderr] Downloaded dioxus-interpreter-js v0.6.2 [INFO] [stderr] Downloaded dioxus v0.6.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 94b5d69c0898bd8f60748c115d7e08abd80cf7c5187d6e0ad6c8ba267f41aef6 [INFO] running `Command { std: "docker" "start" "-a" "94b5d69c0898bd8f60748c115d7e08abd80cf7c5187d6e0ad6c8ba267f41aef6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "94b5d69c0898bd8f60748c115d7e08abd80cf7c5187d6e0ad6c8ba267f41aef6", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "94b5d69c0898bd8f60748c115d7e08abd80cf7c5187d6e0ad6c8ba267f41aef6", kill_on_drop: false }` [INFO] [stdout] 94b5d69c0898bd8f60748c115d7e08abd80cf7c5187d6e0ad6c8ba267f41aef6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 96fb79d6f50d5f28698536ef483269445a59769fda2943ed922ced03577908cc [INFO] running `Command { std: "docker" "start" "-a" "96fb79d6f50d5f28698536ef483269445a59769fda2943ed922ced03577908cc", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Checking cfg-if v1.0.1 [INFO] [stderr] Compiling rustversion v1.0.21 [INFO] [stderr] Compiling libc v0.2.174 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling wasm-bindgen-shared v0.2.100 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling log v0.4.27 [INFO] [stderr] Compiling bumpalo v3.19.0 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Checking pin-project-lite v0.2.16 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Compiling wasm-bindgen v0.2.100 [INFO] [stderr] Checking dioxus-core-types v0.6.2 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Compiling unicode-xid v0.2.6 [INFO] [stderr] Checking slab v0.4.10 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Compiling proc-macro2-diagnostics v0.10.1 [INFO] [stderr] Compiling lazy-js-bundle v0.6.2 [INFO] [stderr] Checking longest-increasing-subsequence v0.1.0 [INFO] [stderr] Compiling typenum v1.18.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking bitflags v2.9.1 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling zerocopy v0.8.26 [INFO] [stderr] Checking memchr v2.7.5 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling dioxus-document v0.6.3 [INFO] [stderr] Checking keyboard-types v0.7.0 [INFO] [stderr] Checking bytes v1.10.1 [INFO] [stderr] Compiling dioxus-interpreter-js v0.6.2 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Compiling dioxus-web v0.6.3 [INFO] [stderr] Checking sledgehammer_utils v0.3.1 [INFO] [stderr] Checking thread_local v1.1.9 [INFO] [stderr] Compiling dunce v1.0.5 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking tracing-subscriber v0.3.19 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking urlencoding v2.1.3 [INFO] [stderr] Checking syn v2.0.104 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking unicode-width v0.2.1 [INFO] [stderr] Checking http v1.3.1 [INFO] [stderr] Checking getrandom v0.2.16 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking generic-array v0.14.7 [INFO] [stderr] Compiling const_format_proc_macros v0.2.34 [INFO] [stderr] Compiling dioxus-config-macro v0.6.2 [INFO] [stderr] Checking euclid v0.22.11 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking comfy-table v7.1.4 [INFO] [stderr] Checking const_format v0.2.34 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking dioxus-rsx v0.6.2 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling wasm-bindgen-backend v0.2.100 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling warnings-macro v0.2.0 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling const-serialize-macro v0.6.2 [INFO] [stderr] Compiling dioxus-html-internal-macro v0.6.2 [INFO] [stderr] Compiling async-trait v0.1.88 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling sledgehammer_bindgen_macro v0.6.1 [INFO] [stderr] Compiling dioxus-router-macro v0.6.3 [INFO] [stderr] Compiling rust_decimal_macros v1.37.1 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Compiling wasm-bindgen-macro-support v0.2.100 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Compiling dioxus-core-macro v0.6.3 [INFO] [stderr] Checking tungstenite v0.23.0 [INFO] [stderr] Checking generational-box v0.6.2 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking warnings v0.2.1 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking zerovec v0.11.2 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Compiling wasm-bindgen-macro v0.2.100 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling enumset_derive v0.12.0 [INFO] [stderr] Checking js-sys v0.3.77 [INFO] [stderr] Checking dioxus-cli-config v0.6.3 [INFO] [stderr] Checking sledgehammer_bindgen v0.6.0 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.2 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking dioxus-logger v0.6.2 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Checking enumset v1.1.7 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking const-serialize v0.6.2 [INFO] [stderr] Checking manganis-core v0.6.2 [INFO] [stderr] Checking web-sys v0.3.77 [INFO] [stderr] Checking wasm-bindgen-futures v0.4.50 [INFO] [stderr] Checking serde-wasm-bindgen v0.5.0 [INFO] [stderr] Compiling manganis-macro v0.6.2 [INFO] [stderr] Checking manganis v0.6.2 [INFO] [stderr] Checking dioxus-core v0.6.3 [INFO] [stderr] Checking dioxus-signals v0.6.3 [INFO] [stderr] Checking dioxus-history v0.6.2 [INFO] [stderr] Checking dioxus-devtools-types v0.6.2 [INFO] [stderr] Checking dioxus-hooks v0.6.2 [INFO] [stderr] Checking dioxus-devtools v0.6.2 [INFO] [stderr] Checking dioxus-html v0.6.3 [INFO] [stderr] Checking dioxus-lib v0.6.2 [INFO] [stderr] Checking dioxus-router v0.6.3 [INFO] [stderr] Checking gloo-utils v0.2.0 [INFO] [stderr] Checking gloo-storage v0.3.0 [INFO] [stderr] Checking dioxus v0.6.3 [INFO] [stderr] Checking dioxus-free-icons v0.9.0 [INFO] [stderr] Checking borrow_checker v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core/receipt.rs:9:28 [INFO] [stdout] | [INFO] [stdout] 9 | const LEFTOVER_ITEM_NAME: &'static str = ""; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core/receipt.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | const TOTAL_ITEM_NAME: &'static str = ""; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> src/core/receipt.rs:157:48 [INFO] [stdout] | [INFO] [stdout] 157 | .map(|(_, &numerator)| (numerator / denominator * item.value)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 157 - .map(|(_, &numerator)| (numerator / denominator * item.value)) [INFO] [stdout] 157 + .map(|(_, &numerator)| numerator / denominator * item.value ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> src/core/receipt.rs:425:11 [INFO] [stdout] | [INFO] [stdout] 425 | } else { [INFO] [stdout] | ___________^ [INFO] [stdout] 426 | | } [INFO] [stdout] | |_________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core/receipt.rs:9:28 [INFO] [stdout] | [INFO] [stdout] 9 | const LEFTOVER_ITEM_NAME: &'static str = ""; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/core/receipt.rs:10:25 [INFO] [stdout] | [INFO] [stdout] 10 | const TOTAL_ITEM_NAME: &'static str = ""; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around closure body [INFO] [stdout] --> src/core/receipt.rs:157:48 [INFO] [stdout] | [INFO] [stdout] 157 | .map(|(_, &numerator)| (numerator / denominator * item.value)) [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 157 - .map(|(_, &numerator)| (numerator / denominator * item.value)) [INFO] [stdout] 157 + .map(|(_, &numerator)| numerator / denominator * item.value ) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `else` branch is empty [INFO] [stdout] --> src/core/receipt.rs:425:11 [INFO] [stdout] | [INFO] [stdout] 425 | } else { [INFO] [stdout] | ___________^ [INFO] [stdout] 426 | | } [INFO] [stdout] | |_________^ help: you can remove it [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_else [INFO] [stdout] = note: `#[warn(clippy::needless_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_args` is never used [INFO] [stdout] --> src/cli/arg_parser.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn parse_args() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_args` is never used [INFO] [stdout] --> src/cli/arg_parser.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn parse_args() -> Result { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/app/splash.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | } else if person != "" { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!person.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/app/splash.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | if !receipt_value().is_none() && people_list.read().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `receipt_value().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: length comparison to zero [INFO] [stdout] --> src/app/splash.rs:147:38 [INFO] [stdout] | [INFO] [stdout] 147 | if !receipt_value().is_none() && people_list.read().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!people_list.read().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: length comparison to zero [INFO] [stdout] --> src/app/splash.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | if cache_people_list.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!cache_people_list.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] [INFO] [stdout] [INFO] [stdout] warning: comparison to empty slice [INFO] [stdout] --> src/app/splash.rs:117:35 [INFO] [stdout] | [INFO] [stdout] 117 | } else if person != "" { [INFO] [stdout] | ^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!person.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#comparison_to_empty [INFO] [stdout] = note: `#[warn(clippy::comparison_to_empty)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/app/splash.rs:147:8 [INFO] [stdout] | [INFO] [stdout] 147 | if !receipt_value().is_none() && people_list.read().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `receipt_value().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: length comparison to zero [INFO] [stdout] --> src/app/splash.rs:147:38 [INFO] [stdout] | [INFO] [stdout] 147 | if !receipt_value().is_none() && people_list.read().len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!people_list.read().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: length comparison to zero [INFO] [stdout] --> src/app/split.rs:54:32 [INFO] [stdout] | [INFO] [stdout] 54 | ... if receipt.items.len() > 0 && receipt.items.iter().all(|x| x.value > Decimal::ZERO) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!receipt.items.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/app/splash.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | if cache_people_list.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!cache_people_list.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] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/app/split.rs:54:32 [INFO] [stdout] | [INFO] [stdout] 54 | ... if receipt.items.len() > 0 && receipt.items.iter().all(|x| x.value > Decimal::ZERO) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!receipt.items.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] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/app/split.rs:130:70 [INFO] [stdout] | [INFO] [stdout] 130 | let (item_name, item_value, item_shared_by, item_is_prop_dist) = (&RECEIPT_STATE.read()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `RECEIPT_STATE.read()` [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: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/app/split.rs:205:47 [INFO] [stdout] | [INFO] [stdout] 205 | ... Some(!item_is_prop_dist.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `item_is_prop_dist` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/app/split.rs:130:70 [INFO] [stdout] | [INFO] [stdout] 130 | let (item_name, item_value, item_shared_by, item_is_prop_dist) = (&RECEIPT_STATE.read()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `RECEIPT_STATE.read()` [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: length comparison to zero [INFO] [stdout] --> src/core/receipt.rs:113:19 [INFO] [stdout] | [INFO] [stdout] 113 | } else if shared_by.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `shared_by.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/receipt.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | / return proportional_splits [INFO] [stdout] 189 | | .iter() [INFO] [stdout] 190 | | .map(|ratio| (ratio * value).round_dp(2)) [INFO] [stdout] 191 | | .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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 ~ proportional_splits [INFO] [stdout] 189 + .iter() [INFO] [stdout] 190 + .map(|ratio| (ratio * value).round_dp(2)) [INFO] [stdout] 191 ~ .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/core/receipt.rs:171:20 [INFO] [stdout] | [INFO] [stdout] 171 | shared_by: &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] 171 - shared_by: &Vec, [INFO] [stdout] 171 + shared_by: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `bool` which implements the `Copy` trait [INFO] [stdout] --> src/app/split.rs:205:47 [INFO] [stdout] | [INFO] [stdout] 205 | ... Some(!item_is_prop_dist.clone()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `item_is_prop_dist` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/core/receipt.rs:113:19 [INFO] [stdout] | [INFO] [stdout] 113 | } else if shared_by.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `shared_by.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/receipt.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | / return proportional_splits [INFO] [stdout] 189 | | .iter() [INFO] [stdout] 190 | | .map(|ratio| (ratio * value).round_dp(2)) [INFO] [stdout] 191 | | .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] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 188 ~ proportional_splits [INFO] [stdout] 189 + .iter() [INFO] [stdout] 190 + .map(|ratio| (ratio * value).round_dp(2)) [INFO] [stdout] 191 ~ .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/core/receipt.rs:171:20 [INFO] [stdout] | [INFO] [stdout] 171 | shared_by: &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] 171 - shared_by: &Vec, [INFO] [stdout] 171 + shared_by: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Decimal` which implements the `Copy` trait [INFO] [stdout] --> src/core/receipt.rs:180:31 [INFO] [stdout] | [INFO] [stdout] 180 | .map(|(split, _)| split.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*split` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/core/receipt.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 200 | if shared_by.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `shared_by.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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/core/receipt.rs:201:66 [INFO] [stdout] | [INFO] [stdout] 201 | return Err(SplittingError::InvalidShareConfiguration(format!( [INFO] [stdout] | __________________________________________________________________^ [INFO] [stdout] 202 | | "Number of people sharing this receipt cannot be zero." [INFO] [stdout] 203 | | ))); [INFO] [stdout] | |_____________^ help: consider using `.to_string()`: `"Number of people sharing this receipt cannot be zero.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/receipt.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | / return self [INFO] [stdout] 305 | | .items [INFO] [stdout] 306 | | .iter() [INFO] [stdout] 307 | | .enumerate() [INFO] [stdout] 308 | | .filter(|(idx, _)| *idx != index) [INFO] [stdout] 309 | | .any(|(_, x)| !x.is_prop_dist); [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] 304 ~ self [INFO] [stdout] 305 + .items [INFO] [stdout] 306 + .iter() [INFO] [stdout] 307 + .enumerate() [INFO] [stdout] 308 + .filter(|(idx, _)| *idx != index) [INFO] [stdout] 309 ~ .any(|(_, x)| !x.is_prop_dist) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/core/receipt.rs:322:18 [INFO] [stdout] | [INFO] [stdout] 322 | .zip(item_share_ratios.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [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 the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 322 - .zip(item_share_ratios.into_iter()) [INFO] [stdout] 322 + .zip(item_share_ratios) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/core/receipt.rs:481:9 [INFO] [stdout] | [INFO] [stdout] 481 | assert_eq!(receipt.is_proportionally_splittable(100), 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] 481 - assert_eq!(receipt.is_proportionally_splittable(100), false); [INFO] [stdout] 481 + assert!(!receipt.is_proportionally_splittable(100)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/core/receipt.rs:488:9 [INFO] [stdout] | [INFO] [stdout] 488 | assert_eq!(receipt.is_proportionally_splittable(0), 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] 488 - assert_eq!(receipt.is_proportionally_splittable(0), false); [INFO] [stdout] 488 + assert!(!receipt.is_proportionally_splittable(0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/core/receipt.rs:495:9 [INFO] [stdout] | [INFO] [stdout] 495 | assert_eq!(receipt.is_proportionally_splittable(0), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 495 - assert_eq!(receipt.is_proportionally_splittable(0), true); [INFO] [stdout] 495 + assert!(receipt.is_proportionally_splittable(0)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Decimal` which implements the `Copy` trait [INFO] [stdout] --> src/core/receipt.rs:180:31 [INFO] [stdout] | [INFO] [stdout] 180 | .map(|(split, _)| split.clone()) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*split` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/core/receipt.rs:200:12 [INFO] [stdout] | [INFO] [stdout] 200 | if shared_by.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `shared_by.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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/core/receipt.rs:201:66 [INFO] [stdout] | [INFO] [stdout] 201 | return Err(SplittingError::InvalidShareConfiguration(format!( [INFO] [stdout] | __________________________________________________________________^ [INFO] [stdout] 202 | | "Number of people sharing this receipt cannot be zero." [INFO] [stdout] 203 | | ))); [INFO] [stdout] | |_____________^ help: consider using `.to_string()`: `"Number of people sharing this receipt cannot be zero.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/core/receipt.rs:304:9 [INFO] [stdout] | [INFO] [stdout] 304 | / return self [INFO] [stdout] 305 | | .items [INFO] [stdout] 306 | | .iter() [INFO] [stdout] 307 | | .enumerate() [INFO] [stdout] 308 | | .filter(|(idx, _)| *idx != index) [INFO] [stdout] 309 | | .any(|(_, x)| !x.is_prop_dist); [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] 304 ~ self [INFO] [stdout] 305 + .items [INFO] [stdout] 306 + .iter() [INFO] [stdout] 307 + .enumerate() [INFO] [stdout] 308 + .filter(|(idx, _)| *idx != index) [INFO] [stdout] 309 ~ .any(|(_, x)| !x.is_prop_dist) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/core/receipt.rs:322:18 [INFO] [stdout] | [INFO] [stdout] 322 | .zip(item_share_ratios.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [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 the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 322 - .zip(item_share_ratios.into_iter()) [INFO] [stdout] 322 + .zip(item_share_ratios) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/utils/mod.rs:36:9 [INFO] [stdout] | [INFO] [stdout] 36 | assert_eq!(is_abbrev_match_to_string("Hn", "Hannah"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 36 - assert_eq!(is_abbrev_match_to_string("Hn", "Hannah"), true); [INFO] [stdout] 36 + assert!(is_abbrev_match_to_string("Hn", "Hannah")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/utils/mod.rs:37:9 [INFO] [stdout] | [INFO] [stdout] 37 | assert_eq!(is_abbrev_match_to_string("Hh", "Hannah"), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 37 - assert_eq!(is_abbrev_match_to_string("Hh", "Hannah"), true); [INFO] [stdout] 37 + assert!(is_abbrev_match_to_string("Hh", "Hannah")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/utils/mod.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | assert_eq!(is_abbrev_match_to_string("Hb", "Hannah"), 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] 38 - assert_eq!(is_abbrev_match_to_string("Hb", "Hannah"), false); [INFO] [stdout] 38 + assert!(!is_abbrev_match_to_string("Hb", "Hannah")); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cli/arg_parser.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Err(SplittingError::InvalidArgument(format!( [INFO] [stdout] 12 | | "You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 13 | | but not any item within it to split. Please do so" [INFO] [stdout] 14 | | ))); [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] 11 ~ Err(SplittingError::InvalidArgument(format!( [INFO] [stdout] 12 + "You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 13 + but not any item within it to split. Please do so" [INFO] [stdout] 14 ~ ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cli/arg_parser.rs:11:52 [INFO] [stdout] | [INFO] [stdout] 11 | return Err(SplittingError::InvalidArgument(format!( [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 12 | | "You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 13 | | but not any item within it to split. Please do so" [INFO] [stdout] 14 | | ))); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 11 ~ return Err(SplittingError::InvalidArgument("You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 12 ~ but not any item within it to split. Please do so".to_string())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/cli/arg_parser.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | / return Err(SplittingError::InvalidArgument(format!( [INFO] [stdout] 12 | | "You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 13 | | but not any item within it to split. Please do so" [INFO] [stdout] 14 | | ))); [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] 11 ~ Err(SplittingError::InvalidArgument(format!( [INFO] [stdout] 12 + "You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 13 + but not any item within it to split. Please do so" [INFO] [stdout] 14 ~ ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cli/arg_parser.rs:11:52 [INFO] [stdout] | [INFO] [stdout] 11 | return Err(SplittingError::InvalidArgument(format!( [INFO] [stdout] | ____________________________________________________^ [INFO] [stdout] 12 | | "You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 13 | | but not any item within it to split. Please do so" [INFO] [stdout] 14 | | ))); [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] help: consider using `.to_string()` [INFO] [stdout] | [INFO] [stdout] 11 ~ return Err(SplittingError::InvalidArgument("You have specified only the receipt's total value and people sharing it \ [INFO] [stdout] 12 ~ but not any item within it to split. Please do so".to_string())); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/cli/arg_parser.rs:21:37 [INFO] [stdout] | [INFO] [stdout] 21 | curr_arg = Some(&arg[2..]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/cli/arg_parser.rs:20:17 [INFO] [stdout] | [INFO] [stdout] 20 | if arg.starts_with("--") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 20 ~ if let Some() = arg.strip_prefix("--") { [INFO] [stdout] 21 ~ curr_arg = Some(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/cli/arg_parser.rs:23:37 [INFO] [stdout] | [INFO] [stdout] 23 | curr_arg = Some(&arg[1..]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/cli/arg_parser.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | } else if arg.starts_with("-") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 22 ~ } else if let Some() = arg.strip_prefix("-") { [INFO] [stdout] 23 ~ curr_arg = Some(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/cli/arg_parser.rs:21:37 [INFO] [stdout] | [INFO] [stdout] 21 | curr_arg = Some(&arg[2..]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/cli/arg_parser.rs:20:17 [INFO] [stdout] | [INFO] [stdout] 20 | if arg.starts_with("--") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 20 ~ if let Some() = arg.strip_prefix("--") { [INFO] [stdout] 21 ~ curr_arg = Some(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> src/cli/arg_parser.rs:23:37 [INFO] [stdout] | [INFO] [stdout] 23 | curr_arg = Some(&arg[1..]); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> src/cli/arg_parser.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | } else if arg.starts_with("-") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 22 ~ } else if let Some() = arg.strip_prefix("-") { [INFO] [stdout] 23 ~ curr_arg = Some(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/cli/display.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | .zip(item_splits.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 14 - .zip(item_splits.into_iter()) [INFO] [stdout] 14 + .zip(item_splits) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: explicit call to `.into_iter()` in function argument accepting `IntoIterator` [INFO] [stdout] --> src/cli/display.rs:14:18 [INFO] [stdout] | [INFO] [stdout] 14 | .zip(item_splits.into_iter()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: this parameter accepts any `IntoIterator`, so you don't need to call `.into_iter()` [INFO] [stdout] --> /rustc/3645249d79dfb136b5d8de3ce153d19d6698d92d/library/core/src/iter/traits/iterator.rs:629:11 [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing the `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 14 - .zip(item_splits.into_iter()) [INFO] [stdout] 14 + .zip(item_splits) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/cli/pattern_parser.rs:185:17 [INFO] [stdout] | [INFO] [stdout] 185 | let _ = format!("Sa maps to Sam, which has already been specified once."); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Sa maps to Sam, which has already been specified once.".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dioxus::prelude::*` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dioxus::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: unused import: `dioxus::prelude::*` [INFO] [stdout] --> src/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use dioxus::prelude::*; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s [INFO] running `Command { std: "docker" "inspect" "96fb79d6f50d5f28698536ef483269445a59769fda2943ed922ced03577908cc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96fb79d6f50d5f28698536ef483269445a59769fda2943ed922ced03577908cc", kill_on_drop: false }` [INFO] [stdout] 96fb79d6f50d5f28698536ef483269445a59769fda2943ed922ced03577908cc