[INFO] cloning repository https://github.com/kamioftea/advent-of-code-2024 [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kamioftea/advent-of-code-2024" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkamioftea%2Fadvent-of-code-2024", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkamioftea%2Fadvent-of-code-2024'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 82c8286110f5e5d79f8bf32e67bf68000b2f198b [INFO] linting kamioftea/advent-of-code-2024 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkamioftea%2Fadvent-of-code-2024" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kamioftea/advent-of-code-2024 [INFO] finished tweaking git repo https://github.com/kamioftea/advent-of-code-2024 [INFO] tweaked toml for git repo https://github.com/kamioftea/advent-of-code-2024 written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kamioftea/advent-of-code-2024 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/kamioftea/advent-of-code-2024 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] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded futf v0.1.5 [INFO] [stderr] Downloaded new_debug_unreachable v1.0.6 [INFO] [stderr] Downloaded mac v0.1.1 [INFO] [stderr] Downloaded utf-8 v0.7.6 [INFO] [stderr] Downloaded selectors v0.26.0 [INFO] [stderr] Downloaded write16 v1.0.0 [INFO] [stderr] Downloaded phf_codegen v0.11.2 [INFO] [stderr] Downloaded stable_deref_trait v1.2.0 [INFO] [stderr] Downloaded idna_adapter v1.2.0 [INFO] [stderr] Downloaded yoke-derive v0.7.5 [INFO] [stderr] Downloaded miniz_oxide v0.7.1 [INFO] [stderr] Downloaded utf16_iter v1.0.5 [INFO] [stderr] Downloaded windows-targets v0.48.5 [INFO] [stderr] Downloaded ego-tree v0.10.0 [INFO] [stderr] Downloaded darling_macro v0.20.10 [INFO] [stderr] Downloaded darling v0.20.10 [INFO] [stderr] Downloaded equivalent v1.0.1 [INFO] [stderr] Downloaded darling_core v0.20.10 [INFO] [stderr] Downloaded either v1.8.0 [INFO] [stderr] Downloaded openssl-probe v0.1.5 [INFO] [stderr] Downloaded thiserror v1.0.69 [INFO] [stderr] Downloaded error-chain v0.12.4 [INFO] [stderr] Downloaded cookie v0.18.1 [INFO] [stderr] Downloaded cached v0.54.0 [INFO] [stderr] Downloaded rayon-core v1.12.1 [INFO] [stderr] Downloaded http v1.1.0 [INFO] [stderr] Downloaded itertools v0.13.0 [INFO] [stderr] Downloaded hyper v1.5.1 [INFO] [stderr] Downloaded hashbrown v0.14.3 [INFO] [stderr] Downloaded rayon v1.10.0 [INFO] [stderr] Downloaded aho-corasick v1.1.2 [INFO] [stderr] Downloaded rustls-webpki v0.102.8 [INFO] [stderr] Downloaded gimli v0.28.1 [INFO] [stderr] Downloaded object v0.32.1 [INFO] [stderr] Downloaded idna v0.3.0 [INFO] [stderr] Downloaded windows_aarch64_gnullvm v0.48.5 [INFO] [stderr] Downloaded windows_x86_64_gnullvm v0.48.5 [INFO] [stderr] Downloaded openssl v0.10.60 [INFO] [stderr] Downloaded futures-util v0.3.29 [INFO] [stderr] Downloaded rustls v0.23.19 [INFO] [stderr] Downloaded rustix v0.38.25 [INFO] [stderr] Downloaded syn v2.0.90 [INFO] [stderr] Downloaded h2 v0.4.7 [INFO] [stderr] Downloaded serde_json v1.0.108 [INFO] [stderr] Downloaded unicode-width v0.1.14 [INFO] [stderr] Downloaded unicode-normalization v0.1.22 [INFO] [stderr] Downloaded time v0.3.36 [INFO] [stderr] Downloaded tokio-util v0.7.10 [INFO] [stderr] Downloaded icu_properties_data v1.5.0 [INFO] [stderr] Downloaded publicsuffix v2.2.3 [INFO] [stderr] Downloaded indexmap v2.1.0 [INFO] [stderr] Downloaded openssl-sys v0.9.96 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.48.5 [INFO] [stderr] Downloaded tokio v1.34.0 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.48.5 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.48.5 [INFO] [stderr] Downloaded web-sys v0.3.66 [INFO] [stderr] Downloaded libc v0.2.150 [INFO] [stderr] Downloaded security-framework v2.9.2 [INFO] [stderr] Downloaded memchr v2.6.4 [INFO] [stderr] Downloaded windows_i686_msvc v0.48.5 [INFO] [stderr] Downloaded windows_i686_gnu v0.48.5 [INFO] [stderr] Downloaded backtrace v0.3.69 [INFO] [stderr] Downloaded base64 v0.22.1 [INFO] [stderr] Downloaded allocator-api2 v0.2.21 [INFO] [stderr] Downloaded tracing v0.1.40 [INFO] [stderr] Downloaded hyper-util v0.1.10 [INFO] [stderr] Downloaded schannel v0.1.22 [INFO] [stderr] Downloaded core-foundation-sys v0.8.6 [INFO] [stderr] Downloaded litrs v0.4.1 [INFO] [stderr] Downloaded tokio-rustls v0.26.0 [INFO] [stderr] Downloaded hyper-rustls v0.27.3 [INFO] [stderr] Downloaded futures-channel v0.3.29 [INFO] [stderr] Downloaded tracing-core v0.1.32 [INFO] [stderr] Downloaded rustls-pki-types v1.10.0 [INFO] [stderr] Downloaded cc v1.0.83 [INFO] [stderr] Downloaded wasm-bindgen v0.2.89 [INFO] [stderr] Downloaded crossbeam-epoch v0.9.18 [INFO] [stderr] Downloaded crossbeam-utils v0.8.20 [INFO] [stderr] Downloaded unicode-bidi v0.3.13 [INFO] [stderr] Downloaded deranged v0.3.11 [INFO] [stderr] Downloaded time-macros v0.2.18 [INFO] [stderr] Downloaded cookie_store v0.21.1 [INFO] [stderr] Downloaded spin v0.9.8 [INFO] [stderr] Downloaded ahash v0.8.11 [INFO] [stderr] Downloaded httparse v1.8.0 [INFO] [stderr] Downloaded ryu v1.0.15 [INFO] [stderr] Downloaded system-configuration v0.6.1 [INFO] [stderr] Downloaded pkg-config v0.3.27 [INFO] [stderr] Downloaded core-foundation v0.9.4 [INFO] [stderr] Downloaded security-framework-sys v2.9.1 [INFO] [stderr] Downloaded redox_syscall v0.4.1 [INFO] [stderr] Downloaded tempfile v3.8.1 [INFO] [stderr] Downloaded encoding_rs v0.8.33 [INFO] [stderr] Downloaded native-tls v0.2.11 [INFO] [stderr] Downloaded addr2line v0.21.0 [INFO] [stderr] Downloaded reqwest v0.12.9 [INFO] [stderr] Downloaded web-time v1.1.0 [INFO] [stderr] Downloaded linux-raw-sys v0.4.12 [INFO] [stderr] Downloaded crossbeam-deque v0.8.5 [INFO] [stderr] Downloaded document-features v0.2.10 [INFO] [stderr] Downloaded tinyvec_macros v0.1.1 [INFO] [stderr] Downloaded psl-types v2.0.11 [INFO] [stderr] Downloaded powerfmt v0.2.0 [INFO] [stderr] Downloaded subtle v2.6.1 [INFO] [stderr] Downloaded zeroize v1.8.1 [INFO] [stderr] Downloaded http-body-util v0.1.2 [INFO] [stderr] Downloaded hyper-tls v0.6.0 [INFO] [stderr] Downloaded futures-task v0.3.29 [INFO] [stderr] Downloaded slab v0.4.9 [INFO] [stderr] Downloaded ipnet v2.9.0 [INFO] [stderr] Downloaded rustls-pemfile v2.2.0 [INFO] [stderr] Downloaded futures-core v0.3.29 [INFO] [stderr] Downloaded sync_wrapper v1.0.2 [INFO] [stderr] Downloaded system-configuration-sys v0.6.0 [INFO] [stderr] Downloaded zerovec v0.10.4 [INFO] [stderr] Downloaded idna v1.0.3 [INFO] [stderr] Downloaded errno v0.3.8 [INFO] [stderr] Downloaded rustc-demangle v0.1.23 [INFO] [stderr] Downloaded num-conv v0.1.0 [INFO] [stderr] Downloaded time-core v0.1.2 [INFO] [stderr] Downloaded untrusted v0.9.0 [INFO] [stderr] Downloaded futures-io v0.3.29 [INFO] [stderr] Downloaded atomic-waker v1.1.2 [INFO] [stderr] Downloaded openssl-macros v0.1.1 [INFO] [stderr] Downloaded mio v0.8.9 [INFO] [stderr] Downloaded html5ever v0.29.0 [INFO] [stderr] Downloaded fastrand v2.0.1 [INFO] [stderr] Downloaded icu_collections v1.5.0 [INFO] [stderr] Downloaded icu_properties v1.5.1 [INFO] [stderr] Downloaded url v2.5.4 [INFO] [stderr] Downloaded bumpalo v3.14.0 [INFO] [stderr] Downloaded serde v1.0.193 [INFO] [stderr] Downloaded futures-sink v0.3.29 [INFO] [stderr] Downloaded http-body v1.0.1 [INFO] [stderr] Downloaded try-lock v0.2.4 [INFO] [stderr] Downloaded want v0.3.1 [INFO] [stderr] Downloaded mime v0.3.17 [INFO] [stderr] Downloaded bytes v1.9.0 [INFO] [stderr] Downloaded socket2 v0.5.5 [INFO] [stderr] Downloaded icu_normalizer v1.5.0 [INFO] [stderr] Downloaded icu_locid v1.5.0 [INFO] [stderr] Downloaded icu_provider v1.5.0 [INFO] [stderr] Downloaded js-sys v0.3.66 [INFO] [stderr] Downloaded serde_derive v1.0.193 [INFO] [stderr] Downloaded bitflags v2.4.1 [INFO] [stderr] Downloaded cssparser v0.34.0 [INFO] [stderr] Downloaded derive_more v0.99.18 [INFO] [stderr] Downloaded proc-macro2 v1.0.92 [INFO] [stderr] Downloaded pin-project-lite v0.2.13 [INFO] [stderr] Downloaded icu_normalizer_data v1.5.0 [INFO] [stderr] Downloaded icu_locid_transform_data v1.5.0 [INFO] [stderr] Downloaded tinystr v0.7.6 [INFO] [stderr] Downloaded zerovec-derive v0.10.3 [INFO] [stderr] Downloaded once_cell v1.18.0 [INFO] [stderr] Downloaded parking_lot v0.12.3 [INFO] [stderr] Downloaded markup5ever v0.14.0 [INFO] [stderr] Downloaded log v0.4.20 [INFO] [stderr] Downloaded phf v0.11.2 [INFO] [stderr] Downloaded getrandom v0.2.14 [INFO] [stderr] Downloaded cached_proc_macro v0.23.0 [INFO] [stderr] Downloaded cached_proc_macro_types v0.1.1 [INFO] [stderr] Downloaded thiserror-impl v1.0.69 [INFO] [stderr] Downloaded icu_locid_transform v1.5.0 [INFO] [stderr] Downloaded litemap v0.7.4 [INFO] [stderr] Downloaded windows-sys v0.48.0 [INFO] [stderr] Downloaded writeable v0.5.5 [INFO] [stderr] Downloaded displaydoc v0.2.5 [INFO] [stderr] Downloaded yoke v0.7.5 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.89 [INFO] [stderr] Downloaded redox_syscall v0.5.7 [INFO] [stderr] Downloaded string_cache v0.8.7 [INFO] [stderr] Downloaded parking_lot_core v0.9.10 [INFO] [stderr] Downloaded tokio-native-tls v0.3.1 [INFO] [stderr] Downloaded tower-service v0.3.2 [INFO] [stderr] Downloaded form_urlencoded v1.2.1 [INFO] [stderr] Downloaded synstructure v0.13.1 [INFO] [stderr] Downloaded zerofrom-derive v0.1.5 [INFO] [stderr] Downloaded utf8_iter v1.0.4 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.39 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.89 [INFO] [stderr] Downloaded windows-registry v0.2.0 [INFO] [stderr] Downloaded dtoa-short v0.3.5 [INFO] [stderr] Downloaded itoa v1.0.9 [INFO] [stderr] Downloaded lock_api v0.4.12 [INFO] [stderr] Downloaded dtoa v1.0.9 [INFO] [stderr] Downloaded unicode-ident v1.0.12 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.89 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.89 [INFO] [stderr] Downloaded scopeguard v1.2.0 [INFO] [stderr] Downloaded phf_generator v0.10.0 [INFO] [stderr] Downloaded string_cache_codegen v0.5.2 [INFO] [stderr] Downloaded cssparser-macros v0.6.1 [INFO] [stderr] Downloaded phf_macros v0.11.2 [INFO] [stderr] Downloaded windows-result v0.2.0 [INFO] [stderr] Downloaded windows-strings v0.1.0 [INFO] [stderr] Downloaded getopts v0.2.21 [INFO] [stderr] Downloaded phf_generator v0.11.2 [INFO] [stderr] Downloaded siphasher v0.3.11 [INFO] [stderr] Downloaded smallvec v1.13.2 [INFO] [stderr] Downloaded icu_provider_macros v1.5.0 [INFO] [stderr] Downloaded zerofrom v0.1.5 [INFO] [stderr] Downloaded percent-encoding v2.3.1 [INFO] [stderr] Downloaded phf_shared v0.10.0 [INFO] [stderr] Downloaded fxhash v0.2.1 [INFO] [stderr] Downloaded phf_shared v0.11.2 [INFO] [stderr] Downloaded precomputed-hash v0.1.1 [INFO] [stderr] Downloaded servo_arc v0.4.0 [INFO] [stderr] Downloaded tendril v0.4.3 [INFO] [stderr] Downloaded text_io v0.1.12 [INFO] [stderr] Downloaded scraper v0.22.0 [INFO] [stderr] Downloaded ring v0.17.8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 42feaea054faf2cec499a0f8ab9abfe78adce9914e5b48c2fb17e65cf505c49c [INFO] running `Command { std: "docker" "start" "-a" "42feaea054faf2cec499a0f8ab9abfe78adce9914e5b48c2fb17e65cf505c49c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "42feaea054faf2cec499a0f8ab9abfe78adce9914e5b48c2fb17e65cf505c49c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "42feaea054faf2cec499a0f8ab9abfe78adce9914e5b48c2fb17e65cf505c49c", kill_on_drop: false }` [INFO] [stdout] 42feaea054faf2cec499a0f8ab9abfe78adce9914e5b48c2fb17e65cf505c49c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] eabd57853f8d48081546f7b80bf0c19ecb46d5593021bad2f62c4230e0fd9066 [INFO] running `Command { std: "docker" "start" "-a" "eabd57853f8d48081546f7b80bf0c19ecb46d5593021bad2f62c4230e0fd9066", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.92 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.150 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Checking once_cell v1.18.0 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling siphasher v0.3.11 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking stable_deref_trait v1.2.0 [INFO] [stderr] Checking itoa v1.0.9 [INFO] [stderr] Checking memchr v2.6.4 [INFO] [stderr] Compiling futures-core v0.3.29 [INFO] [stderr] Checking bytes v1.9.0 [INFO] [stderr] Checking pin-project-lite v0.2.13 [INFO] [stderr] Checking writeable v0.5.5 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling pkg-config v0.3.27 [INFO] [stderr] Compiling serde v1.0.193 [INFO] [stderr] Checking litemap v0.7.4 [INFO] [stderr] Compiling phf_shared v0.11.2 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Checking futures-sink v0.3.29 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking allocator-api2 v0.2.21 [INFO] [stderr] Compiling futures-task v0.3.29 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking icu_locid_transform_data v1.5.0 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Compiling futures-util v0.3.29 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking icu_properties_data v1.5.0 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling lock_api v0.4.12 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking new_debug_unreachable v1.0.6 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Compiling openssl v0.10.60 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking mio v0.8.9 [INFO] [stderr] Checking socket2 v0.5.5 [INFO] [stderr] Checking icu_normalizer_data v1.5.0 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking write16 v1.0.0 [INFO] [stderr] Compiling futures-channel v0.3.29 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Checking utf16_iter v1.0.5 [INFO] [stderr] Compiling syn v2.0.90 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Checking futures-io v0.3.29 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking equivalent v1.0.1 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking tinyvec v1.6.0 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Checking try-lock v0.2.4 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Compiling getrandom v0.2.14 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Checking tokio v1.34.0 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking mac v0.1.1 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking futf v0.1.5 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling cookie v0.18.1 [INFO] [stderr] Checking utf-8 v0.7.6 [INFO] [stderr] Checking ryu v1.0.15 [INFO] [stderr] Checking indexmap v2.1.0 [INFO] [stderr] Checking openssl-probe v0.1.5 [INFO] [stderr] Checking unicode-bidi v0.3.13 [INFO] [stderr] Compiling serde_json v1.0.108 [INFO] [stderr] Checking dtoa v1.0.9 [INFO] [stderr] Checking unicode-normalization v0.1.22 [INFO] [stderr] Checking tendril v0.4.3 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking gimli v0.28.1 [INFO] [stderr] Checking psl-types v2.0.11 [INFO] [stderr] Compiling litrs v0.4.1 [INFO] [stderr] Checking tower-service v0.3.2 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Checking dtoa-short v0.3.5 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Compiling error-chain v0.12.4 [INFO] [stderr] Checking idna v0.3.0 [INFO] [stderr] Checking object v0.32.1 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking servo_arc v0.4.0 [INFO] [stderr] Checking either v1.8.0 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking rustls-pki-types v1.10.0 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking rustc-demangle v0.1.23 [INFO] [stderr] Compiling document-features v0.2.10 [INFO] [stderr] Checking publicsuffix v2.2.3 [INFO] [stderr] Checking rustls-pemfile v2.2.0 [INFO] [stderr] Checking getopts v0.2.21 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking encoding_rs v0.8.33 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Compiling openssl-sys v0.9.96 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Checking ego-tree v0.10.0 [INFO] [stderr] Checking ipnet v2.9.0 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Checking cached_proc_macro_types v0.1.1 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking text_io v0.1.12 [INFO] [stderr] Checking string_cache v0.8.7 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking tokio-util v0.7.10 [INFO] [stderr] Checking h2 v0.4.7 [INFO] [stderr] Checking addr2line v0.21.0 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Compiling synstructure v0.13.1 [INFO] [stderr] Compiling darling_core v0.20.10 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling zerovec-derive v0.10.3 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling icu_provider_macros v1.5.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling html5ever v0.29.0 [INFO] [stderr] Compiling cssparser-macros v0.6.1 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling serde_derive v1.0.193 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.5 [INFO] [stderr] Compiling yoke-derive v0.7.5 [INFO] [stderr] Checking hyper v1.5.1 [INFO] [stderr] Checking hyper-util v0.1.10 [INFO] [stderr] Checking zerofrom v0.1.5 [INFO] [stderr] Checking yoke v0.7.5 [INFO] [stderr] Compiling ppv-lite86 v0.2.20 [INFO] [stderr] Checking zerovec v0.10.4 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking tinystr v0.7.6 [INFO] [stderr] Checking icu_collections v1.5.0 [INFO] [stderr] Compiling darling_macro v0.20.10 [INFO] [stderr] Checking icu_locid v1.5.0 [INFO] [stderr] Compiling darling v0.20.10 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Compiling phf_generator v0.10.0 [INFO] [stderr] Compiling cached_proc_macro v0.23.0 [INFO] [stderr] Compiling phf_codegen v0.11.2 [INFO] [stderr] Compiling string_cache_codegen v0.5.2 [INFO] [stderr] Compiling phf_macros v0.11.2 [INFO] [stderr] Checking tokio-native-tls v0.3.1 [INFO] [stderr] Compiling selectors v0.26.0 [INFO] [stderr] Checking hyper-tls v0.6.0 [INFO] [stderr] Compiling markup5ever v0.14.0 [INFO] [stderr] Checking icu_provider v1.5.0 [INFO] [stderr] Checking phf v0.11.2 [INFO] [stderr] Checking cssparser v0.34.0 [INFO] [stderr] Checking icu_locid_transform v1.5.0 [INFO] [stderr] Checking cached v0.54.0 [INFO] [stderr] Checking icu_properties v1.5.1 [INFO] [stderr] Checking scraper v0.22.0 [INFO] [stderr] Checking icu_normalizer v1.5.0 [INFO] [stderr] Checking idna_adapter v1.2.0 [INFO] [stderr] Checking idna v1.0.3 [INFO] [stderr] Checking url v2.5.4 [INFO] [stderr] Checking cookie_store v0.21.1 [INFO] [stderr] Checking reqwest v0.12.9 [INFO] [stderr] Checking advent-of-code-2024 v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unexpected `cfg` condition name: `has_error_description_deprecated` [INFO] [stdout] --> src/bootstrap_day/mod.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / error_chain! { [INFO] [stdout] 13 | | foreign_links { [INFO] [stdout] 14 | | Io(std::io::Error); [INFO] [stdout] 15 | | HttpRequest(reqwest::Error); [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `docsrs`, `feature`, and `test` and 31 more [INFO] [stdout] = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `impl_error_chain_processed` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the macro `impl_error_chain_processed` may come from an old version of the `error_chain` crate, try updating your dependency with `cargo update -p error_chain` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition name: `has_error_description_deprecated` [INFO] [stdout] --> src/bootstrap_day/mod.rs:12:1 [INFO] [stdout] | [INFO] [stdout] 12 | / error_chain! { [INFO] [stdout] 13 | | foreign_links { [INFO] [stdout] 14 | | Io(std::io::Error); [INFO] [stdout] 15 | | HttpRequest(reqwest::Error); [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: expected names are: `docsrs`, `feature`, and `test` and 31 more [INFO] [stdout] = note: using a cfg inside a macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `impl_error_chain_processed` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the macro `impl_error_chain_processed` may come from an old version of the `error_chain` crate, try updating your dependency with `cargo update -p error_chain` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_1.rs:38:23 [INFO] [stdout] | [INFO] [stdout] 38 | fn parse_input(input: &String) -> (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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - fn parse_input(input: &String) -> (Vec, Vec) { [INFO] [stdout] 38 + fn parse_input(input: &str) -> (Vec, Vec) { [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/day_1.rs:54:26 [INFO] [stdout] | [INFO] [stdout] 54 | fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [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 - fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [INFO] [stdout] 54 + fn to_sorted_pairs(left: &[u32], right: &Vec) -> Vec<(u32, u32)> { [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/day_1.rs:54:44 [INFO] [stdout] | [INFO] [stdout] 54 | fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [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 - fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [INFO] [stdout] 54 + fn to_sorted_pairs(left: &Vec, right: &[u32]) -> Vec<(u32, u32)> { [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/day_1.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | fn sum_diffs(pairs: &Vec<(u32, u32)>) -> u32 { [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] 61 - fn sum_diffs(pairs: &Vec<(u32, u32)>) -> u32 { [INFO] [stdout] 61 + fn sum_diffs(pairs: &[(u32, u32)]) -> u32 { [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/day_1.rs:67:32 [INFO] [stdout] | [INFO] [stdout] 67 | fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [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] 67 - fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [INFO] [stdout] 67 + fn sum_similarity_scores(left: &[u32], right: &Vec) -> usize { [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/day_1.rs:67:50 [INFO] [stdout] | [INFO] [stdout] 67 | fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [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] 67 - fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [INFO] [stdout] 67 + fn sum_similarity_scores(left: &Vec, right: &[u32]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().count()` on a `Vec` [INFO] [stdout] --> src/day_10.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | self.get_peaks(cell).iter().count() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.get_peaks(cell).len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_count [INFO] [stdout] = note: `#[warn(clippy::iter_count)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_10.rs:118:23 [INFO] [stdout] | [INFO] [stdout] 118 | fn parse_input(input: &String) -> TopographicalMap { [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] 118 - fn parse_input(input: &String) -> TopographicalMap { [INFO] [stdout] 118 + fn parse_input(input: &str) -> TopographicalMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_11.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | fn parse_input(input: &String) -> 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] 31 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 31 + fn parse_input(input: &str) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/day_11.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 43 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_11.rs:78:31 [INFO] [stdout] | [INFO] [stdout] 78 | fn count_after_blinks(stones: &Vec, number_of_blinks: u8) -> usize { [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] 78 - fn count_after_blinks(stones: &Vec, number_of_blinks: u8) -> usize { [INFO] [stdout] 78 + fn count_after_blinks(stones: &[u64], number_of_blinks: u8) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day_12.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use std::{fs, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TOP` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | TOP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Top` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RIGHT` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | RIGHT, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BOTTOM` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | BOTTOM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Bottom` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LEFT` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | LEFT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_12.rs:154:56 [INFO] [stdout] | [INFO] [stdout] 154 | let next_convex = side.convex_delta().apply_to(&plot); [INFO] [stdout] | ^^^^^ help: change this to: `plot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_12.rs:155:66 [INFO] [stdout] | [INFO] [stdout] 155 | let next_straight = side.straight_ahead_delta().apply_to(&plot); [INFO] [stdout] | ^^^^^ help: change this to: `plot` [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/day_12.rs:164:64 [INFO] [stdout] | [INFO] [stdout] 164 | .filter(|(plot, side)| self.check_for_corner(plot, &side)) [INFO] [stdout] | ^^^^^ help: change this to: `side` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_12.rs:255:23 [INFO] [stdout] | [INFO] [stdout] 255 | fn parse_input(input: &String) -> Garden { [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] 255 - fn parse_input(input: &String) -> Garden { [INFO] [stdout] 255 + fn parse_input(input: &str) -> Garden { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_13.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | fn parse_input(input: &String) -> 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] 125 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 125 + fn parse_input(input: &str) -> Vec { [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/day_13.rs:133:30 [INFO] [stdout] | [INFO] [stdout] 133 | fn sum_prize_costs(machines: &Vec, offset: i64) -> i64 { [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] 133 - fn sum_prize_costs(machines: &Vec, offset: i64) -> i64 { [INFO] [stdout] 133 + fn sum_prize_costs(machines: &[Machine], offset: i64) -> i64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_14.rs:107:23 [INFO] [stdout] | [INFO] [stdout] 107 | fn parse_input(input: &String) -> 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] 107 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 107 + fn parse_input(input: &str) -> Vec { [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/day_14.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 112 | fn simulate_robots(robots: &Vec, steps: usize, bounds: &(usize, usize)) -> 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] 112 - fn simulate_robots(robots: &Vec, steps: usize, bounds: &(usize, usize)) -> Vec { [INFO] [stdout] 112 + fn simulate_robots(robots: &[Robot], steps: usize, bounds: &(usize, usize)) -> Vec { [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/day_14.rs:139:32 [INFO] [stdout] | [INFO] [stdout] 139 | fn total_safety_factor(robots: &Vec, bounds: &(usize, usize)) -> usize { [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] 139 - fn total_safety_factor(robots: &Vec, bounds: &(usize, usize)) -> usize { [INFO] [stdout] 139 + fn total_safety_factor(robots: &[Robot], bounds: &(usize, usize)) -> usize { [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/day_14.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | robots: &'a 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] 162 ~ robots: &'a [Robot], [INFO] [stdout] 163 | bounds: &'a (usize, usize), [INFO] [stdout] 164 | ) -> impl Iterator> + 'a { [INFO] [stdout] 165 ~ let first = robots.to_owned(); [INFO] [stdout] 166 | [INFO] [stdout] 167 ~ successors(Some(robots.to_owned()), move |robots| { [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/day_14.rs:189:26 [INFO] [stdout] | [INFO] [stdout] 189 | fn render_robots(robots: &Vec, &(r_max, c_max): &(usize, usize), show_middle_lines: bool) { [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] 189 - fn render_robots(robots: &Vec, &(r_max, c_max): &(usize, usize), show_middle_lines: bool) { [INFO] [stdout] 189 + fn render_robots(robots: &[Robot], &(r_max, c_max): &(usize, usize), show_middle_lines: bool) { [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/day_15.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 101 | fn apply_moves(&self, moves: &Vec) -> Self { [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] 101 - fn apply_moves(&self, moves: &Vec) -> Self { [INFO] [stdout] 101 + fn apply_moves(&self, moves: &[Move]) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day_15.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 112 | | HashSet<(usize, usize)>, [INFO] [stdout] 113 | | HashSet<(usize, usize)>, [INFO] [stdout] 114 | | (usize, usize), [INFO] [stdout] 115 | | usize, [INFO] [stdout] 116 | | usize, [INFO] [stdout] 117 | | ) { [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: this `if` has identical blocks [INFO] [stdout] --> src/day_15.rs:217:46 [INFO] [stdout] | [INFO] [stdout] 217 | if self.walls.contains(&new_pos) { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 218 | | false [INFO] [stdout] 219 | | } else if self.boxes.contains(&new_pos) && !self.move_box(&new_pos, &mv) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/day_15.rs:219:86 [INFO] [stdout] | [INFO] [stdout] 219 | } else if self.boxes.contains(&new_pos) && !self.move_box(&new_pos, &mv) { [INFO] [stdout] | ______________________________________________________________________________________^ [INFO] [stdout] 220 | | false [INFO] [stdout] 221 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` 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/day_15.rs:219:81 [INFO] [stdout] | [INFO] [stdout] 219 | } else if self.boxes.contains(&new_pos) && !self.move_box(&new_pos, &mv) { [INFO] [stdout] | ^^^ help: change this to: `mv` [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/day_15.rs:222:35 [INFO] [stdout] | [INFO] [stdout] 222 | self.boxes.remove(&pos); [INFO] [stdout] | ^^^^ help: change this to: `pos` [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/day_15.rs:239:83 [INFO] [stdout] | [INFO] [stdout] 239 | if self.boxes.contains(&new_pos) && !new_warehouse.move_box(&new_pos, &mv) { [INFO] [stdout] | ^^^ help: change this to: `mv` [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/day_15.rs:297:35 [INFO] [stdout] | [INFO] [stdout] 297 | self.boxes.remove(&pos); [INFO] [stdout] | ^^^^ help: change this to: `pos` [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/day_15.rs:317:84 [INFO] [stdout] | [INFO] [stdout] 317 | if (self.boxes.contains(&new_pos) && !new_warehouse.move_box(&new_pos, &mv)) [INFO] [stdout] | ^^^ help: change this to: `mv` [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/day_15.rs:319:72 [INFO] [stdout] | [INFO] [stdout] 319 | && !new_warehouse.move_box(&possible_start_of_box, &mv)) [INFO] [stdout] | ^^^ help: change this to: `mv` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_15.rs:333:23 [INFO] [stdout] | [INFO] [stdout] 333 | fn parse_input(input: &String) -> (SingleWarehouse, 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] 333 - fn parse_input(input: &String) -> (SingleWarehouse, Vec) { [INFO] [stdout] 333 + fn parse_input(input: &str) -> (SingleWarehouse, Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day_16.rs:17:15 [INFO] [stdout] | [INFO] [stdout] 17 | use std::{fs, u32}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_16.rs:61:23 [INFO] [stdout] | [INFO] [stdout] 61 | match (r0.cmp(&r1), c0.cmp(&c1)) { [INFO] [stdout] | ^^^ help: change this to: `r1` [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/day_16.rs:61:36 [INFO] [stdout] | [INFO] [stdout] 61 | match (r0.cmp(&r1), c0.cmp(&c1)) { [INFO] [stdout] | ^^^ help: change this to: `c1` [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 boolean expression can be simplified [INFO] [stdout] --> src/day_16.rs:157:24 [INFO] [stdout] | [INFO] [stdout] 157 | && !visited [INFO] [stdout] | ________________________^ [INFO] [stdout] 158 | | .get(&(next.coordinates, next.facing)) [INFO] [stdout] 159 | | .is_some_and(|&s| s < next.score + next.distance) [INFO] [stdout] | |_________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 157 ~ && visited [INFO] [stdout] 158 + .get(&(next.coordinates, next.facing)).is_none_or(|&s| s >= next.score + next.distance) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_16.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | self.start.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.start` [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: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_16.rs:177:18 [INFO] [stdout] | [INFO] [stdout] 177 | vec![self.start.clone()], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.start` [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: manual implementation of `Option::map` [INFO] [stdout] --> src/day_16.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | / if let Some(coordinates) = self.facing.forwards(&self.coordinates, maze) { [INFO] [stdout] 271 | | Some(Position { [INFO] [stdout] 272 | | coordinates, [INFO] [stdout] 273 | | score: self.score + 1, [INFO] [stdout] ... | [INFO] [stdout] 280 | | None [INFO] [stdout] 281 | | } [INFO] [stdout] | |_________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 270 ~ self.facing.forwards(&self.coordinates, maze).map(|coordinates| Position { [INFO] [stdout] 271 + coordinates, [INFO] [stdout] 272 + score: self.score + 1, [INFO] [stdout] 273 + distance: coordinates.manhattan_distance(&maze.end) [INFO] [stdout] 274 + + coordinates.turn_cost(&maze.end, &self.facing), [INFO] [stdout] 275 + facing: self.facing, [INFO] [stdout] 276 + visited: [self.visited.clone(), vec![coordinates]].concat(), [INFO] [stdout] 277 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_16.rs:310:23 [INFO] [stdout] | [INFO] [stdout] 310 | fn parse_input(input: &String) -> Maze { [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] 310 - fn parse_input(input: &String) -> Maze { [INFO] [stdout] 310 + fn parse_input(input: &str) -> Maze { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day_17.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | 0 | 1 | 2 | 3 => operand as usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] = note: `#[warn(clippy::manual_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/day_17.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | self.register_a = self.register_a / (2usize.pow(self.deref_combo(operand) as u32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.register_a /= (2usize.pow(self.deref_combo(operand) as u32))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_17.rs:172:23 [INFO] [stdout] | [INFO] [stdout] 172 | fn parse_input(input: &String) -> Computer { [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] 172 - fn parse_input(input: &String) -> Computer { [INFO] [stdout] 172 + fn parse_input(input: &str) -> Computer { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_17.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | partial_quines.first().unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*partial_quines.first().unwrap()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/day_18.rs:90:20 [INFO] [stdout] | [INFO] [stdout] 90 | if !visited [INFO] [stdout] | ____________________^ [INFO] [stdout] 91 | | .get(&next.coordinates) [INFO] [stdout] 92 | | .is_some_and(|&distance| distance <= next.travelled) [INFO] [stdout] | |________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 90 ~ if visited [INFO] [stdout] 91 + .get(&next.coordinates).is_none_or(|&distance| distance > next.travelled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_18.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | blocked_coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*blocked_coords` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_18.rs:189:23 [INFO] [stdout] | [INFO] [stdout] 189 | fn parse_input(input: &String, size: u8) -> MemorySpace { [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] 189 - fn parse_input(input: &String, size: u8) -> MemorySpace { [INFO] [stdout] 189 + fn parse_input(input: &str, size: u8) -> MemorySpace { [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/day_19.rs:155:38 [INFO] [stdout] | [INFO] [stdout] 155 | fn count_matches(&self, designs: &Vec>) -> usize { [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] 155 - fn count_matches(&self, designs: &Vec>) -> usize { [INFO] [stdout] 155 + fn count_matches(&self, designs: &[Vec]) -> usize { [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/day_19.rs:206:41 [INFO] [stdout] | [INFO] [stdout] 206 | fn sum_combinations(&self, designs: &Vec>) -> usize { [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] 206 - fn sum_combinations(&self, designs: &Vec>) -> usize { [INFO] [stdout] 206 + fn sum_combinations(&self, designs: &[Vec]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_19.rs:231:23 [INFO] [stdout] | [INFO] [stdout] 231 | fn parse_input(input: &String) -> (PatternTreeNode, 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] 231 - fn parse_input(input: &String) -> (PatternTreeNode, Vec>) { [INFO] [stdout] 231 + fn parse_input(input: &str) -> (PatternTreeNode, Vec>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_2.rs:34:23 [INFO] [stdout] | [INFO] [stdout] 34 | fn parse_input(input: &String) -> 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] 34 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 34 + fn parse_input(input: &str) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/day_2.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | maybe_direction = maybe_direction.or_else(|| Some(l > r)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 50 - maybe_direction = maybe_direction.or_else(|| Some(l > r)); [INFO] [stdout] 50 + maybe_direction = maybe_direction.or(Some(l > r)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/day_2.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/day_2.rs:95:10 [INFO] [stdout] | [INFO] [stdout] 95 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_20.rs:118:23 [INFO] [stdout] | [INFO] [stdout] 118 | fn parse_input(input: &String) -> RaceTrack { [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] 118 - fn parse_input(input: &String) -> RaceTrack { [INFO] [stdout] 118 + fn parse_input(input: &str) -> RaceTrack { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/day_21.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / match coord { [INFO] [stdout] 126 | | &(3, 0) => false, [INFO] [stdout] 127 | | &(r, c) if r <= 3 && c <= 2 => true, [INFO] [stdout] 128 | | _ => false, [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 125 ~ match *coord { [INFO] [stdout] 126 ~ (3, 0) => false, [INFO] [stdout] 127 ~ (r, c) if r <= 3 && c <= 2 => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/day_21.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | / match coord { [INFO] [stdout] 146 | | &(0, 0) => false, [INFO] [stdout] 147 | | &(r, c) if r <= 1 && c <= 2 => true, [INFO] [stdout] 148 | | _ => false, [INFO] [stdout] 149 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 145 ~ match *coord { [INFO] [stdout] 146 ~ (0, 0) => false, [INFO] [stdout] 147 ~ (r, c) if r <= 1 && c <= 2 => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_21.rs:218:28 [INFO] [stdout] | [INFO] [stdout] 218 | let mut position = start.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*start` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_21.rs:276:37 [INFO] [stdout] | [INFO] [stdout] 276 | fn key_presses(&mut self, keys: &Vec) -> usize { [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] 276 - fn key_presses(&mut self, keys: &Vec) -> usize { [INFO] [stdout] 276 + fn key_presses(&mut self, keys: &[T]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_21.rs:299:21 [INFO] [stdout] | [INFO] [stdout] 299 | .filter(|c| c.is_digit(10)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_21.rs:308:23 [INFO] [stdout] | [INFO] [stdout] 308 | fn parse_input(input: &String) -> 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] 308 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 308 + fn parse_input(input: &str) -> Vec { [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/day_21.rs:322:28 [INFO] [stdout] | [INFO] [stdout] 322 | fn sum_complexities(codes: &Vec, door: &mut KeyPad) -> usize { [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] 322 - fn sum_complexities(codes: &Vec, door: &mut KeyPad) -> usize { [INFO] [stdout] 322 + fn sum_complexities(codes: &[Code], door: &mut KeyPad) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/day_22.rs:42:35 [INFO] [stdout] | [INFO] [stdout] 42 | fn mix(&mut self, prev: &Self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/day_22.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | fn prune(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_22.rs:69:23 [INFO] [stdout] | [INFO] [stdout] 69 | fn parse_input(input: &String) -> 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] 69 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 69 + fn parse_input(input: &str) -> Vec { [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/day_22.rs:79:27 [INFO] [stdout] | [INFO] [stdout] 79 | fn iterate_and_sum(seeds: &Vec) -> u64 { [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] 79 - fn iterate_and_sum(seeds: &Vec) -> u64 { [INFO] [stdout] 79 + fn iterate_and_sum(seeds: &[u64]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_22.rs:109:22 [INFO] [stdout] | [INFO] [stdout] 109 | sequence_scores: &mut 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] 109 - sequence_scores: &mut Vec, [INFO] [stdout] 109 + sequence_scores: &mut [usize], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_22.rs:110:11 [INFO] [stdout] | [INFO] [stdout] 110 | seen: &mut 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] 110 - seen: &mut Vec, [INFO] [stdout] 110 + seen: &mut [usize], [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/day_22.rs:133:43 [INFO] [stdout] | [INFO] [stdout] 133 | fn bananas_from_best_diff_sequence(seeds: &Vec) -> usize { [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] 133 - fn bananas_from_best_diff_sequence(seeds: &Vec) -> usize { [INFO] [stdout] 133 + fn bananas_from_best_diff_sequence(seeds: &[u64]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_22.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 140 | sequence_scores.iter().max().unwrap_or(&0).clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*sequence_scores.iter().max().unwrap_or(&0)` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_23.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_input(input: &String) -> Network { [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] 93 - fn parse_input(input: &String) -> Network { [INFO] [stdout] 93 + fn parse_input(input: &str) -> Network { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | fn extract_instructions(program: &String) -> 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 - fn extract_instructions(program: &String) -> Vec { [INFO] [stdout] 40 + fn extract_instructions(program: &str) -> Vec { [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/day_3.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | fn sum_muls(instructions: &Vec) -> u32 { [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] 68 - fn sum_muls(instructions: &Vec) -> u32 { [INFO] [stdout] 68 + fn sum_muls(instructions: &[Instruction]) -> u32 { [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/day_3.rs:80:35 [INFO] [stdout] | [INFO] [stdout] 80 | fn sum_instructions(instructions: &Vec) -> u32 { [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] 80 - fn sum_instructions(instructions: &Vec) -> u32 { [INFO] [stdout] 80 + fn sum_instructions(instructions: &[Instruction]) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_5.rs:67:23 [INFO] [stdout] | [INFO] [stdout] 67 | fn parse_input(input: &String) -> (Rules, 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] 67 - fn parse_input(input: &String) -> (Rules, Vec) { [INFO] [stdout] 67 + fn parse_input(input: &str) -> (Rules, Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/day_5.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | update.get(middle).unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*update.get(middle).unwrap()` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_5.rs:97:36 [INFO] [stdout] | [INFO] [stdout] 97 | fn sum_valid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 97 - fn sum_valid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [INFO] [stdout] 97 + fn sum_valid_middle_pages(updates: &[Update], rules: &Rules) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/day_5.rs:101:14 [INFO] [stdout] | [INFO] [stdout] 101 | .map(|update| get_middle(update)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `get_middle` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_5.rs:130:47 [INFO] [stdout] | [INFO] [stdout] 130 | fn sort_and_sum_invalid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [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] 130 - fn sort_and_sum_invalid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [INFO] [stdout] 130 + fn sort_and_sum_invalid_middle_pages(updates: &[Update], rules: &Rules) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_5.rs:134:42 [INFO] [stdout] | [INFO] [stdout] 134 | .map(|update| sort_pages(update, &rules)) [INFO] [stdout] | ^^^^^^ help: change this to: `rules` [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: name `RIGHT` contains a capitalized acronym [INFO] [stdout] --> src/day_6.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | RIGHT, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `DOWN` contains a capitalized acronym [INFO] [stdout] --> src/day_6.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | DOWN, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Down` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LEFT` contains a capitalized acronym [INFO] [stdout] --> src/day_6.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | LEFT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_6.rs:101:26 [INFO] [stdout] | [INFO] [stdout] 101 | new_row.zip(Some(column.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `column` [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: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_6.rs:108:14 [INFO] [stdout] | [INFO] [stdout] 108 | Some(row.clone()).zip(new_column) [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `row` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_6.rs:147:23 [INFO] [stdout] | [INFO] [stdout] 147 | fn parse_input(input: &String) -> (Lab, Guard) { [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] 147 - fn parse_input(input: &String) -> (Lab, Guard) { [INFO] [stdout] 147 + fn parse_input(input: &str) -> (Lab, Guard) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Guard` which implements the `Copy` trait [INFO] [stdout] --> src/day_6.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | successors(Some(guard.clone()), |g| g.take_step(lab)) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*guard` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_6.rs:185:23 [INFO] [stdout] | [INFO] [stdout] 185 | route_iter(guard, &lab).map(|g| g.position).unique().count() [INFO] [stdout] | ^^^^ help: change this to: `lab` [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/day_6.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | route_iter(&guard, &lab).duplicates().next().is_some() [INFO] [stdout] | ^^^^^^ help: change this to: `guard` [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/day_6.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | route_iter(&guard, &lab).duplicates().next().is_some() [INFO] [stdout] | ^^^^ help: change this to: `lab` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_7.rs:101:23 [INFO] [stdout] | [INFO] [stdout] 101 | fn parse_input(input: &String) -> 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] 101 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 101 + fn parse_input(input: &str) -> Vec { [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/day_7.rs:108:42 [INFO] [stdout] | [INFO] [stdout] 108 | fn is_solvable(equation: &Equation, ops: &Vec) -> bool { [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] 108 - fn is_solvable(equation: &Equation, ops: &Vec) -> bool { [INFO] [stdout] 108 + fn is_solvable(equation: &Equation, ops: &[Operation]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_7.rs:148:39 [INFO] [stdout] | [INFO] [stdout] 148 | .filter(|&eq| is_solvable(eq, &ops)) [INFO] [stdout] | ^^^^ help: change this to: `ops` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_8.rs:50:23 [INFO] [stdout] | [INFO] [stdout] 50 | fn parse_input(input: &String) -> AntennaMap { [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] 50 - fn parse_input(input: &String) -> AntennaMap { [INFO] [stdout] 50 + fn parse_input(input: &str) -> AntennaMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(usize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/day_8.rs:102:44 [INFO] [stdout] | [INFO] [stdout] 102 | let increasing = sequence_from_antenna((r1, c1).clone(), (dr, dc).clone(), bounds); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(r1, c1)` [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: using `clone` on type `(isize, isize)` which implements the `Copy` trait [INFO] [stdout] --> src/day_8.rs:102:62 [INFO] [stdout] | [INFO] [stdout] 102 | let increasing = sequence_from_antenna((r1, c1).clone(), (dr, dc).clone(), bounds); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(dr, dc)` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_8.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | antenna: &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] 124 - antenna: &Vec, [INFO] [stdout] 124 + antenna: &[Coordinate], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FILE` contains a capitalized acronym [INFO] [stdout] --> src/day_9.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | FILE(File), [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `File` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SPACE` contains a capitalized acronym [INFO] [stdout] --> src/day_9.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | SPACE(Space), [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Space` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_9.rs:82:23 [INFO] [stdout] | [INFO] [stdout] 82 | fn parse_input(input: &String) -> VecDeque { [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] 82 - fn parse_input(input: &String) -> VecDeque { [INFO] [stdout] 82 + fn parse_input(input: &str) -> VecDeque { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:42:18 [INFO] [stdout] | [INFO] [stdout] 42 | Box::new(|| day_1::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_1::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:43:18 [INFO] [stdout] | [INFO] [stdout] 43 | Box::new(|| day_2::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_2::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | Box::new(|| day_3::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_3::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:45:18 [INFO] [stdout] | [INFO] [stdout] 45 | Box::new(|| day_4::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_4::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:46:18 [INFO] [stdout] | [INFO] [stdout] 46 | Box::new(|| day_5::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_5::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:47:18 [INFO] [stdout] | [INFO] [stdout] 47 | Box::new(|| day_6::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_6::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | Box::new(|| day_7::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_7::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | Box::new(|| day_8::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_8::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:50:18 [INFO] [stdout] | [INFO] [stdout] 50 | Box::new(|| day_9::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_9::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 51 | Box::new(|| day_10::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_10::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | Box::new(|| day_11::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_11::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:53:18 [INFO] [stdout] | [INFO] [stdout] 53 | Box::new(|| day_12::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_12::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:54:18 [INFO] [stdout] | [INFO] [stdout] 54 | Box::new(|| day_13::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_13::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 55 | Box::new(|| day_14::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_14::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 56 | Box::new(|| day_15::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_15::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:57:18 [INFO] [stdout] | [INFO] [stdout] 57 | Box::new(|| day_16::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_16::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 58 | Box::new(|| day_17::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_17::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | Box::new(|| day_18::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_18::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | Box::new(|| day_19::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_19::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:61:18 [INFO] [stdout] | [INFO] [stdout] 61 | Box::new(|| day_20::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_20::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:62:18 [INFO] [stdout] | [INFO] [stdout] 62 | Box::new(|| day_21::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_21::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 63 | Box::new(|| day_22::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_22::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | Box::new(|| day_23::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_23::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/main.rs:41:31 [INFO] [stdout] | [INFO] [stdout] 41 | let days: Vec ()>> = vec![ [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | None if day >= 1 && day <= 25 => bootstrap_day(day).expect("Failed to bootstrap day"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `(1..=25).contains(&day)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/day_4.rs:70:22 [INFO] [stdout] | [INFO] [stdout] 70 | let deltas = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 71 | | (-1, 0), [INFO] [stdout] 72 | | (-1, -1), [INFO] [stdout] 73 | | (0, -1), [INFO] [stdout] ... | [INFO] [stdout] 78 | | (-1, 1), [INFO] [stdout] 79 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 70 ~ let deltas = [(-1, 0), [INFO] [stdout] 71 + (-1, -1), [INFO] [stdout] 72 + (0, -1), [INFO] [stdout] 73 + (1, -1), [INFO] [stdout] 74 + (1, 0), [INFO] [stdout] 75 + (1, 1), [INFO] [stdout] 76 + (0, 1), [INFO] [stdout] 77 ~ (-1, 1)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/day_23.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_input(input: &String) -> Network { [INFO] [stdout] | ^^^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_input(input: &String) -> Network<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_1.rs:38:23 [INFO] [stdout] | [INFO] [stdout] 38 | fn parse_input(input: &String) -> (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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 38 - fn parse_input(input: &String) -> (Vec, Vec) { [INFO] [stdout] 38 + fn parse_input(input: &str) -> (Vec, Vec) { [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/day_1.rs:54:26 [INFO] [stdout] | [INFO] [stdout] 54 | fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [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 - fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [INFO] [stdout] 54 + fn to_sorted_pairs(left: &[u32], right: &Vec) -> Vec<(u32, u32)> { [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/day_1.rs:54:44 [INFO] [stdout] | [INFO] [stdout] 54 | fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [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 - fn to_sorted_pairs(left: &Vec, right: &Vec) -> Vec<(u32, u32)> { [INFO] [stdout] 54 + fn to_sorted_pairs(left: &Vec, right: &[u32]) -> Vec<(u32, u32)> { [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/day_1.rs:61:21 [INFO] [stdout] | [INFO] [stdout] 61 | fn sum_diffs(pairs: &Vec<(u32, u32)>) -> u32 { [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] 61 - fn sum_diffs(pairs: &Vec<(u32, u32)>) -> u32 { [INFO] [stdout] 61 + fn sum_diffs(pairs: &[(u32, u32)]) -> u32 { [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/day_1.rs:67:32 [INFO] [stdout] | [INFO] [stdout] 67 | fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [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] 67 - fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [INFO] [stdout] 67 + fn sum_similarity_scores(left: &[u32], right: &Vec) -> usize { [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/day_1.rs:67:50 [INFO] [stdout] | [INFO] [stdout] 67 | fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [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] 67 - fn sum_similarity_scores(left: &Vec, right: &Vec) -> usize { [INFO] [stdout] 67 + fn sum_similarity_scores(left: &Vec, right: &[u32]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `.iter().count()` on a `Vec` [INFO] [stdout] --> src/day_10.rs:105:9 [INFO] [stdout] | [INFO] [stdout] 105 | self.get_peaks(cell).iter().count() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.get_peaks(cell).len()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_count [INFO] [stdout] = note: `#[warn(clippy::iter_count)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_10.rs:118:23 [INFO] [stdout] | [INFO] [stdout] 118 | fn parse_input(input: &String) -> TopographicalMap { [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] 118 - fn parse_input(input: &String) -> TopographicalMap { [INFO] [stdout] 118 + fn parse_input(input: &str) -> TopographicalMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_11.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | fn parse_input(input: &String) -> 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] 31 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 31 + fn parse_input(input: &str) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/day_11.rs:43:10 [INFO] [stdout] | [INFO] [stdout] 43 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_11.rs:78:31 [INFO] [stdout] | [INFO] [stdout] 78 | fn count_after_blinks(stones: &Vec, number_of_blinks: u8) -> usize { [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] 78 - fn count_after_blinks(stones: &Vec, number_of_blinks: u8) -> usize { [INFO] [stdout] 78 + fn count_after_blinks(stones: &[u64], number_of_blinks: u8) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day_12.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use std::{fs, usize}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `usize::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `TOP` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | TOP, [INFO] [stdout] | ^^^ help: consider making the acronym lowercase, except the initial letter: `Top` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] = note: `#[warn(clippy::upper_case_acronyms)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `RIGHT` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 62 | RIGHT, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `BOTTOM` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | BOTTOM, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Bottom` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LEFT` contains a capitalized acronym [INFO] [stdout] --> src/day_12.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | LEFT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_12.rs:154:56 [INFO] [stdout] | [INFO] [stdout] 154 | let next_convex = side.convex_delta().apply_to(&plot); [INFO] [stdout] | ^^^^^ help: change this to: `plot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_12.rs:155:66 [INFO] [stdout] | [INFO] [stdout] 155 | let next_straight = side.straight_ahead_delta().apply_to(&plot); [INFO] [stdout] | ^^^^^ help: change this to: `plot` [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/day_12.rs:164:64 [INFO] [stdout] | [INFO] [stdout] 164 | .filter(|(plot, side)| self.check_for_corner(plot, &side)) [INFO] [stdout] | ^^^^^ help: change this to: `side` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_12.rs:255:23 [INFO] [stdout] | [INFO] [stdout] 255 | fn parse_input(input: &String) -> Garden { [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] 255 - fn parse_input(input: &String) -> Garden { [INFO] [stdout] 255 + fn parse_input(input: &str) -> Garden { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_13.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | fn parse_input(input: &String) -> 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] 125 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 125 + fn parse_input(input: &str) -> Vec { [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/day_13.rs:133:30 [INFO] [stdout] | [INFO] [stdout] 133 | fn sum_prize_costs(machines: &Vec, offset: i64) -> i64 { [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] 133 - fn sum_prize_costs(machines: &Vec, offset: i64) -> i64 { [INFO] [stdout] 133 + fn sum_prize_costs(machines: &[Machine], offset: i64) -> i64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `machines.get(0)` [INFO] [stdout] --> src/day_13.rs:196:20 [INFO] [stdout] | [INFO] [stdout] 196 | assert_eq!(machines.get(0).unwrap().get_presses(0), Some((80, 40))); [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `machines.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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_14.rs:107:23 [INFO] [stdout] | [INFO] [stdout] 107 | fn parse_input(input: &String) -> 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] 107 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 107 + fn parse_input(input: &str) -> Vec { [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/day_14.rs:112:28 [INFO] [stdout] | [INFO] [stdout] 112 | fn simulate_robots(robots: &Vec, steps: usize, bounds: &(usize, usize)) -> 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] 112 - fn simulate_robots(robots: &Vec, steps: usize, bounds: &(usize, usize)) -> Vec { [INFO] [stdout] 112 + fn simulate_robots(robots: &[Robot], steps: usize, bounds: &(usize, usize)) -> Vec { [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/day_14.rs:139:32 [INFO] [stdout] | [INFO] [stdout] 139 | fn total_safety_factor(robots: &Vec, bounds: &(usize, usize)) -> usize { [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] 139 - fn total_safety_factor(robots: &Vec, bounds: &(usize, usize)) -> usize { [INFO] [stdout] 139 + fn total_safety_factor(robots: &[Robot], bounds: &(usize, usize)) -> usize { [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/day_14.rs:162:13 [INFO] [stdout] | [INFO] [stdout] 162 | robots: &'a 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] 162 ~ robots: &'a [Robot], [INFO] [stdout] 163 | bounds: &'a (usize, usize), [INFO] [stdout] 164 | ) -> impl Iterator> + 'a { [INFO] [stdout] 165 ~ let first = robots.to_owned(); [INFO] [stdout] 166 | [INFO] [stdout] 167 ~ successors(Some(robots.to_owned()), move |robots| { [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/day_14.rs:189:26 [INFO] [stdout] | [INFO] [stdout] 189 | fn render_robots(robots: &Vec, &(r_max, c_max): &(usize, usize), show_middle_lines: bool) { [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] 189 - fn render_robots(robots: &Vec, &(r_max, c_max): &(usize, usize), show_middle_lines: bool) { [INFO] [stdout] 189 + fn render_robots(robots: &[Robot], &(r_max, c_max): &(usize, usize), show_middle_lines: bool) { [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/day_15.rs:101:34 [INFO] [stdout] | [INFO] [stdout] 101 | fn apply_moves(&self, moves: &Vec) -> Self { [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] 101 - fn apply_moves(&self, moves: &Vec) -> Self { [INFO] [stdout] 101 + fn apply_moves(&self, moves: &[Move]) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/day_15.rs:111:10 [INFO] [stdout] | [INFO] [stdout] 111 | ) -> ( [INFO] [stdout] | __________^ [INFO] [stdout] 112 | | HashSet<(usize, usize)>, [INFO] [stdout] 113 | | HashSet<(usize, usize)>, [INFO] [stdout] 114 | | (usize, usize), [INFO] [stdout] 115 | | usize, [INFO] [stdout] 116 | | usize, [INFO] [stdout] 117 | | ) { [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: this `if` has identical blocks [INFO] [stdout] --> src/day_15.rs:217:46 [INFO] [stdout] | [INFO] [stdout] 217 | if self.walls.contains(&new_pos) { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 218 | | false [INFO] [stdout] 219 | | } else if self.boxes.contains(&new_pos) && !self.move_box(&new_pos, &mv) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/day_15.rs:219:86 [INFO] [stdout] | [INFO] [stdout] 219 | } else if self.boxes.contains(&new_pos) && !self.move_box(&new_pos, &mv) { [INFO] [stdout] | ______________________________________________________________________________________^ [INFO] [stdout] 220 | | false [INFO] [stdout] 221 | | } else { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` 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/day_15.rs:219:81 [INFO] [stdout] | [INFO] [stdout] 219 | } else if self.boxes.contains(&new_pos) && !self.move_box(&new_pos, &mv) { [INFO] [stdout] | ^^^ help: change this to: `mv` [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/day_15.rs:222:35 [INFO] [stdout] | [INFO] [stdout] 222 | self.boxes.remove(&pos); [INFO] [stdout] | ^^^^ help: change this to: `pos` [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/day_15.rs:239:83 [INFO] [stdout] | [INFO] [stdout] 239 | if self.boxes.contains(&new_pos) && !new_warehouse.move_box(&new_pos, &mv) { [INFO] [stdout] | ^^^ help: change this to: `mv` [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/day_15.rs:297:35 [INFO] [stdout] | [INFO] [stdout] 297 | self.boxes.remove(&pos); [INFO] [stdout] | ^^^^ help: change this to: `pos` [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/day_15.rs:317:84 [INFO] [stdout] | [INFO] [stdout] 317 | if (self.boxes.contains(&new_pos) && !new_warehouse.move_box(&new_pos, &mv)) [INFO] [stdout] | ^^^ help: change this to: `mv` [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/day_15.rs:319:72 [INFO] [stdout] | [INFO] [stdout] 319 | && !new_warehouse.move_box(&possible_start_of_box, &mv)) [INFO] [stdout] | ^^^ help: change this to: `mv` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_15.rs:333:23 [INFO] [stdout] | [INFO] [stdout] 333 | fn parse_input(input: &String) -> (SingleWarehouse, 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] 333 - fn parse_input(input: &String) -> (SingleWarehouse, Vec) { [INFO] [stdout] 333 + fn parse_input(input: &str) -> (SingleWarehouse, Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: importing legacy numeric constants [INFO] [stdout] --> src/day_16.rs:17:15 [INFO] [stdout] | [INFO] [stdout] 17 | use std::{fs, u32}; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: remove this import [INFO] [stdout] = note: then `u32::` will resolve to the respective associated constant [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_16.rs:61:23 [INFO] [stdout] | [INFO] [stdout] 61 | match (r0.cmp(&r1), c0.cmp(&c1)) { [INFO] [stdout] | ^^^ help: change this to: `r1` [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/day_16.rs:61:36 [INFO] [stdout] | [INFO] [stdout] 61 | match (r0.cmp(&r1), c0.cmp(&c1)) { [INFO] [stdout] | ^^^ help: change this to: `c1` [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 boolean expression can be simplified [INFO] [stdout] --> src/day_16.rs:157:24 [INFO] [stdout] | [INFO] [stdout] 157 | && !visited [INFO] [stdout] | ________________________^ [INFO] [stdout] 158 | | .get(&(next.coordinates, next.facing)) [INFO] [stdout] 159 | | .is_some_and(|&s| s < next.score + next.distance) [INFO] [stdout] | |_________________________________________________________________________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 157 ~ && visited [INFO] [stdout] 158 + .get(&(next.coordinates, next.facing)).is_none_or(|&s| s >= next.score + next.distance) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_16.rs:173:13 [INFO] [stdout] | [INFO] [stdout] 173 | self.start.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.start` [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: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_16.rs:177:18 [INFO] [stdout] | [INFO] [stdout] 177 | vec![self.start.clone()], [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.start` [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: manual implementation of `Option::map` [INFO] [stdout] --> src/day_16.rs:270:9 [INFO] [stdout] | [INFO] [stdout] 270 | / if let Some(coordinates) = self.facing.forwards(&self.coordinates, maze) { [INFO] [stdout] 271 | | Some(Position { [INFO] [stdout] 272 | | coordinates, [INFO] [stdout] 273 | | score: self.score + 1, [INFO] [stdout] ... | [INFO] [stdout] 280 | | None [INFO] [stdout] 281 | | } [INFO] [stdout] | |_________^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 270 ~ self.facing.forwards(&self.coordinates, maze).map(|coordinates| Position { [INFO] [stdout] 271 + coordinates, [INFO] [stdout] 272 + score: self.score + 1, [INFO] [stdout] 273 + distance: coordinates.manhattan_distance(&maze.end) [INFO] [stdout] 274 + + coordinates.turn_cost(&maze.end, &self.facing), [INFO] [stdout] 275 + facing: self.facing, [INFO] [stdout] 276 + visited: [self.visited.clone(), vec![coordinates]].concat(), [INFO] [stdout] 277 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_16.rs:310:23 [INFO] [stdout] | [INFO] [stdout] 310 | fn parse_input(input: &String) -> Maze { [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] 310 - fn parse_input(input: &String) -> Maze { [INFO] [stdout] 310 + fn parse_input(input: &str) -> Maze { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this OR pattern can be rewritten using a range [INFO] [stdout] --> src/day_17.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 68 | 0 | 1 | 2 | 3 => operand as usize, [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `0..=3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_patterns [INFO] [stdout] = note: `#[warn(clippy::manual_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/day_17.rs:81:9 [INFO] [stdout] | [INFO] [stdout] 81 | self.register_a = self.register_a / (2usize.pow(self.deref_combo(operand) as u32)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.register_a /= (2usize.pow(self.deref_combo(operand) as u32))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_17.rs:172:23 [INFO] [stdout] | [INFO] [stdout] 172 | fn parse_input(input: &String) -> Computer { [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] 172 - fn parse_input(input: &String) -> Computer { [INFO] [stdout] 172 + fn parse_input(input: &str) -> Computer { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_17.rs:216:5 [INFO] [stdout] | [INFO] [stdout] 216 | partial_quines.first().unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*partial_quines.first().unwrap()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/day_18.rs:90:20 [INFO] [stdout] | [INFO] [stdout] 90 | if !visited [INFO] [stdout] | ____________________^ [INFO] [stdout] 91 | | .get(&next.coordinates) [INFO] [stdout] 92 | | .is_some_and(|&distance| distance <= next.travelled) [INFO] [stdout] | |________________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 90 ~ if visited [INFO] [stdout] 91 + .get(&next.coordinates).is_none_or(|&distance| distance > next.travelled) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_18.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 125 | blocked_coords.clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*blocked_coords` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_18.rs:189:23 [INFO] [stdout] | [INFO] [stdout] 189 | fn parse_input(input: &String, size: u8) -> MemorySpace { [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] 189 - fn parse_input(input: &String, size: u8) -> MemorySpace { [INFO] [stdout] 189 + fn parse_input(input: &str, size: u8) -> MemorySpace { [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/day_19.rs:155:38 [INFO] [stdout] | [INFO] [stdout] 155 | fn count_matches(&self, designs: &Vec>) -> usize { [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] 155 - fn count_matches(&self, designs: &Vec>) -> usize { [INFO] [stdout] 155 + fn count_matches(&self, designs: &[Vec]) -> usize { [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/day_19.rs:206:41 [INFO] [stdout] | [INFO] [stdout] 206 | fn sum_combinations(&self, designs: &Vec>) -> usize { [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] 206 - fn sum_combinations(&self, designs: &Vec>) -> usize { [INFO] [stdout] 206 + fn sum_combinations(&self, designs: &[Vec]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_19.rs:231:23 [INFO] [stdout] | [INFO] [stdout] 231 | fn parse_input(input: &String) -> (PatternTreeNode, 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] 231 - fn parse_input(input: &String) -> (PatternTreeNode, Vec>) { [INFO] [stdout] 231 + fn parse_input(input: &str) -> (PatternTreeNode, Vec>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | assert_eq!(root.matches(&vec![Black, Red, White, Red, Red]), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 325 - assert_eq!(root.matches(&vec![Black, Red, White, Red, Red]), true); [INFO] [stdout] 325 + assert!(root.matches(&vec![Black, Red, White, Red, Red])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:327:9 [INFO] [stdout] | [INFO] [stdout] 327 | assert_eq!(root.matches(&vec![Black, Green, Green, Red]), 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] 327 - assert_eq!(root.matches(&vec![Black, Green, Green, Red]), true); [INFO] [stdout] 327 + assert!(root.matches(&vec![Black, Green, Green, Red])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:329:9 [INFO] [stdout] | [INFO] [stdout] 329 | assert_eq!(root.matches(&vec![Green, Black, Black, Red]), 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] 329 - assert_eq!(root.matches(&vec![Green, Black, Black, Red]), true); [INFO] [stdout] 329 + assert!(root.matches(&vec![Green, Black, Black, Red])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:331:9 [INFO] [stdout] | [INFO] [stdout] 331 | / assert_eq!( [INFO] [stdout] 332 | | root.matches(&vec![Red, Red, Black, Green, Black, Red]), [INFO] [stdout] 333 | | true [INFO] [stdout] 334 | | ); [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] 331 ~ assert!( [INFO] [stdout] 332 ~ root.matches(&vec![Red, Red, Black, Green, Black, Red]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | assert_eq!(root.matches(&vec![Blue, Black, White, Blue]), 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] 336 - assert_eq!(root.matches(&vec![Blue, Black, White, Blue]), false); [INFO] [stdout] 336 + assert!(!root.matches(&vec![Blue, Black, White, Blue])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:338:9 [INFO] [stdout] | [INFO] [stdout] 338 | / assert_eq!( [INFO] [stdout] 339 | | root.matches(&vec![Black, White, Blue, Red, Red, Green]), [INFO] [stdout] 340 | | true [INFO] [stdout] 341 | | ); [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] 338 ~ assert!( [INFO] [stdout] 339 ~ root.matches(&vec![Black, White, Blue, Red, Red, Green]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 343 | assert_eq!(root.matches(&vec![Black, Red, Green, Red]), 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] 343 - assert_eq!(root.matches(&vec![Black, Red, Green, Red]), true); [INFO] [stdout] 343 + assert!(root.matches(&vec![Black, Red, Green, Red])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_19.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | / assert_eq!( [INFO] [stdout] 346 | | root.matches(&vec![Black, Black, Red, Green, White, Black]), [INFO] [stdout] 347 | | false [INFO] [stdout] 348 | | ); [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] 345 ~ assert!( [INFO] [stdout] 346 ~ !root.matches(&vec![Black, Black, Red, Green, White, Black]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_2.rs:34:23 [INFO] [stdout] | [INFO] [stdout] 34 | fn parse_input(input: &String) -> 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] 34 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 34 + fn parse_input(input: &str) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/day_2.rs:50:27 [INFO] [stdout] | [INFO] [stdout] 50 | maybe_direction = maybe_direction.or_else(|| Some(l > r)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 50 - maybe_direction = maybe_direction.or_else(|| Some(l > r)); [INFO] [stdout] 50 + maybe_direction = maybe_direction.or(Some(l > r)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/day_2.rs:87:10 [INFO] [stdout] | [INFO] [stdout] 87 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `Vec` [INFO] [stdout] --> src/day_2.rs:95:10 [INFO] [stdout] | [INFO] [stdout] 95 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | assert_eq!(report_check_with_dampener(&vec![7, 6, 4, 2, 1]), 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] 145 - assert_eq!(report_check_with_dampener(&vec![7, 6, 4, 2, 1]), true); [INFO] [stdout] 145 + assert!(report_check_with_dampener(&vec![7, 6, 4, 2, 1])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:146:9 [INFO] [stdout] | [INFO] [stdout] 146 | assert_eq!(report_check_with_dampener(&vec![1, 2, 7, 8, 9]), 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] 146 - assert_eq!(report_check_with_dampener(&vec![1, 2, 7, 8, 9]), false); [INFO] [stdout] 146 + assert!(!report_check_with_dampener(&vec![1, 2, 7, 8, 9])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | assert_eq!(report_check_with_dampener(&vec![9, 7, 6, 2, 1]), 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] 147 - assert_eq!(report_check_with_dampener(&vec![9, 7, 6, 2, 1]), false); [INFO] [stdout] 147 + assert!(!report_check_with_dampener(&vec![9, 7, 6, 2, 1])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:148:9 [INFO] [stdout] | [INFO] [stdout] 148 | assert_eq!(report_check_with_dampener(&vec![1, 3, 2, 4, 5]), 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] 148 - assert_eq!(report_check_with_dampener(&vec![1, 3, 2, 4, 5]), true); [INFO] [stdout] 148 + assert!(report_check_with_dampener(&vec![1, 3, 2, 4, 5])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | assert_eq!(report_check_with_dampener(&vec![8, 6, 4, 4, 1]), 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] 149 - assert_eq!(report_check_with_dampener(&vec![8, 6, 4, 4, 1]), true); [INFO] [stdout] 149 + assert!(report_check_with_dampener(&vec![8, 6, 4, 4, 1])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:150:9 [INFO] [stdout] | [INFO] [stdout] 150 | assert_eq!(report_check_with_dampener(&vec![1, 3, 6, 7, 9]), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 150 - assert_eq!(report_check_with_dampener(&vec![1, 3, 6, 7, 9]), true); [INFO] [stdout] 150 + assert!(report_check_with_dampener(&vec![1, 3, 6, 7, 9])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_2.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | assert_eq!(report_check_with_dampener(&vec![5, 3, 4, 7, 9]), true); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 151 - assert_eq!(report_check_with_dampener(&vec![5, 3, 4, 7, 9]), true); [INFO] [stdout] 151 + assert!(report_check_with_dampener(&vec![5, 3, 4, 7, 9])); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_20.rs:118:23 [INFO] [stdout] | [INFO] [stdout] 118 | fn parse_input(input: &String) -> RaceTrack { [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] 118 - fn parse_input(input: &String) -> RaceTrack { [INFO] [stdout] 118 + fn parse_input(input: &str) -> RaceTrack { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/day_21.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | / match coord { [INFO] [stdout] 126 | | &(3, 0) => false, [INFO] [stdout] 127 | | &(r, c) if r <= 3 && c <= 2 => true, [INFO] [stdout] 128 | | _ => false, [INFO] [stdout] 129 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 125 ~ match *coord { [INFO] [stdout] 126 ~ (3, 0) => false, [INFO] [stdout] 127 ~ (r, c) if r <= 3 && c <= 2 => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/day_21.rs:145:9 [INFO] [stdout] | [INFO] [stdout] 145 | / match coord { [INFO] [stdout] 146 | | &(0, 0) => false, [INFO] [stdout] 147 | | &(r, c) if r <= 1 && c <= 2 => true, [INFO] [stdout] 148 | | _ => false, [INFO] [stdout] 149 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 145 ~ match *coord { [INFO] [stdout] 146 ~ (0, 0) => false, [INFO] [stdout] 147 ~ (r, c) if r <= 1 && c <= 2 => true, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(u8, u8)` which implements the `Copy` trait [INFO] [stdout] --> src/day_21.rs:218:28 [INFO] [stdout] | [INFO] [stdout] 218 | let mut position = start.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*start` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_21.rs:276:37 [INFO] [stdout] | [INFO] [stdout] 276 | fn key_presses(&mut self, keys: &Vec) -> usize { [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] 276 - fn key_presses(&mut self, keys: &Vec) -> usize { [INFO] [stdout] 276 + fn key_presses(&mut self, keys: &[T]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/day_21.rs:299:21 [INFO] [stdout] | [INFO] [stdout] 299 | .filter(|c| c.is_digit(10)) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_21.rs:308:23 [INFO] [stdout] | [INFO] [stdout] 308 | fn parse_input(input: &String) -> 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] 308 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 308 + fn parse_input(input: &str) -> Vec { [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/day_21.rs:322:28 [INFO] [stdout] | [INFO] [stdout] 322 | fn sum_complexities(codes: &Vec, door: &mut KeyPad) -> usize { [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] 322 - fn sum_complexities(codes: &Vec, door: &mut KeyPad) -> usize { [INFO] [stdout] 322 + fn sum_complexities(codes: &[Code], door: &mut KeyPad) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/day_22.rs:42:35 [INFO] [stdout] | [INFO] [stdout] 42 | fn mix(&mut self, prev: &Self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] = note: `#[warn(clippy::unused_unit)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/day_22.rs:47:24 [INFO] [stdout] | [INFO] [stdout] 47 | fn prune(&mut self) -> () { [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_22.rs:69:23 [INFO] [stdout] | [INFO] [stdout] 69 | fn parse_input(input: &String) -> 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] 69 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 69 + fn parse_input(input: &str) -> Vec { [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/day_22.rs:79:27 [INFO] [stdout] | [INFO] [stdout] 79 | fn iterate_and_sum(seeds: &Vec) -> u64 { [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] 79 - fn iterate_and_sum(seeds: &Vec) -> u64 { [INFO] [stdout] 79 + fn iterate_and_sum(seeds: &[u64]) -> u64 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_22.rs:109:22 [INFO] [stdout] | [INFO] [stdout] 109 | sequence_scores: &mut 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] 109 - sequence_scores: &mut Vec, [INFO] [stdout] 109 + sequence_scores: &mut [usize], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_22.rs:110:11 [INFO] [stdout] | [INFO] [stdout] 110 | seen: &mut 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] 110 - seen: &mut Vec, [INFO] [stdout] 110 + seen: &mut [usize], [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/day_22.rs:133:43 [INFO] [stdout] | [INFO] [stdout] 133 | fn bananas_from_best_diff_sequence(seeds: &Vec) -> usize { [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] 133 - fn bananas_from_best_diff_sequence(seeds: &Vec) -> usize { [INFO] [stdout] 133 + fn bananas_from_best_diff_sequence(seeds: &[u64]) -> usize { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_22.rs:140:5 [INFO] [stdout] | [INFO] [stdout] 140 | sequence_scores.iter().max().unwrap_or(&0).clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*sequence_scores.iter().max().unwrap_or(&0)` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_23.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_input(input: &String) -> Network { [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] 93 - fn parse_input(input: &String) -> Network { [INFO] [stdout] 93 + fn parse_input(input: &str) -> Network { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_3.rs:40:34 [INFO] [stdout] | [INFO] [stdout] 40 | fn extract_instructions(program: &String) -> 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 - fn extract_instructions(program: &String) -> Vec { [INFO] [stdout] 40 + fn extract_instructions(program: &str) -> Vec { [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/day_3.rs:68:27 [INFO] [stdout] | [INFO] [stdout] 68 | fn sum_muls(instructions: &Vec) -> u32 { [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] 68 - fn sum_muls(instructions: &Vec) -> u32 { [INFO] [stdout] 68 + fn sum_muls(instructions: &[Instruction]) -> u32 { [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/day_3.rs:80:35 [INFO] [stdout] | [INFO] [stdout] 80 | fn sum_instructions(instructions: &Vec) -> u32 { [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] 80 - fn sum_instructions(instructions: &Vec) -> u32 { [INFO] [stdout] 80 + fn sum_instructions(instructions: &[Instruction]) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_4.rs:225:9 [INFO] [stdout] | [INFO] [stdout] 225 | assert_eq!(example_wordsearch().is_x_mas(&(1, 1)), 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] 225 - assert_eq!(example_wordsearch().is_x_mas(&(1, 1)), false); [INFO] [stdout] 225 + assert!(!example_wordsearch().is_x_mas(&(1, 1))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_4.rs:226:9 [INFO] [stdout] | [INFO] [stdout] 226 | assert_eq!(example_wordsearch().is_x_mas(&(4, 2)), 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] 226 - assert_eq!(example_wordsearch().is_x_mas(&(4, 2)), true); [INFO] [stdout] 226 + assert!(example_wordsearch().is_x_mas(&(4, 2))); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_5.rs:67:23 [INFO] [stdout] | [INFO] [stdout] 67 | fn parse_input(input: &String) -> (Rules, 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] 67 - fn parse_input(input: &String) -> (Rules, Vec) { [INFO] [stdout] 67 + fn parse_input(input: &str) -> (Rules, Vec) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `u32` which implements the `Copy` trait [INFO] [stdout] --> src/day_5.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | update.get(middle).unwrap().clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*update.get(middle).unwrap()` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_5.rs:97:36 [INFO] [stdout] | [INFO] [stdout] 97 | fn sum_valid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 97 - fn sum_valid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [INFO] [stdout] 97 + fn sum_valid_middle_pages(updates: &[Update], rules: &Rules) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/day_5.rs:101:14 [INFO] [stdout] | [INFO] [stdout] 101 | .map(|update| get_middle(update)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `get_middle` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_5.rs:130:47 [INFO] [stdout] | [INFO] [stdout] 130 | fn sort_and_sum_invalid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [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] 130 - fn sort_and_sum_invalid_middle_pages(updates: &Vec, rules: &Rules) -> u32 { [INFO] [stdout] 130 + fn sort_and_sum_invalid_middle_pages(updates: &[Update], rules: &Rules) -> u32 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_5.rs:134:42 [INFO] [stdout] | [INFO] [stdout] 134 | .map(|update| sort_pages(update, &rules)) [INFO] [stdout] | ^^^^^^ help: change this to: `rules` [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: name `RIGHT` contains a capitalized acronym [INFO] [stdout] --> src/day_6.rs:41:5 [INFO] [stdout] | [INFO] [stdout] 41 | RIGHT, [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `DOWN` contains a capitalized acronym [INFO] [stdout] --> src/day_6.rs:42:5 [INFO] [stdout] | [INFO] [stdout] 42 | DOWN, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Down` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `LEFT` contains a capitalized acronym [INFO] [stdout] --> src/day_6.rs:43:5 [INFO] [stdout] | [INFO] [stdout] 43 | LEFT, [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `Left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_6.rs:101:26 [INFO] [stdout] | [INFO] [stdout] 101 | new_row.zip(Some(column.clone())) [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `column` [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: using `clone` on type `usize` which implements the `Copy` trait [INFO] [stdout] --> src/day_6.rs:108:14 [INFO] [stdout] | [INFO] [stdout] 108 | Some(row.clone()).zip(new_column) [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `row` [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: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_6.rs:147:23 [INFO] [stdout] | [INFO] [stdout] 147 | fn parse_input(input: &String) -> (Lab, Guard) { [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] 147 - fn parse_input(input: &String) -> (Lab, Guard) { [INFO] [stdout] 147 + fn parse_input(input: &str) -> (Lab, Guard) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Guard` which implements the `Copy` trait [INFO] [stdout] --> src/day_6.rs:180:21 [INFO] [stdout] | [INFO] [stdout] 180 | successors(Some(guard.clone()), |g| g.take_step(lab)) [INFO] [stdout] | ^^^^^^^^^^^^^ help: try dereferencing it: `*guard` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_6.rs:185:23 [INFO] [stdout] | [INFO] [stdout] 185 | route_iter(guard, &lab).map(|g| g.position).unique().count() [INFO] [stdout] | ^^^^ help: change this to: `lab` [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/day_6.rs:190:16 [INFO] [stdout] | [INFO] [stdout] 190 | route_iter(&guard, &lab).duplicates().next().is_some() [INFO] [stdout] | ^^^^^^ help: change this to: `guard` [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/day_6.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | route_iter(&guard, &lab).duplicates().next().is_some() [INFO] [stdout] | ^^^^ help: change this to: `lab` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> src/day_6.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | assert_eq!(is_loop(&guard, &lab), 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] 285 - assert_eq!(is_loop(&guard, &lab), false); [INFO] [stdout] 285 + assert!(!is_loop(&guard, &lab)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_7.rs:101:23 [INFO] [stdout] | [INFO] [stdout] 101 | fn parse_input(input: &String) -> 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] 101 - fn parse_input(input: &String) -> Vec { [INFO] [stdout] 101 + fn parse_input(input: &str) -> Vec { [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/day_7.rs:108:42 [INFO] [stdout] | [INFO] [stdout] 108 | fn is_solvable(equation: &Equation, ops: &Vec) -> bool { [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] 108 - fn is_solvable(equation: &Equation, ops: &Vec) -> bool { [INFO] [stdout] 108 + fn is_solvable(equation: &Equation, ops: &[Operation]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/day_7.rs:148:39 [INFO] [stdout] | [INFO] [stdout] 148 | .filter(|&eq| is_solvable(eq, &ops)) [INFO] [stdout] | ^^^^ help: change this to: `ops` [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 `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_8.rs:50:23 [INFO] [stdout] | [INFO] [stdout] 50 | fn parse_input(input: &String) -> AntennaMap { [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] 50 - fn parse_input(input: &String) -> AntennaMap { [INFO] [stdout] 50 + fn parse_input(input: &str) -> AntennaMap { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `(usize, usize)` which implements the `Copy` trait [INFO] [stdout] --> src/day_8.rs:102:44 [INFO] [stdout] | [INFO] [stdout] 102 | let increasing = sequence_from_antenna((r1, c1).clone(), (dr, dc).clone(), bounds); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(r1, c1)` [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: using `clone` on type `(isize, isize)` which implements the `Copy` trait [INFO] [stdout] --> src/day_8.rs:102:62 [INFO] [stdout] | [INFO] [stdout] 102 | let increasing = sequence_from_antenna((r1, c1).clone(), (dr, dc).clone(), bounds); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(dr, dc)` [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: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/day_8.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | antenna: &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] 124 - antenna: &Vec, [INFO] [stdout] 124 + antenna: &[Coordinate], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `FILE` contains a capitalized acronym [INFO] [stdout] --> src/day_9.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | FILE(File), [INFO] [stdout] | ^^^^ help: consider making the acronym lowercase, except the initial letter: `File` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SPACE` contains a capitalized acronym [INFO] [stdout] --> src/day_9.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | SPACE(Space), [INFO] [stdout] | ^^^^^ help: consider making the acronym lowercase, except the initial letter: `Space` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#upper_case_acronyms [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/day_9.rs:82:23 [INFO] [stdout] | [INFO] [stdout] 82 | fn parse_input(input: &String) -> VecDeque { [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] 82 - fn parse_input(input: &String) -> VecDeque { [INFO] [stdout] 82 + fn parse_input(input: &str) -> VecDeque { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:42:18 [INFO] [stdout] | [INFO] [stdout] 42 | Box::new(|| day_1::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_1::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:43:18 [INFO] [stdout] | [INFO] [stdout] 43 | Box::new(|| day_2::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_2::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:44:18 [INFO] [stdout] | [INFO] [stdout] 44 | Box::new(|| day_3::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_3::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:45:18 [INFO] [stdout] | [INFO] [stdout] 45 | Box::new(|| day_4::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_4::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:46:18 [INFO] [stdout] | [INFO] [stdout] 46 | Box::new(|| day_5::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_5::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:47:18 [INFO] [stdout] | [INFO] [stdout] 47 | Box::new(|| day_6::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_6::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:48:18 [INFO] [stdout] | [INFO] [stdout] 48 | Box::new(|| day_7::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_7::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:49:18 [INFO] [stdout] | [INFO] [stdout] 49 | Box::new(|| day_8::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_8::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:50:18 [INFO] [stdout] | [INFO] [stdout] 50 | Box::new(|| day_9::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_9::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:51:18 [INFO] [stdout] | [INFO] [stdout] 51 | Box::new(|| day_10::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_10::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | Box::new(|| day_11::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_11::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:53:18 [INFO] [stdout] | [INFO] [stdout] 53 | Box::new(|| day_12::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_12::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:54:18 [INFO] [stdout] | [INFO] [stdout] 54 | Box::new(|| day_13::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_13::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 55 | Box::new(|| day_14::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_14::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 56 | Box::new(|| day_15::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_15::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:57:18 [INFO] [stdout] | [INFO] [stdout] 57 | Box::new(|| day_16::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_16::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:58:18 [INFO] [stdout] | [INFO] [stdout] 58 | Box::new(|| day_17::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_17::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:59:18 [INFO] [stdout] | [INFO] [stdout] 59 | Box::new(|| day_18::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_18::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | Box::new(|| day_19::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_19::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:61:18 [INFO] [stdout] | [INFO] [stdout] 61 | Box::new(|| day_20::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_20::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:62:18 [INFO] [stdout] | [INFO] [stdout] 62 | Box::new(|| day_21::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_21::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:63:18 [INFO] [stdout] | [INFO] [stdout] 63 | Box::new(|| day_22::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_22::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:64:18 [INFO] [stdout] | [INFO] [stdout] 64 | Box::new(|| day_23::run()), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `day_23::run` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded unit return type [INFO] [stdout] --> src/main.rs:41:31 [INFO] [stdout] | [INFO] [stdout] 41 | let days: Vec ()>> = vec![ [INFO] [stdout] | ^^^^^^ help: remove the `-> ()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/main.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | None if day >= 1 && day <= 25 => bootstrap_day(day).expect("Failed to bootstrap day"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: use: `(1..=25).contains(&day)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/day_4.rs:70:22 [INFO] [stdout] | [INFO] [stdout] 70 | let deltas = vec![ [INFO] [stdout] | ______________________^ [INFO] [stdout] 71 | | (-1, 0), [INFO] [stdout] 72 | | (-1, -1), [INFO] [stdout] 73 | | (0, -1), [INFO] [stdout] ... | [INFO] [stdout] 78 | | (-1, 1), [INFO] [stdout] 79 | | ]; [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] help: you can use an array directly [INFO] [stdout] | [INFO] [stdout] 70 ~ let deltas = [(-1, 0), [INFO] [stdout] 71 + (-1, -1), [INFO] [stdout] 72 + (0, -1), [INFO] [stdout] 73 + (1, -1), [INFO] [stdout] 74 + (1, 0), [INFO] [stdout] 75 + (1, 1), [INFO] [stdout] 76 + (0, 1), [INFO] [stdout] 77 ~ (-1, 1)]; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/day_23.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_input(input: &String) -> Network { [INFO] [stdout] | ^^^^^^^ ^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 93 | fn parse_input(input: &String) -> Network<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.57s [INFO] running `Command { std: "docker" "inspect" "eabd57853f8d48081546f7b80bf0c19ecb46d5593021bad2f62c4230e0fd9066", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "eabd57853f8d48081546f7b80bf0c19ecb46d5593021bad2f62c4230e0fd9066", kill_on_drop: false }` [INFO] [stdout] eabd57853f8d48081546f7b80bf0c19ecb46d5593021bad2f62c4230e0fd9066