[INFO] cloning repository https://github.com/reyhubcom/rey_nx [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/reyhubcom/rey_nx" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Freyhubcom%2Frey_nx", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Freyhubcom%2Frey_nx'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 3832e4cab569a0dff7b33a6c979cc6308a521843 [INFO] linting reyhubcom/rey_nx against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Freyhubcom%2Frey_nx" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] [stderr] Updating files: 14% (1646/11121) Updating files: 15% (1669/11121) Updating files: 16% (1780/11121) Updating files: 17% (1891/11121) Updating files: 18% (2002/11121) Updating files: 19% (2113/11121) Updating files: 20% (2225/11121) Updating files: 21% (2336/11121) Updating files: 22% (2447/11121) Updating files: 23% (2558/11121) Updating files: 24% (2670/11121) Updating files: 25% (2781/11121) Updating files: 26% (2892/11121) Updating files: 27% (3003/11121) Updating files: 28% (3114/11121) Updating files: 28% (3205/11121) Updating files: 29% (3226/11121) Updating files: 30% (3337/11121) Updating files: 31% (3448/11121) Updating files: 32% (3559/11121) Updating files: 33% (3670/11121) Updating files: 34% (3782/11121) Updating files: 35% (3893/11121) Updating files: 36% (4004/11121) Updating files: 37% (4115/11121) Updating files: 38% (4226/11121) Updating files: 39% (4338/11121) Updating files: 40% (4449/11121) Updating files: 41% (4560/11121) Updating files: 42% (4671/11121) Updating files: 43% (4783/11121) Updating files: 44% (4894/11121) Updating files: 45% (5005/11121) Updating files: 46% (5116/11121) Updating files: 47% (5227/11121) Updating files: 48% (5339/11121) Updating files: 49% (5450/11121) Updating files: 50% (5561/11121) Updating files: 51% (5672/11121) Updating files: 52% (5783/11121) Updating files: 53% (5895/11121) Updating files: 54% (6006/11121) Updating files: 55% (6117/11121) Updating files: 56% (6228/11121) Updating files: 57% (6339/11121) Updating files: 58% (6451/11121) Updating files: 59% (6562/11121) Updating files: 60% (6673/11121) Updating files: 61% (6784/11121) Updating files: 62% (6896/11121) Updating files: 63% (7007/11121) Updating files: 64% (7118/11121) Updating files: 65% (7229/11121) Updating files: 66% (7340/11121) Updating files: 67% (7452/11121) Updating files: 68% (7563/11121) Updating files: 69% (7674/11121) Updating files: 70% (7785/11121) Updating files: 71% (7896/11121) Updating files: 72% (8008/11121) Updating files: 73% (8119/11121) Updating files: 74% (8230/11121) Updating files: 75% (8341/11121) Updating files: 76% (8452/11121) Updating files: 77% (8564/11121) Updating files: 78% (8675/11121) Updating files: 79% (8786/11121) Updating files: 80% (8897/11121) Updating files: 81% (9009/11121) Updating files: 82% (9120/11121) Updating files: 83% (9231/11121) Updating files: 84% (9342/11121) Updating files: 85% (9453/11121) Updating files: 86% (9565/11121) Updating files: 87% (9676/11121) Updating files: 88% (9787/11121) Updating files: 89% (9898/11121) Updating files: 90% (10009/11121) Updating files: 91% (10121/11121) Updating files: 92% (10232/11121) Updating files: 93% (10343/11121) Updating files: 94% (10454/11121) Updating files: 95% (10565/11121) Updating files: 96% (10677/11121) Updating files: 97% (10788/11121) Updating files: 98% (10899/11121) Updating files: 99% (11010/11121) Updating files: 100% (11121/11121) Updating files: 100% (11121/11121), done. [INFO] removed /workspace/builds/worker-7-tc1/source/.cargo/config.toml [INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain.toml [INFO] started tweaking git repo https://github.com/reyhubcom/rey_nx [INFO] finished tweaking git repo https://github.com/reyhubcom/rey_nx [INFO] tweaked toml for git repo https://github.com/reyhubcom/rey_nx written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/reyhubcom/rey_nx 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/reyhubcom/rey_nx already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /workspace/builds/worker-7-tc1/source/packages/nx/Cargo.toml [INFO] [stderr] workspace: /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] [stderr] Updating crates.io index [INFO] [stderr] Updating git repository `https://github.com/JamesHenry/tui-term` [INFO] [stderr] Updating git repository `https://github.com/JamesHenry/vt100-rust` [INFO] [stderr] Updating git repository `https://github.com/cammisuli/wezterm` [INFO] [stderr] Updating git submodule `https://github.com/wez/freetype2.git` [INFO] [stderr] Updating git submodule `https://github.com/nyorain/dlg.git` [INFO] [stderr] Updating git submodule `https://github.com/harfbuzz/harfbuzz.git` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded gix-sec v0.10.6 [INFO] [stderr] Downloaded ignore-files v1.3.2 [INFO] [stderr] Downloaded project-origins v1.4.0 [INFO] [stderr] Downloaded watchexec-signals v2.1.0 [INFO] [stderr] Downloaded watchexec-events v2.0.1 [INFO] [stderr] Downloaded watchexec-filterer-ignore v3.0.1 [INFO] [stderr] Downloaded watchexec-supervisor v1.0.3 [INFO] [stderr] Downloaded watchexec v3.0.1 [INFO] [stderr] Downloaded swc_atoms v0.5.9 [INFO] [stderr] Downloaded better_scoped_tls v0.1.1 [INFO] [stderr] Downloaded swc_eq_ignore_macros v0.1.3 [INFO] [stderr] Downloaded napi-build v2.1.3 [INFO] [stderr] Downloaded string_enum v0.4.2 [INFO] [stderr] Downloaded from_variant v0.1.7 [INFO] [stderr] Downloaded swc_macros_common v0.3.9 [INFO] [stderr] Downloaded swc_ecma_dep_graph v0.109.16 [INFO] [stderr] Downloaded is-macro v0.3.5 [INFO] [stderr] Downloaded async-priority-channel v0.1.0 [INFO] [stderr] Downloaded jsonrpsee-types v0.25.1 [INFO] [stderr] Downloaded machine-uid v0.5.2 [INFO] [stderr] Downloaded fs4 v0.12.0 [INFO] [stderr] Downloaded jsonrpsee-proc-macros v0.25.1 [INFO] [stderr] Downloaded jsonrpsee-core v0.25.1 [INFO] [stderr] Downloaded vte v0.13.1 [INFO] [stderr] Downloaded prodash v26.2.2 [INFO] [stderr] Downloaded gix-ref v0.38.0 [INFO] [stderr] Downloaded swc_ecma_parser v0.137.16 [INFO] [stderr] Downloaded insta v1.43.1 [INFO] [stderr] Downloaded sysinfo v0.33.1 [INFO] [stderr] Downloaded rayon v1.9.0 [INFO] [stderr] Downloaded swc_common v0.31.22 [INFO] [stderr] Downloaded gix-config v0.31.0 [INFO] [stderr] Downloaded terminal-colorsaurus v0.4.8 [INFO] [stderr] Downloaded webpki-root-certs v1.0.0 [INFO] [stderr] Downloaded tracing-appender v0.2.3 [INFO] [stderr] Downloaded gix-object v0.38.0 [INFO] [stderr] Downloaded jsonrpsee-http-client v0.25.1 [INFO] [stderr] Downloaded rustls v0.23.27 [INFO] [stderr] Downloaded jsonrpsee v0.25.1 [INFO] [stderr] Downloaded swc_ecma_ast v0.107.8 [INFO] [stderr] Downloaded nix v0.30.0 [INFO] [stderr] Downloaded swc_visit_macros v0.5.11 [INFO] [stderr] Downloaded tui-term v0.2.0 [INFO] [stderr] Downloaded better-panic v0.3.0 [INFO] [stderr] Downloaded terminal-trx v0.2.4 [INFO] [stderr] Downloaded gix-features v0.36.1 [INFO] [stderr] Downloaded gix-tempfile v11.0.1 [INFO] [stderr] Downloaded gix-trace v0.1.8 [INFO] [stderr] Downloaded gix-path v0.10.9 [INFO] [stderr] Downloaded ast_node v0.9.6 [INFO] [stderr] Downloaded triomphe v0.1.11 [INFO] [stderr] Downloaded gix-actor v0.28.1 [INFO] [stderr] Downloaded unicode-id v0.3.4 [INFO] [stderr] Downloaded swc_ecma_visit v0.93.8 [INFO] [stderr] Downloaded xterm-color v1.0.1 [INFO] [stderr] Downloaded instability v0.3.7 [INFO] [stderr] Downloaded ignore-files v2.1.0 [INFO] [stderr] Downloaded atomic-take v1.1.0 [INFO] [stderr] Downloaded gix-utils v0.1.12 [INFO] [stderr] Downloaded gix-lock v11.0.1 [INFO] [stderr] Downloaded gix-hash v0.13.3 [INFO] [stderr] Downloaded swc_visit v0.5.10 [INFO] [stderr] Downloaded btoi v0.4.3 [INFO] [stderr] Downloaded gix-date v0.8.5 [INFO] [stderr] Downloaded faster-hex v0.9.0 [INFO] [stderr] Downloaded gix-fs v0.8.1 [INFO] [stderr] Downloaded xattr v1.5.0 [INFO] [stderr] Downloaded gix-config-value v0.14.6 [INFO] [stderr] Downloaded gix-glob v0.14.1 [INFO] [stderr] Downloaded gix-validate v0.8.4 [INFO] [stderr] Downloaded tui-logger v0.17.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 3f99ef347496e14a82e7723225128132614144dac42cfe3be58db275ed1885db [INFO] running `Command { std: "docker" "start" "-a" "3f99ef347496e14a82e7723225128132614144dac42cfe3be58db275ed1885db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3f99ef347496e14a82e7723225128132614144dac42cfe3be58db275ed1885db", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3f99ef347496e14a82e7723225128132614144dac42cfe3be58db275ed1885db", kill_on_drop: false }` [INFO] [stdout] 3f99ef347496e14a82e7723225128132614144dac42cfe3be58db275ed1885db [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 51093fe7b57f00d30f87abdd283740e08feed506659769fb141ff7cd59441c63 [INFO] running `Command { std: "docker" "start" "-a" "51093fe7b57f00d30f87abdd283740e08feed506659769fb141ff7cd59441c63", kill_on_drop: false }` [INFO] [stderr] warning: profiles for the non root package will be ignored, specify profiles at the workspace root: [INFO] [stderr] package: /opt/rustwide/workdir/packages/nx/Cargo.toml [INFO] [stderr] workspace: /opt/rustwide/workdir/Cargo.toml [INFO] [stderr] Compiling libc v0.2.171 [INFO] [stderr] Compiling proc-macro2 v1.0.94 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling thiserror v1.0.58 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Compiling rustix v0.38.38 [INFO] [stderr] Compiling memchr v2.7.1 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Checking either v1.10.0 [INFO] [stderr] Checking allocator-api2 v0.2.16 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Checking gix-trace v0.1.8 [INFO] [stderr] Compiling getrandom v0.2.12 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Checking signal-hook-registry v1.4.1 [INFO] [stderr] Checking mio v1.0.3 [INFO] [stderr] Checking regex-automata v0.4.6 [INFO] [stderr] Checking parking_lot_core v0.9.9 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking socket2 v0.5.9 [INFO] [stderr] Compiling ppv-lite86 v0.2.17 [INFO] [stderr] Checking prodash v26.2.2 [INFO] [stderr] Checking sha1_smol v1.0.0 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling rustversion v1.0.20 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking bstr v1.9.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking tempfile v3.13.0 [INFO] [stderr] Compiling swc_macros_common v0.3.9 [INFO] [stderr] Compiling phf_generator v0.10.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Checking url v2.5.0 [INFO] [stderr] Compiling string_cache_codegen v0.5.2 [INFO] [stderr] Compiling regex v1.10.3 [INFO] [stderr] Checking btoi v0.4.3 [INFO] [stderr] Checking winnow v0.5.40 [INFO] [stderr] Compiling bytecheck v0.6.12 [INFO] [stderr] Compiling Inflector v0.11.4 [INFO] [stderr] Compiling rustls v0.23.27 [INFO] [stderr] Compiling clang-sys v1.8.1 [INFO] [stderr] Checking signal-hook-mio v0.2.4 [INFO] [stderr] Compiling swc_atoms v0.5.9 [INFO] [stderr] Checking globset v0.4.14 [INFO] [stderr] Checking gix-utils v0.1.12 [INFO] [stderr] Checking indexmap v2.9.0 [INFO] [stderr] Checking rustls-webpki v0.103.3 [INFO] [stderr] Compiling prettyplease v0.2.17 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking simdutf8 v0.1.4 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling thiserror-impl v1.0.58 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling ptr_meta_derive v0.1.4 [INFO] [stderr] Compiling miette-derive v5.10.0 [INFO] [stderr] Checking ptr_meta v0.1.4 [INFO] [stderr] Compiling bytecheck_derive v0.6.12 [INFO] [stderr] Checking tokio v1.44.2 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Checking gix-date v0.8.5 [INFO] [stderr] Checking gix-path v0.10.9 [INFO] [stderr] Checking miette v5.10.0 [INFO] [stderr] Checking gix-actor v0.28.1 [INFO] [stderr] Checking gix-validate v0.8.4 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling swc_visit_macros v0.5.11 [INFO] [stderr] Compiling strum_macros v0.26.4 [INFO] [stderr] Checking ignore v0.4.22 [INFO] [stderr] Checking ahash v0.7.8 [INFO] [stderr] Checking castaway v0.2.3 [INFO] [stderr] Checking memmap2 v0.7.1 [INFO] [stderr] Checking inotify-sys v0.1.5 [INFO] [stderr] Checking nix v0.27.1 [INFO] [stderr] Checking filetime v0.2.23 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Checking tracing-log v0.2.0 [INFO] [stderr] Checking crossbeam-channel v0.5.12 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking sync_wrapper v1.0.2 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Compiling rkyv v0.7.44 [INFO] [stderr] Compiling bitflags v2.9.0 [INFO] [stderr] Compiling serde_json v1.0.140 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Checking better_scoped_tls v0.1.1 [INFO] [stderr] Compiling nom v7.1.3 [INFO] [stderr] Checking unicode-truncate v1.1.0 [INFO] [stderr] Checking tracing-subscriber v0.3.18 [INFO] [stderr] Checking rustls-native-certs v0.8.1 [INFO] [stderr] Compiling instability v0.3.7 [INFO] [stderr] Checking strum v0.26.3 [INFO] [stderr] Checking swc_visit v0.5.10 [INFO] [stderr] Checking inotify v0.9.6 [INFO] [stderr] Checking compact_str v0.8.1 [INFO] [stderr] Checking rayon v1.9.0 [INFO] [stderr] Checking tokio-stream v0.1.15 [INFO] [stderr] Checking tokio-util v0.7.14 [INFO] [stderr] Checking tower v0.5.2 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Checking rend v0.4.2 [INFO] [stderr] Checking h2 v0.4.10 [INFO] [stderr] Checking gix-config-value v0.14.6 [INFO] [stderr] Compiling rkyv_derive v0.7.44 [INFO] [stderr] Compiling ast_node v0.9.6 [INFO] [stderr] Compiling from_variant v0.1.7 [INFO] [stderr] Checking faster-hex v0.9.0 [INFO] [stderr] Checking gix-hash v0.13.3 [INFO] [stderr] Checking gix-features v0.36.1 [INFO] [stderr] Checking gix-fs v0.8.1 [INFO] [stderr] Checking gix-object v0.38.0 [INFO] [stderr] Checking gix-tempfile v11.0.1 [INFO] [stderr] Checking gix-lock v11.0.1 [INFO] [stderr] Checking string_cache v0.8.7 [INFO] [stderr] Checking triomphe v0.1.11 [INFO] [stderr] Checking gix-glob v0.14.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling thiserror-impl v2.0.12 [INFO] [stderr] Compiling swc_eq_ignore_macros v0.1.3 [INFO] [stderr] Checking gix-ref v0.38.0 [INFO] [stderr] Checking crossterm v0.28.1 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Checking gix-sec v0.10.6 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Compiling libloading v0.8.3 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Compiling home v0.5.9 [INFO] [stderr] Compiling bindgen v0.69.4 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Compiling rustix v1.0.5 [INFO] [stderr] Checking miniz_oxide v0.8.5 [INFO] [stderr] Checking ratatui v0.29.0 [INFO] [stderr] Checking ahash v0.8.11 [INFO] [stderr] Checking gix-config v0.31.0 [INFO] [stderr] Checking notify v6.1.1 [INFO] [stderr] Checking thiserror v2.0.12 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Checking swc_common v0.31.22 [INFO] [stderr] Compiling cexpr v0.6.0 [INFO] [stderr] Checking project-origins v1.4.0 [INFO] [stderr] Checking tokio-rustls v0.26.2 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Checking watchexec-signals v2.1.0 [INFO] [stderr] Compiling is-macro v0.3.5 [INFO] [stderr] Compiling string_enum v0.4.2 [INFO] [stderr] Checking hyper v1.6.0 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Checking http-body-util v0.1.3 [INFO] [stderr] Compiling backtrace v0.3.69 [INFO] [stderr] Compiling psm v0.1.21 [INFO] [stderr] Checking gimli v0.28.1 [INFO] [stderr] Checking dunce v1.0.4 [INFO] [stderr] Compiling toml_datetime v0.6.9 [INFO] [stderr] Compiling anyhow v1.0.81 [INFO] [stderr] Checking linux-raw-sys v0.9.3 [INFO] [stderr] Checking unicode-id v0.3.4 [INFO] [stderr] Checking swc_ecma_ast v0.107.8 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Compiling toml_edit v0.22.26 [INFO] [stderr] Checking hyper-util v0.1.15 [INFO] [stderr] Compiling libsqlite3-sys v0.30.1 [INFO] [stderr] Checking miniz_oxide v0.7.2 [INFO] [stderr] Checking flate2 v1.1.1 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking addr2line v0.21.0 [INFO] [stderr] Checking hyper-rustls v0.27.5 [INFO] [stderr] Checking watchexec-events v2.0.1 [INFO] [stderr] Checking jsonrpsee-types v0.25.1 [INFO] [stderr] Checking getrandom v0.3.1 [INFO] [stderr] Checking command-group v5.0.1 [INFO] [stderr] Compiling convert_case v0.7.1 [INFO] [stderr] Checking ioctl-rs v0.1.6 [INFO] [stderr] Checking termios v0.2.2 [INFO] [stderr] Checking serial-core v0.4.0 [INFO] [stderr] Compiling smartstring v1.0.1 [INFO] [stderr] Compiling vte_generate_state_changes v0.1.2 [INFO] [stderr] Compiling stacker v0.1.15 [INFO] [stderr] Checking object v0.32.2 [INFO] [stderr] Checking rustc-demangle v0.1.23 [INFO] [stderr] Checking normalize-path v0.2.1 [INFO] [stderr] Compiling nix v0.30.0 [INFO] [stderr] Checking chrono v0.4.40 [INFO] [stderr] Checking jsonrpsee-core v0.25.1 [INFO] [stderr] Checking vte v0.13.1 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Checking async-priority-channel v0.1.0 [INFO] [stderr] Checking serial-unix v0.4.0 [INFO] [stderr] Checking watchexec-supervisor v1.0.3 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Checking ignore-files v1.3.2 [INFO] [stderr] Checking tui-term v0.2.0 [INFO] [stderr] Checking tracing-error v0.2.1 [INFO] [stderr] Checking rustls-platform-verifier v0.5.3 [INFO] [stderr] Compiling async-recursion v1.1.0 [INFO] [stderr] Compiling convert_case v0.6.0 [INFO] [stderr] Checking console v0.15.11 [INFO] [stderr] Checking atomic-take v1.1.0 [INFO] [stderr] Compiling napi-build v2.1.3 [INFO] [stderr] Checking x11rb-protocol v0.13.1 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Checking indenter v0.3.3 [INFO] [stderr] Checking iri-string v0.7.8 [INFO] [stderr] Checking predicates-core v1.0.6 [INFO] [stderr] Compiling doc-comment v0.3.3 [INFO] [stderr] Checking image v0.25.6 [INFO] [stderr] Checking eyre v0.6.12 [INFO] [stderr] Compiling nx v0.1.0 (/opt/rustwide/workdir/packages/nx) [INFO] [stderr] Checking watchexec v3.0.1 [INFO] [stderr] Checking fxhash v0.2.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking color-spantrace v0.2.1 [INFO] [stderr] Compiling napi-derive-backend v1.0.75 [INFO] [stderr] Checking jsonrpsee-http-client v0.25.1 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking vt100-ctt v0.16.0 (https://github.com/JamesHenry/vt100-rust?rev=b15dc3b0f7db94167a9c584f1d403899c0cc871d#b15dc3b0) [INFO] [stderr] Compiling jsonrpsee-proc-macros v0.25.1 [INFO] [stderr] Checking swc_ecma_visit v0.93.8 [INFO] [stderr] Checking tower-http v0.6.6 [INFO] [stderr] Compiling machine-uid v0.5.2 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Checking serial v0.4.0 [INFO] [stderr] Checking xattr v1.5.0 [INFO] [stderr] Checking ignore-files v2.1.0 [INFO] [stderr] Checking hashlink v0.9.1 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking filedescriptor v0.8.3 [INFO] [stderr] Checking filedescriptor v0.8.3 (https://github.com/cammisuli/wezterm?rev=b538ee29e1e89eeb4832fb35ae095564dce34c29#b538ee29) [INFO] [stderr] Compiling ctor v0.2.9 [INFO] [stderr] Checking env_filter v0.1.3 [INFO] [stderr] Checking terminal-trx v0.2.4 [INFO] [stderr] Checking xterm-color v1.0.1 [INFO] [stderr] Checking termtree v0.4.1 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking anstyle v1.0.6 [INFO] [stderr] Checking downcast-rs v1.2.0 [INFO] [stderr] Compiling doctest-file v1.0.0 [INFO] [stderr] Checking fallible-streaming-iterator v0.1.9 [INFO] [stderr] Checking napi-sys v2.4.0 [INFO] [stderr] Checking fallible-iterator v0.3.0 [INFO] [stderr] Checking difflib v0.4.0 [INFO] [stderr] Checking napi v2.16.17 [INFO] [stderr] Checking interprocess v2.2.3 [INFO] [stderr] Checking predicates v3.1.0 [INFO] [stderr] Checking x11rb v0.13.1 [INFO] [stderr] Checking watchexec-filterer-ignore v3.0.1 [INFO] [stderr] Checking predicates-tree v1.0.9 [INFO] [stderr] Checking terminal-colorsaurus v0.4.8 [INFO] [stderr] Checking swc_ecma_parser v0.137.16 [INFO] [stderr] Checking tui-logger v0.17.2 [INFO] [stderr] Checking crossterm v0.29.0 [INFO] [stderr] Checking arboard v3.5.0 [INFO] [stderr] Compiling napi-derive v2.16.13 [INFO] [stderr] Checking reqwest v0.12.22 [INFO] [stderr] Checking jsonrpsee v0.25.1 [INFO] [stderr] Checking portable-pty v0.8.1 (https://github.com/cammisuli/wezterm?rev=b538ee29e1e89eeb4832fb35ae095564dce34c29#b538ee29) [INFO] [stderr] Checking tar v0.4.44 [INFO] [stderr] Checking rand v0.9.0 [INFO] [stderr] Checking tui-term v0.2.0 (https://github.com/JamesHenry/tui-term?rev=88e3b61425c97220c528ef76c188df10032a75dd#88e3b614) [INFO] [stderr] Checking color-eyre v0.6.3 [INFO] [stderr] Checking better-panic v0.3.0 [INFO] [stderr] Checking dashmap v5.5.3 [INFO] [stderr] Checking sysinfo v0.33.1 [INFO] [stderr] Checking tracing-appender v0.2.3 [INFO] [stderr] Checking globwalk v0.9.1 [INFO] [stderr] Checking colored v2.1.0 [INFO] [stderr] Checking fs4 v0.12.0 [INFO] [stderr] Checking xxhash-rust v0.8.10 [INFO] [stderr] Checking fs_extra v1.3.0 [INFO] [stderr] Checking insta v1.43.1 [INFO] [stderr] Checking assert_fs v1.1.1 [INFO] [stderr] Checking uuid v1.8.0 [INFO] [stderr] Checking rusqlite v0.32.1 [INFO] [stderr] Checking swc_ecma_dep_graph v0.109.16 [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> packages/nx/src/native/cache/expand_outputs.rs:114:10 [INFO] [stdout] | [INFO] [stdout] 114 | .fold( [INFO] [stdout] | __________^ [INFO] [stdout] 115 | | Ok(HashMap::>::new()), [INFO] [stdout] 116 | | |map_result, parsed_glob| { [INFO] [stdout] 117 | | let mut map = map_result?; [INFO] [stdout] ... | [INFO] [stdout] 122 | | }, [INFO] [stdout] 123 | | ) [INFO] [stdout] | |_________^ help: use `try_fold` instead: `try_fold(HashMap::>::new(), |map_result, parsed_glob| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/file_ops.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / if let Some(last_component) = components.last() { [INFO] [stdout] 67 | | if last_component.as_os_str() == "." { [INFO] [stdout] 68 | | components.pop(); [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 66 ~ if let Some(last_component) = components.last() [INFO] [stdout] 67 ~ && last_component.as_os_str() == "." { [INFO] [stdout] 68 | components.pop(); [INFO] [stdout] 69 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/validate_outputs.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | / if let Some(trimmed) = output.strip_prefix(prefix) { [INFO] [stdout] 26 | | if contains_glob_pattern(&trimmed) { [INFO] [stdout] 27 | | let (root, _) = partition_glob(&trimmed)?; [INFO] [stdout] 28 | | if root.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 25 ~ if let Some(trimmed) = output.strip_prefix(prefix) [INFO] [stdout] 26 ~ && contains_glob_pattern(&trimmed) { [INFO] [stdout] 27 | let (root, _) = partition_glob(&trimmed)?; [INFO] [stdout] ... [INFO] [stdout] 30 | } [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> packages/nx/src/native/cache/validate_outputs.rs:26:46 [INFO] [stdout] | [INFO] [stdout] 26 | if contains_glob_pattern(&trimmed) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `trimmed` [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] --> packages/nx/src/native/cache/validate_outputs.rs:27:56 [INFO] [stdout] | [INFO] [stdout] 27 | let (root, _) = partition_glob(&trimmed)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `trimmed` [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: module has the same name as its containing module [INFO] [stdout] --> packages/nx/src/native/cache/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub mod cache; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | self.db.execute(query, []).map_err(anyhow::Error::from)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | / if let Some(outputs) = outputs { [INFO] [stdout] 205 | | if outputs.len() > 0 && result.code == 0 { [INFO] [stdout] 206 | | size += [INFO] [stdout] 207 | | try_and_retry(|| self.copy_files_from_cache(result.clone(), outputs.clone()))?; [INFO] [stdout] 208 | | }; [INFO] [stdout] 209 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 204 ~ if let Some(outputs) = outputs [INFO] [stdout] 205 ~ && outputs.len() > 0 && result.code == 0 { [INFO] [stdout] 206 | size += [INFO] [stdout] 207 | try_and_retry(|| self.copy_files_from_cache(result.clone(), outputs.clone()))?; [INFO] [stdout] 208 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:205:16 [INFO] [stdout] | [INFO] [stdout] 205 | if outputs.len() > 0 && result.code == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!outputs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:331:25 [INFO] [stdout] | [INFO] [stdout] 331 | return Err(anyhow::anyhow!("Error copying files from cache: {:?}", e)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 331 - return Err(anyhow::anyhow!("Error copying files from cache: {:?}", e)); [INFO] [stdout] 331 + Err(anyhow::anyhow!("Error copying files from cache: {:?}", e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:387:17 [INFO] [stdout] | [INFO] [stdout] 387 | / if is_dir { [INFO] [stdout] 388 | | if let Some(file_name) = entry.file_name().to_str() { [INFO] [stdout] 389 | | if hash_regex.is_match(file_name) { [INFO] [stdout] 390 | | return Ok(false); [INFO] [stdout] ... | [INFO] [stdout] 393 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 387 ~ if is_dir [INFO] [stdout] 388 ~ && let Some(file_name) = entry.file_name().to_str() { [INFO] [stdout] 389 | if hash_regex.is_match(file_name) { [INFO] [stdout] 390 | return Ok(false); [INFO] [stdout] 391 | } [INFO] [stdout] 392 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:388:21 [INFO] [stdout] | [INFO] [stdout] 388 | / if let Some(file_name) = entry.file_name().to_str() { [INFO] [stdout] 389 | | if hash_regex.is_match(file_name) { [INFO] [stdout] 390 | | return Ok(false); [INFO] [stdout] 391 | | } [INFO] [stdout] 392 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 388 ~ if let Some(file_name) = entry.file_name().to_str() [INFO] [stdout] 389 ~ && hash_regex.is_match(file_name) { [INFO] [stdout] 390 | return Ok(false); [INFO] [stdout] 391 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `HttpRemoteCache` [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn new() -> Self { [INFO] [stdout] 27 | | let mut headers = header::HeaderMap::new(); [INFO] [stdout] 28 | | let auth_token = env::var("NX_SELF_HOSTED_REMOTE_CACHE_ACCESS_TOKEN"); [INFO] [stdout] 29 | | if let Ok(token) = auth_token { [INFO] [stdout] ... | [INFO] [stdout] 58 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 24 + impl Default for HttpRemoteCache { [INFO] [stdout] 25 + fn default() -> Self { [INFO] [stdout] 26 + Self::new() [INFO] [stdout] 27 + } [INFO] [stdout] 28 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | / if let Ok(env_accept_unauthorized) = env_accept_unauthorized { [INFO] [stdout] 46 | | if env_accept_unauthorized == "0" { [INFO] [stdout] 47 | | client_builder = client_builder.danger_accept_invalid_certs(true); [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 45 ~ if let Ok(env_accept_unauthorized) = env_accept_unauthorized [INFO] [stdout] 46 ~ && env_accept_unauthorized == "0" { [INFO] [stdout] 47 | client_builder = client_builder.danger_accept_invalid_certs(true); [INFO] [stdout] 48 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling .bytes() is very inefficient when data is not in memory [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:206:39 [INFO] [stdout] | [INFO] [stdout] 206 | let code_file_bytes = entry.bytes().collect::, _>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using `BufReader` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes [INFO] [stdout] = note: `#[warn(clippy::unbuffered_bytes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling .bytes() is very inefficient when data is not in memory [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:210:45 [INFO] [stdout] | [INFO] [stdout] 210 | let terminal_output_bytes = entry.bytes().collect::, _>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using `BufReader` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:229:30 [INFO] [stdout] | [INFO] [stdout] 229 | Ok(f) => match f { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 230 | | tar::Unpacked::File(f) => size += f.metadata()?.len() as i64, [INFO] [stdout] 231 | | _ => (), [INFO] [stdout] 232 | | }, [INFO] [stdout] | |_____________________^ help: try: `if let tar::Unpacked::File(f) = f { size += f.metadata()?.len() as i64 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> packages/nx/src/native/glob/glob_transform.rs:124:68 [INFO] [stdout] | [INFO] [stdout] 124 | GlobGroup::NonSpecial(value) if !contains_glob_pattern(&value) && !has_patterns => { [INFO] [stdout] | ^^^^^^ help: change this to: `value` [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 `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/ide/nx_console/ipc_transport.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | / if let Ok(response_str) = String::from_utf8(response_data.clone()) { [INFO] [stdout] 76 | | if response_str.contains('\n') { [INFO] [stdout] 77 | | let parts: Vec<&str> = response_str.split('\n').collect(); [INFO] [stdout] 78 | | if let Some(response_part) = parts.first() { [INFO] [stdout] ... | [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 75 ~ if let Ok(response_str) = String::from_utf8(response_data.clone()) [INFO] [stdout] 76 ~ && response_str.contains('\n') { [INFO] [stdout] 77 | let parts: Vec<&str> = response_str.split('\n').collect(); [INFO] [stdout] ... [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> packages/nx/src/native/logger/mod.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | /// NX_NATIVE_FILE_LOGGING acts the same but logs to .nx/workspace-data/nx.log instead of stdout [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 104 | /// NX_NATIVE_FILE_LOGGING acts the same but logs to .nx/workspace-data/nx.log instead of stdout [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> packages/nx/src/native/metadata.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | binary_target.push_str(&arch); [INFO] [stdout] | ^^^^^ help: change this to: `arch` [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] --> packages/nx/src/native/metadata.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | binary_target.push_str(&os); [INFO] [stdout] | ^^^ help: change this to: `os` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 204 | / if in_array_declaration { [INFO] [stdout] 205 | | self.next_block_type = BlockType::Object; [INFO] [stdout] 206 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 203 ~ Token::Comma [INFO] [stdout] 204 ~ if in_array_declaration => { [INFO] [stdout] 205 | self.next_block_type = BlockType::Object; [INFO] [stdout] 206 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:337:41 [INFO] [stdout] | [INFO] [stdout] 337 | / ... if !set { [INFO] [stdout] 338 | | ... set = true; [INFO] [stdout] 339 | | ... maybe_literal = Some(raw.to_string()); [INFO] [stdout] 340 | | ... } else { [INFO] [stdout] 341 | | ... return None; [INFO] [stdout] 342 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 336 ~ Token::Template { raw, .. } [INFO] [stdout] 337 ~ if !set => { [INFO] [stdout] 338 | set = true; [INFO] [stdout] 339 | maybe_literal = Some(raw.to_string()); [INFO] [stdout] 340 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:494:29 [INFO] [stdout] | [INFO] [stdout] 494 | / ... if !set { [INFO] [stdout] 495 | | ... set = true; [INFO] [stdout] 496 | | ... import = Some(raw.to_string()); [INFO] [stdout] 497 | | ... } else { [INFO] [stdout] 498 | | ... return None; [INFO] [stdout] 499 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 493 ~ Token::Template { raw, .. } [INFO] [stdout] 494 ~ if !set => { [INFO] [stdout] 495 | set = true; [INFO] [stdout] 496 | import = Some(raw.to_string()); [INFO] [stdout] 497 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/project_graph/utils/find_project_for_path.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / if let Some(current_path_str) = current_path.to_str() { [INFO] [stdout] 14 | | if let Some(p) = project_root_map.get(current_path_str) { [INFO] [stdout] 15 | | return Some(p); [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 13 ~ if let Some(current_path_str) = current_path.to_str() [INFO] [stdout] 14 ~ && let Some(p) = project_root_map.get(current_path_str) { [INFO] [stdout] 15 | return Some(p); [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tasks/hash_planner.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | / if let Some(pkg_name) = &node.package_name { [INFO] [stdout] 444 | | if pkg_name.as_str() == package_name { [INFO] [stdout] 445 | | return Some(node_name); [INFO] [stdout] 446 | | } [INFO] [stdout] 447 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 443 ~ if let Some(pkg_name) = &node.package_name [INFO] [stdout] 444 ~ && pkg_name.as_str() == package_name { [INFO] [stdout] 445 | return Some(node_name); [INFO] [stdout] 446 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary map of the identity function [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_project_config.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | .iter() [INFO] [stdout] | ________________^ [INFO] [stdout] 20 | | .map(|(k, v)| (k, v)) [INFO] [stdout] | |_____________________________^ help: remove the call to `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_identity [INFO] [stdout] = note: `#[warn(clippy::map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary map of the identity function [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_project_config.rs:42:24 [INFO] [stdout] | [INFO] [stdout] 42 | .iter() [INFO] [stdout] | ________________________^ [INFO] [stdout] 43 | | .map(|(k, v)| (k, v)) [INFO] [stdout] | |_____________________________________^ help: remove the call to `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_workspace_files.rs:37:28 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn get_workspace_files<'a, 'b>( [INFO] [stdout] | ^^ [INFO] [stdout] 38 | workspace_file_sets: &'a [String], [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 37 ~ pub fn get_workspace_files<'b>( [INFO] [stdout] 38 ~ workspace_file_sets: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `i` [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_workspace_files.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | for i in 0..1000 { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> packages/nx/src/native/tasks/task_history.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | ) [INFO] [stdout] | ______________^ [INFO] [stdout] | |______________| [INFO] [stdout] 53 | || .map_err(anyhow::Error::from) [INFO] [stdout] | ||_________________________________________^ [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____- help: consider removing [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `NxCondvar` [INFO] [stdout] --> packages/nx/src/native/utils/atomics/default.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / pub fn new() -> Self { [INFO] [stdout] 18 | | Self(Condvar::new()) [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 16 + impl Default for NxCondvar { [INFO] [stdout] 17 + fn default() -> Self { [INFO] [stdout] 18 + Self::new() [INFO] [stdout] 19 + } [INFO] [stdout] 20 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:92:22 [INFO] [stdout] | [INFO] [stdout] 92 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> packages/nx/src/native/utils/git.rs:27:39 [INFO] [stdout] | [INFO] [stdout] 27 | let git_root_path = find_git_root(&workspace_root)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `workspace_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> packages/nx/src/native/workspace/context.rs:126:38 [INFO] [stdout] | [INFO] [stdout] 126 | .wait(files, |guard| guard.len() == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `guard.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/workspace/context.rs:361:13 [INFO] [stdout] | [INFO] [stdout] 361 | / if let Some(project_files) = find_project_for_path(deleted_file, &project_root_mappings) [INFO] [stdout] 362 | | .and_then(|project| project_files_map.get_mut(project)) [INFO] [stdout] 363 | | { [INFO] [stdout] 364 | | if let Some(pos) = project_files.iter().position(|f| f.file == deleted_file) { [INFO] [stdout] ... | [INFO] [stdout] 368 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 362 ~ .and_then(|project| project_files_map.get_mut(project)) [INFO] [stdout] 363 ~ && let Some(pos) = project_files.iter().position(|f| f.file == deleted_file) { [INFO] [stdout] 364 | trace!("removing file: {deleted_file:?} from project"); [INFO] [stdout] 365 | project_files.remove(pos); [INFO] [stdout] 366 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/workspace/files_hashing.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | / if let Some(archived_file) = archived_files.remove(&file.normalized_path) { [INFO] [stdout] 29 | | if archived_file.1 == file.mod_time { [INFO] [stdout] 30 | | archived.push((file.normalized_path, archived_file)); [INFO] [stdout] 31 | | continue; [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 28 ~ if let Some(archived_file) = archived_files.remove(&file.normalized_path) [INFO] [stdout] 29 ~ && archived_file.1 == file.mod_time { [INFO] [stdout] 30 | archived.push((file.normalized_path, archived_file)); [INFO] [stdout] 31 | continue; [INFO] [stdout] 32 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> packages/nx/src/native/workspace/mod.rs:19:31 [INFO] [stdout] | [INFO] [stdout] 19 | let all_workspace_files = project_files [INFO] [stdout] | _______________________________^ [INFO] [stdout] 20 | | .iter() [INFO] [stdout] 21 | | .flat_map(|(_, files)| files.clone()) [INFO] [stdout] | |_____________________________________________^ help: try: `project_files.values().flat_map(|files| files.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | / if is_within_nx_tui { [INFO] [stdout] 114 | | if let Ok(mut parser) = parser_clone.write() { [INFO] [stdout] 115 | | if is_within_nx_tui { [INFO] [stdout] 116 | | trace!("Processing data via vt100 for use in tui"); [INFO] [stdout] ... | [INFO] [stdout] 120 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 113 ~ if is_within_nx_tui [INFO] [stdout] 114 ~ && let Ok(mut parser) = parser_clone.write() { [INFO] [stdout] 115 | if is_within_nx_tui { [INFO] [stdout] ... [INFO] [stdout] 118 | } [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs:114:25 [INFO] [stdout] | [INFO] [stdout] 114 | / if let Ok(mut parser) = parser_clone.write() { [INFO] [stdout] 115 | | if is_within_nx_tui { [INFO] [stdout] 116 | | trace!("Processing data via vt100 for use in tui"); [INFO] [stdout] 117 | | parser.process(&buf[..len]); [INFO] [stdout] 118 | | } [INFO] [stdout] 119 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 114 ~ if let Ok(mut parser) = parser_clone.write() [INFO] [stdout] 115 ~ && is_within_nx_tui { [INFO] [stdout] 116 | trace!("Processing data via vt100 for use in tui"); [INFO] [stdout] 117 | parser.process(&buf[..len]); [INFO] [stdout] 118 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | / pub fn run_command( [INFO] [stdout] 177 | | &mut self, [INFO] [stdout] 178 | | command: String, [INFO] [stdout] 179 | | command_dir: Option, [INFO] [stdout] ... | [INFO] [stdout] 184 | | command_label: Option, [INFO] [stdout] 185 | | ) -> napi::Result { [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/non_mac.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub fn run_command( [INFO] [stdout] 28 | | &mut self, [INFO] [stdout] 29 | | command: String, [INFO] [stdout] 30 | | command_dir: Option, [INFO] [stdout] ... | [INFO] [stdout] 35 | | command_label: Option, [INFO] [stdout] 36 | | ) -> napi::Result { [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/non_mac.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn fork( [INFO] [stdout] 52 | | &mut self, [INFO] [stdout] 53 | | id: String, [INFO] [stdout] 54 | | fork_script: String, [INFO] [stdout] ... | [INFO] [stdout] 60 | | command_label: Option, [INFO] [stdout] 61 | | ) -> napi::Result { [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SIGTERM` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | SIGTERM, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sigterm` [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 `SIGINT` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | SIGINT, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sigint` [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 `SIGKILL` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | SIGKILL, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sigkill` [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 `SIGHUP` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | SIGHUP, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sighup` [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 `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | / if let Some(pane_task_id) = pane_task { [INFO] [stdout] 218 | | if pane_task_id == &task_id { [INFO] [stdout] 219 | | self.terminal_pane_data[pane_idx].set_interactive(true); [INFO] [stdout] 220 | | break; [INFO] [stdout] 221 | | } [INFO] [stdout] 222 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 217 ~ if let Some(pane_task_id) = pane_task [INFO] [stdout] 218 ~ && pane_task_id == &task_id { [INFO] [stdout] 219 | self.terminal_pane_data[pane_idx].set_interactive(true); [INFO] [stdout] 220 | break; [INFO] [stdout] 221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:758:41 [INFO] [stdout] | [INFO] [stdout] 758 | / ... if tasks_list.filter_mode { [INFO] [stdout] 759 | | ... tasks_list.remove_filter_char(); [INFO] [stdout] 760 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 757 ~ KeyCode::Backspace [INFO] [stdout] 758 ~ if tasks_list.filter_mode => { [INFO] [stdout] 759 | tasks_list.remove_filter_char(); [INFO] [stdout] 760 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:992:21 [INFO] [stdout] | [INFO] [stdout] 992 | / if let Some(task_list_area) = layout_areas.task_list { [INFO] [stdout] 993 | | if let Some(tasks_list) = self [INFO] [stdout] 994 | | .components [INFO] [stdout] 995 | | .iter_mut() [INFO] [stdout] ... | [INFO] [stdout] 1000 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 992 ~ if let Some(task_list_area) = layout_areas.task_list [INFO] [stdout] 993 ~ && let Some(tasks_list) = self [INFO] [stdout] 994 | .components [INFO] [stdout] ... [INFO] [stdout] 998 | let _ = tasks_list.draw(f, task_list_area); [INFO] [stdout] 999 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1099:9 [INFO] [stdout] | [INFO] [stdout] 1099 | / if self.is_forced_shutdown { [INFO] [stdout] 1100 | | if let Some(cb) = &self.forced_shutdown_callback { [INFO] [stdout] 1101 | | cb.call( [INFO] [stdout] 1102 | | (), [INFO] [stdout] ... | [INFO] [stdout] 1106 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1099 ~ if self.is_forced_shutdown [INFO] [stdout] 1100 ~ && let Some(cb) = &self.forced_shutdown_callback { [INFO] [stdout] 1101 | cb.call( [INFO] [stdout] ... [INFO] [stdout] 1104 | ); [INFO] [stdout] 1105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1478:21 [INFO] [stdout] | [INFO] [stdout] 1478 | / if let Some(dep_state) = &mut self.dependency_view_states[pane_idx] { [INFO] [stdout] 1479 | | if dep_state.handle_key_event(key) { [INFO] [stdout] 1480 | | return Ok(()); // Key was handled by dependency view [INFO] [stdout] 1481 | | } [INFO] [stdout] 1482 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1478 ~ if let Some(dep_state) = &mut self.dependency_view_states[pane_idx] [INFO] [stdout] 1479 ~ && dep_state.handle_key_event(key) { [INFO] [stdout] 1480 | return Ok(()); // Key was handled by dependency view [INFO] [stdout] 1481 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1520:9 [INFO] [stdout] | [INFO] [stdout] 1520 | / if let Some(timer) = self.resize_debounce_timer { [INFO] [stdout] 1521 | | if now < timer { [INFO] [stdout] 1522 | | return Ok(()); [INFO] [stdout] 1523 | | } [INFO] [stdout] 1524 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1520 ~ if let Some(timer) = self.resize_debounce_timer [INFO] [stdout] 1521 ~ && now < timer { [INFO] [stdout] 1522 | return Ok(()); [INFO] [stdout] 1523 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1687:29 [INFO] [stdout] | [INFO] [stdout] 1687 | let should_update = self.dependency_view_states[pane_idx] [INFO] [stdout] | _____________________________^ [INFO] [stdout] 1688 | | .as_ref() [INFO] [stdout] 1689 | | .map_or(false, |existing_state| { [INFO] [stdout] 1690 | | existing_state.current_task == task_name [INFO] [stdout] 1691 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1689 - .map_or(false, |existing_state| { [INFO] [stdout] 1689 + .is_some_and(|existing_state| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `CountdownPopup` [INFO] [stdout] --> packages/nx/src/native/tui/components/countdown_popup.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn new() -> Self { [INFO] [stdout] 31 | | Self { [INFO] [stdout] 32 | | visible: false, [INFO] [stdout] 33 | | start_time: None, [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 29 + impl Default for CountdownPopup { [INFO] [stdout] 30 + fn default() -> Self { [INFO] [stdout] 31 + Self::new() [INFO] [stdout] 32 + } [INFO] [stdout] 33 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:131:17 [INFO] [stdout] | [INFO] [stdout] 131 | / if has_scrollable_content && self.scroll_offset > 0 { [INFO] [stdout] 132 | | self.scroll_up(); [INFO] [stdout] 133 | | true [INFO] [stdout] 134 | | } else { [INFO] [stdout] 135 | | false [INFO] [stdout] 136 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 131 ~ if has_scrollable_content && self.scroll_offset > 0 => { [INFO] [stdout] 132 | self.scroll_up(); [INFO] [stdout] 133 | true [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | / if has_scrollable_content && self.scroll_offset < max_scroll { [INFO] [stdout] 140 | | self.scroll_down(viewport_height); [INFO] [stdout] 141 | | true [INFO] [stdout] 142 | | } else { [INFO] [stdout] 143 | | false [INFO] [stdout] 144 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 138 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 139 ~ if has_scrollable_content && self.scroll_offset < max_scroll => { [INFO] [stdout] 140 | self.scroll_down(viewport_height); [INFO] [stdout] 141 | true [INFO] [stdout] 142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | / if has_scrollable_content && self.scroll_offset > 0 { [INFO] [stdout] 148 | | for _ in 0..12 { [INFO] [stdout] 149 | | self.scroll_up(); [INFO] [stdout] ... | [INFO] [stdout] 153 | | false [INFO] [stdout] 154 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 146 ~ KeyCode::Char('u') if key.modifiers.contains(KeyModifiers::CONTROL) [INFO] [stdout] 147 ~ && has_scrollable_content && self.scroll_offset > 0 => { [INFO] [stdout] 148 | for _ in 0..12 { [INFO] [stdout] ... [INFO] [stdout] 151 | true [INFO] [stdout] 152 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | / if has_scrollable_content && self.scroll_offset < max_scroll { [INFO] [stdout] 158 | | for _ in 0..12 { [INFO] [stdout] 159 | | self.scroll_down(viewport_height); [INFO] [stdout] ... | [INFO] [stdout] 163 | | false [INFO] [stdout] 164 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 156 ~ KeyCode::Char('d') if key.modifiers.contains(KeyModifiers::CONTROL) [INFO] [stdout] 157 ~ && has_scrollable_content && self.scroll_offset < max_scroll => { [INFO] [stdout] 158 | for _ in 0..12 { [INFO] [stdout] ... [INFO] [stdout] 161 | true [INFO] [stdout] 162 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | / !matches!( [INFO] [stdout] 198 | | status, [INFO] [stdout] 199 | | TaskStatus::Success [INFO] [stdout] 200 | | | TaskStatus::LocalCacheKeptExisting [INFO] [stdout] ... | [INFO] [stdout] 203 | | | TaskStatus::Skipped [INFO] [stdout] 204 | | ) && !(is_continuous && matches!(status, TaskStatus::InProgress | TaskStatus::Stopped)) [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] 197 ~ !(matches!( [INFO] [stdout] 198 + status, [INFO] [stdout] 199 + TaskStatus::Success [INFO] [stdout] 200 + | TaskStatus::LocalCacheKeptExisting [INFO] [stdout] 201 + | TaskStatus::LocalCache [INFO] [stdout] 202 + | TaskStatus::RemoteCache [INFO] [stdout] 203 + | TaskStatus::Skipped [INFO] [stdout] 204 + ) || is_continuous && matches!(status, TaskStatus::InProgress | TaskStatus::Stopped)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> packages/nx/src/native/tui/components/layout_manager.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | / impl Default for LayoutMode { [INFO] [stdout] 18 | | fn default() -> Self { [INFO] [stdout] 19 | | Self::Auto [INFO] [stdout] 20 | | } [INFO] [stdout] 21 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 11 + #[derive(Default)] [INFO] [stdout] 12 | pub enum LayoutMode { [INFO] [stdout] 13 ~ #[default] [INFO] [stdout] 14 ~ Auto, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> packages/nx/src/native/tui/components/layout_manager.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / impl Default for TaskListVisibility { [INFO] [stdout] 42 | | fn default() -> Self { [INFO] [stdout] 43 | | Self::Visible [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 36 + #[derive(Default)] [INFO] [stdout] 37 | pub enum TaskListVisibility { [INFO] [stdout] 38 ~ #[default] [INFO] [stdout] 39 ~ Visible, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> packages/nx/src/native/tui/components/task_selection_manager.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | / if self.selected_task_name.is_none() { [INFO] [stdout] 319 | | return None; [INFO] [stdout] 320 | | } [INFO] [stdout] | |_________^ help: replace it with: `self.selected_task_name.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> packages/nx/src/native/tui/components/task_selection_manager.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | / for entry in &self.entries { [INFO] [stdout] 331 | | if let Some(name) = entry { [INFO] [stdout] 332 | | if name == selected_name { [INFO] [stdout] 333 | | self.selected_task_index_cache = Some(task_index); [INFO] [stdout] ... | [INFO] [stdout] 338 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> packages/nx/src/native/tui/components/task_selection_manager.rs:331:17 [INFO] [stdout] | [INFO] [stdout] 331 | / if let Some(name) = entry { [INFO] [stdout] 332 | | if name == selected_name { [INFO] [stdout] 333 | | self.selected_task_index_cache = Some(task_index); [INFO] [stdout] 334 | | return Some(task_index); [INFO] [stdout] 335 | | } [INFO] [stdout] 336 | | task_index += 1; [INFO] [stdout] 337 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 330 ~ for name in self.entries.iter().flatten() { [INFO] [stdout] 331 + if name == selected_name { [INFO] [stdout] 332 + self.selected_task_index_cache = Some(task_index); [INFO] [stdout] 333 + return Some(task_index); [INFO] [stdout] 334 + } [INFO] [stdout] 335 + task_index += 1; [INFO] [stdout] 336 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:399:12 [INFO] [stdout] | [INFO] [stdout] 399 | if viewport_entries.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `viewport_entries.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.column_visibility` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:646:20 [INFO] [stdout] | [INFO] [stdout] 645 | if self.terminal_width == Some(available_width) && self.column_visibility.is_some() { [INFO] [stdout] | -------------------------------- the check is happening here [INFO] [stdout] 646 | return self.column_visibility.as_ref().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:807:13 [INFO] [stdout] | [INFO] [stdout] 807 | / if matches!(task.status, TaskStatus::InProgress) && !task.continuous { [INFO] [stdout] 808 | | if let Some(start_time) = task.start_time { [INFO] [stdout] 809 | | task.duration = format_live_duration(start_time); [INFO] [stdout] 810 | | } [INFO] [stdout] 811 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 807 ~ if matches!(task.status, TaskStatus::InProgress) && !task.continuous [INFO] [stdout] 808 ~ && let Some(start_time) = task.start_time { [INFO] [stdout] 809 | task.duration = format_live_duration(start_time); [INFO] [stdout] 810 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.start_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:823:44 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ------------------------------------- the check is happening here [INFO] [stdout] 823 | task.start_time = Some(task_result.task.start_time.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.end_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:824:42 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ----------------------------------- the check is happening here [INFO] [stdout] 823 | task.start_time = Some(task_result.task.start_time.unwrap()); [INFO] [stdout] 824 | task.end_time = Some(task_result.task.end_time.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.start_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:826:25 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ------------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 826 | task_result.task.start_time.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.end_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:827:25 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ----------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 827 | task_result.task.end_time.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:817:13 [INFO] [stdout] | [INFO] [stdout] 817 | / if let Some(task) = self [INFO] [stdout] 818 | | .tasks [INFO] [stdout] 819 | | .iter_mut() [INFO] [stdout] 820 | | .find(|t| t.name == task_result.task.id) [INFO] [stdout] ... | [INFO] [stdout] 830 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 820 ~ .find(|t| t.name == task_result.task.id) [INFO] [stdout] 821 ~ && task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] 822 | task.start_time = Some(task_result.task.start_time.unwrap()); [INFO] [stdout] ... [INFO] [stdout] 827 | ); [INFO] [stdout] 828 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1655:38 [INFO] [stdout] | [INFO] [stdout] 1655 | let previous_show_duration = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 1656 | | .column_visibility [INFO] [stdout] 1657 | | .as_ref() [INFO] [stdout] 1658 | | .map_or(false, |cv| cv.show_duration); [INFO] [stdout] | |_________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1658 - .map_or(false, |cv| cv.show_duration); [INFO] [stdout] 1658 + .is_some_and(|cv| cv.show_duration); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1680:9 [INFO] [stdout] | [INFO] [stdout] 1680 | / if let Some(area) = filter_area { [INFO] [stdout] 1681 | | if area.height > 0 [INFO] [stdout] 1682 | | && area.width > 0 [INFO] [stdout] 1683 | | && area.y < f.area().height [INFO] [stdout] ... | [INFO] [stdout] 1694 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1680 ~ if let Some(area) = filter_area [INFO] [stdout] 1681 ~ && area.height > 0 [INFO] [stdout] 1682 | && area.width > 0 [INFO] [stdout] ... [INFO] [stdout] 1692 | self.render_filter(f, safe_area); [INFO] [stdout] 1693 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1744:17 [INFO] [stdout] | [INFO] [stdout] 1744 | / if has_cloud_message { [INFO] [stdout] 1745 | | if let Some(area) = cloud_or_help_vertical_area { [INFO] [stdout] 1746 | | if area.height > 0 [INFO] [stdout] 1747 | | && area.width > 0 [INFO] [stdout] ... | [INFO] [stdout] 1771 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1744 ~ if has_cloud_message [INFO] [stdout] 1745 ~ && let Some(area) = cloud_or_help_vertical_area { [INFO] [stdout] 1746 | if area.height > 0 [INFO] [stdout] ... [INFO] [stdout] 1769 | } [INFO] [stdout] 1770 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1745:21 [INFO] [stdout] | [INFO] [stdout] 1745 | / if let Some(area) = cloud_or_help_vertical_area { [INFO] [stdout] 1746 | | if area.height > 0 [INFO] [stdout] 1747 | | && area.width > 0 [INFO] [stdout] 1748 | | && area.y < f.area().height [INFO] [stdout] ... | [INFO] [stdout] 1770 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1745 ~ if let Some(area) = cloud_or_help_vertical_area [INFO] [stdout] 1746 ~ && area.height > 0 [INFO] [stdout] 1747 | && area.width > 0 [INFO] [stdout] ... [INFO] [stdout] 1768 | } [INFO] [stdout] 1769 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1831:17 [INFO] [stdout] | [INFO] [stdout] 1831 | / if self.filter_mode { [INFO] [stdout] 1832 | | self.add_filter_char(c); [INFO] [stdout] 1833 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1830 ~ Action::AddFilterChar(c) [INFO] [stdout] 1831 ~ if self.filter_mode => { [INFO] [stdout] 1832 | self.add_filter_char(c); [INFO] [stdout] 1833 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1836:17 [INFO] [stdout] | [INFO] [stdout] 1836 | / if self.filter_mode { [INFO] [stdout] 1837 | | self.remove_filter_char(); [INFO] [stdout] 1838 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1835 ~ Action::RemoveFilterChar [INFO] [stdout] 1836 ~ if self.filter_mode => { [INFO] [stdout] 1837 | self.remove_filter_char(); [INFO] [stdout] 1838 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 227 | / pub fn new( [INFO] [stdout] 228 | | task_name: String, [INFO] [stdout] 229 | | task_status: TaskStatus, [INFO] [stdout] 230 | | is_continuous: bool, [INFO] [stdout] ... | [INFO] [stdout] 237 | | end_time: Option, [INFO] [stdout] 238 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TerminalPane<'a>` [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | / pub fn new() -> Self { [INFO] [stdout] 265 | | Self { [INFO] [stdout] 266 | | pty_data: None, [INFO] [stdout] 267 | | is_continuous: false, [INFO] [stdout] ... | [INFO] [stdout] 270 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 263 + impl<'a> Default for TerminalPane<'a> { [INFO] [stdout] 264 + fn default() -> Self { [INFO] [stdout] 265 + Self::new() [INFO] [stdout] 266 + } [INFO] [stdout] 267 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:840:24 [INFO] [stdout] | [INFO] [stdout] 840 | if needs_scrollbar && !(self.minimal && !self.is_currently_interactive()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.is_currently_interactive() || !self.minimal) && needs_scrollbar` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:840:43 [INFO] [stdout] | [INFO] [stdout] 840 | if needs_scrollbar && !(self.minimal && !self.is_currently_interactive()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.minimal || self.is_currently_interactive()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:707:9 [INFO] [stdout] | [INFO] [stdout] 707 | / if let Some(pty_data) = &self.pty_data { [INFO] [stdout] 708 | | if let Some(pty) = &pty_data.pty { [INFO] [stdout] 709 | | if let Some(screen) = pty.get_screen() { [INFO] [stdout] 710 | | let viewport_height = inner_area.height; [INFO] [stdout] ... | [INFO] [stdout] 918 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 707 ~ if let Some(pty_data) = &self.pty_data [INFO] [stdout] 708 ~ && let Some(pty) = &pty_data.pty { [INFO] [stdout] 709 | if let Some(screen) = pty.get_screen() { [INFO] [stdout] ... [INFO] [stdout] 916 | } [INFO] [stdout] 917 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:708:13 [INFO] [stdout] | [INFO] [stdout] 708 | / if let Some(pty) = &pty_data.pty { [INFO] [stdout] 709 | | if let Some(screen) = pty.get_screen() { [INFO] [stdout] 710 | | let viewport_height = inner_area.height; [INFO] [stdout] ... | [INFO] [stdout] 917 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 708 ~ if let Some(pty) = &pty_data.pty [INFO] [stdout] 709 ~ && let Some(screen) = pty.get_screen() { [INFO] [stdout] 710 | let viewport_height = inner_area.height; [INFO] [stdout] ... [INFO] [stdout] 915 | } [INFO] [stdout] 916 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:882:21 [INFO] [stdout] | [INFO] [stdout] 882 | / if show_duration { [INFO] [stdout] 883 | | if let Some(duration_formatted_text) = duration_formatted { [INFO] [stdout] 884 | | let duration_line = Line::from(vec![Span::styled( [INFO] [stdout] 885 | | duration_formatted_text, [INFO] [stdout] ... | [INFO] [stdout] 915 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 882 ~ if show_duration [INFO] [stdout] 883 ~ && let Some(duration_formatted_text) = duration_formatted { [INFO] [stdout] 884 | let duration_line = Line::from(vec![Span::styled( [INFO] [stdout] ... [INFO] [stdout] 913 | } [INFO] [stdout] 914 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> packages/nx/src/native/tui/graph_utils.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | root_causes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 181 - root_causes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 181 + root_causes.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / pub fn new( [INFO] [stdout] 77 | | tasks: Vec, [INFO] [stdout] 78 | | initiating_tasks: Vec, [INFO] [stdout] 79 | | run_mode: RunMode, [INFO] [stdout] ... | [INFO] [stdout] 85 | | task_graph: TaskGraph, [INFO] [stdout] 86 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | / if let Ok(mut t) = Tui::new() { [INFO] [stdout] 179 | | if let Err(r) = t.exit() { [INFO] [stdout] 180 | | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 181 | | } [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 178 ~ if let Ok(mut t) = Tui::new() [INFO] [stdout] 179 ~ && let Err(r) = t.exit() { [INFO] [stdout] 180 | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 181 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:234:21 [INFO] [stdout] | [INFO] [stdout] 234 | / if let Some(quit_time) = app.quit_at { [INFO] [stdout] 235 | | if std::time::Instant::now() >= quit_time { [INFO] [stdout] 236 | | tui.exit().ok(); [INFO] [stdout] 237 | | app.call_done_callback(); [INFO] [stdout] ... | [INFO] [stdout] 240 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 234 ~ if let Some(quit_time) = app.quit_at [INFO] [stdout] 235 ~ && std::time::Instant::now() >= quit_time { [INFO] [stdout] 236 | tui.exit().ok(); [INFO] [stdout] 237 | app.call_done_callback(); [INFO] [stdout] 238 | break; [INFO] [stdout] 239 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:316:5 [INFO] [stdout] | [INFO] [stdout] 316 | / if let Ok(mut t) = Tui::new() { [INFO] [stdout] 317 | | if let Err(r) = t.exit() { [INFO] [stdout] 318 | | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 319 | | } [INFO] [stdout] 320 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 316 ~ if let Ok(mut t) = Tui::new() [INFO] [stdout] 317 ~ && let Err(r) = t.exit() { [INFO] [stdout] 318 | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/scroll_momentum.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / if let Some(last_dir) = self.last_direction { [INFO] [stdout] 47 | | if last_dir != direction { [INFO] [stdout] 48 | | trace!("Direction changed from {:?} to {:?}", last_dir, direction); [INFO] [stdout] 49 | | self.momentum = INITIAL_MOMENTUM; [INFO] [stdout] ... | [INFO] [stdout] 53 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ if let Some(last_dir) = self.last_direction [INFO] [stdout] 47 ~ && last_dir != direction { [INFO] [stdout] 48 | trace!("Direction changed from {:?} to {:?}", last_dir, direction); [INFO] [stdout] ... [INFO] [stdout] 51 | self.scroll_count = 0; [INFO] [stdout] 52 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> packages/nx/src/native/watch/watch_filterer.rs:24:26 [INFO] [stdout] | [INFO] [stdout] 24 | let is_dir = file_type.map_or(false, |t| matches!(t, FileType::Dir)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 24 - let is_dir = file_type.map_or(false, |t| matches!(t, FileType::Dir)); [INFO] [stdout] 24 + let is_dir = file_type.is_some_and(|t| matches!(t, FileType::Dir)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob.rs:82:11 [INFO] [stdout] | [INFO] [stdout] 82 | glob: &str, [INFO] [stdout] | ^^^^ the lifetime is elided here [INFO] [stdout] 83 | ) -> itertools::Either, std::iter::Once<&str>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is hidden 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] 83 | ) -> itertools::Either, std::iter::Once<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | fn simple_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | fn simple_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:36:30 [INFO] [stdout] | [INFO] [stdout] 36 | fn zero_or_more_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 36 | fn zero_or_more_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | fn zero_or_one_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 43 | fn zero_or_one_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:50:29 [INFO] [stdout] | [INFO] [stdout] 50 | fn one_or_more_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 50 | fn one_or_more_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:57:39 [INFO] [stdout] | [INFO] [stdout] 57 | fn brace_group_with_empty_item(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 57 | fn brace_group_with_empty_item(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:64:27 [INFO] [stdout] | [INFO] [stdout] 64 | fn exact_one_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 64 | fn exact_one_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:71:25 [INFO] [stdout] | [INFO] [stdout] 71 | fn negated_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 71 | fn negated_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:78:30 [INFO] [stdout] | [INFO] [stdout] 78 | fn negated_file_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 78 | fn negated_file_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:86:28 [INFO] [stdout] | [INFO] [stdout] 86 | fn negated_wildcard(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 86 | fn negated_wildcard(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:94:33 [INFO] [stdout] | [INFO] [stdout] 94 | fn non_special_character(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 94 | fn non_special_character(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | fn group(input: &str) -> IResult<&str, Cow, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 108 | fn group(input: &str) -> IResult<&str, Cow<'_, str>, VerboseError<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:115:23 [INFO] [stdout] | [INFO] [stdout] 115 | fn brace_group(input: &str) -> IResult<&str, Cow, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 115 | fn brace_group(input: &str) -> IResult<&str, Cow<'_, str>, VerboseError<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:122:33 [INFO] [stdout] | [INFO] [stdout] 122 | fn separated_group_items(input: &str) -> IResult<&str, Cow, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 122 | fn separated_group_items(input: &str) -> IResult<&str, Cow<'_, str>, VerboseError<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:138:25 [INFO] [stdout] | [INFO] [stdout] 138 | fn parse_segment(input: &str) -> IResult<&str, Vec, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 138 | fn parse_segment(input: &str) -> IResult<&str, Vec>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:169:30 [INFO] [stdout] | [INFO] [stdout] 169 | fn separated_segments(input: &str) -> IResult<&str, Vec>, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 169 | fn separated_segments(input: &str) -> IResult<&str, Vec>>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:186:26 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn parse_glob(input: &str) -> anyhow::Result<(bool, Vec>)> { [INFO] [stdout] | ^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 186 | pub fn parse_glob(input: &str) -> anyhow::Result<(bool, Vec>>)> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/db/connection.rs:80:20 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn prepare(&self, sql: &str) -> Result { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 80 | pub fn prepare(&self, sql: &str) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:708:25 [INFO] [stdout] | [INFO] [stdout] 708 | fn get_header_cells(&self, column_visibility: &ColumnVisibility) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 708 | fn get_header_cells(&self, column_visibility: &ColumnVisibility) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:835:27 [INFO] [stdout] | [INFO] [stdout] 835 | fn generate_empty_row(&self, column_visibility: &ColumnVisibility) -> Row { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 835 | fn generate_empty_row(&self, column_visibility: &ColumnVisibility) -> Row<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:287:24 [INFO] [stdout] | [INFO] [stdout] 287 | fn get_status_icon(&self, status: TaskStatus) -> Span { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 287 | fn get_status_icon(&self, status: TaskStatus) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/pty.rs:218:23 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn get_screen(&self) -> Option { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 218 | pub fn get_screen(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> packages/nx/src/native/tui/pty.rs:375:13 [INFO] [stdout] | [INFO] [stdout] 375 | let mut pty = create_test_pty_instance(false); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> packages/nx/src/native/tui/pty.rs:390:13 [INFO] [stdout] | [INFO] [stdout] 390 | let mut pty = create_test_pty_instance(false); [INFO] [stdout] | ----^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> packages/nx/src/native/tui/utils.rs:411:60 [INFO] [stdout] | [INFO] [stdout] 411 | let status_to_category = |status: &TaskStatus, name: &str| -> u8 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `get_default_max_cache_size` is never used [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:404:4 [INFO] [stdout] | [INFO] [stdout] 404 | fn get_default_max_cache_size(cache_path: String) -> i64 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `get_running_tasks`, `is_task_running`, `add_running_task`, and `setup` are never used [INFO] [stdout] --> packages/nx/src/native/tasks/running_tasks_service.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl RunningTasksService { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 18 | #[napi(constructor)] [INFO] [stdout] 19 | pub fn new(db: External) -> anyhow::Result { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 31 | pub fn get_running_tasks(&mut self, ids: Vec) -> anyhow::Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 44 | fn is_task_running(&self, task_id: &String) -> anyhow::Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn add_running_task(&mut self, task_id: String) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | fn setup(&self) -> anyhow::Result<()> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `Iterator::fold` on a type that implements `Try` [INFO] [stdout] --> packages/nx/src/native/cache/expand_outputs.rs:114:10 [INFO] [stdout] | [INFO] [stdout] 114 | .fold( [INFO] [stdout] | __________^ [INFO] [stdout] 115 | | Ok(HashMap::>::new()), [INFO] [stdout] 116 | | |map_result, parsed_glob| { [INFO] [stdout] 117 | | let mut map = map_result?; [INFO] [stdout] ... | [INFO] [stdout] 122 | | }, [INFO] [stdout] 123 | | ) [INFO] [stdout] | |_________^ help: use `try_fold` instead: `try_fold(HashMap::>::new(), |map_result, parsed_glob| ...)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_try_fold [INFO] [stdout] = note: `#[warn(clippy::manual_try_fold)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/expand_outputs.rs:333:13 [INFO] [stdout] | [INFO] [stdout] 333 | / if let Ok(output) = Command::new("ps").args(&ps_args).output() { [INFO] [stdout] 334 | | if let Ok(output_str) = String::from_utf8(output.stdout) { [INFO] [stdout] 335 | | #[cfg(target_os = "linux")] [INFO] [stdout] ... | [INFO] [stdout] 352 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 333 ~ if let Ok(output) = Command::new("ps").args(&ps_args).output() [INFO] [stdout] 334 ~ && let Ok(output_str) = String::from_utf8(output.stdout) { [INFO] [stdout] 335 | #[cfg(target_os = "linux")] [INFO] [stdout] ... [INFO] [stdout] 350 | } [INFO] [stdout] 351 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/file_ops.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | / if let Some(last_component) = components.last() { [INFO] [stdout] 67 | | if last_component.as_os_str() == "." { [INFO] [stdout] 68 | | components.pop(); [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 66 ~ if let Some(last_component) = components.last() [INFO] [stdout] 67 ~ && last_component.as_os_str() == "." { [INFO] [stdout] 68 | components.pop(); [INFO] [stdout] 69 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/validate_outputs.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | / if let Some(trimmed) = output.strip_prefix(prefix) { [INFO] [stdout] 26 | | if contains_glob_pattern(&trimmed) { [INFO] [stdout] 27 | | let (root, _) = partition_glob(&trimmed)?; [INFO] [stdout] 28 | | if root.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 32 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 25 ~ if let Some(trimmed) = output.strip_prefix(prefix) [INFO] [stdout] 26 ~ && contains_glob_pattern(&trimmed) { [INFO] [stdout] 27 | let (root, _) = partition_glob(&trimmed)?; [INFO] [stdout] ... [INFO] [stdout] 30 | } [INFO] [stdout] 31 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> packages/nx/src/native/cache/validate_outputs.rs:26:46 [INFO] [stdout] | [INFO] [stdout] 26 | if contains_glob_pattern(&trimmed) { [INFO] [stdout] | ^^^^^^^^ help: change this to: `trimmed` [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] --> packages/nx/src/native/cache/validate_outputs.rs:27:56 [INFO] [stdout] | [INFO] [stdout] 27 | let (root, _) = partition_glob(&trimmed)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `trimmed` [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: module has the same name as its containing module [INFO] [stdout] --> packages/nx/src/native/cache/mod.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | pub mod cache; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:89:35 [INFO] [stdout] | [INFO] [stdout] 89 | self.db.execute(query, []).map_err(anyhow::Error::from)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:204:9 [INFO] [stdout] | [INFO] [stdout] 204 | / if let Some(outputs) = outputs { [INFO] [stdout] 205 | | if outputs.len() > 0 && result.code == 0 { [INFO] [stdout] 206 | | size += [INFO] [stdout] 207 | | try_and_retry(|| self.copy_files_from_cache(result.clone(), outputs.clone()))?; [INFO] [stdout] 208 | | }; [INFO] [stdout] 209 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 204 ~ if let Some(outputs) = outputs [INFO] [stdout] 205 ~ && outputs.len() > 0 && result.code == 0 { [INFO] [stdout] 206 | size += [INFO] [stdout] 207 | try_and_retry(|| self.copy_files_from_cache(result.clone(), outputs.clone()))?; [INFO] [stdout] 208 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:205:16 [INFO] [stdout] | [INFO] [stdout] 205 | if outputs.len() > 0 && result.code == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!outputs.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:331:25 [INFO] [stdout] | [INFO] [stdout] 331 | return Err(anyhow::anyhow!("Error copying files from cache: {:?}", e)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 331 - return Err(anyhow::anyhow!("Error copying files from cache: {:?}", e)); [INFO] [stdout] 331 + Err(anyhow::anyhow!("Error copying files from cache: {:?}", e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:387:17 [INFO] [stdout] | [INFO] [stdout] 387 | / if is_dir { [INFO] [stdout] 388 | | if let Some(file_name) = entry.file_name().to_str() { [INFO] [stdout] 389 | | if hash_regex.is_match(file_name) { [INFO] [stdout] 390 | | return Ok(false); [INFO] [stdout] ... | [INFO] [stdout] 393 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 387 ~ if is_dir [INFO] [stdout] 388 ~ && let Some(file_name) = entry.file_name().to_str() { [INFO] [stdout] 389 | if hash_regex.is_match(file_name) { [INFO] [stdout] 390 | return Ok(false); [INFO] [stdout] 391 | } [INFO] [stdout] 392 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/cache.rs:388:21 [INFO] [stdout] | [INFO] [stdout] 388 | / if let Some(file_name) = entry.file_name().to_str() { [INFO] [stdout] 389 | | if hash_regex.is_match(file_name) { [INFO] [stdout] 390 | | return Ok(false); [INFO] [stdout] 391 | | } [INFO] [stdout] 392 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 388 ~ if let Some(file_name) = entry.file_name().to_str() [INFO] [stdout] 389 ~ && hash_regex.is_match(file_name) { [INFO] [stdout] 390 | return Ok(false); [INFO] [stdout] 391 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `HttpRemoteCache` [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:26:5 [INFO] [stdout] | [INFO] [stdout] 26 | / pub fn new() -> Self { [INFO] [stdout] 27 | | let mut headers = header::HeaderMap::new(); [INFO] [stdout] 28 | | let auth_token = env::var("NX_SELF_HOSTED_REMOTE_CACHE_ACCESS_TOKEN"); [INFO] [stdout] 29 | | if let Ok(token) = auth_token { [INFO] [stdout] ... | [INFO] [stdout] 58 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 24 + impl Default for HttpRemoteCache { [INFO] [stdout] 25 + fn default() -> Self { [INFO] [stdout] 26 + Self::new() [INFO] [stdout] 27 + } [INFO] [stdout] 28 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:45:9 [INFO] [stdout] | [INFO] [stdout] 45 | / if let Ok(env_accept_unauthorized) = env_accept_unauthorized { [INFO] [stdout] 46 | | if env_accept_unauthorized == "0" { [INFO] [stdout] 47 | | client_builder = client_builder.danger_accept_invalid_certs(true); [INFO] [stdout] 48 | | } [INFO] [stdout] 49 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 45 ~ if let Ok(env_accept_unauthorized) = env_accept_unauthorized [INFO] [stdout] 46 ~ && env_accept_unauthorized == "0" { [INFO] [stdout] 47 | client_builder = client_builder.danger_accept_invalid_certs(true); [INFO] [stdout] 48 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling .bytes() is very inefficient when data is not in memory [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:206:39 [INFO] [stdout] | [INFO] [stdout] 206 | let code_file_bytes = entry.bytes().collect::, _>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using `BufReader` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes [INFO] [stdout] = note: `#[warn(clippy::unbuffered_bytes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling .bytes() is very inefficient when data is not in memory [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:210:45 [INFO] [stdout] | [INFO] [stdout] 210 | let terminal_output_bytes = entry.bytes().collect::, _>>()?; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider using `BufReader` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> packages/nx/src/native/cache/http_remote_cache.rs:229:30 [INFO] [stdout] | [INFO] [stdout] 229 | Ok(f) => match f { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 230 | | tar::Unpacked::File(f) => size += f.metadata()?.len() as i64, [INFO] [stdout] 231 | | _ => (), [INFO] [stdout] 232 | | }, [INFO] [stdout] | |_____________________^ help: try: `if let tar::Unpacked::File(f) = f { size += f.metadata()?.len() as i64 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> packages/nx/src/native/glob/glob_transform.rs:124:68 [INFO] [stdout] | [INFO] [stdout] 124 | GlobGroup::NonSpecial(value) if !contains_glob_pattern(&value) && !has_patterns => { [INFO] [stdout] | ^^^^^^ help: change this to: `value` [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 `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/ide/nx_console/ipc_transport.rs:75:13 [INFO] [stdout] | [INFO] [stdout] 75 | / if let Ok(response_str) = String::from_utf8(response_data.clone()) { [INFO] [stdout] 76 | | if response_str.contains('\n') { [INFO] [stdout] 77 | | let parts: Vec<&str> = response_str.split('\n').collect(); [INFO] [stdout] 78 | | if let Some(response_part) = parts.first() { [INFO] [stdout] ... | [INFO] [stdout] 82 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 75 ~ if let Ok(response_str) = String::from_utf8(response_data.clone()) [INFO] [stdout] 76 ~ && response_str.contains('\n') { [INFO] [stdout] 77 | let parts: Vec<&str> = response_str.split('\n').collect(); [INFO] [stdout] ... [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> packages/nx/src/native/logger/mod.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 104 | /// NX_NATIVE_FILE_LOGGING acts the same but logs to .nx/workspace-data/nx.log instead of stdout [INFO] [stdout] | ^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 104 | /// NX_NATIVE_FILE_LOGGING acts the same but logs to .nx/workspace-data/nx.log instead of stdout [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> packages/nx/src/native/metadata.rs:19:32 [INFO] [stdout] | [INFO] [stdout] 19 | binary_target.push_str(&arch); [INFO] [stdout] | ^^^^^ help: change this to: `arch` [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] --> packages/nx/src/native/metadata.rs:26:32 [INFO] [stdout] | [INFO] [stdout] 26 | binary_target.push_str(&os); [INFO] [stdout] | ^^^ help: change this to: `os` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:204:21 [INFO] [stdout] | [INFO] [stdout] 204 | / if in_array_declaration { [INFO] [stdout] 205 | | self.next_block_type = BlockType::Object; [INFO] [stdout] 206 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 203 ~ Token::Comma [INFO] [stdout] 204 ~ if in_array_declaration => { [INFO] [stdout] 205 | self.next_block_type = BlockType::Object; [INFO] [stdout] 206 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:337:41 [INFO] [stdout] | [INFO] [stdout] 337 | / ... if !set { [INFO] [stdout] 338 | | ... set = true; [INFO] [stdout] 339 | | ... maybe_literal = Some(raw.to_string()); [INFO] [stdout] 340 | | ... } else { [INFO] [stdout] 341 | | ... return None; [INFO] [stdout] 342 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 336 ~ Token::Template { raw, .. } [INFO] [stdout] 337 ~ if !set => { [INFO] [stdout] 338 | set = true; [INFO] [stdout] 339 | maybe_literal = Some(raw.to_string()); [INFO] [stdout] 340 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:494:29 [INFO] [stdout] | [INFO] [stdout] 494 | / ... if !set { [INFO] [stdout] 495 | | ... set = true; [INFO] [stdout] 496 | | ... import = Some(raw.to_string()); [INFO] [stdout] 497 | | ... } else { [INFO] [stdout] 498 | | ... return None; [INFO] [stdout] 499 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 493 ~ Token::Template { raw, .. } [INFO] [stdout] 494 ~ if !set => { [INFO] [stdout] 495 | set = true; [INFO] [stdout] 496 | import = Some(raw.to_string()); [INFO] [stdout] 497 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:768:22 [INFO] [stdout] | [INFO] [stdout] 768 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.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: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:921:22 [INFO] [stdout] | [INFO] [stdout] 921 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1049:22 [INFO] [stdout] | [INFO] [stdout] 1049 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1110:22 [INFO] [stdout] | [INFO] [stdout] 1110 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1168:22 [INFO] [stdout] | [INFO] [stdout] 1168 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1210:22 [INFO] [stdout] | [INFO] [stdout] 1210 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1263:22 [INFO] [stdout] | [INFO] [stdout] 1263 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1308:22 [INFO] [stdout] | [INFO] [stdout] 1308 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1348:22 [INFO] [stdout] | [INFO] [stdout] 1348 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1400:22 [INFO] [stdout] | [INFO] [stdout] 1400 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `results.get(0)` [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1458:22 [INFO] [stdout] | [INFO] [stdout] 1458 | let result = results.get(0).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `results.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/plugins/js/ts_import_locators.rs:1552:13 [INFO] [stdout] | [INFO] [stdout] 1552 | / if line_with_dep > 0 { [INFO] [stdout] 1553 | | if let Some(line_before_dep) = cm.get_line(line_with_dep - 1) { [INFO] [stdout] 1554 | | let trimmed_line = line_before_dep.trim(); [INFO] [stdout] 1555 | | if trimmed_line == "// nx-ignore-next-line" [INFO] [stdout] ... | [INFO] [stdout] 1561 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1552 ~ if line_with_dep > 0 [INFO] [stdout] 1553 ~ && let Some(line_before_dep) = cm.get_line(line_with_dep - 1) { [INFO] [stdout] 1554 | let trimmed_line = line_before_dep.trim(); [INFO] [stdout] ... [INFO] [stdout] 1559 | } [INFO] [stdout] 1560 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/project_graph/utils/find_project_for_path.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | / if let Some(current_path_str) = current_path.to_str() { [INFO] [stdout] 14 | | if let Some(p) = project_root_map.get(current_path_str) { [INFO] [stdout] 15 | | return Some(p); [INFO] [stdout] 16 | | } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 13 ~ if let Some(current_path_str) = current_path.to_str() [INFO] [stdout] 14 ~ && let Some(p) = project_root_map.get(current_path_str) { [INFO] [stdout] 15 | return Some(p); [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tasks/hash_planner.rs:443:13 [INFO] [stdout] | [INFO] [stdout] 443 | / if let Some(pkg_name) = &node.package_name { [INFO] [stdout] 444 | | if pkg_name.as_str() == package_name { [INFO] [stdout] 445 | | return Some(node_name); [INFO] [stdout] 446 | | } [INFO] [stdout] 447 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 443 ~ if let Some(pkg_name) = &node.package_name [INFO] [stdout] 444 ~ && pkg_name.as_str() == package_name { [INFO] [stdout] 445 | return Some(node_name); [INFO] [stdout] 446 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary map of the identity function [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_project_config.rs:19:16 [INFO] [stdout] | [INFO] [stdout] 19 | .iter() [INFO] [stdout] | ________________^ [INFO] [stdout] 20 | | .map(|(k, v)| (k, v)) [INFO] [stdout] | |_____________________________^ help: remove the call to `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_identity [INFO] [stdout] = note: `#[warn(clippy::map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary map of the identity function [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_project_config.rs:42:24 [INFO] [stdout] | [INFO] [stdout] 42 | .iter() [INFO] [stdout] | ________________________^ [INFO] [stdout] 43 | | .map(|(k, v)| (k, v)) [INFO] [stdout] | |_____________________________________^ help: remove the call to `map` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> packages/nx/src/native/tasks/hashers/hash_workspace_files.rs:37:28 [INFO] [stdout] | [INFO] [stdout] 37 | pub fn get_workspace_files<'a, 'b>( [INFO] [stdout] | ^^ [INFO] [stdout] 38 | workspace_file_sets: &'a [String], [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 37 ~ pub fn get_workspace_files<'b>( [INFO] [stdout] 38 ~ workspace_file_sets: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `anyhow::Error` [INFO] [stdout] --> packages/nx/src/native/tasks/task_history.rs:52:14 [INFO] [stdout] | [INFO] [stdout] 52 | ) [INFO] [stdout] | ______________^ [INFO] [stdout] | |______________| [INFO] [stdout] 53 | || .map_err(anyhow::Error::from) [INFO] [stdout] | ||_________________________________________^ [INFO] [stdout] 54 | | } [INFO] [stdout] | |_____- help: consider removing [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `NxCondvar` [INFO] [stdout] --> packages/nx/src/native/utils/atomics/default.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | / pub fn new() -> Self { [INFO] [stdout] 18 | | Self(Condvar::new()) [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 16 + impl Default for NxCondvar { [INFO] [stdout] 17 + fn default() -> Self { [INFO] [stdout] 18 + Self::new() [INFO] [stdout] 19 + } [INFO] [stdout] 20 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:42:14 [INFO] [stdout] | [INFO] [stdout] 42 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] = note: `#[warn(clippy::suspicious_open_options)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: file opened with `create`, but `truncate` behavior not defined [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:92:22 [INFO] [stdout] | [INFO] [stdout] 92 | .create(true) [INFO] [stdout] | ^^^^^^^^^^^^- help: add: `.truncate(true)` [INFO] [stdout] | [INFO] [stdout] = help: if you intend to overwrite an existing file entirely, call `.truncate(true)` [INFO] [stdout] = help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)` [INFO] [stdout] = help: alternatively, use `.append(true)` to append to the file instead of overwriting it [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | assert_eq!(file_lock.locked, false); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_assert_comparison)]` on by default [INFO] [stdout] help: replace it with `assert!(..)` [INFO] [stdout] | [INFO] [stdout] 135 - assert_eq!(file_lock.locked, false); [INFO] [stdout] 135 + assert!(!file_lock.locked); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | assert_eq!(file_lock.locked, 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] 137 - assert_eq!(file_lock.locked, true); [INFO] [stdout] 137 + assert!(file_lock.locked); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:140:9 [INFO] [stdout] | [INFO] [stdout] 140 | assert_eq!(file_lock.locked, 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] 140 - assert_eq!(file_lock.locked, false); [INFO] [stdout] 140 + assert!(!file_lock.locked); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: used `assert_eq!` with a literal bool [INFO] [stdout] --> packages/nx/src/native/utils/file_lock.rs:154:9 [INFO] [stdout] | [INFO] [stdout] 154 | assert_eq!(file_lock.unwrap().locked, 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] 154 - assert_eq!(file_lock.unwrap().locked, false); [INFO] [stdout] 154 + assert!(!file_lock.unwrap().locked); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> packages/nx/src/native/utils/git.rs:27:39 [INFO] [stdout] | [INFO] [stdout] 27 | let git_root_path = find_git_root(&workspace_root)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: change this to: `workspace_root` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> packages/nx/src/native/workspace/context.rs:126:38 [INFO] [stdout] | [INFO] [stdout] 126 | .wait(files, |guard| guard.len() == 0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `guard.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/workspace/context.rs:361:13 [INFO] [stdout] | [INFO] [stdout] 361 | / if let Some(project_files) = find_project_for_path(deleted_file, &project_root_mappings) [INFO] [stdout] 362 | | .and_then(|project| project_files_map.get_mut(project)) [INFO] [stdout] 363 | | { [INFO] [stdout] 364 | | if let Some(pos) = project_files.iter().position(|f| f.file == deleted_file) { [INFO] [stdout] ... | [INFO] [stdout] 368 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 362 ~ .and_then(|project| project_files_map.get_mut(project)) [INFO] [stdout] 363 ~ && let Some(pos) = project_files.iter().position(|f| f.file == deleted_file) { [INFO] [stdout] 364 | trace!("removing file: {deleted_file:?} from project"); [INFO] [stdout] 365 | project_files.remove(pos); [INFO] [stdout] 366 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/workspace/files_hashing.rs:28:9 [INFO] [stdout] | [INFO] [stdout] 28 | / if let Some(archived_file) = archived_files.remove(&file.normalized_path) { [INFO] [stdout] 29 | | if archived_file.1 == file.mod_time { [INFO] [stdout] 30 | | archived.push((file.normalized_path, archived_file)); [INFO] [stdout] 31 | | continue; [INFO] [stdout] 32 | | } [INFO] [stdout] 33 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 28 ~ if let Some(archived_file) = archived_files.remove(&file.normalized_path) [INFO] [stdout] 29 ~ && archived_file.1 == file.mod_time { [INFO] [stdout] 30 | archived.push((file.normalized_path, archived_file)); [INFO] [stdout] 31 | continue; [INFO] [stdout] 32 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: iterating on a map's values [INFO] [stdout] --> packages/nx/src/native/workspace/mod.rs:19:31 [INFO] [stdout] | [INFO] [stdout] 19 | let all_workspace_files = project_files [INFO] [stdout] | _______________________________^ [INFO] [stdout] 20 | | .iter() [INFO] [stdout] 21 | | .flat_map(|(_, files)| files.clone()) [INFO] [stdout] | |_____________________________________________^ help: try: `project_files.values().flat_map(|files| files.clone())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_kv_map [INFO] [stdout] = note: `#[warn(clippy::iter_kv_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs:113:21 [INFO] [stdout] | [INFO] [stdout] 113 | / if is_within_nx_tui { [INFO] [stdout] 114 | | if let Ok(mut parser) = parser_clone.write() { [INFO] [stdout] 115 | | if is_within_nx_tui { [INFO] [stdout] 116 | | trace!("Processing data via vt100 for use in tui"); [INFO] [stdout] ... | [INFO] [stdout] 120 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 113 ~ if is_within_nx_tui [INFO] [stdout] 114 ~ && let Ok(mut parser) = parser_clone.write() { [INFO] [stdout] 115 | if is_within_nx_tui { [INFO] [stdout] ... [INFO] [stdout] 118 | } [INFO] [stdout] 119 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs:114:25 [INFO] [stdout] | [INFO] [stdout] 114 | / if let Ok(mut parser) = parser_clone.write() { [INFO] [stdout] 115 | | if is_within_nx_tui { [INFO] [stdout] 116 | | trace!("Processing data via vt100 for use in tui"); [INFO] [stdout] 117 | | parser.process(&buf[..len]); [INFO] [stdout] 118 | | } [INFO] [stdout] 119 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 114 ~ if let Ok(mut parser) = parser_clone.write() [INFO] [stdout] 115 ~ && is_within_nx_tui { [INFO] [stdout] 116 | trace!("Processing data via vt100 for use in tui"); [INFO] [stdout] 117 | parser.process(&buf[..len]); [INFO] [stdout] 118 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/pseudo_terminal.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | / pub fn run_command( [INFO] [stdout] 177 | | &mut self, [INFO] [stdout] 178 | | command: String, [INFO] [stdout] 179 | | command_dir: Option, [INFO] [stdout] ... | [INFO] [stdout] 184 | | command_label: Option, [INFO] [stdout] 185 | | ) -> napi::Result { [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/non_mac.rs:27:5 [INFO] [stdout] | [INFO] [stdout] 27 | / pub fn run_command( [INFO] [stdout] 28 | | &mut self, [INFO] [stdout] 29 | | command: String, [INFO] [stdout] 30 | | command_dir: Option, [INFO] [stdout] ... | [INFO] [stdout] 35 | | command_label: Option, [INFO] [stdout] 36 | | ) -> napi::Result { [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/non_mac.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | / pub fn fork( [INFO] [stdout] 52 | | &mut self, [INFO] [stdout] 53 | | id: String, [INFO] [stdout] 54 | | fork_script: String, [INFO] [stdout] ... | [INFO] [stdout] 60 | | command_label: Option, [INFO] [stdout] 61 | | ) -> napi::Result { [INFO] [stdout] | |___________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: name `SIGTERM` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 31 | SIGTERM, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sigterm` [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 `SIGINT` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | SIGINT, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sigint` [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 `SIGKILL` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | SIGKILL, [INFO] [stdout] | ^^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sigkill` [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 `SIGHUP` contains a capitalized acronym [INFO] [stdout] --> packages/nx/src/native/pseudo_terminal/process_killer/unix.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | SIGHUP, [INFO] [stdout] | ^^^^^^ help: consider making the acronym lowercase, except the initial letter: `Sighup` [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 `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:217:17 [INFO] [stdout] | [INFO] [stdout] 217 | / if let Some(pane_task_id) = pane_task { [INFO] [stdout] 218 | | if pane_task_id == &task_id { [INFO] [stdout] 219 | | self.terminal_pane_data[pane_idx].set_interactive(true); [INFO] [stdout] 220 | | break; [INFO] [stdout] 221 | | } [INFO] [stdout] 222 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 217 ~ if let Some(pane_task_id) = pane_task [INFO] [stdout] 218 ~ && pane_task_id == &task_id { [INFO] [stdout] 219 | self.terminal_pane_data[pane_idx].set_interactive(true); [INFO] [stdout] 220 | break; [INFO] [stdout] 221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:758:41 [INFO] [stdout] | [INFO] [stdout] 758 | / ... if tasks_list.filter_mode { [INFO] [stdout] 759 | | ... tasks_list.remove_filter_char(); [INFO] [stdout] 760 | | ... } [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 757 ~ KeyCode::Backspace [INFO] [stdout] 758 ~ if tasks_list.filter_mode => { [INFO] [stdout] 759 | tasks_list.remove_filter_char(); [INFO] [stdout] 760 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:992:21 [INFO] [stdout] | [INFO] [stdout] 992 | / if let Some(task_list_area) = layout_areas.task_list { [INFO] [stdout] 993 | | if let Some(tasks_list) = self [INFO] [stdout] 994 | | .components [INFO] [stdout] 995 | | .iter_mut() [INFO] [stdout] ... | [INFO] [stdout] 1000 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 992 ~ if let Some(task_list_area) = layout_areas.task_list [INFO] [stdout] 993 ~ && let Some(tasks_list) = self [INFO] [stdout] 994 | .components [INFO] [stdout] ... [INFO] [stdout] 998 | let _ = tasks_list.draw(f, task_list_area); [INFO] [stdout] 999 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1099:9 [INFO] [stdout] | [INFO] [stdout] 1099 | / if self.is_forced_shutdown { [INFO] [stdout] 1100 | | if let Some(cb) = &self.forced_shutdown_callback { [INFO] [stdout] 1101 | | cb.call( [INFO] [stdout] 1102 | | (), [INFO] [stdout] ... | [INFO] [stdout] 1106 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1099 ~ if self.is_forced_shutdown [INFO] [stdout] 1100 ~ && let Some(cb) = &self.forced_shutdown_callback { [INFO] [stdout] 1101 | cb.call( [INFO] [stdout] ... [INFO] [stdout] 1104 | ); [INFO] [stdout] 1105 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1478:21 [INFO] [stdout] | [INFO] [stdout] 1478 | / if let Some(dep_state) = &mut self.dependency_view_states[pane_idx] { [INFO] [stdout] 1479 | | if dep_state.handle_key_event(key) { [INFO] [stdout] 1480 | | return Ok(()); // Key was handled by dependency view [INFO] [stdout] 1481 | | } [INFO] [stdout] 1482 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1478 ~ if let Some(dep_state) = &mut self.dependency_view_states[pane_idx] [INFO] [stdout] 1479 ~ && dep_state.handle_key_event(key) { [INFO] [stdout] 1480 | return Ok(()); // Key was handled by dependency view [INFO] [stdout] 1481 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1520:9 [INFO] [stdout] | [INFO] [stdout] 1520 | / if let Some(timer) = self.resize_debounce_timer { [INFO] [stdout] 1521 | | if now < timer { [INFO] [stdout] 1522 | | return Ok(()); [INFO] [stdout] 1523 | | } [INFO] [stdout] 1524 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1520 ~ if let Some(timer) = self.resize_debounce_timer [INFO] [stdout] 1521 ~ && now < timer { [INFO] [stdout] 1522 | return Ok(()); [INFO] [stdout] 1523 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/app.rs:1687:29 [INFO] [stdout] | [INFO] [stdout] 1687 | let should_update = self.dependency_view_states[pane_idx] [INFO] [stdout] | _____________________________^ [INFO] [stdout] 1688 | | .as_ref() [INFO] [stdout] 1689 | | .map_or(false, |existing_state| { [INFO] [stdout] 1690 | | existing_state.current_task == task_name [INFO] [stdout] 1691 | | }); [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1689 - .map_or(false, |existing_state| { [INFO] [stdout] 1689 + .is_some_and(|existing_state| { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `CountdownPopup` [INFO] [stdout] --> packages/nx/src/native/tui/components/countdown_popup.rs:30:5 [INFO] [stdout] | [INFO] [stdout] 30 | / pub fn new() -> Self { [INFO] [stdout] 31 | | Self { [INFO] [stdout] 32 | | visible: false, [INFO] [stdout] 33 | | start_time: None, [INFO] [stdout] ... | [INFO] [stdout] 40 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 29 + impl Default for CountdownPopup { [INFO] [stdout] 30 + fn default() -> Self { [INFO] [stdout] 31 + Self::new() [INFO] [stdout] 32 + } [INFO] [stdout] 33 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:131:17 [INFO] [stdout] | [INFO] [stdout] 131 | / if has_scrollable_content && self.scroll_offset > 0 { [INFO] [stdout] 132 | | self.scroll_up(); [INFO] [stdout] 133 | | true [INFO] [stdout] 134 | | } else { [INFO] [stdout] 135 | | false [INFO] [stdout] 136 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 130 ~ KeyCode::Up | KeyCode::Char('k') [INFO] [stdout] 131 ~ if has_scrollable_content && self.scroll_offset > 0 => { [INFO] [stdout] 132 | self.scroll_up(); [INFO] [stdout] 133 | true [INFO] [stdout] 134 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:139:17 [INFO] [stdout] | [INFO] [stdout] 139 | / if has_scrollable_content && self.scroll_offset < max_scroll { [INFO] [stdout] 140 | | self.scroll_down(viewport_height); [INFO] [stdout] 141 | | true [INFO] [stdout] 142 | | } else { [INFO] [stdout] 143 | | false [INFO] [stdout] 144 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 138 ~ KeyCode::Down | KeyCode::Char('j') [INFO] [stdout] 139 ~ if has_scrollable_content && self.scroll_offset < max_scroll => { [INFO] [stdout] 140 | self.scroll_down(viewport_height); [INFO] [stdout] 141 | true [INFO] [stdout] 142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:147:17 [INFO] [stdout] | [INFO] [stdout] 147 | / if has_scrollable_content && self.scroll_offset > 0 { [INFO] [stdout] 148 | | for _ in 0..12 { [INFO] [stdout] 149 | | self.scroll_up(); [INFO] [stdout] ... | [INFO] [stdout] 153 | | false [INFO] [stdout] 154 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 146 ~ KeyCode::Char('u') if key.modifiers.contains(KeyModifiers::CONTROL) [INFO] [stdout] 147 ~ && has_scrollable_content && self.scroll_offset > 0 => { [INFO] [stdout] 148 | for _ in 0..12 { [INFO] [stdout] ... [INFO] [stdout] 151 | true [INFO] [stdout] 152 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:157:17 [INFO] [stdout] | [INFO] [stdout] 157 | / if has_scrollable_content && self.scroll_offset < max_scroll { [INFO] [stdout] 158 | | for _ in 0..12 { [INFO] [stdout] 159 | | self.scroll_down(viewport_height); [INFO] [stdout] ... | [INFO] [stdout] 163 | | false [INFO] [stdout] 164 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 156 ~ KeyCode::Char('d') if key.modifiers.contains(KeyModifiers::CONTROL) [INFO] [stdout] 157 ~ && has_scrollable_content && self.scroll_offset < max_scroll => { [INFO] [stdout] 158 | for _ in 0..12 { [INFO] [stdout] ... [INFO] [stdout] 161 | true [INFO] [stdout] 162 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/dependency_view.rs:197:9 [INFO] [stdout] | [INFO] [stdout] 197 | / !matches!( [INFO] [stdout] 198 | | status, [INFO] [stdout] 199 | | TaskStatus::Success [INFO] [stdout] 200 | | | TaskStatus::LocalCacheKeptExisting [INFO] [stdout] ... | [INFO] [stdout] 203 | | | TaskStatus::Skipped [INFO] [stdout] 204 | | ) && !(is_continuous && matches!(status, TaskStatus::InProgress | TaskStatus::Stopped)) [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] 197 ~ !(matches!( [INFO] [stdout] 198 + status, [INFO] [stdout] 199 + TaskStatus::Success [INFO] [stdout] 200 + | TaskStatus::LocalCacheKeptExisting [INFO] [stdout] 201 + | TaskStatus::LocalCache [INFO] [stdout] 202 + | TaskStatus::RemoteCache [INFO] [stdout] 203 + | TaskStatus::Skipped [INFO] [stdout] 204 + ) || is_continuous && matches!(status, TaskStatus::InProgress | TaskStatus::Stopped)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> packages/nx/src/native/tui/components/layout_manager.rs:17:1 [INFO] [stdout] | [INFO] [stdout] 17 | / impl Default for LayoutMode { [INFO] [stdout] 18 | | fn default() -> Self { [INFO] [stdout] 19 | | Self::Auto [INFO] [stdout] 20 | | } [INFO] [stdout] 21 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 11 + #[derive(Default)] [INFO] [stdout] 12 | pub enum LayoutMode { [INFO] [stdout] 13 ~ #[default] [INFO] [stdout] 14 ~ Auto, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> packages/nx/src/native/tui/components/layout_manager.rs:41:1 [INFO] [stdout] | [INFO] [stdout] 41 | / impl Default for TaskListVisibility { [INFO] [stdout] 42 | | fn default() -> Self { [INFO] [stdout] 43 | | Self::Visible [INFO] [stdout] 44 | | } [INFO] [stdout] 45 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 36 + #[derive(Default)] [INFO] [stdout] 37 | pub enum TaskListVisibility { [INFO] [stdout] 38 ~ #[default] [INFO] [stdout] 39 ~ Visible, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> packages/nx/src/native/tui/components/task_selection_manager.rs:318:9 [INFO] [stdout] | [INFO] [stdout] 318 | / if self.selected_task_name.is_none() { [INFO] [stdout] 319 | | return None; [INFO] [stdout] 320 | | } [INFO] [stdout] | |_________^ help: replace it with: `self.selected_task_name.as_ref()?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> packages/nx/src/native/tui/components/task_selection_manager.rs:330:13 [INFO] [stdout] | [INFO] [stdout] 330 | / for entry in &self.entries { [INFO] [stdout] 331 | | if let Some(name) = entry { [INFO] [stdout] 332 | | if name == selected_name { [INFO] [stdout] 333 | | self.selected_task_index_cache = Some(task_index); [INFO] [stdout] ... | [INFO] [stdout] 338 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> packages/nx/src/native/tui/components/task_selection_manager.rs:331:17 [INFO] [stdout] | [INFO] [stdout] 331 | / if let Some(name) = entry { [INFO] [stdout] 332 | | if name == selected_name { [INFO] [stdout] 333 | | self.selected_task_index_cache = Some(task_index); [INFO] [stdout] 334 | | return Some(task_index); [INFO] [stdout] 335 | | } [INFO] [stdout] 336 | | task_index += 1; [INFO] [stdout] 337 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_flatten [INFO] [stdout] = note: `#[warn(clippy::manual_flatten)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 330 ~ for name in self.entries.iter().flatten() { [INFO] [stdout] 331 + if name == selected_name { [INFO] [stdout] 332 + self.selected_task_index_cache = Some(task_index); [INFO] [stdout] 333 + return Some(task_index); [INFO] [stdout] 334 + } [INFO] [stdout] 335 + task_index += 1; [INFO] [stdout] 336 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:399:12 [INFO] [stdout] | [INFO] [stdout] 399 | if viewport_entries.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `viewport_entries.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `self.column_visibility` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:646:20 [INFO] [stdout] | [INFO] [stdout] 645 | if self.terminal_width == Some(available_width) && self.column_visibility.is_some() { [INFO] [stdout] | -------------------------------- the check is happening here [INFO] [stdout] 646 | return self.column_visibility.as_ref().unwrap().clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:807:13 [INFO] [stdout] | [INFO] [stdout] 807 | / if matches!(task.status, TaskStatus::InProgress) && !task.continuous { [INFO] [stdout] 808 | | if let Some(start_time) = task.start_time { [INFO] [stdout] 809 | | task.duration = format_live_duration(start_time); [INFO] [stdout] 810 | | } [INFO] [stdout] 811 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 807 ~ if matches!(task.status, TaskStatus::InProgress) && !task.continuous [INFO] [stdout] 808 ~ && let Some(start_time) = task.start_time { [INFO] [stdout] 809 | task.duration = format_live_duration(start_time); [INFO] [stdout] 810 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.start_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:823:44 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ------------------------------------- the check is happening here [INFO] [stdout] 823 | task.start_time = Some(task_result.task.start_time.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.end_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:824:42 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ----------------------------------- the check is happening here [INFO] [stdout] 823 | task.start_time = Some(task_result.task.start_time.unwrap()); [INFO] [stdout] 824 | task.end_time = Some(task_result.task.end_time.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.start_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:826:25 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ------------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 826 | task_result.task.start_time.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `task_result.task.end_time` after checking its variant with `is_some` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:827:25 [INFO] [stdout] | [INFO] [stdout] 822 | if task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] | ----------------------------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 827 | task_result.task.end_time.unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `if let` or `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:817:13 [INFO] [stdout] | [INFO] [stdout] 817 | / if let Some(task) = self [INFO] [stdout] 818 | | .tasks [INFO] [stdout] 819 | | .iter_mut() [INFO] [stdout] 820 | | .find(|t| t.name == task_result.task.id) [INFO] [stdout] ... | [INFO] [stdout] 830 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 820 ~ .find(|t| t.name == task_result.task.id) [INFO] [stdout] 821 ~ && task_result.task.start_time.is_some() && task_result.task.end_time.is_some() { [INFO] [stdout] 822 | task.start_time = Some(task_result.task.start_time.unwrap()); [INFO] [stdout] ... [INFO] [stdout] 827 | ); [INFO] [stdout] 828 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1655:38 [INFO] [stdout] | [INFO] [stdout] 1655 | let previous_show_duration = self [INFO] [stdout] | ______________________________________^ [INFO] [stdout] 1656 | | .column_visibility [INFO] [stdout] 1657 | | .as_ref() [INFO] [stdout] 1658 | | .map_or(false, |cv| cv.show_duration); [INFO] [stdout] | |_________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 1658 - .map_or(false, |cv| cv.show_duration); [INFO] [stdout] 1658 + .is_some_and(|cv| cv.show_duration); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1680:9 [INFO] [stdout] | [INFO] [stdout] 1680 | / if let Some(area) = filter_area { [INFO] [stdout] 1681 | | if area.height > 0 [INFO] [stdout] 1682 | | && area.width > 0 [INFO] [stdout] 1683 | | && area.y < f.area().height [INFO] [stdout] ... | [INFO] [stdout] 1694 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1680 ~ if let Some(area) = filter_area [INFO] [stdout] 1681 ~ && area.height > 0 [INFO] [stdout] 1682 | && area.width > 0 [INFO] [stdout] ... [INFO] [stdout] 1692 | self.render_filter(f, safe_area); [INFO] [stdout] 1693 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1744:17 [INFO] [stdout] | [INFO] [stdout] 1744 | / if has_cloud_message { [INFO] [stdout] 1745 | | if let Some(area) = cloud_or_help_vertical_area { [INFO] [stdout] 1746 | | if area.height > 0 [INFO] [stdout] 1747 | | && area.width > 0 [INFO] [stdout] ... | [INFO] [stdout] 1771 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1744 ~ if has_cloud_message [INFO] [stdout] 1745 ~ && let Some(area) = cloud_or_help_vertical_area { [INFO] [stdout] 1746 | if area.height > 0 [INFO] [stdout] ... [INFO] [stdout] 1769 | } [INFO] [stdout] 1770 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1745:21 [INFO] [stdout] | [INFO] [stdout] 1745 | / if let Some(area) = cloud_or_help_vertical_area { [INFO] [stdout] 1746 | | if area.height > 0 [INFO] [stdout] 1747 | | && area.width > 0 [INFO] [stdout] 1748 | | && area.y < f.area().height [INFO] [stdout] ... | [INFO] [stdout] 1770 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1745 ~ if let Some(area) = cloud_or_help_vertical_area [INFO] [stdout] 1746 ~ && area.height > 0 [INFO] [stdout] 1747 | && area.width > 0 [INFO] [stdout] ... [INFO] [stdout] 1768 | } [INFO] [stdout] 1769 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1831:17 [INFO] [stdout] | [INFO] [stdout] 1831 | / if self.filter_mode { [INFO] [stdout] 1832 | | self.add_filter_char(c); [INFO] [stdout] 1833 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1830 ~ Action::AddFilterChar(c) [INFO] [stdout] 1831 ~ if self.filter_mode => { [INFO] [stdout] 1832 | self.add_filter_char(c); [INFO] [stdout] 1833 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:1836:17 [INFO] [stdout] | [INFO] [stdout] 1836 | / if self.filter_mode { [INFO] [stdout] 1837 | | self.remove_filter_char(); [INFO] [stdout] 1838 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1835 ~ Action::RemoveFilterChar [INFO] [stdout] 1836 ~ if self.filter_mode => { [INFO] [stdout] 1837 | self.remove_filter_char(); [INFO] [stdout] 1838 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 227 | / pub fn new( [INFO] [stdout] 228 | | task_name: String, [INFO] [stdout] 229 | | task_status: TaskStatus, [INFO] [stdout] 230 | | is_continuous: bool, [INFO] [stdout] ... | [INFO] [stdout] 237 | | end_time: Option, [INFO] [stdout] 238 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `TerminalPane<'a>` [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:264:5 [INFO] [stdout] | [INFO] [stdout] 264 | / pub fn new() -> Self { [INFO] [stdout] 265 | | Self { [INFO] [stdout] 266 | | pty_data: None, [INFO] [stdout] 267 | | is_continuous: false, [INFO] [stdout] ... | [INFO] [stdout] 270 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 263 + impl<'a> Default for TerminalPane<'a> { [INFO] [stdout] 264 + fn default() -> Self { [INFO] [stdout] 265 + Self::new() [INFO] [stdout] 266 + } [INFO] [stdout] 267 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:840:24 [INFO] [stdout] | [INFO] [stdout] 840 | if needs_scrollbar && !(self.minimal && !self.is_currently_interactive()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(self.is_currently_interactive() || !self.minimal) && needs_scrollbar` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:840:43 [INFO] [stdout] | [INFO] [stdout] 840 | if needs_scrollbar && !(self.minimal && !self.is_currently_interactive()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.minimal || self.is_currently_interactive()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:707:9 [INFO] [stdout] | [INFO] [stdout] 707 | / if let Some(pty_data) = &self.pty_data { [INFO] [stdout] 708 | | if let Some(pty) = &pty_data.pty { [INFO] [stdout] 709 | | if let Some(screen) = pty.get_screen() { [INFO] [stdout] 710 | | let viewport_height = inner_area.height; [INFO] [stdout] ... | [INFO] [stdout] 918 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 707 ~ if let Some(pty_data) = &self.pty_data [INFO] [stdout] 708 ~ && let Some(pty) = &pty_data.pty { [INFO] [stdout] 709 | if let Some(screen) = pty.get_screen() { [INFO] [stdout] ... [INFO] [stdout] 916 | } [INFO] [stdout] 917 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:708:13 [INFO] [stdout] | [INFO] [stdout] 708 | / if let Some(pty) = &pty_data.pty { [INFO] [stdout] 709 | | if let Some(screen) = pty.get_screen() { [INFO] [stdout] 710 | | let viewport_height = inner_area.height; [INFO] [stdout] ... | [INFO] [stdout] 917 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 708 ~ if let Some(pty) = &pty_data.pty [INFO] [stdout] 709 ~ && let Some(screen) = pty.get_screen() { [INFO] [stdout] 710 | let viewport_height = inner_area.height; [INFO] [stdout] ... [INFO] [stdout] 915 | } [INFO] [stdout] 916 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:882:21 [INFO] [stdout] | [INFO] [stdout] 882 | / if show_duration { [INFO] [stdout] 883 | | if let Some(duration_formatted_text) = duration_formatted { [INFO] [stdout] 884 | | let duration_line = Line::from(vec![Span::styled( [INFO] [stdout] 885 | | duration_formatted_text, [INFO] [stdout] ... | [INFO] [stdout] 915 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 882 ~ if show_duration [INFO] [stdout] 883 ~ && let Some(duration_formatted_text) = duration_formatted { [INFO] [stdout] 884 | let duration_line = Line::from(vec![Span::styled( [INFO] [stdout] ... [INFO] [stdout] 913 | } [INFO] [stdout] 914 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> packages/nx/src/native/tui/graph_utils.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | root_causes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 181 - root_causes.sort_by(|a, b| b.1.cmp(&a.1)); [INFO] [stdout] 181 + root_causes.sort_by_key(|b| std::cmp::Reverse(b.1)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | / pub fn new( [INFO] [stdout] 77 | | tasks: Vec, [INFO] [stdout] 78 | | initiating_tasks: Vec, [INFO] [stdout] 79 | | run_mode: RunMode, [INFO] [stdout] ... | [INFO] [stdout] 85 | | task_graph: TaskGraph, [INFO] [stdout] 86 | | ) -> Self { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:178:13 [INFO] [stdout] | [INFO] [stdout] 178 | / if let Ok(mut t) = Tui::new() { [INFO] [stdout] 179 | | if let Err(r) = t.exit() { [INFO] [stdout] 180 | | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 181 | | } [INFO] [stdout] 182 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 178 ~ if let Ok(mut t) = Tui::new() [INFO] [stdout] 179 ~ && let Err(r) = t.exit() { [INFO] [stdout] 180 | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 181 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:234:21 [INFO] [stdout] | [INFO] [stdout] 234 | / if let Some(quit_time) = app.quit_at { [INFO] [stdout] 235 | | if std::time::Instant::now() >= quit_time { [INFO] [stdout] 236 | | tui.exit().ok(); [INFO] [stdout] 237 | | app.call_done_callback(); [INFO] [stdout] ... | [INFO] [stdout] 240 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 234 ~ if let Some(quit_time) = app.quit_at [INFO] [stdout] 235 ~ && std::time::Instant::now() >= quit_time { [INFO] [stdout] 236 | tui.exit().ok(); [INFO] [stdout] 237 | app.call_done_callback(); [INFO] [stdout] 238 | break; [INFO] [stdout] 239 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/lifecycle.rs:316:5 [INFO] [stdout] | [INFO] [stdout] 316 | / if let Ok(mut t) = Tui::new() { [INFO] [stdout] 317 | | if let Err(r) = t.exit() { [INFO] [stdout] 318 | | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 319 | | } [INFO] [stdout] 320 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 316 ~ if let Ok(mut t) = Tui::new() [INFO] [stdout] 317 ~ && let Err(r) = t.exit() { [INFO] [stdout] 318 | debug!("Unable to exit Terminal: {:?}", r); [INFO] [stdout] 319 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/pty.rs:340:9 [INFO] [stdout] | [INFO] [stdout] 340 | / if alternate_screen { [INFO] [stdout] 341 | | if let Ok(mut parser_guard) = parser.write() { [INFO] [stdout] 342 | | parser_guard.process(b"\x1b[?1049h"); [INFO] [stdout] 343 | | } [INFO] [stdout] 344 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 340 ~ if alternate_screen [INFO] [stdout] 341 ~ && let Ok(mut parser_guard) = parser.write() { [INFO] [stdout] 342 | parser_guard.process(b"\x1b[?1049h"); [INFO] [stdout] 343 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> packages/nx/src/native/tui/scroll_momentum.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / if let Some(last_dir) = self.last_direction { [INFO] [stdout] 47 | | if last_dir != direction { [INFO] [stdout] 48 | | trace!("Direction changed from {:?} to {:?}", last_dir, direction); [INFO] [stdout] 49 | | self.momentum = INITIAL_MOMENTUM; [INFO] [stdout] ... | [INFO] [stdout] 53 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 46 ~ if let Some(last_dir) = self.last_direction [INFO] [stdout] 47 ~ && last_dir != direction { [INFO] [stdout] 48 | trace!("Direction changed from {:?} to {:?}", last_dir, direction); [INFO] [stdout] ... [INFO] [stdout] 51 | self.scroll_count = 0; [INFO] [stdout] 52 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> packages/nx/src/native/tui/theme.rs:73:13 [INFO] [stdout] | [INFO] [stdout] 73 | return true; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 73 - return true; [INFO] [stdout] 73 + true [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> packages/nx/src/native/watch/watch_filterer.rs:24:26 [INFO] [stdout] | [INFO] [stdout] 24 | let is_dir = file_type.map_or(false, |t| matches!(t, FileType::Dir)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 24 - let is_dir = file_type.map_or(false, |t| matches!(t, FileType::Dir)); [INFO] [stdout] 24 + let is_dir = file_type.is_some_and(|t| matches!(t, FileType::Dir)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob.rs:82:11 [INFO] [stdout] | [INFO] [stdout] 82 | glob: &str, [INFO] [stdout] | ^^^^ the lifetime is elided here [INFO] [stdout] 83 | ) -> itertools::Either, std::iter::Once<&str>> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | [INFO] [stdout] | the same lifetime is hidden 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] 83 | ) -> itertools::Either, std::iter::Once<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:29:24 [INFO] [stdout] | [INFO] [stdout] 29 | fn simple_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 29 | fn simple_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:36:30 [INFO] [stdout] | [INFO] [stdout] 36 | fn zero_or_more_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 36 | fn zero_or_more_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | fn zero_or_one_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 43 | fn zero_or_one_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:50:29 [INFO] [stdout] | [INFO] [stdout] 50 | fn one_or_more_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 50 | fn one_or_more_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:57:39 [INFO] [stdout] | [INFO] [stdout] 57 | fn brace_group_with_empty_item(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 57 | fn brace_group_with_empty_item(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:64:27 [INFO] [stdout] | [INFO] [stdout] 64 | fn exact_one_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 64 | fn exact_one_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:71:25 [INFO] [stdout] | [INFO] [stdout] 71 | fn negated_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 71 | fn negated_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:78:30 [INFO] [stdout] | [INFO] [stdout] 78 | fn negated_file_group(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 78 | fn negated_file_group(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:86:28 [INFO] [stdout] | [INFO] [stdout] 86 | fn negated_wildcard(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 86 | fn negated_wildcard(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:94:33 [INFO] [stdout] | [INFO] [stdout] 94 | fn non_special_character(input: &str) -> IResult<&str, GlobGroup, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 94 | fn non_special_character(input: &str) -> IResult<&str, GlobGroup<'_>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:108:17 [INFO] [stdout] | [INFO] [stdout] 108 | fn group(input: &str) -> IResult<&str, Cow, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 108 | fn group(input: &str) -> IResult<&str, Cow<'_, str>, VerboseError<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:115:23 [INFO] [stdout] | [INFO] [stdout] 115 | fn brace_group(input: &str) -> IResult<&str, Cow, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 115 | fn brace_group(input: &str) -> IResult<&str, Cow<'_, str>, VerboseError<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:122:33 [INFO] [stdout] | [INFO] [stdout] 122 | fn separated_group_items(input: &str) -> IResult<&str, Cow, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 122 | fn separated_group_items(input: &str) -> IResult<&str, Cow<'_, str>, VerboseError<&str>> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:138:25 [INFO] [stdout] | [INFO] [stdout] 138 | fn parse_segment(input: &str) -> IResult<&str, Vec, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 138 | fn parse_segment(input: &str) -> IResult<&str, Vec>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:169:30 [INFO] [stdout] | [INFO] [stdout] 169 | fn separated_segments(input: &str) -> IResult<&str, Vec>, VerboseError<&str>> { [INFO] [stdout] | ^^^^ ^^^^ ^^^^^^^^^ ^^^^ the same lifetime is elided here [INFO] [stdout] | | | | [INFO] [stdout] | | | the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 169 | fn separated_segments(input: &str) -> IResult<&str, Vec>>, VerboseError<&str>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/glob/glob_parser.rs:186:26 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn parse_glob(input: &str) -> anyhow::Result<(bool, Vec>)> { [INFO] [stdout] | ^^^^ the lifetime is elided here ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 186 | pub fn parse_glob(input: &str) -> anyhow::Result<(bool, Vec>>)> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/db/connection.rs:80:20 [INFO] [stdout] | [INFO] [stdout] 80 | pub fn prepare(&self, sql: &str) -> Result { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 80 | pub fn prepare(&self, sql: &str) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:708:25 [INFO] [stdout] | [INFO] [stdout] 708 | fn get_header_cells(&self, column_visibility: &ColumnVisibility) -> Vec { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 708 | fn get_header_cells(&self, column_visibility: &ColumnVisibility) -> Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/components/tasks_list.rs:835:27 [INFO] [stdout] | [INFO] [stdout] 835 | fn generate_empty_row(&self, column_visibility: &ColumnVisibility) -> Row { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 835 | fn generate_empty_row(&self, column_visibility: &ColumnVisibility) -> Row<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/components/terminal_pane.rs:287:24 [INFO] [stdout] | [INFO] [stdout] 287 | fn get_status_icon(&self, status: TaskStatus) -> Span { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 287 | fn get_status_icon(&self, status: TaskStatus) -> Span<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> packages/nx/src/native/tui/pty.rs:218:23 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn get_screen(&self) -> Option { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 218 | pub fn get_screen(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 12s [INFO] running `Command { std: "docker" "inspect" "51093fe7b57f00d30f87abdd283740e08feed506659769fb141ff7cd59441c63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "51093fe7b57f00d30f87abdd283740e08feed506659769fb141ff7cd59441c63", kill_on_drop: false }` [INFO] [stdout] 51093fe7b57f00d30f87abdd283740e08feed506659769fb141ff7cd59441c63