[INFO] fetching crate cpumap 0.2.1... [INFO] linting cpumap-0.2.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate cpumap 0.2.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate cpumap 0.2.1 [INFO] finished tweaking crates.io crate cpumap 0.2.1 [INFO] tweaked toml for crates.io crate cpumap 0.2.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate cpumap 0.2.1 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 crates.io crate cpumap 0.2.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded windows-targets v0.52.5 [INFO] [stderr] Downloaded raw-window-handle v0.5.2 [INFO] [stderr] Downloaded arrayvec v0.7.4 [INFO] [stderr] Downloaded arrayref v0.3.7 [INFO] [stderr] Downloaded xcursor v0.3.5 [INFO] [stderr] Downloaded strict-num v0.1.1 [INFO] [stderr] Downloaded either v1.11.0 [INFO] [stderr] Downloaded memoffset v0.6.5 [INFO] [stderr] Downloaded thiserror v1.0.59 [INFO] [stderr] Downloaded async-recursion v1.1.0 [INFO] [stderr] Downloaded fastrand v1.9.0 [INFO] [stderr] Downloaded async-lock v2.8.0 [INFO] [stderr] Downloaded async-fs v1.6.0 [INFO] [stderr] Downloaded socket2 v0.4.10 [INFO] [stderr] Downloaded polling v2.8.0 [INFO] [stderr] Downloaded async-channel v1.9.0 [INFO] [stderr] Downloaded atspi-macros v0.2.0 [INFO] [stderr] Downloaded cocoa-foundation v0.1.2 [INFO] [stderr] Downloaded anstyle-query v1.0.2 [INFO] [stderr] Downloaded anstream v0.6.13 [INFO] [stderr] Downloaded anstyle-parse v0.2.3 [INFO] [stderr] Downloaded anyhow v1.0.82 [INFO] [stderr] Downloaded zbus v3.15.2 [INFO] [stderr] Downloaded glow v0.12.3 [INFO] [stderr] Downloaded winapi v0.2.8 [INFO] [stderr] Downloaded windows_aarch64_gnullvm v0.52.5 [INFO] [stderr] Downloaded x11rb v0.13.0 [INFO] [stderr] Downloaded android-activity v0.4.3 [INFO] [stderr] Downloaded ndk-sys v0.4.1+23.1.7779620 [INFO] [stderr] Downloaded nix v0.26.4 [INFO] [stderr] Downloaded idna v0.5.0 [INFO] [stderr] Downloaded rustix v0.38.34 [INFO] [stderr] Downloaded objc2 v0.3.0-beta.3.patch-leaks.3 [INFO] [stderr] Downloaded nix v0.25.1 [INFO] [stderr] Downloaded regex-automata v0.4.6 [INFO] [stderr] Downloaded windows_i686_gnullvm v0.52.5 [INFO] [stderr] Downloaded web-sys v0.3.69 [INFO] [stderr] Downloaded windows_x86_64_gnullvm v0.52.5 [INFO] [stderr] Downloaded winit v0.28.7 [INFO] [stderr] Downloaded clap v4.5.4 [INFO] [stderr] Downloaded tiny-skia v0.8.4 [INFO] [stderr] Downloaded windows_aarch64_msvc v0.52.5 [INFO] [stderr] Downloaded x11rb-protocol v0.13.0 [INFO] [stderr] Downloaded windows_i686_gnu v0.52.5 [INFO] [stderr] Downloaded khronos_api v3.1.0 [INFO] [stderr] Downloaded windows_x86_64_msvc v0.52.5 [INFO] [stderr] Downloaded rustix v0.37.27 [INFO] [stderr] Downloaded windows_i686_msvc v0.52.5 [INFO] [stderr] Downloaded windows_x86_64_gnu v0.52.5 [INFO] [stderr] Downloaded clap_derive v4.5.4 [INFO] [stderr] Downloaded unicode-normalization v0.1.23 [INFO] [stderr] Downloaded indexmap v2.2.6 [INFO] [stderr] Downloaded ratatui v0.24.0 [INFO] [stderr] Downloaded regex-syntax v0.8.3 [INFO] [stderr] Downloaded anstyle-wincon v3.0.2 [INFO] [stderr] Downloaded anstyle v1.0.6 [INFO] [stderr] Downloaded clap_lex v0.7.0 [INFO] [stderr] Downloaded atspi v0.10.1 [INFO] [stderr] Downloaded tracing v0.1.40 [INFO] [stderr] Downloaded url v2.5.0 [INFO] [stderr] Downloaded glutin v0.30.10 [INFO] [stderr] Downloaded cocoa v0.24.1 [INFO] [stderr] Downloaded accesskit_macos v0.9.0 [INFO] [stderr] Downloaded tracing-core v0.1.32 [INFO] [stderr] Downloaded zvariant v3.15.2 [INFO] [stderr] Downloaded arboard v3.3.2 [INFO] [stderr] Downloaded bytes v1.6.0 [INFO] [stderr] Downloaded webbrowser v0.8.15 [INFO] [stderr] Downloaded io-lifetimes v1.0.11 [INFO] [stderr] Downloaded polling v3.7.0 [INFO] [stderr] Downloaded futures-lite v1.13.0 [INFO] [stderr] Downloaded async-lock v3.3.0 [INFO] [stderr] Downloaded async-task v4.7.0 [INFO] [stderr] Downloaded getrandom v0.2.14 [INFO] [stderr] Downloaded unicode-bidi v0.3.15 [INFO] [stderr] Downloaded num_enum v0.6.1 [INFO] [stderr] Downloaded ndk v0.7.0 [INFO] [stderr] Downloaded objc2-encode v2.0.0-pre.2 [INFO] [stderr] Downloaded regex v1.10.4 [INFO] [stderr] Downloaded linux-raw-sys v0.3.8 [INFO] [stderr] Downloaded syn v2.0.60 [INFO] [stderr] Downloaded async-broadcast v0.5.1 [INFO] [stderr] Downloaded async-executor v1.11.0 [INFO] [stderr] Downloaded async-trait v0.1.80 [INFO] [stderr] Downloaded event-listener v5.3.0 [INFO] [stderr] Downloaded concurrent-queue v2.4.0 [INFO] [stderr] Downloaded orbclient v0.3.47 [INFO] [stderr] Downloaded event-listener v4.0.3 [INFO] [stderr] Downloaded parking v2.2.0 [INFO] [stderr] Downloaded futures-lite v2.3.0 [INFO] [stderr] Downloaded blocking v1.5.1 [INFO] [stderr] Downloaded ordered-stream v0.2.0 [INFO] [stderr] Downloaded pin-project-lite v0.2.14 [INFO] [stderr] Downloaded tracing-attributes v0.1.27 [INFO] [stderr] Downloaded linux-raw-sys v0.4.13 [INFO] [stderr] Downloaded uds_windows v1.1.0 [INFO] [stderr] Downloaded enumflags2 v0.7.9 [INFO] [stderr] Downloaded accesskit_unix v0.5.2 [INFO] [stderr] Downloaded windows-implement v0.48.0 [INFO] [stderr] Downloaded accesskit_windows v0.14.3 [INFO] [stderr] Downloaded accesskit_winit v0.14.4 [INFO] [stderr] Downloaded clipboard-win v5.3.1 [INFO] [stderr] Downloaded egui_glow v0.22.0 [INFO] [stderr] Downloaded libloading v0.7.4 [INFO] [stderr] Downloaded core-graphics v0.22.3 [INFO] [stderr] Downloaded objc-sys v0.2.0-beta.2 [INFO] [stderr] Downloaded nix v0.24.3 [INFO] [stderr] Downloaded async-process v1.8.1 [INFO] [stderr] Downloaded async-channel v2.2.1 [INFO] [stderr] Downloaded fastrand v2.0.2 [INFO] [stderr] Downloaded zbus_macros v3.15.2 [INFO] [stderr] Downloaded zvariant_derive v3.15.2 [INFO] [stderr] Downloaded smithay-clipboard v0.6.6 [INFO] [stderr] Downloaded glutin-winit v0.3.0 [INFO] [stderr] Downloaded rayon v1.10.0 [INFO] [stderr] Downloaded xdg-home v1.1.0 [INFO] [stderr] Downloaded zbus_names v2.6.1 [INFO] [stderr] Downloaded windows-interface v0.48.0 [INFO] [stderr] Downloaded glutin_egl_sys v0.5.1 [INFO] [stderr] Downloaded glutin_glx_sys v0.4.0 [INFO] [stderr] Downloaded gl_generator v0.14.0 [INFO] [stderr] Downloaded num_enum_derive v0.6.1 [INFO] [stderr] Downloaded smithay-client-toolkit v0.16.1 [INFO] [stderr] Downloaded wasm-bindgen v0.2.92 [INFO] [stderr] Downloaded ttf-parser v0.20.0 [INFO] [stderr] Downloaded owned_ttf_parser v0.20.0 [INFO] [stderr] Downloaded sysinfo v0.30.11 [INFO] [stderr] Downloaded async-io v1.13.0 [INFO] [stderr] Downloaded async-io v2.3.2 [INFO] [stderr] Downloaded event-listener v3.1.0 [INFO] [stderr] Downloaded event-listener-strategy v0.5.1 [INFO] [stderr] Downloaded piper v0.2.1 [INFO] [stderr] Downloaded event-listener v2.5.3 [INFO] [stderr] Downloaded memoffset v0.7.1 [INFO] [stderr] Downloaded cpufeatures v0.2.12 [INFO] [stderr] Downloaded zvariant_utils v1.0.1 [INFO] [stderr] Downloaded error-code v3.2.0 [INFO] [stderr] Downloaded objc_id v0.1.1 [INFO] [stderr] Downloaded errno v0.3.8 [INFO] [stderr] Downloaded egui-winit v0.22.0 [INFO] [stderr] Downloaded glutin_wgl_sys v0.4.0 [INFO] [stderr] Downloaded wasm-bindgen-futures v0.4.42 [INFO] [stderr] Downloaded cfg_aliases v0.1.1 [INFO] [stderr] Downloaded wayland-protocols v0.29.5 [INFO] [stderr] Downloaded crossterm v0.27.0 [INFO] [stderr] Downloaded hashbrown v0.14.3 [INFO] [stderr] Downloaded time v0.3.36 [INFO] [stderr] Downloaded ntapi v0.4.1 [INFO] [stderr] Downloaded async-signal v0.2.6 [INFO] [stderr] Downloaded waker-fn v1.1.1 [INFO] [stderr] Downloaded cgl v0.3.2 [INFO] [stderr] Downloaded wayland-sys v0.30.1 [INFO] [stderr] Downloaded block2 v0.2.0-alpha.6 [INFO] [stderr] Downloaded libredox v0.0.2 [INFO] [stderr] Downloaded png v0.17.13 [INFO] [stderr] Downloaded pulldown-cmark v0.9.6 [INFO] [stderr] Downloaded unicode-segmentation v1.11.0 [INFO] [stderr] Downloaded memchr v2.7.2 [INFO] [stderr] Downloaded serde_derive v1.0.198 [INFO] [stderr] Downloaded serde v1.0.198 [INFO] [stderr] Downloaded rayon-core v1.12.1 [INFO] [stderr] Downloaded event-listener-strategy v0.4.0 [INFO] [stderr] Downloaded accesskit_consumer v0.15.2 [INFO] [stderr] Downloaded objc-foundation v0.1.1 [INFO] [stderr] Downloaded toml_datetime v0.6.5 [INFO] [stderr] Downloaded num_enum_derive v0.5.11 [INFO] [stderr] Downloaded num_enum v0.5.11 [INFO] [stderr] Downloaded block-sys v0.1.0-beta.1 [INFO] [stderr] Downloaded tiny-skia-path v0.8.4 [INFO] [stderr] Downloaded sctk-adwaita v0.5.4 [INFO] [stderr] Downloaded slotmap v1.0.7 [INFO] [stderr] Downloaded calloop v0.10.6 [INFO] [stderr] Downloaded wayland-client v0.29.5 [INFO] [stderr] Downloaded js-sys v0.3.69 [INFO] [stderr] Downloaded eframe v0.22.0 [INFO] [stderr] Downloaded bytemuck v1.15.0 [INFO] [stderr] Downloaded miniz_oxide v0.7.2 [INFO] [stderr] Downloaded cc v1.0.95 [INFO] [stderr] Downloaded num-traits v0.2.18 [INFO] [stderr] Downloaded crossbeam-deque v0.8.5 [INFO] [stderr] Downloaded crossbeam-utils v0.8.19 [INFO] [stderr] Downloaded enumflags2_derive v0.7.9 [INFO] [stderr] Downloaded thiserror-impl v1.0.59 [INFO] [stderr] Downloaded xml-rs v0.8.20 [INFO] [stderr] Downloaded fdeflate v0.3.4 [INFO] [stderr] Downloaded crc32fast v1.4.0 [INFO] [stderr] Downloaded egui_commonmark v0.7.4 [INFO] [stderr] Downloaded jobserver v0.1.31 [INFO] [stderr] Downloaded parking_lot_core v0.9.9 [INFO] [stderr] Downloaded rustversion v1.0.15 [INFO] [stderr] Downloaded unicode-width v0.1.11 [INFO] [stderr] Downloaded log v0.4.21 [INFO] [stderr] Downloaded proc-macro2 v1.0.81 [INFO] [stderr] Downloaded unicode-ident v1.0.12 [INFO] [stderr] Downloaded time-macros v0.2.18 [INFO] [stderr] Downloaded simplelog v0.12.2 [INFO] [stderr] Downloaded core-foundation-sys v0.8.6 [INFO] [stderr] Downloaded once_cell v1.19.0 [INFO] [stderr] Downloaded memmap2 v0.5.10 [INFO] [stderr] Downloaded libloading v0.8.3 [INFO] [stderr] Downloaded wayland-sys v0.29.5 [INFO] [stderr] Downloaded wayland-commons v0.29.5 [INFO] [stderr] Downloaded wayland-scanner v0.29.5 [INFO] [stderr] Downloaded wasm-bindgen-backend v0.2.92 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.92 [INFO] [stderr] Downloaded accesskit v0.11.2 [INFO] [stderr] Downloaded ab_glyph v0.2.25 [INFO] [stderr] Downloaded bytemuck_derive v1.6.0 [INFO] [stderr] Downloaded unicase v2.7.0 [INFO] [stderr] Downloaded kernel32-sys v0.2.2 [INFO] [stderr] Downloaded pkg-config v0.3.30 [INFO] [stderr] Downloaded hwloc2 v2.2.0 [INFO] [stderr] Downloaded cassowary v0.3.0 [INFO] [stderr] Downloaded bitflags v2.5.0 [INFO] [stderr] Downloaded paste v1.0.14 [INFO] [stderr] Downloaded quote v1.0.36 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.92 [INFO] [stderr] Downloaded errno v0.2.8 [INFO] [stderr] Downloaded autocfg v1.2.0 [INFO] [stderr] Downloaded ratatui-textarea v0.4.1 [INFO] [stderr] Downloaded wayland-cursor v0.29.5 [INFO] [stderr] Downloaded ab_glyph_rasterizer v0.1.8 [INFO] [stderr] Downloaded winapi-build v0.1.1 [INFO] [stderr] Downloaded num v0.1.42 [INFO] [stderr] Downloaded signal-hook-mio v0.2.3 [INFO] [stderr] Downloaded winapi-util v0.1.8 [INFO] [stderr] Downloaded num-iter v0.1.44 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.92 [INFO] [stderr] Downloaded strum_macros v0.25.3 [INFO] [stderr] Downloaded num_threads v0.1.7 [INFO] [stderr] Downloaded indoc v2.0.5 [INFO] [stderr] Downloaded image v0.24.9 [INFO] [stderr] Downloaded windows v0.52.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 3b8b171cb5391bab6bd0fc91ccf7b0ef9184788a85167167cbf8dd0f0f3509f0 [INFO] running `Command { std: "docker" "start" "-a" "3b8b171cb5391bab6bd0fc91ccf7b0ef9184788a85167167cbf8dd0f0f3509f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3b8b171cb5391bab6bd0fc91ccf7b0ef9184788a85167167cbf8dd0f0f3509f0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3b8b171cb5391bab6bd0fc91ccf7b0ef9184788a85167167cbf8dd0f0f3509f0", kill_on_drop: false }` [INFO] [stdout] 3b8b171cb5391bab6bd0fc91ccf7b0ef9184788a85167167cbf8dd0f0f3509f0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 0213eb50bbc387f2995993b04c0cfd144eb266e083df6fd25fc5b4b4cba539de [INFO] running `Command { std: "docker" "start" "-a" "0213eb50bbc387f2995993b04c0cfd144eb266e083df6fd25fc5b4b4cba539de", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.153 [INFO] [stderr] Compiling autocfg v1.2.0 [INFO] [stderr] Checking cfg-if v1.0.0 [INFO] [stderr] Compiling proc-macro2 v1.0.81 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling rustversion v1.0.15 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Checking log v0.4.21 [INFO] [stderr] Compiling signal-hook v0.3.17 [INFO] [stderr] Checking either v1.11.0 [INFO] [stderr] Checking zerocopy v0.7.32 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Compiling paste v1.0.14 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Compiling heck v0.4.1 [INFO] [stderr] Checking utf8parse v0.2.1 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Checking anstyle-parse v0.2.3 [INFO] [stderr] Checking anstyle-query v1.0.2 [INFO] [stderr] Checking bitflags v2.5.0 [INFO] [stderr] Checking memchr v2.7.2 [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Checking anstyle v1.0.6 [INFO] [stderr] Checking colorchoice v1.0.0 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Checking itertools v0.11.0 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking unicode-segmentation v1.11.0 [INFO] [stderr] Compiling indoc v2.0.5 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking anstream v0.6.13 [INFO] [stderr] Checking regex-syntax v0.8.3 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking signal-hook-registry v1.4.2 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Compiling hwloc2 v2.2.0 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Checking clap_lex v0.7.0 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Compiling anyhow v1.0.82 [INFO] [stderr] Checking cassowary v0.3.0 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Checking lru v0.12.3 [INFO] [stderr] Checking clap_builder v4.5.2 [INFO] [stderr] Checking errno v0.2.8 [INFO] [stderr] Checking thread_local v1.1.8 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking signal-hook-mio v0.2.3 [INFO] [stderr] Checking crossterm v0.27.0 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Checking fuzzy-matcher v0.3.7 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Checking simplelog v0.12.2 [INFO] [stderr] Checking num-iter v0.1.44 [INFO] [stderr] Checking num v0.1.42 [INFO] [stderr] Checking regex-automata v0.4.6 [INFO] [stderr] Checking sysinfo v0.30.11 [INFO] [stderr] Checking regex v1.10.4 [INFO] [stderr] Compiling strum_macros v0.25.3 [INFO] [stderr] Compiling clap_derive v4.5.4 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking ratatui v0.24.0 [INFO] [stderr] Checking clap v4.5.4 [INFO] [stderr] Checking ratatui-textarea v0.4.1 [INFO] [stderr] Checking cpumap v0.2.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | use simplelog; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/util.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/util.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use regex; [INFO] [stdout] | ^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] = note: `#[warn(clippy::single_component_path_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/system.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | use anyhow; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/main.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | use simplelog; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/util.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/util.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | use regex; [INFO] [stdout] | ^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/system.rs:9:1 [INFO] [stdout] | [INFO] [stdout] 9 | use anyhow; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/uistate.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/uistate.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/ordered_core_selections.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/ordered_core_selections.rs:1:1 [INFO] [stdout] | [INFO] [stdout] 1 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/topologycache.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/topologycache.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | use sysinfo; [INFO] [stdout] | ^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/topologycache.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | use hwloc2; [INFO] [stdout] | ^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this import is redundant [INFO] [stdout] --> src/topologycache.rs:6:1 [INFO] [stdout] | [INFO] [stdout] 6 | use sysinfo; [INFO] [stdout] | ^^^^^^^^^^^^ help: remove it entirely [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_component_path_imports [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `toggle` is never used [INFO] [stdout] --> src/util.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub trait CpuSetExt { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 111 | fn toggle(&mut self, bit: u32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `frame_level` and `is_single_core` are never read [INFO] [stdout] --> src/topologycache.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct TopologyObjectInfo { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 84 | pub frame_level: u16, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 85 | /// Whether this object recursively contains only a single core (may have multiple PUs). [INFO] [stdout] 86 | pub is_single_core: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TopologyObjectInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/util.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if count % short_side == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `count.is_multiple_of(short_side)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `toggle` is never used [INFO] [stdout] --> src/util.rs:111:8 [INFO] [stdout] | [INFO] [stdout] 100 | pub trait CpuSetExt { [INFO] [stdout] | --------- method in this trait [INFO] [stdout] ... [INFO] [stdout] 111 | fn toggle(&mut self, bit: u32); [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `frame_level` and `is_single_core` are never read [INFO] [stdout] --> src/topologycache.rs:84:9 [INFO] [stdout] | [INFO] [stdout] 62 | pub struct TopologyObjectInfo { [INFO] [stdout] | ------------------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 84 | pub frame_level: u16, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 85 | /// Whether this object recursively contains only a single core (may have multiple PUs). [INFO] [stdout] 86 | pub is_single_core: bool, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TopologyObjectInfo` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> src/util.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if count % short_side == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `count.is_multiple_of(short_side)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | return Err(anyhow::anyhow!("Failed to set CPU affinity for {} with flags {:?}: {:?}", pid, bind, 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] 111 - return Err(anyhow::anyhow!("Failed to set CPU affinity for {} with flags {:?}: {:?}", pid, bind, e)); [INFO] [stdout] 111 + Err(anyhow::anyhow!("Failed to set CPU affinity for {} with flags {:?}: {:?}", pid, bind, e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/system.rs:143:33 [INFO] [stdout] | [INFO] [stdout] 143 | subprocess_pattern: &String ) -> anyhow::Result> [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 143 ~ subprocess_pattern: &str ) -> anyhow::Result> [INFO] [stdout] 144 | { [INFO] [stdout] ... [INFO] [stdout] 194 | } else { [INFO] [stdout] 195 ~ get_matching_children(self, shell_pid, subprocess_pattern) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system.rs:111:13 [INFO] [stdout] | [INFO] [stdout] 111 | return Err(anyhow::anyhow!("Failed to set CPU affinity for {} with flags {:?}: {:?}", pid, bind, 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] 111 - return Err(anyhow::anyhow!("Failed to set CPU affinity for {} with flags {:?}: {:?}", pid, bind, e)); [INFO] [stdout] 111 + Err(anyhow::anyhow!("Failed to set CPU affinity for {} with flags {:?}: {:?}", pid, bind, e)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/system.rs:143:33 [INFO] [stdout] | [INFO] [stdout] 143 | subprocess_pattern: &String ) -> anyhow::Result> [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 143 ~ subprocess_pattern: &str ) -> anyhow::Result> [INFO] [stdout] 144 | { [INFO] [stdout] ... [INFO] [stdout] 194 | } else { [INFO] [stdout] 195 ~ get_matching_children(self, shell_pid, subprocess_pattern) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | return matcher.fuzzy_match(name, &filter).is_some() [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] 258 - return matcher.fuzzy_match(name, &filter).is_some() [INFO] [stdout] 258 + matcher.fuzzy_match(name, &filter).is_some() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/system.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | / if !allow_kernel { [INFO] [stdout] 249 | | if cfg!(target_os = "linux") { [INFO] [stdout] 250 | | let kthreadd = sysinfo::Pid::from(2); [INFO] [stdout] 251 | | let is_kernel = **pid == kthreadd || process.parent() == Some(kthreadd); [INFO] [stdout] ... | [INFO] [stdout] 256 | | } [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] 248 ~ if !allow_kernel [INFO] [stdout] 249 ~ && cfg!(target_os = "linux") { [INFO] [stdout] 250 | let kthreadd = sysinfo::Pid::from(2); [INFO] [stdout] ... [INFO] [stdout] 254 | } [INFO] [stdout] 255 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/system.rs:258:46 [INFO] [stdout] | [INFO] [stdout] 258 | return matcher.fuzzy_match(name, &filter).is_some() [INFO] [stdout] | ^^^^^^^ help: change this to: `filter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | / return self.system.processes() [INFO] [stdout] 280 | | .iter() [INFO] [stdout] 281 | | .filter(|(_pid, p)| p.parent() == Some(ppid) && p.thread_kind().is_none()) [INFO] [stdout] 282 | | .map(|(pid, _p)| *pid) [INFO] [stdout] 283 | | .collect(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 279 ~ self.system.processes() [INFO] [stdout] 280 + .iter() [INFO] [stdout] 281 + .filter(|(_pid, p)| p.parent() == Some(ppid) && p.thread_kind().is_none()) [INFO] [stdout] 282 + .map(|(pid, _p)| *pid) [INFO] [stdout] 283 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | return matcher.fuzzy_match(name, &filter).is_some() [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] 258 - return matcher.fuzzy_match(name, &filter).is_some() [INFO] [stdout] 258 + matcher.fuzzy_match(name, &filter).is_some() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/system.rs:331:13 [INFO] [stdout] | [INFO] [stdout] 331 | / process.tasks().and_then(|tasks|{ [INFO] [stdout] 332 | | Some(tasks [INFO] [stdout] 333 | | .iter() [INFO] [stdout] 334 | | .filter(|tid| { [INFO] [stdout] ... | [INFO] [stdout] 354 | | .collect()) [INFO] [stdout] 355 | | }) [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 331 ~ process.tasks().map(|tasks| tasks [INFO] [stdout] 332 + .iter() [INFO] [stdout] 333 + .filter(|tid| { [INFO] [stdout] 334 + // For some reason, a TID may be in process.tasks() but not [INFO] [stdout] 335 + // in self.system.processes(). Maybe a sysinfo issue? [INFO] [stdout] 336 + // We can only work around this by ignoring such threads. [INFO] [stdout] 337 + let thread = self.system.processes().get(tid); [INFO] [stdout] 338 + if !thread.is_some() { [INFO] [stdout] 339 + let proc_name = Self::get_process_name(process); [INFO] [stdout] 340 + let mut missing_threads = self.missing_threads.borrow_mut(); [INFO] [stdout] 341 + if !missing_threads.contains(&(**tid, pid)) [INFO] [stdout] 342 + { [INFO] [stdout] 343 + missing_threads.insert((**tid, pid)); [INFO] [stdout] 344 + error!("TID {}, child of PID {}/{}, could not be found around system's processes", [INFO] [stdout] 345 + tid, pid, proc_name); [INFO] [stdout] 346 + } [INFO] [stdout] 347 + } [INFO] [stdout] 348 + thread.is_some() [INFO] [stdout] 349 + }) [INFO] [stdout] 350 + .map(|tid| { [INFO] [stdout] 351 + (*tid, self.system.processes().get(tid).expect("threads should be found in `processes")) [INFO] [stdout] 352 + }) [INFO] [stdout] 353 + .collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/system.rs:248:13 [INFO] [stdout] | [INFO] [stdout] 248 | / if !allow_kernel { [INFO] [stdout] 249 | | if cfg!(target_os = "linux") { [INFO] [stdout] 250 | | let kthreadd = sysinfo::Pid::from(2); [INFO] [stdout] 251 | | let is_kernel = **pid == kthreadd || process.parent() == Some(kthreadd); [INFO] [stdout] ... | [INFO] [stdout] 256 | | } [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] 248 ~ if !allow_kernel [INFO] [stdout] 249 ~ && cfg!(target_os = "linux") { [INFO] [stdout] 250 | let kthreadd = sysinfo::Pid::from(2); [INFO] [stdout] ... [INFO] [stdout] 254 | } [INFO] [stdout] 255 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/system.rs:339:29 [INFO] [stdout] | [INFO] [stdout] 339 | if !thread.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `thread.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/system.rs:258:46 [INFO] [stdout] | [INFO] [stdout] 258 | return matcher.fuzzy_match(name, &filter).is_some() [INFO] [stdout] | ^^^^^^^ help: change this to: `filter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/system.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | / return self.system.processes() [INFO] [stdout] 280 | | .iter() [INFO] [stdout] 281 | | .filter(|(_pid, p)| p.parent() == Some(ppid) && p.thread_kind().is_none()) [INFO] [stdout] 282 | | .map(|(pid, _p)| *pid) [INFO] [stdout] 283 | | .collect(); [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 279 ~ self.system.processes() [INFO] [stdout] 280 + .iter() [INFO] [stdout] 281 + .filter(|(_pid, p)| p.parent() == Some(ppid) && p.thread_kind().is_none()) [INFO] [stdout] 282 + .map(|(pid, _p)| *pid) [INFO] [stdout] 283 ~ .collect() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/system.rs:363:49 [INFO] [stdout] | [INFO] [stdout] 363 | let package = self.cache.get_by_obj(*package); [INFO] [stdout] | ^^^^^^^^ help: try: `package` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/system.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | /// process, in the order they are seen in the UI. Applied to [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/system.rs:429:9 [INFO] [stdout] | [INFO] [stdout] 429 | /// `apply_affinities` in the startup order of threads. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/system.rs:331:13 [INFO] [stdout] | [INFO] [stdout] 331 | / process.tasks().and_then(|tasks|{ [INFO] [stdout] 332 | | Some(tasks [INFO] [stdout] 333 | | .iter() [INFO] [stdout] 334 | | .filter(|tid| { [INFO] [stdout] ... | [INFO] [stdout] 354 | | .collect()) [INFO] [stdout] 355 | | }) [INFO] [stdout] | |______________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 331 ~ process.tasks().map(|tasks| tasks [INFO] [stdout] 332 + .iter() [INFO] [stdout] 333 + .filter(|tid| { [INFO] [stdout] 334 + // For some reason, a TID may be in process.tasks() but not [INFO] [stdout] 335 + // in self.system.processes(). Maybe a sysinfo issue? [INFO] [stdout] 336 + // We can only work around this by ignoring such threads. [INFO] [stdout] 337 + let thread = self.system.processes().get(tid); [INFO] [stdout] 338 + if !thread.is_some() { [INFO] [stdout] 339 + let proc_name = Self::get_process_name(process); [INFO] [stdout] 340 + let mut missing_threads = self.missing_threads.borrow_mut(); [INFO] [stdout] 341 + if !missing_threads.contains(&(**tid, pid)) [INFO] [stdout] 342 + { [INFO] [stdout] 343 + missing_threads.insert((**tid, pid)); [INFO] [stdout] 344 + error!("TID {}, child of PID {}/{}, could not be found around system's processes", [INFO] [stdout] 345 + tid, pid, proc_name); [INFO] [stdout] 346 + } [INFO] [stdout] 347 + } [INFO] [stdout] 348 + thread.is_some() [INFO] [stdout] 349 + }) [INFO] [stdout] 350 + .map(|tid| { [INFO] [stdout] 351 + (*tid, self.system.processes().get(tid).expect("threads should be found in `processes")) [INFO] [stdout] 352 + }) [INFO] [stdout] 353 + .collect()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/system.rs:339:29 [INFO] [stdout] | [INFO] [stdout] 339 | if !thread.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `thread.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/system.rs:363:49 [INFO] [stdout] | [INFO] [stdout] 363 | let package = self.cache.get_by_obj(*package); [INFO] [stdout] | ^^^^^^^^ help: try: `package` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/system.rs:428:9 [INFO] [stdout] | [INFO] [stdout] 428 | /// process, in the order they are seen in the UI. Applied to [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/system.rs:429:9 [INFO] [stdout] | [INFO] [stdout] 429 | /// `apply_affinities` in the startup order of threads. [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/uistate.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | if let Some(ref cores) = rendering_thread.and_then(|index|{self.selected_cores_threads.get(index)}) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 111 - if let Some(ref cores) = rendering_thread.and_then(|index|{self.selected_cores_threads.get(index)}) { [INFO] [stdout] 111 + if let Some(cores) = rendering_thread.and_then(|index|{self.selected_cores_threads.get(index)}) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/uistate.rs:111:21 [INFO] [stdout] | [INFO] [stdout] 111 | if let Some(ref cores) = rendering_thread.and_then(|index|{self.selected_cores_threads.get(index)}) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 111 - if let Some(ref cores) = rendering_thread.and_then(|index|{self.selected_cores_threads.get(index)}) { [INFO] [stdout] 111 + if let Some(cores) = rendering_thread.and_then(|index|{self.selected_cores_threads.get(index)}) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/uistate.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | / for item in self.selected_cores_threads.iter_mut() { [INFO] [stdout] 201 | | if let Some(selected_cores) = item { [INFO] [stdout] 202 | | system.disable_affinity_smt(selected_cores); [INFO] [stdout] 203 | | } [INFO] [stdout] 204 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/uistate.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | / if let Some(selected_cores) = item { [INFO] [stdout] 202 | | system.disable_affinity_smt(selected_cores); [INFO] [stdout] 203 | | } [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] 200 ~ for selected_cores in self.selected_cores_threads.iter_mut().flatten() { [INFO] [stdout] 201 + system.disable_affinity_smt(selected_cores); [INFO] [stdout] 202 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary `if let` since only the `Some` variant of the iterator element is used [INFO] [stdout] --> src/uistate.rs:200:9 [INFO] [stdout] | [INFO] [stdout] 200 | / for item in self.selected_cores_threads.iter_mut() { [INFO] [stdout] 201 | | if let Some(selected_cores) = item { [INFO] [stdout] 202 | | system.disable_affinity_smt(selected_cores); [INFO] [stdout] 203 | | } [INFO] [stdout] 204 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: try `.flatten()` and remove the `if let` statement in the for loop [INFO] [stdout] --> src/uistate.rs:201:13 [INFO] [stdout] | [INFO] [stdout] 201 | / if let Some(selected_cores) = item { [INFO] [stdout] 202 | | system.disable_affinity_smt(selected_cores); [INFO] [stdout] 203 | | } [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] 200 ~ for selected_cores in self.selected_cores_threads.iter_mut().flatten() { [INFO] [stdout] 201 + system.disable_affinity_smt(selected_cores); [INFO] [stdout] 202 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/uistate.rs:293:21 [INFO] [stdout] | [INFO] [stdout] 293 | if let Some(ref cores) = rendering_thread.and_then(|tid|{self.selected_cores_threads.get(&tid)}) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 293 - if let Some(ref cores) = rendering_thread.and_then(|tid|{self.selected_cores_threads.get(&tid)}) { [INFO] [stdout] 293 + if let Some(cores) = rendering_thread.and_then(|tid|{self.selected_cores_threads.get(&tid)}) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/uistate.rs:335:41 [INFO] [stdout] | [INFO] [stdout] 335 | system.disable_affinity_smt(&mut selected_cores_thread); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `selected_cores_thread` [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 pattern creates a reference to a reference [INFO] [stdout] --> src/uistate.rs:293:21 [INFO] [stdout] | [INFO] [stdout] 293 | if let Some(ref cores) = rendering_thread.and_then(|tid|{self.selected_cores_threads.get(&tid)}) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 293 - if let Some(ref cores) = rendering_thread.and_then(|tid|{self.selected_cores_threads.get(&tid)}) { [INFO] [stdout] 293 + if let Some(cores) = rendering_thread.and_then(|tid|{self.selected_cores_threads.get(&tid)}) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/uistate.rs:335:41 [INFO] [stdout] | [INFO] [stdout] 335 | system.disable_affinity_smt(&mut selected_cores_thread); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `selected_cores_thread` [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: redundant closure [INFO] [stdout] --> src/uistate.rs:472:88 [INFO] [stdout] | [INFO] [stdout] 472 | UIMode::View(ref mut view) => view.currently_rendered_thread = opt_tid.map(|x| sysinfo::Pid::from_u32(x)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `sysinfo::Pid::from_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/uistate.rs:472:88 [INFO] [stdout] | [INFO] [stdout] 472 | UIMode::View(ref mut view) => view.currently_rendered_thread = opt_tid.map(|x| sysinfo::Pid::from_u32(x)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `sysinfo::Pid::from_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/uistate.rs:473:88 [INFO] [stdout] | [INFO] [stdout] 473 | UIMode::Edit(ref mut edit) => edit.currently_rendered_thread = opt_tid.map(|x| sysinfo::Pid::from_u32(x)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `sysinfo::Pid::from_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/uistate.rs:473:88 [INFO] [stdout] | [INFO] [stdout] 473 | UIMode::Edit(ref mut edit) => edit.currently_rendered_thread = opt_tid.map(|x| sysinfo::Pid::from_u32(x)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `sysinfo::Pid::from_u32` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/uistate.rs:719:9 [INFO] [stdout] | [INFO] [stdout] 719 | /// / [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/uistate.rs:720:9 [INFO] [stdout] | [INFO] [stdout] 720 | /// If no process is currently selected, selects the first process in list [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] 720 | /// If no process is currently selected, selects the first process in list [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/uistate.rs:721:9 [INFO] [stdout] | [INFO] [stdout] 721 | /// (if any) and sets next mode to View. [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] help: indent this line [INFO] [stdout] | [INFO] [stdout] 721 | /// (if any) and sets next mode to View. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/uistate.rs:719:9 [INFO] [stdout] | [INFO] [stdout] 719 | /// / [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/uistate.rs:720:9 [INFO] [stdout] | [INFO] [stdout] 720 | /// If no process is currently selected, selects the first process in list [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] 720 | /// If no process is currently selected, selects the first process in list [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/uistate.rs:721:9 [INFO] [stdout] | [INFO] [stdout] 721 | /// (if any) and sets next mode to View. [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] help: indent this line [INFO] [stdout] | [INFO] [stdout] 721 | /// (if any) and sets next mode to View. [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> src/uistate.rs:798:23 [INFO] [stdout] | [INFO] [stdout] 798 | .filter_map(|p| p) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/uistate.rs:804:12 [INFO] [stdout] | [INFO] [stdout] 804 | if active_processes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `active_processes.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: use of `filter_map` with an identity function [INFO] [stdout] --> src/uistate.rs:798:23 [INFO] [stdout] | [INFO] [stdout] 798 | .filter_map(|p| p) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/uistate.rs:804:12 [INFO] [stdout] | [INFO] [stdout] 804 | if active_processes.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `active_processes.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: iterating on a map's keys [INFO] [stdout] --> src/uistate.rs:873:45 [INFO] [stdout] | [INFO] [stdout] 873 | let dead_tids: Vec<_> = edit.selected_cores_threads.iter().map(|(tid, _)| *tid) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `edit.selected_cores_threads.keys().map(|tid| *tid)` [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: iterating on a map's keys [INFO] [stdout] --> src/uistate.rs:873:45 [INFO] [stdout] | [INFO] [stdout] 873 | let dead_tids: Vec<_> = edit.selected_cores_threads.iter().map(|(tid, _)| *tid) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `edit.selected_cores_threads.keys().map(|tid| *tid)` [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: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/ratatuifrontend.rs:151:17 [INFO] [stdout] | [INFO] [stdout] 151 | c.is_digit(10) || (c == '.' && !first_line.is_empty() && !first_line.contains('.')), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/ratatuifrontend.rs:151:17 [INFO] [stdout] | [INFO] [stdout] 151 | c.is_digit(10) || (c == '.' && !first_line.is_empty() && !first_line.contains('.')), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] = note: `#[warn(clippy::is_digit_ascii_radix)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/ratatuifrontend.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | c.is_digit(10) && first_line.len() <= 9, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `char::is_digit` with literal radix of 10 [INFO] [stdout] --> src/ratatuifrontend.rs:153:17 [INFO] [stdout] | [INFO] [stdout] 153 | c.is_digit(10) && first_line.len() <= 9, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `c.is_ascii_digit()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#is_digit_ascii_radix [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/ratatuifrontend.rs:448:28 [INFO] [stdout] | [INFO] [stdout] 448 | fn handle_events_apply<'a>(&mut self, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/ratatuifrontend.rs:448:28 [INFO] [stdout] | [INFO] [stdout] 448 | fn handle_events_apply<'a>(&mut self, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/ratatuifrontend.rs:686:50 [INFO] [stdout] | [INFO] [stdout] 686 | self.process_is_focused = if self.process_is_focused == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.process_is_focused` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/ratatuifrontend.rs:688:28 [INFO] [stdout] | [INFO] [stdout] 688 | if self.selected_thread == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `self.selected_thread.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against true are unnecessary [INFO] [stdout] --> src/ratatuifrontend.rs:686:50 [INFO] [stdout] | [INFO] [stdout] 686 | self.process_is_focused = if self.process_is_focused == true { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.process_is_focused` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/ratatuifrontend.rs:688:28 [INFO] [stdout] | [INFO] [stdout] 688 | if self.selected_thread == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `self.selected_thread.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `filter.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:757:13 [INFO] [stdout] | [INFO] [stdout] 757 | filter.textarea.lines().get(0).unwrap_or(&empty).clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter.textarea.lines().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 `filter.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:757:13 [INFO] [stdout] | [INFO] [stdout] 757 | filter.textarea.lines().get(0).unwrap_or(&empty).clone() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `filter.textarea.lines().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: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:890:31 [INFO] [stdout] | [INFO] [stdout] 890 | ListItem::new(format!("{}", info.name)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `info.name.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:941:42 [INFO] [stdout] | [INFO] [stdout] 941 | let indicator = Text::styled(format!("*"), Style::default().fg(Color::Yellow)); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `"*".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:890:31 [INFO] [stdout] | [INFO] [stdout] 890 | ListItem::new(format!("{}", info.name)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `info.name.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/ratatuifrontend.rs:980:18 [INFO] [stdout] | [INFO] [stdout] 980 | name: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 980 ~ name: &str, [INFO] [stdout] 981 | edited: bool, [INFO] [stdout] ... [INFO] [stdout] 985 | let (rect_name, rect_topo) = (chunks[0], chunks[1]); [INFO] [stdout] 986 ~ self.thread_name(frame, rect_name, name, edited); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:941:42 [INFO] [stdout] | [INFO] [stdout] 941 | let indicator = Text::styled(format!("*"), Style::default().fg(Color::Yellow)); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider using `.to_string()`: `"*".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:1029:36 [INFO] [stdout] | [INFO] [stdout] 1029 | Block::default().title(format!("thread selection")).borders(Borders::ALL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"thread selection".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&String` instead of `&str` involves a new object where a slice will do [INFO] [stdout] --> src/ratatuifrontend.rs:980:18 [INFO] [stdout] | [INFO] [stdout] 980 | name: &String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 980 ~ name: &str, [INFO] [stdout] 981 | edited: bool, [INFO] [stdout] ... [INFO] [stdout] 985 | let (rect_name, rect_topo) = (chunks[0], chunks[1]); [INFO] [stdout] 986 ~ self.thread_name(frame, rect_name, name, edited); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ratatuifrontend.rs:1090:58 [INFO] [stdout] | [INFO] [stdout] 1090 | self.topology_thread(frame, backend, system, &name, edited, bounds); [INFO] [stdout] | ^^^^^ help: change this to: `name` [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: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:1029:36 [INFO] [stdout] | [INFO] [stdout] 1029 | Block::default().title(format!("thread selection")).borders(Borders::ALL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"thread selection".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `thread_count_input.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:1127:17 [INFO] [stdout] | [INFO] [stdout] 1127 | thread_count_input.textarea.lines().get(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `thread_count_input.textarea.lines().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 function has too many arguments (8/7) [INFO] [stdout] --> src/ratatuifrontend.rs:1161:5 [INFO] [stdout] | [INFO] [stdout] 1161 | / fn topology_object_pu(&self, [INFO] [stdout] 1162 | | frame: &mut Frame, [INFO] [stdout] 1163 | | rect_grid: Rect, [INFO] [stdout] 1164 | | x: u16, [INFO] [stdout] ... | [INFO] [stdout] 1167 | | system: &System, [INFO] [stdout] 1168 | | obj: &TopologyObjectInfo) -> Rect [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 expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ratatuifrontend.rs:1090:58 [INFO] [stdout] | [INFO] [stdout] 1090 | self.topology_thread(frame, backend, system, &name, edited, bounds); [INFO] [stdout] | ^^^^^ help: change this to: `name` [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 function has too many arguments (9/7) [INFO] [stdout] --> src/ratatuifrontend.rs:1193:5 [INFO] [stdout] | [INFO] [stdout] 1193 | / fn topology_object_child_rect_fixup(&self, [INFO] [stdout] 1194 | | frame: &mut Frame, [INFO] [stdout] 1195 | | child: &TopologyObjectInfo, [INFO] [stdout] 1196 | | mut rect_child: Rect, [INFO] [stdout] ... | [INFO] [stdout] 1200 | | rows: usize, [INFO] [stdout] 1201 | | cols: usize) -> Rect [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: accessing first element with `thread_count_input.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:1127:17 [INFO] [stdout] | [INFO] [stdout] 1127 | thread_count_input.textarea.lines().get(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `thread_count_input.textarea.lines().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 function has too many arguments (8/7) [INFO] [stdout] --> src/ratatuifrontend.rs:1161:5 [INFO] [stdout] | [INFO] [stdout] 1161 | / fn topology_object_pu(&self, [INFO] [stdout] 1162 | | frame: &mut Frame, [INFO] [stdout] 1163 | | rect_grid: Rect, [INFO] [stdout] 1164 | | x: u16, [INFO] [stdout] ... | [INFO] [stdout] 1167 | | system: &System, [INFO] [stdout] 1168 | | obj: &TopologyObjectInfo) -> Rect [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 (9/7) [INFO] [stdout] --> src/ratatuifrontend.rs:1193:5 [INFO] [stdout] | [INFO] [stdout] 1193 | / fn topology_object_child_rect_fixup(&self, [INFO] [stdout] 1194 | | frame: &mut Frame, [INFO] [stdout] 1195 | | child: &TopologyObjectInfo, [INFO] [stdout] 1196 | | mut rect_child: Rect, [INFO] [stdout] ... | [INFO] [stdout] 1200 | | rows: usize, [INFO] [stdout] 1201 | | cols: usize) -> Rect [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 (8/7) [INFO] [stdout] --> src/ratatuifrontend.rs:1324:5 [INFO] [stdout] | [INFO] [stdout] 1324 | / fn topology_object(&self, [INFO] [stdout] 1325 | | frame: &mut Frame, [INFO] [stdout] 1326 | | rect_grid: Rect, [INFO] [stdout] 1327 | | x: u16, [INFO] [stdout] ... | [INFO] [stdout] 1330 | | system: &System, [INFO] [stdout] 1331 | | obj: &TopologyObjectInfo) -> Rect [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: called `unwrap` on `obj.label` after checking its variant with `is_some` [INFO] [stdout] --> src/ratatuifrontend.rs:1403:38 [INFO] [stdout] | [INFO] [stdout] 1402 | let block = if compact && obj.label.is_some() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 1403 | let label_text = obj.label.as_ref().unwrap().lines.join(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `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: unneeded `return` statement [INFO] [stdout] --> src/ratatuifrontend.rs:1411:9 [INFO] [stdout] | [INFO] [stdout] 1411 | return object_rect; [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] 1411 - return object_rect; [INFO] [stdout] 1411 + object_rect [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/ratatuifrontend.rs:1324:5 [INFO] [stdout] | [INFO] [stdout] 1324 | / fn topology_object(&self, [INFO] [stdout] 1325 | | frame: &mut Frame, [INFO] [stdout] 1326 | | rect_grid: Rect, [INFO] [stdout] 1327 | | x: u16, [INFO] [stdout] ... | [INFO] [stdout] 1330 | | system: &System, [INFO] [stdout] 1331 | | obj: &TopologyObjectInfo) -> Rect [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: called `unwrap` on `obj.label` after checking its variant with `is_some` [INFO] [stdout] --> src/ratatuifrontend.rs:1403:38 [INFO] [stdout] | [INFO] [stdout] 1402 | let block = if compact && obj.label.is_some() { [INFO] [stdout] | ------------------- the check is happening here [INFO] [stdout] 1403 | let label_text = obj.label.as_ref().unwrap().lines.join(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `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: unneeded `return` statement [INFO] [stdout] --> src/ratatuifrontend.rs:1411:9 [INFO] [stdout] | [INFO] [stdout] 1411 | return object_rect; [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] 1411 - return object_rect; [INFO] [stdout] 1411 + object_rect [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/ratatuifrontend.rs:1446:20 [INFO] [stdout] | [INFO] [stdout] 1446 | if input.received_input == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!input.received_input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `input.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:1449:37 [INFO] [stdout] | [INFO] [stdout] 1449 | if let Some(text) = input.textarea.lines().get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `input.textarea.lines().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 `thread_apply_time.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:1489:21 [INFO] [stdout] | [INFO] [stdout] 1489 | thread_apply_time.textarea.lines().get(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `thread_apply_time.textarea.lines().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: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/ratatuifrontend.rs:1446:20 [INFO] [stdout] | [INFO] [stdout] 1446 | if input.received_input == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!input.received_input` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `input.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:1449:37 [INFO] [stdout] | [INFO] [stdout] 1449 | if let Some(text) = input.textarea.lines().get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `input.textarea.lines().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: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:1539:36 [INFO] [stdout] | [INFO] [stdout] 1539 | Block::default().title(format!("core control")).borders(Borders::ALL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"core control".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: accessing first element with `thread_apply_time.textarea.lines().get(0)` [INFO] [stdout] --> src/ratatuifrontend.rs:1489:21 [INFO] [stdout] | [INFO] [stdout] 1489 | thread_apply_time.textarea.lines().get(0) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `thread_apply_time.textarea.lines().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: binary comparison to literal `Option::None` [INFO] [stdout] --> src/ratatuifrontend.rs:1564:46 [INFO] [stdout] | [INFO] [stdout] 1564 | radio_value(frame, chunks_radios[3], order == None, "none"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `order.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/ratatuifrontend.rs:1539:36 [INFO] [stdout] | [INFO] [stdout] 1539 | Block::default().title(format!("core control")).borders(Borders::ALL); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"core control".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | return self.type_id == other.type_id && self.index == other.index; [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] 34 - return self.type_id == other.type_id && self.index == other.index; [INFO] [stdout] 34 + self.type_id == other.type_id && self.index == other.index [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/ratatuifrontend.rs:1564:46 [INFO] [stdout] | [INFO] [stdout] 1564 | radio_value(frame, chunks_radios[3], order == None, "none"); [INFO] [stdout] | ^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `order.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:34:9 [INFO] [stdout] | [INFO] [stdout] 34 | return self.type_id == other.type_id && self.index == other.index; [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] 34 - return self.type_id == other.type_id && self.index == other.index; [INFO] [stdout] 34 + self.type_id == other.type_id && self.index == other.index [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/topologycache.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | / write!(f, "next_index: {:?}, start: {:?}, end: {:?}\n", [INFO] [stdout] 137 | | self.next_index, self.start, self.end) [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 136 - write!(f, "next_index: {:?}, start: {:?}, end: {:?}\n", [INFO] [stdout] 136 + writeln!(f, "next_index: {:?}, start: {:?}, end: {:?}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/topologycache.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | .expect(format!("index out of range: {} (context: {:?})", index, self).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("index out of range: {} (context: {:?})", index, self))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/topologycache.rs:136:9 [INFO] [stdout] | [INFO] [stdout] 136 | / write!(f, "next_index: {:?}, start: {:?}, end: {:?}\n", [INFO] [stdout] 137 | | self.next_index, self.start, self.end) [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 136 - write!(f, "next_index: {:?}, start: {:?}, end: {:?}\n", [INFO] [stdout] 136 + writeln!(f, "next_index: {:?}, start: {:?}, end: {:?}", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:263:33 [INFO] [stdout] | [INFO] [stdout] 263 | cache_size: object.cache_attributes().and_then(|attr| Some(attr.size)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `object.cache_attributes().map(|attr| attr.size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function call inside of `expect` [INFO] [stdout] --> src/topologycache.rs:190:24 [INFO] [stdout] | [INFO] [stdout] 190 | .expect(format!("index out of range: {} (context: {:?})", index, self).as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_else(|| panic!("index out of range: {} (context: {:?})", index, self))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stdout] = note: `#[warn(clippy::expect_fun_call)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | self.cache.get(&new_id).and_then(|_item| Some(new_id)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.cache.get(&new_id).map(|_item| new_id)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | self.cache.get(&new_id).and_then(|_item| Some(new_id)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.cache.get(&new_id).map(|_item| new_id)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:263:33 [INFO] [stdout] | [INFO] [stdout] 263 | cache_size: object.cache_attributes().and_then(|attr| Some(attr.size)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `object.cache_attributes().map(|attr| attr.size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/topologycache.rs:369:41 [INFO] [stdout] | [INFO] [stdout] 369 | self.storage.iter().find(|&obj| obj.child_indices.iter().any(|&c| c == own_index)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `obj.child_indices.contains(&own_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:433:17 [INFO] [stdout] | [INFO] [stdout] 433 | return; [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] 432 - } else { [INFO] [stdout] 433 - return; [INFO] [stdout] 432 + } else { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `skip(..).next()` on an iterator [INFO] [stdout] --> src/topologycache.rs:430:47 [INFO] [stdout] | [INFO] [stdout] 430 | let sibling = children.clone().skip(sibling_index_in_group).next().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `nth` instead: `.nth(sibling_index_in_group)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stdout] = note: `#[warn(clippy::iter_skip_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:336:9 [INFO] [stdout] | [INFO] [stdout] 336 | self.cache.get(&new_id).and_then(|_item| Some(new_id)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.cache.get(&new_id).map(|_item| new_id)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/topologycache.rs:449:17 [INFO] [stdout] | [INFO] [stdout] 449 | / if a.cache_size.unwrap() != b.cache_size.unwrap() { [INFO] [stdout] 450 | | return true [INFO] [stdout] 451 | | } [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] 448 ~ ObjectType::L1Cache | ObjectType::L2Cache | ObjectType::L3Cache | ObjectType::L4Cache | ObjectType::L5Cache) [INFO] [stdout] 449 ~ if a.cache_size.unwrap() != b.cache_size.unwrap() => { [INFO] [stdout] 450 | return true [INFO] [stdout] 451 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/topologycache.rs:454:17 [INFO] [stdout] | [INFO] [stdout] 454 | / if a.cpu_name != b.cpu_name { [INFO] [stdout] 455 | | return true [INFO] [stdout] 456 | | } [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] 453 ~ (ObjectType::Package, ObjectType::Package) [INFO] [stdout] 454 ~ if a.cpu_name != b.cpu_name => { [INFO] [stdout] 455 | return true [INFO] [stdout] 456 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:345:9 [INFO] [stdout] | [INFO] [stdout] 345 | self.cache.get(&new_id).and_then(|_item| Some(new_id)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.cache.get(&new_id).map(|_item| new_id)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/topologycache.rs:482:16 [INFO] [stdout] | [INFO] [stdout] 482 | if children.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `children.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: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/topologycache.rs:369:41 [INFO] [stdout] | [INFO] [stdout] 369 | self.storage.iter().find(|&obj| obj.child_indices.iter().any(|&c| c == own_index)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `obj.child_indices.contains(&own_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:553:9 [INFO] [stdout] | [INFO] [stdout] 553 | return Self::is_single_core(children[0]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 553 - return Self::is_single_core(children[0]); [INFO] [stdout] 553 + Self::is_single_core(children[0]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:433:17 [INFO] [stdout] | [INFO] [stdout] 433 | return; [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] 432 - } else { [INFO] [stdout] 433 - return; [INFO] [stdout] 432 + } else { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:582:9 [INFO] [stdout] | [INFO] [stdout] 582 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 582 - return None; [INFO] [stdout] 582 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `skip(..).next()` on an iterator [INFO] [stdout] --> src/topologycache.rs:430:47 [INFO] [stdout] | [INFO] [stdout] 430 | let sibling = children.clone().skip(sibling_index_in_group).next().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `nth` instead: `.nth(sibling_index_in_group)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stdout] = note: `#[warn(clippy::iter_skip_next)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/topologycache.rs:449:17 [INFO] [stdout] | [INFO] [stdout] 449 | / if a.cache_size.unwrap() != b.cache_size.unwrap() { [INFO] [stdout] 450 | | return true [INFO] [stdout] 451 | | } [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] 448 ~ ObjectType::L1Cache | ObjectType::L2Cache | ObjectType::L3Cache | ObjectType::L4Cache | ObjectType::L5Cache) [INFO] [stdout] 449 ~ if a.cache_size.unwrap() != b.cache_size.unwrap() => { [INFO] [stdout] 450 | return true [INFO] [stdout] 451 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:592:28 [INFO] [stdout] | [INFO] [stdout] 592 | let size = obj.cache_attributes().and_then(|attr| Some(attr.size)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `obj.cache_attributes().map(|attr| attr.size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/topologycache.rs:454:17 [INFO] [stdout] | [INFO] [stdout] 454 | / if a.cpu_name != b.cpu_name { [INFO] [stdout] 455 | | return true [INFO] [stdout] 456 | | } [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] 453 ~ (ObjectType::Package, ObjectType::Package) [INFO] [stdout] 454 ~ if a.cpu_name != b.cpu_name => { [INFO] [stdout] 455 | return true [INFO] [stdout] 456 ~ }, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/topologycache.rs:482:16 [INFO] [stdout] | [INFO] [stdout] 482 | if children.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `children.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:553:9 [INFO] [stdout] | [INFO] [stdout] 553 | return Self::is_single_core(children[0]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 553 - return Self::is_single_core(children[0]); [INFO] [stdout] 553 + Self::is_single_core(children[0]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/topologycache.rs:582:9 [INFO] [stdout] | [INFO] [stdout] 582 | return None; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 582 - return None; [INFO] [stdout] 582 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/topologycache.rs:592:28 [INFO] [stdout] | [INFO] [stdout] 592 | let size = obj.cache_attributes().and_then(|attr| Some(attr.size)).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `obj.cache_attributes().map(|attr| attr.size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 19.05s [INFO] running `Command { std: "docker" "inspect" "0213eb50bbc387f2995993b04c0cfd144eb266e083df6fd25fc5b4b4cba539de", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0213eb50bbc387f2995993b04c0cfd144eb266e083df6fd25fc5b4b4cba539de", kill_on_drop: false }` [INFO] [stdout] 0213eb50bbc387f2995993b04c0cfd144eb266e083df6fd25fc5b4b4cba539de