[INFO] cloning repository https://github.com/Kobayashi-takumi/cli-manager [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Kobayashi-takumi/cli-manager" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKobayashi-takumi%2Fcli-manager", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKobayashi-takumi%2Fcli-manager'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 150b9d61b83dac90cb218f1f425a56f9badec4a8 [INFO] linting Kobayashi-takumi/cli-manager against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKobayashi-takumi%2Fcli-manager" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Kobayashi-takumi/cli-manager [INFO] finished tweaking git repo https://github.com/Kobayashi-takumi/cli-manager [INFO] tweaked toml for git repo https://github.com/Kobayashi-takumi/cli-manager written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Kobayashi-takumi/cli-manager on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Kobayashi-takumi/cli-manager already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded shell-words v1.1.1 [INFO] [stderr] Downloaded pest_generator v2.8.6 [INFO] [stderr] Downloaded zvariant_utils v3.3.0 [INFO] [stderr] Downloaded deranged v0.5.6 [INFO] [stderr] Downloaded zbus_names v4.3.1 [INFO] [stderr] Downloaded zvariant_derive v5.9.2 [INFO] [stderr] Downloaded zbus_macros v5.13.2 [INFO] [stderr] Downloaded notify-rust v4.12.0 [INFO] [stderr] Downloaded pest_meta v2.8.6 [INFO] [stderr] Downloaded serial2 v0.2.33 [INFO] [stderr] Downloaded pest v2.8.6 [INFO] [stderr] Downloaded zbus v5.13.2 [INFO] [stderr] Downloaded zvariant v5.9.2 [INFO] [stderr] Downloaded pest_derive v2.8.6 [INFO] [stderr] Downloaded portable-pty v0.9.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] aba2c90fd11e362d255130808fc5ca858c3f4fefb7cbc127f7e8e9bce0300a89 [INFO] running `Command { std: "docker" "start" "-a" "aba2c90fd11e362d255130808fc5ca858c3f4fefb7cbc127f7e8e9bce0300a89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "aba2c90fd11e362d255130808fc5ca858c3f4fefb7cbc127f7e8e9bce0300a89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "aba2c90fd11e362d255130808fc5ca858c3f4fefb7cbc127f7e8e9bce0300a89", kill_on_drop: false }` [INFO] [stdout] aba2c90fd11e362d255130808fc5ca858c3f4fefb7cbc127f7e8e9bce0300a89 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 66fe8b1c79ab90b286a838517d654156a5abe9a986b3687ed56bdaf5fec91b59 [INFO] running `Command { std: "docker" "start" "-a" "66fe8b1c79ab90b286a838517d654156a5abe9a986b3687ed56bdaf5fec91b59", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.106 [INFO] [stderr] Compiling unicode-ident v1.0.24 [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Checking futures-core v0.3.32 [INFO] [stderr] Compiling rustix v1.1.3 [INFO] [stderr] Compiling quote v1.0.44 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Checking futures-io v0.3.32 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Checking foldhash v0.2.0 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Checking castaway v0.2.4 [INFO] [stderr] Compiling indoc v2.0.7 [INFO] [stderr] Checking ryu v1.0.23 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Compiling instability v0.3.11 [INFO] [stderr] Checking hashbrown v0.16.1 [INFO] [stderr] Checking winnow v0.7.14 [INFO] [stderr] Checking compact_str v0.9.0 [INFO] [stderr] Checking itertools v0.14.0 [INFO] [stderr] Compiling endi v1.1.1 [INFO] [stderr] Checking deranged v0.5.6 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking num_threads v0.1.7 [INFO] [stderr] Compiling toml_edit v0.23.10+spec-1.0.0 [INFO] [stderr] Checking time-core v0.1.8 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Checking num-conv v0.2.0 [INFO] [stderr] Checking syn v2.0.116 [INFO] [stderr] Checking lru v0.16.3 [INFO] [stderr] Checking piper v0.2.4 [INFO] [stderr] Compiling nix v0.28.0 [INFO] [stderr] Checking line-clipping v0.3.5 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Checking memchr v2.8.0 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling anyhow v1.0.101 [INFO] [stderr] Checking async-executor v1.14.0 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Checking async-lock v3.4.2 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Checking uuid v1.21.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Checking vte v0.15.0 [INFO] [stderr] Checking shell-words v1.1.1 [INFO] [stderr] Checking vt100 v0.16.2 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Checking unicode-truncate v2.0.1 [INFO] [stderr] Checking errno v0.3.14 [INFO] [stderr] Checking mio v1.1.1 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking serial2 v0.2.33 [INFO] [stderr] Checking signal-hook-registry v1.4.8 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking signal-hook v0.3.18 [INFO] [stderr] Checking signal-hook-mio v0.2.5 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling derive_more-impl v2.1.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking derive_more v2.1.1 [INFO] [stderr] Checking crossterm v0.29.0 [INFO] [stderr] Checking async-signal v0.2.13 [INFO] [stderr] Checking tracing v0.1.44 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking thiserror v2.0.18 [INFO] [stderr] Checking async-process v2.5.0 [INFO] [stderr] Checking filedescriptor v0.8.3 [INFO] [stderr] Checking kasuari v0.4.11 [INFO] [stderr] Checking portable-pty v0.9.0 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Checking strum v0.27.2 [INFO] [stderr] Checking ratatui-core v0.1.0 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Checking ratatui-widgets v0.3.0 [INFO] [stderr] Checking ratatui-crossterm v0.1.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking zvariant_utils v3.3.0 [INFO] [stderr] Checking enumflags2 v0.7.12 [INFO] [stderr] Compiling zvariant_derive v5.9.2 [INFO] [stderr] Checking ratatui-macros v0.7.0 [INFO] [stderr] Checking ratatui v0.30.0 [INFO] [stderr] Compiling zvariant v5.9.2 [INFO] [stderr] Checking zbus_names v4.3.1 [INFO] [stderr] Compiling zbus_macros v5.13.2 [INFO] [stderr] Checking zbus v5.13.2 [INFO] [stderr] Checking notify-rust v4.12.0 [INFO] [stderr] Checking cli_manager v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `terminal_usecase::TerminalUsecase` [INFO] [stdout] --> src/usecase/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use terminal_usecase::TerminalUsecase; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionId` [INFO] [stdout] --> src/interface_adapter/port/mod.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | pub use ipc_port::{IpcPort, ConnectionId}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `WindowInfo` [INFO] [stdout] --> src/infrastructure/ipc/protocol.rs:8:74 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::domain::primitive::{IpcCommand, IpcResponse, IpcResponseData, WindowInfo}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `terminal_usecase::TerminalUsecase` [INFO] [stdout] --> src/usecase/mod.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use terminal_usecase::TerminalUsecase; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ConnectionId` [INFO] [stdout] --> src/interface_adapter/port/mod.rs:7:29 [INFO] [stdout] | [INFO] [stdout] 7 | pub use ipc_port::{IpcPort, ConnectionId}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `last_notification` is never used [INFO] [stdout] --> src/domain/model/terminal.rs:61:12 [INFO] [stdout] | [INFO] [stdout] 15 | impl ManagedTerminal { [INFO] [stdout] | -------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 61 | pub fn last_notification(&self) -> Option<&NotificationEvent> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `summary` is never used [INFO] [stdout] --> src/domain/primitive/notification.rs:19:12 [INFO] [stdout] | [INFO] [stdout] 17 | impl NotificationEvent { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] 18 | /// Return a short summary string for the notification. [INFO] [stdout] 19 | pub fn summary(&self) -> &str { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `pty_port` is never used [INFO] [stdout] --> src/usecase/terminal_usecase.rs:269:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl TerminalUsecase { [INFO] [stdout] | ----------------------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 269 | pub fn pty_port(&self) -> &P { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `create_screen_adapter` is never used [INFO] [stdout] --> src/interface_adapter/adapter/screen_adapter_factory.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn create_screen_adapter() -> VteScreenAdapter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ExitScrollbackSearch` and `ConfirmScrollbackSearch` are never constructed [INFO] [stdout] --> src/interface_adapter/controller/tui_controller.rs:39:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum AppAction { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 39 | ExitScrollbackSearch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 40 | ConfirmScrollbackSearch, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `set_enabled` is never used [INFO] [stdout] --> src/infrastructure/notification/macos_notifier.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl MacOsNotifier { [INFO] [stdout] | ------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 77 | pub fn set_enabled(&mut self, enabled: bool) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ScreenInstance` is never constructed [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | struct ScreenInstance { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `SavedCursorState` is never constructed [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | struct SavedCursorState { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `scroll_up`, `scroll_down`, `erase_cell`, `enter_alternate_screen`, and `leave_alternate_screen` are never used [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:66:8 [INFO] [stdout] | [INFO] [stdout] 65 | impl ScreenInstance { [INFO] [stdout] | ------------------- associated items in this implementation [INFO] [stdout] 66 | fn new(size: TerminalSize) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 102 | fn scroll_up(&mut self) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | fn scroll_down(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 125 | fn erase_cell(&mut self, row: u16, col: u16) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 137 | fn enter_alternate_screen(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 160 | fn leave_alternate_screen(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `VteScreenAdapter` is never constructed [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:913:12 [INFO] [stdout] | [INFO] [stdout] 913 | pub struct VteScreenAdapter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `get_title` are never used [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:922:12 [INFO] [stdout] | [INFO] [stdout] 921 | impl VteScreenAdapter { [INFO] [stdout] | --------------------- associated items in this implementation [INFO] [stdout] 922 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 931 | pub fn get_title(&self, id: TerminalId) -> Result, AppError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_title` is never used [INFO] [stdout] --> src/infrastructure/screen/vt100_screen.rs:135:12 [INFO] [stdout] | [INFO] [stdout] 127 | impl Vt100ScreenAdapter { [INFO] [stdout] | ----------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 135 | pub fn get_title(&self, id: TerminalId) -> Result, AppError> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `terminal_index` is never read [INFO] [stdout] --> src/infrastructure/tui/widgets/quick_switcher.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct QuickSwitchItem { [INFO] [stdout] | --------------- field in this struct [INFO] [stdout] 12 | /// Original terminal index in the terminal list. [INFO] [stdout] 13 | pub terminal_index: usize, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Tui` is never constructed [INFO] [stdout] --> src/shared/error.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum AppError { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 25 | Tui(#[source] std::io::Error), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:354:80 [INFO] [stdout] | [INFO] [stdout] 354 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'a'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"a"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] = note: `#[warn(clippy::byte_char_slices)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:366:80 [INFO] [stdout] | [INFO] [stdout] 366 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'A'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"A"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:860:80 [INFO] [stdout] | [INFO] [stdout] 860 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b' '])); [INFO] [stdout] | ^^^^^^^ help: try: `b" "` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:870:80 [INFO] [stdout] | [INFO] [stdout] 870 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'7'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"7"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:880:80 [INFO] [stdout] | [INFO] [stdout] 880 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'/'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"/"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:937:80 [INFO] [stdout] | [INFO] [stdout] 937 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'h'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"h"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:955:80 [INFO] [stdout] | [INFO] [stdout] 955 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'e'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"e"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:973:80 [INFO] [stdout] | [INFO] [stdout] 973 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'a'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"a"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:1009:80 [INFO] [stdout] | [INFO] [stdout] 1009 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'b'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"b"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:1331:80 [INFO] [stdout] | [INFO] [stdout] 1331 | assert!(matches!(action, Some(AppAction::WriteToActive(ref b)) if b == &[b'a'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"a"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:1465:82 [INFO] [stdout] | [INFO] [stdout] 1465 | matches!(action, Some(AppAction::WriteToMiniTerminal(ref b)) if b == &[b'a']) [INFO] [stdout] | ^^^^^^^ help: try: `b"a"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/infrastructure/ipc/unix_socket_server.rs:197:25 [INFO] [stdout] | [INFO] [stdout] 197 | let _ = write!(stream, "{json}\n"); [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] 197 - let _ = write!(stream, "{json}\n"); [INFO] [stdout] 197 + let _ = writeln!(stream, "{json}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/infrastructure/ipc/unix_socket_server.rs:220:21 [INFO] [stdout] | [INFO] [stdout] 220 | let _ = write!(stream, "{json}\n"); [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] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 220 - let _ = write!(stream, "{json}\n"); [INFO] [stdout] 220 + let _ = writeln!(stream, "{json}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: can be more succinctly written as a byte str [INFO] [stdout] --> src/infrastructure/tui/input.rs:1545:86 [INFO] [stdout] | [INFO] [stdout] 1545 | assert!(matches!(action, Some(AppAction::WriteToMiniTerminal(ref b)) if b == &[b'x'])); [INFO] [stdout] | ^^^^^^^ help: try: `b"x"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#byte_char_slices [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/notification/macos_notifier.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / if let Some(last) = self.last_notify.get(terminal_name) { [INFO] [stdout] 45 | | if now.duration_since(*last) < self.cooldown { [INFO] [stdout] 46 | | return false; [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [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] 44 ~ if let Some(last) = self.last_notify.get(terminal_name) [INFO] [stdout] 45 ~ && now.duration_since(*last) < self.cooldown { [INFO] [stdout] 46 | return false; [INFO] [stdout] 47 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | / if self.cursor.col > 0 { [INFO] [stdout] 305 | | self.cursor.col -= 1; [INFO] [stdout] 306 | | } [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] 303 ~ 0x08 [INFO] [stdout] 304 ~ if self.cursor.col > 0 => { [INFO] [stdout] 305 | self.cursor.col -= 1; [INFO] [stdout] 306 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:421:29 [INFO] [stdout] | [INFO] [stdout] 421 | / ... if i + 1 < params_list.len() { [INFO] [stdout] 422 | | ... match params_list[i + 1] { [INFO] [stdout] 423 | | ... 5 => { [INFO] [stdout] ... | [INFO] [stdout] 444 | | ... } [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] 420 ~ 38 [INFO] [stdout] 421 ~ if i + 1 < params_list.len() => { [INFO] [stdout] 422 | match params_list[i + 1] { [INFO] [stdout] ... [INFO] [stdout] 443 | } [INFO] [stdout] 444 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:452:29 [INFO] [stdout] | [INFO] [stdout] 452 | / ... if i + 1 < params_list.len() { [INFO] [stdout] 453 | | ... match params_list[i + 1] { [INFO] [stdout] 454 | | ... 5 => { [INFO] [stdout] ... | [INFO] [stdout] 475 | | ... } [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] 451 ~ 48 [INFO] [stdout] 452 ~ if i + 1 < params_list.len() => { [INFO] [stdout] 453 | match params_list[i + 1] { [INFO] [stdout] ... [INFO] [stdout] 474 | } [INFO] [stdout] 475 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:425:41 [INFO] [stdout] | [INFO] [stdout] 425 | / ... if i + 2 < params_list.len() { [INFO] [stdout] 426 | | ... self.current_fg = [INFO] [stdout] 427 | | ... Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 428 | | ... i += 2; [INFO] [stdout] 429 | | ... } [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] 423 ~ 5 [INFO] [stdout] 424 | // 256-color: 38;5;n [INFO] [stdout] 425 ~ if i + 2 < params_list.len() => { [INFO] [stdout] 426 | self.current_fg = [INFO] [stdout] 427 | Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 428 | i += 2; [INFO] [stdout] 429 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:433:41 [INFO] [stdout] | [INFO] [stdout] 433 | / ... if i + 4 < params_list.len() { [INFO] [stdout] 434 | | ... self.current_fg = Color::Rgb( [INFO] [stdout] 435 | | ... params_list[i + 2] as u8, [INFO] [stdout] 436 | | ... params_list[i + 3] as u8, [INFO] [stdout] ... | [INFO] [stdout] 439 | | ... i += 4; [INFO] [stdout] 440 | | ... } [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] 431 ~ 2 [INFO] [stdout] 432 | // RGB: 38;2;r;g;b [INFO] [stdout] 433 ~ if i + 4 < params_list.len() => { [INFO] [stdout] 434 | self.current_fg = Color::Rgb( [INFO] [stdout] ... [INFO] [stdout] 439 | i += 4; [INFO] [stdout] 440 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:456:41 [INFO] [stdout] | [INFO] [stdout] 456 | / ... if i + 2 < params_list.len() { [INFO] [stdout] 457 | | ... self.current_bg = [INFO] [stdout] 458 | | ... Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 459 | | ... i += 2; [INFO] [stdout] 460 | | ... } [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] 454 ~ 5 [INFO] [stdout] 455 | // 256-color: 48;5;n [INFO] [stdout] 456 ~ if i + 2 < params_list.len() => { [INFO] [stdout] 457 | self.current_bg = [INFO] [stdout] 458 | Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 459 | i += 2; [INFO] [stdout] 460 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:464:41 [INFO] [stdout] | [INFO] [stdout] 464 | / ... if i + 4 < params_list.len() { [INFO] [stdout] 465 | | ... self.current_bg = Color::Rgb( [INFO] [stdout] 466 | | ... params_list[i + 2] as u8, [INFO] [stdout] 467 | | ... params_list[i + 3] as u8, [INFO] [stdout] ... | [INFO] [stdout] 470 | | ... i += 4; [INFO] [stdout] 471 | | ... } [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] 462 ~ 2 [INFO] [stdout] 463 | // RGB: 48;2;r;g;b [INFO] [stdout] 464 ~ if i + 4 < params_list.len() => { [INFO] [stdout] 465 | self.current_bg = Color::Rgb( [INFO] [stdout] ... [INFO] [stdout] 470 | i += 4; [INFO] [stdout] 471 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:875:17 [INFO] [stdout] | [INFO] [stdout] 875 | / if params.len() > 1 { [INFO] [stdout] 876 | | self.title = Some(String::from_utf8_lossy(params[1]).to_string()); [INFO] [stdout] 877 | | } [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] 874 ~ b"0" | b"2" [INFO] [stdout] 875 ~ if params.len() > 1 => { [INFO] [stdout] 876 | self.title = Some(String::from_utf8_lossy(params[1]).to_string()); [INFO] [stdout] 877 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:881:17 [INFO] [stdout] | [INFO] [stdout] 881 | / if params.len() > 1 { [INFO] [stdout] 882 | | let uri = String::from_utf8_lossy(params[1]); [INFO] [stdout] 883 | | if let Some(path) = parse_osc7_uri(&uri) { [INFO] [stdout] 884 | | self.cwd = Some(path); [INFO] [stdout] 885 | | } [INFO] [stdout] 886 | | } [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] 880 ~ b"7" [INFO] [stdout] 881 ~ if params.len() > 1 => { [INFO] [stdout] 882 | let uri = String::from_utf8_lossy(params[1]); [INFO] [stdout] ... [INFO] [stdout] 885 | } [INFO] [stdout] 886 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:890:17 [INFO] [stdout] | [INFO] [stdout] 890 | / if params.len() > 1 { [INFO] [stdout] 891 | | let message = String::from_utf8_lossy(params[1]).to_string(); [INFO] [stdout] 892 | | self.notifications.push(NotificationEvent::Osc9 { message }); [INFO] [stdout] 893 | | } [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] 889 ~ b"9" [INFO] [stdout] 890 ~ if params.len() > 1 => { [INFO] [stdout] 891 | let message = String::from_utf8_lossy(params[1]).to_string(); [INFO] [stdout] 892 | self.notifications.push(NotificationEvent::Osc9 { message }); [INFO] [stdout] 893 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:897:17 [INFO] [stdout] | [INFO] [stdout] 897 | / if params.len() >= 4 && params[1] == b"notify" { [INFO] [stdout] 898 | | let title = String::from_utf8_lossy(params[2]).to_string(); [INFO] [stdout] 899 | | let body = String::from_utf8_lossy(params[3]).to_string(); [INFO] [stdout] 900 | | self.notifications [INFO] [stdout] 901 | | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 902 | | } [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] 896 ~ b"777" [INFO] [stdout] 897 ~ if params.len() >= 4 && params[1] == b"notify" => { [INFO] [stdout] 898 | let title = String::from_utf8_lossy(params[2]).to_string(); [INFO] [stdout] ... [INFO] [stdout] 901 | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 902 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vt100_screen.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | / if params.len() >= 4 [INFO] [stdout] 92 | | && params[1] == b"notify" [INFO] [stdout] 93 | | { [INFO] [stdout] 94 | | let title = String::from_utf8_lossy(params[2]).into_owned(); [INFO] [stdout] ... | [INFO] [stdout] 97 | | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 98 | | } [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] 90 ~ Some(b"777") [INFO] [stdout] 91 | if params.len() >= 4 [INFO] [stdout] 92 | && params[1] == b"notify" [INFO] [stdout] 93 ~ => { [INFO] [stdout] 94 | let title = String::from_utf8_lossy(params[2]).into_owned(); [INFO] [stdout] ... [INFO] [stdout] 97 | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col_idx` is only used to index `row` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:244:24 [INFO] [stdout] | [INFO] [stdout] 244 | for col_idx in col_start..col_end { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 244 - for col_idx in col_start..col_end { [INFO] [stdout] 244 + for in row.iter().take(col_end).skip(col_start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:322:1 [INFO] [stdout] | [INFO] [stdout] 322 | / fn main_loop( [INFO] [stdout] 323 | | terminal: &mut Terminal>, [INFO] [stdout] 324 | | controller: &mut TuiController, [INFO] [stdout] 325 | | input_handler: &mut InputHandler, [INFO] [stdout] ... | [INFO] [stdout] 334 | | ipc_port: &mut Option>, [INFO] [stdout] 335 | | ) -> anyhow::Result<()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:540:95 [INFO] [stdout] | [INFO] [stdout] 540 | ...rollback && main_sel_hl.is_none() && search_state.as_ref().map_or(true, |ss| !ss.confirmed) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 540 - let main_scrollback_cursor_hl = if main_in_scrollback && main_sel_hl.is_none() && search_state.as_ref().map_or(true, |ss| !ss.confirmed) { [INFO] [stdout] 540 + let main_scrollback_cursor_hl = if main_in_scrollback && main_sel_hl.is_none() && search_state.as_ref().is_none_or(|ss| !ss.confirmed) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:822:13 [INFO] [stdout] | [INFO] [stdout] 822 | / if let Some(style) = style_opt { [INFO] [stdout] 823 | | if style != *last_cursor_style { [INFO] [stdout] 824 | | let ct_style = match style { [INFO] [stdout] 825 | | CursorStyle::DefaultUserShape => CrosstermCursorStyle::DefaultUserShape, [INFO] [stdout] ... | [INFO] [stdout] 836 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 822 ~ if let Some(style) = style_opt [INFO] [stdout] 823 ~ && style != *last_cursor_style { [INFO] [stdout] 824 | let ct_style = match style { [INFO] [stdout] ... [INFO] [stdout] 834 | *last_cursor_style = style; [INFO] [stdout] 835 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:987:21 [INFO] [stdout] | [INFO] [stdout] 987 | / if let Some(state) = search_state.as_mut() { [INFO] [stdout] 988 | | if !state.query.is_empty() { [INFO] [stdout] 989 | | execute_search(controller, scrollback_target, &mini_terminal, state); [INFO] [stdout] 990 | | } [INFO] [stdout] 991 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 987 ~ if let Some(state) = search_state.as_mut() [INFO] [stdout] 988 ~ && !state.query.is_empty() { [INFO] [stdout] 989 | execute_search(controller, scrollback_target, &mini_terminal, state); [INFO] [stdout] 990 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1126:18 [INFO] [stdout] | [INFO] [stdout] 1126 | .unwrap_or(CursorPos::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1131:23 [INFO] [stdout] | [INFO] [stdout] 1131 | let cwd = controller.usecase().screen_port().get_cwd(tid) [INFO] [stdout] | _______________________^ [INFO] [stdout] 1132 | | .ok() [INFO] [stdout] 1133 | | .flatten() [INFO] [stdout] 1134 | | .or_else(|| Some(cwd_fallback)); [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 1134 - .or_else(|| Some(cwd_fallback)); [INFO] [stdout] 1134 + .or(Some(cwd_fallback)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1235:1 [INFO] [stdout] | [INFO] [stdout] 1235 | / fn handle_key_event( [INFO] [stdout] 1236 | | key: KeyEvent, [INFO] [stdout] 1237 | | controller: &mut TuiController, [INFO] [stdout] 1238 | | input_handler: &mut InputHandler, [INFO] [stdout] ... | [INFO] [stdout] 1249 | | scrollback_cursor: &mut ScrollbackCursor, [INFO] [stdout] 1250 | | ) -> anyhow::Result<()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1541:13 [INFO] [stdout] | [INFO] [stdout] 1541 | / if scrollback_target.is_some() { [INFO] [stdout] 1542 | | if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1543 | | if let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] 1544 | | let text = extract_text_from_cells(cells, 0, cells.len(), None, None); [INFO] [stdout] ... | [INFO] [stdout] 1552 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1541 ~ if scrollback_target.is_some() [INFO] [stdout] 1542 ~ && let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1543 | if let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] ... [INFO] [stdout] 1550 | } [INFO] [stdout] 1551 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1542:17 [INFO] [stdout] | [INFO] [stdout] 1542 | / if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1543 | | if let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] 1544 | | let text = extract_text_from_cells(cells, 0, cells.len(), None, None); [INFO] [stdout] 1545 | | if !text.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 1551 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1542 ~ if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) [INFO] [stdout] 1543 ~ && let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] 1544 | let text = extract_text_from_cells(cells, 0, cells.len(), None, None); [INFO] [stdout] ... [INFO] [stdout] 1549 | } [INFO] [stdout] 1550 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1555:13 [INFO] [stdout] | [INFO] [stdout] 1555 | / if scrollback_target.is_some() { [INFO] [stdout] 1556 | | if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1557 | | if let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] 1558 | | .get_row_cells(id, scrollback_cursor.row) [INFO] [stdout] ... | [INFO] [stdout] 1569 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1555 ~ if scrollback_target.is_some() [INFO] [stdout] 1556 ~ && let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1557 | if let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] ... [INFO] [stdout] 1567 | // Keep scrollback mode active after yank [INFO] [stdout] 1568 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1556:17 [INFO] [stdout] | [INFO] [stdout] 1556 | / if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1557 | | if let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] 1558 | | .get_row_cells(id, scrollback_cursor.row) [INFO] [stdout] ... | [INFO] [stdout] 1568 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1556 ~ if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) [INFO] [stdout] 1557 ~ && let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] 1558 | .get_row_cells(id, scrollback_cursor.row) [INFO] [stdout] ... [INFO] [stdout] 1566 | } [INFO] [stdout] 1567 ~ // Keep scrollback mode active after yank [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1572:13 [INFO] [stdout] | [INFO] [stdout] 1572 | / if let Some(ref text) = *yank_buffer { [INFO] [stdout] 1573 | | if !text.is_empty() { [INFO] [stdout] 1574 | | match *focus { [INFO] [stdout] 1575 | | FocusPane::MiniTerminal if mini_terminal.visible && mini_terminal.spawned => { [INFO] [stdout] ... | [INFO] [stdout] 1605 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1572 ~ if let Some(ref text) = *yank_buffer [INFO] [stdout] 1573 ~ && !text.is_empty() { [INFO] [stdout] 1574 | match *focus { [INFO] [stdout] ... [INFO] [stdout] 1603 | } [INFO] [stdout] 1604 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1608:13 [INFO] [stdout] | [INFO] [stdout] 1608 | / if let Some(ref text) = *yank_buffer { [INFO] [stdout] 1609 | | if !text.is_empty() { [INFO] [stdout] 1610 | | let tid = TerminalId::new(target); [INFO] [stdout] 1611 | | if controller.usecase().get_terminal_by_id(tid).is_some() { [INFO] [stdout] ... | [INFO] [stdout] 1626 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1608 ~ if let Some(ref text) = *yank_buffer [INFO] [stdout] 1609 ~ && !text.is_empty() { [INFO] [stdout] 1610 | let tid = TerminalId::new(target); [INFO] [stdout] ... [INFO] [stdout] 1624 | } [INFO] [stdout] 1625 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1629:13 [INFO] [stdout] | [INFO] [stdout] 1629 | / if scrollback_target.is_some() { [INFO] [stdout] 1630 | | if active_scrollback_id(scrollback_target, controller, mini_terminal).is_some() { [INFO] [stdout] 1631 | | // Initial cursor position taken from the scrollback_cursor (Task #120) [INFO] [stdout] 1632 | | let initial_pos = if matches!(action, AppAction::EnterVisualChar) { [INFO] [stdout] ... | [INFO] [stdout] 1646 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1629 ~ if scrollback_target.is_some() [INFO] [stdout] 1630 ~ && active_scrollback_id(scrollback_target, controller, mini_terminal).is_some() { [INFO] [stdout] 1631 | // Initial cursor position taken from the scrollback_cursor (Task #120) [INFO] [stdout] ... [INFO] [stdout] 1644 | input_handler.set_mode(InputMode::VisualSelection); [INFO] [stdout] 1645 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1689:34 [INFO] [stdout] | [INFO] [stdout] 1689 | ... .map(|s| std::path::PathBuf::from(s)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `std::path::PathBuf::from` [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: this function has too many arguments (9/7) [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1841:1 [INFO] [stdout] | [INFO] [stdout] 1841 | / fn handle_visual_key( [INFO] [stdout] 1842 | | key: KeyEvent, [INFO] [stdout] 1843 | | controller: &mut TuiController, [INFO] [stdout] 1844 | | input_handler: &mut InputHandler, [INFO] [stdout] ... | [INFO] [stdout] 1850 | | size: TerminalSize, [INFO] [stdout] 1851 | | ) -> anyhow::Result<()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1993:13 [INFO] [stdout] | [INFO] [stdout] 1993 | / if state.cursor_pos > 0 { [INFO] [stdout] 1994 | | let byte_idx = char_to_byte_index(&state.query, state.cursor_pos - 1); [INFO] [stdout] 1995 | | state.query.remove(byte_idx); [INFO] [stdout] 1996 | | state.cursor_pos -= 1; [INFO] [stdout] 1997 | | // Re-run search [INFO] [stdout] 1998 | | execute_search(controller, scrollback_target, mini_terminal, state); [INFO] [stdout] 1999 | | } [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] 1992 ~ KeyCode::Backspace [INFO] [stdout] 1993 ~ if state.cursor_pos > 0 => { [INFO] [stdout] 1994 | let byte_idx = char_to_byte_index(&state.query, state.cursor_pos - 1); [INFO] [stdout] ... [INFO] [stdout] 1998 | execute_search(controller, scrollback_target, mini_terminal, state); [INFO] [stdout] 1999 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2092:17 [INFO] [stdout] | [INFO] [stdout] 2092 | / if *cursor_pos > 0 { [INFO] [stdout] 2093 | | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2094 | | input.remove(byte_idx); [INFO] [stdout] 2095 | | *cursor_pos -= 1; [INFO] [stdout] 2096 | | } [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] 2091 ~ KeyCode::Backspace [INFO] [stdout] 2092 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2093 | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2094 | input.remove(byte_idx); [INFO] [stdout] 2095 | *cursor_pos -= 1; [INFO] [stdout] 2096 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2133:17 [INFO] [stdout] | [INFO] [stdout] 2133 | / if *cursor_pos > 0 { [INFO] [stdout] 2134 | | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2135 | | input.remove(byte_idx); [INFO] [stdout] 2136 | | *cursor_pos -= 1; [INFO] [stdout] 2137 | | } [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] 2132 ~ KeyCode::Backspace [INFO] [stdout] 2133 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2134 | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2135 | input.remove(byte_idx); [INFO] [stdout] 2136 | *cursor_pos -= 1; [INFO] [stdout] 2137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2140:17 [INFO] [stdout] | [INFO] [stdout] 2140 | / if *cursor_pos > 0 { [INFO] [stdout] 2141 | | *cursor_pos -= 1; [INFO] [stdout] 2142 | | } [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] 2139 ~ KeyCode::Left [INFO] [stdout] 2140 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2141 | *cursor_pos -= 1; [INFO] [stdout] 2142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2145:17 [INFO] [stdout] | [INFO] [stdout] 2145 | / if *cursor_pos < input.chars().count() { [INFO] [stdout] 2146 | | *cursor_pos += 1; [INFO] [stdout] 2147 | | } [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] 2144 ~ KeyCode::Right [INFO] [stdout] 2145 ~ if *cursor_pos < input.chars().count() => { [INFO] [stdout] 2146 | *cursor_pos += 1; [INFO] [stdout] 2147 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2217:17 [INFO] [stdout] | [INFO] [stdout] 2217 | / if *cursor_row > 0 { [INFO] [stdout] 2218 | | *cursor_row -= 1; [INFO] [stdout] 2219 | | let lines: Vec<&str> = text.split('\n').collect(); [INFO] [stdout] 2220 | | *cursor_col = (*cursor_col).min(lines[*cursor_row].chars().count()); [INFO] [stdout] 2221 | | } [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] 2216 ~ KeyCode::Up [INFO] [stdout] 2217 ~ if *cursor_row > 0 => { [INFO] [stdout] 2218 | *cursor_row -= 1; [INFO] [stdout] 2219 | let lines: Vec<&str> = text.split('\n').collect(); [INFO] [stdout] 2220 | *cursor_col = (*cursor_col).min(lines[*cursor_row].chars().count()); [INFO] [stdout] 2221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2231:17 [INFO] [stdout] | [INFO] [stdout] 2231 | / if *cursor_col > 0 { [INFO] [stdout] 2232 | | *cursor_col -= 1; [INFO] [stdout] 2233 | | } [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] 2230 ~ KeyCode::Left [INFO] [stdout] 2231 ~ if *cursor_col > 0 => { [INFO] [stdout] 2232 | *cursor_col -= 1; [INFO] [stdout] 2233 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2257:21 [INFO] [stdout] | [INFO] [stdout] 2257 | / if *selected_index > 0 { [INFO] [stdout] 2258 | | *selected_index -= 1; [INFO] [stdout] 2259 | | } [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] 2256 ~ KeyCode::Char('k') if key.modifiers.contains(crossterm::event::KeyModifiers::CONTROL) [INFO] [stdout] 2257 ~ && *selected_index > 0 => { [INFO] [stdout] 2258 | *selected_index -= 1; [INFO] [stdout] 2259 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2271:21 [INFO] [stdout] | [INFO] [stdout] 2271 | / if *cursor_pos > 0 { [INFO] [stdout] 2272 | | let byte_idx = char_to_byte_index(query, *cursor_pos - 1); [INFO] [stdout] 2273 | | query.remove(byte_idx); [INFO] [stdout] 2274 | | *cursor_pos -= 1; [INFO] [stdout] 2275 | | *selected_index = 0; // Reset selection when query changes [INFO] [stdout] 2276 | | } [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] 2270 ~ KeyCode::Backspace [INFO] [stdout] 2271 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2272 | let byte_idx = char_to_byte_index(query, *cursor_pos - 1); [INFO] [stdout] ... [INFO] [stdout] 2275 | *selected_index = 0; // Reset selection when query changes [INFO] [stdout] 2276 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2279:21 [INFO] [stdout] | [INFO] [stdout] 2279 | / if *selected_index > 0 { [INFO] [stdout] 2280 | | *selected_index -= 1; [INFO] [stdout] 2281 | | } [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] 2278 ~ KeyCode::Up [INFO] [stdout] 2279 ~ if *selected_index > 0 => { [INFO] [stdout] 2280 | *selected_index -= 1; [INFO] [stdout] 2281 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/infrastructure/tui/fuzzy_matcher.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | results.sort_by(|a, b| b.1.score.cmp(&a.1.score)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 99 - results.sort_by(|a, b| b.1.score.cmp(&a.1.score)); [INFO] [stdout] 99 + results.sort_by_key(|b| std::cmp::Reverse(b.1.score)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/terminal_view.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | / pub fn render( [INFO] [stdout] 44 | | frame: &mut Frame, [INFO] [stdout] 45 | | area: Rect, [INFO] [stdout] 46 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 57 | | scrollback_cursor_hl: Option<&ScrollbackCursorHighlight>, [INFO] [stdout] 58 | | ) { [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 (11/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/terminal_view.rs:84:1 [INFO] [stdout] | [INFO] [stdout] 84 | / fn render_scrollback_mode( [INFO] [stdout] 85 | | frame: &mut Frame, [INFO] [stdout] 86 | | area: Rect, [INFO] [stdout] 87 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 95 | | scrollback_cursor_hl: Option<&ScrollbackCursorHighlight>, [INFO] [stdout] 96 | | ) { [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 (11/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/terminal_view.rs:181:1 [INFO] [stdout] | [INFO] [stdout] 181 | / fn render_normal_mode( [INFO] [stdout] 182 | | frame: &mut Frame, [INFO] [stdout] 183 | | area: Rect, [INFO] [stdout] 184 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 192 | | selection_highlights: Option<&SelectionHighlights>, [INFO] [stdout] 193 | | ) { [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 (12/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/mini_terminal_view.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn render( [INFO] [stdout] 20 | | frame: &mut Frame, [INFO] [stdout] 21 | | area: Rect, [INFO] [stdout] 22 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 31 | | scrollback_cursor_hl: Option<&ScrollbackCursorHighlight>, [INFO] [stdout] 32 | | ) { [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: function `create_screen_adapter` is never used [INFO] [stdout] --> src/interface_adapter/adapter/screen_adapter_factory.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn create_screen_adapter() -> VteScreenAdapter { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Tui` is never constructed [INFO] [stdout] --> src/shared/error.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 4 | pub enum AppError { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 25 | Tui(#[source] std::io::Error), [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/usecase/terminal_usecase.rs:301:22 [INFO] [stdout] | [INFO] [stdout] 301 | spawn_calls: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/usecase/terminal_usecase.rs:303:22 [INFO] [stdout] | [INFO] [stdout] 303 | write_calls: Arc)>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/usecase/terminal_usecase.rs:305:23 [INFO] [stdout] | [INFO] [stdout] 305 | read_results: Arc, AppError>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/usecase/terminal_usecase.rs:306:27 [INFO] [stdout] | [INFO] [stdout] 306 | try_wait_results: Arc, AppError>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/usecase/terminal_usecase.rs:359:47 [INFO] [stdout] | [INFO] [stdout] 359 | return Err(AppError::PtySpawn(std::io::Error::new( [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 360 | | std::io::ErrorKind::Other, [INFO] [stdout] 361 | | "mock spawn failure", [INFO] [stdout] 362 | | ))); [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 359 ~ return Err(AppError::PtySpawn(std::io::Error::other( [INFO] [stdout] 360 ~ "mock spawn failure", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/usecase/terminal_usecase.rs:407:29 [INFO] [stdout] | [INFO] [stdout] 407 | source: std::io::Error::new( [INFO] [stdout] | _____________________________^ [INFO] [stdout] 408 | | std::io::ErrorKind::Other, [INFO] [stdout] 409 | | "mock kill failure", [INFO] [stdout] 410 | | ), [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 407 ~ source: std::io::Error::other( [INFO] [stdout] 408 ~ "mock kill failure", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/usecase/terminal_usecase.rs:1181:25 [INFO] [stdout] | [INFO] [stdout] 1181 | source: std::io::Error::new(std::io::ErrorKind::Other, "EIO"), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 1181 - source: std::io::Error::new(std::io::ErrorKind::Other, "EIO"), [INFO] [stdout] 1181 + source: std::io::Error::other("EIO"), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/interface_adapter/controller/tui_controller.rs:168:22 [INFO] [stdout] | [INFO] [stdout] 168 | spawn_calls: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/interface_adapter/controller/tui_controller.rs:170:22 [INFO] [stdout] | [INFO] [stdout] 170 | write_calls: Arc)>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/interface_adapter/controller/tui_controller.rs:172:23 [INFO] [stdout] | [INFO] [stdout] 172 | read_results: Arc, AppError>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/interface_adapter/controller/tui_controller.rs:173:27 [INFO] [stdout] | [INFO] [stdout] 173 | try_wait_results: Arc, AppError>>>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/infrastructure/ipc/unix_socket_server.rs:197:25 [INFO] [stdout] | [INFO] [stdout] 197 | let _ = write!(stream, "{json}\n"); [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] 197 - let _ = write!(stream, "{json}\n"); [INFO] [stdout] 197 + let _ = writeln!(stream, "{json}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> src/infrastructure/ipc/unix_socket_server.rs:220:21 [INFO] [stdout] | [INFO] [stdout] 220 | let _ = write!(stream, "{json}\n"); [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] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 220 - let _ = write!(stream, "{json}\n"); [INFO] [stdout] 220 + let _ = writeln!(stream, "{json}"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/notification/macos_notifier.rs:44:9 [INFO] [stdout] | [INFO] [stdout] 44 | / if let Some(last) = self.last_notify.get(terminal_name) { [INFO] [stdout] 45 | | if now.duration_since(*last) < self.cooldown { [INFO] [stdout] 46 | | return false; [INFO] [stdout] 47 | | } [INFO] [stdout] 48 | | } [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] 44 ~ if let Some(last) = self.last_notify.get(terminal_name) [INFO] [stdout] 45 ~ && now.duration_since(*last) < self.cooldown { [INFO] [stdout] 46 | return false; [INFO] [stdout] 47 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:304:17 [INFO] [stdout] | [INFO] [stdout] 304 | / if self.cursor.col > 0 { [INFO] [stdout] 305 | | self.cursor.col -= 1; [INFO] [stdout] 306 | | } [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] 303 ~ 0x08 [INFO] [stdout] 304 ~ if self.cursor.col > 0 => { [INFO] [stdout] 305 | self.cursor.col -= 1; [INFO] [stdout] 306 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:421:29 [INFO] [stdout] | [INFO] [stdout] 421 | / ... if i + 1 < params_list.len() { [INFO] [stdout] 422 | | ... match params_list[i + 1] { [INFO] [stdout] 423 | | ... 5 => { [INFO] [stdout] ... | [INFO] [stdout] 444 | | ... } [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] 420 ~ 38 [INFO] [stdout] 421 ~ if i + 1 < params_list.len() => { [INFO] [stdout] 422 | match params_list[i + 1] { [INFO] [stdout] ... [INFO] [stdout] 443 | } [INFO] [stdout] 444 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:452:29 [INFO] [stdout] | [INFO] [stdout] 452 | / ... if i + 1 < params_list.len() { [INFO] [stdout] 453 | | ... match params_list[i + 1] { [INFO] [stdout] 454 | | ... 5 => { [INFO] [stdout] ... | [INFO] [stdout] 475 | | ... } [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] 451 ~ 48 [INFO] [stdout] 452 ~ if i + 1 < params_list.len() => { [INFO] [stdout] 453 | match params_list[i + 1] { [INFO] [stdout] ... [INFO] [stdout] 474 | } [INFO] [stdout] 475 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:425:41 [INFO] [stdout] | [INFO] [stdout] 425 | / ... if i + 2 < params_list.len() { [INFO] [stdout] 426 | | ... self.current_fg = [INFO] [stdout] 427 | | ... Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 428 | | ... i += 2; [INFO] [stdout] 429 | | ... } [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] 423 ~ 5 [INFO] [stdout] 424 | // 256-color: 38;5;n [INFO] [stdout] 425 ~ if i + 2 < params_list.len() => { [INFO] [stdout] 426 | self.current_fg = [INFO] [stdout] 427 | Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 428 | i += 2; [INFO] [stdout] 429 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:433:41 [INFO] [stdout] | [INFO] [stdout] 433 | / ... if i + 4 < params_list.len() { [INFO] [stdout] 434 | | ... self.current_fg = Color::Rgb( [INFO] [stdout] 435 | | ... params_list[i + 2] as u8, [INFO] [stdout] 436 | | ... params_list[i + 3] as u8, [INFO] [stdout] ... | [INFO] [stdout] 439 | | ... i += 4; [INFO] [stdout] 440 | | ... } [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] 431 ~ 2 [INFO] [stdout] 432 | // RGB: 38;2;r;g;b [INFO] [stdout] 433 ~ if i + 4 < params_list.len() => { [INFO] [stdout] 434 | self.current_fg = Color::Rgb( [INFO] [stdout] ... [INFO] [stdout] 439 | i += 4; [INFO] [stdout] 440 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:456:41 [INFO] [stdout] | [INFO] [stdout] 456 | / ... if i + 2 < params_list.len() { [INFO] [stdout] 457 | | ... self.current_bg = [INFO] [stdout] 458 | | ... Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 459 | | ... i += 2; [INFO] [stdout] 460 | | ... } [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] 454 ~ 5 [INFO] [stdout] 455 | // 256-color: 48;5;n [INFO] [stdout] 456 ~ if i + 2 < params_list.len() => { [INFO] [stdout] 457 | self.current_bg = [INFO] [stdout] 458 | Color::Indexed(params_list[i + 2] as u8); [INFO] [stdout] 459 | i += 2; [INFO] [stdout] 460 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:464:41 [INFO] [stdout] | [INFO] [stdout] 464 | / ... if i + 4 < params_list.len() { [INFO] [stdout] 465 | | ... self.current_bg = Color::Rgb( [INFO] [stdout] 466 | | ... params_list[i + 2] as u8, [INFO] [stdout] 467 | | ... params_list[i + 3] as u8, [INFO] [stdout] ... | [INFO] [stdout] 470 | | ... i += 4; [INFO] [stdout] 471 | | ... } [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] 462 ~ 2 [INFO] [stdout] 463 | // RGB: 48;2;r;g;b [INFO] [stdout] 464 ~ if i + 4 < params_list.len() => { [INFO] [stdout] 465 | self.current_bg = Color::Rgb( [INFO] [stdout] ... [INFO] [stdout] 470 | i += 4; [INFO] [stdout] 471 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:875:17 [INFO] [stdout] | [INFO] [stdout] 875 | / if params.len() > 1 { [INFO] [stdout] 876 | | self.title = Some(String::from_utf8_lossy(params[1]).to_string()); [INFO] [stdout] 877 | | } [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] 874 ~ b"0" | b"2" [INFO] [stdout] 875 ~ if params.len() > 1 => { [INFO] [stdout] 876 | self.title = Some(String::from_utf8_lossy(params[1]).to_string()); [INFO] [stdout] 877 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:881:17 [INFO] [stdout] | [INFO] [stdout] 881 | / if params.len() > 1 { [INFO] [stdout] 882 | | let uri = String::from_utf8_lossy(params[1]); [INFO] [stdout] 883 | | if let Some(path) = parse_osc7_uri(&uri) { [INFO] [stdout] 884 | | self.cwd = Some(path); [INFO] [stdout] 885 | | } [INFO] [stdout] 886 | | } [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] 880 ~ b"7" [INFO] [stdout] 881 ~ if params.len() > 1 => { [INFO] [stdout] 882 | let uri = String::from_utf8_lossy(params[1]); [INFO] [stdout] ... [INFO] [stdout] 885 | } [INFO] [stdout] 886 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:890:17 [INFO] [stdout] | [INFO] [stdout] 890 | / if params.len() > 1 { [INFO] [stdout] 891 | | let message = String::from_utf8_lossy(params[1]).to_string(); [INFO] [stdout] 892 | | self.notifications.push(NotificationEvent::Osc9 { message }); [INFO] [stdout] 893 | | } [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] 889 ~ b"9" [INFO] [stdout] 890 ~ if params.len() > 1 => { [INFO] [stdout] 891 | let message = String::from_utf8_lossy(params[1]).to_string(); [INFO] [stdout] 892 | self.notifications.push(NotificationEvent::Osc9 { message }); [INFO] [stdout] 893 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:897:17 [INFO] [stdout] | [INFO] [stdout] 897 | / if params.len() >= 4 && params[1] == b"notify" { [INFO] [stdout] 898 | | let title = String::from_utf8_lossy(params[2]).to_string(); [INFO] [stdout] 899 | | let body = String::from_utf8_lossy(params[3]).to_string(); [INFO] [stdout] 900 | | self.notifications [INFO] [stdout] 901 | | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 902 | | } [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] 896 ~ b"777" [INFO] [stdout] 897 ~ if params.len() >= 4 && params[1] == b"notify" => { [INFO] [stdout] 898 | let title = String::from_utf8_lossy(params[2]).to_string(); [INFO] [stdout] ... [INFO] [stdout] 901 | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 902 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:1122:24 [INFO] [stdout] | [INFO] [stdout] 1122 | fn row_text(cells: &Vec>, row: usize) -> 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] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 1122 - fn row_text(cells: &Vec>, row: usize) -> String { [INFO] [stdout] 1122 + fn row_text(cells: &[Vec], row: usize) -> String { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `cells` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:1834:18 [INFO] [stdout] | [INFO] [stdout] 1834 | for r in 0..3 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1834 - for r in 0..3 { [INFO] [stdout] 1834 + for (r, ) in cells.iter().enumerate().take(3) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `cells` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:1835:22 [INFO] [stdout] | [INFO] [stdout] 1835 | for c in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 1835 - for c in 0..5 { [INFO] [stdout] 1835 + for (c, ) in cells.iter().enumerate().take(5) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is only used to index `cells` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:1885:18 [INFO] [stdout] | [INFO] [stdout] 1885 | for c in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 1885 - for c in 0..5 { [INFO] [stdout] 1885 + for in cells.iter().take(5) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `r` is used to index `cells` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:2386:18 [INFO] [stdout] | [INFO] [stdout] 2386 | for r in 0..5 { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 2386 - for r in 0..5 { [INFO] [stdout] 2386 + for (r, ) in cells.iter().enumerate().take(5) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `c` is used to index `cells` [INFO] [stdout] --> src/infrastructure/screen/vte_screen.rs:2387:22 [INFO] [stdout] | [INFO] [stdout] 2387 | for c in 0..10 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 2387 - for c in 0..10 { [INFO] [stdout] 2387 + for (c, ) in cells.iter().enumerate().take(10) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/screen/vt100_screen.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | / if params.len() >= 4 [INFO] [stdout] 92 | | && params[1] == b"notify" [INFO] [stdout] 93 | | { [INFO] [stdout] 94 | | let title = String::from_utf8_lossy(params[2]).into_owned(); [INFO] [stdout] ... | [INFO] [stdout] 97 | | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 98 | | } [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] 90 ~ Some(b"777") [INFO] [stdout] 91 | if params.len() >= 4 [INFO] [stdout] 92 | && params[1] == b"notify" [INFO] [stdout] 93 ~ => { [INFO] [stdout] 94 | let title = String::from_utf8_lossy(params[2]).into_owned(); [INFO] [stdout] ... [INFO] [stdout] 97 | .push(NotificationEvent::Osc777 { title, body }); [INFO] [stdout] 98 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `col_idx` is only used to index `row` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:244:24 [INFO] [stdout] | [INFO] [stdout] 244 | for col_idx in col_start..col_end { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 244 - for col_idx in col_start..col_end { [INFO] [stdout] 244 + for in row.iter().take(col_end).skip(col_start) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (12/7) [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:322:1 [INFO] [stdout] | [INFO] [stdout] 322 | / fn main_loop( [INFO] [stdout] 323 | | terminal: &mut Terminal>, [INFO] [stdout] 324 | | controller: &mut TuiController, [INFO] [stdout] 325 | | input_handler: &mut InputHandler, [INFO] [stdout] ... | [INFO] [stdout] 334 | | ipc_port: &mut Option>, [INFO] [stdout] 335 | | ) -> anyhow::Result<()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:540:95 [INFO] [stdout] | [INFO] [stdout] 540 | ...rollback && main_sel_hl.is_none() && search_state.as_ref().map_or(true, |ss| !ss.confirmed) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_none_or` instead [INFO] [stdout] | [INFO] [stdout] 540 - let main_scrollback_cursor_hl = if main_in_scrollback && main_sel_hl.is_none() && search_state.as_ref().map_or(true, |ss| !ss.confirmed) { [INFO] [stdout] 540 + let main_scrollback_cursor_hl = if main_in_scrollback && main_sel_hl.is_none() && search_state.as_ref().is_none_or(|ss| !ss.confirmed) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:822:13 [INFO] [stdout] | [INFO] [stdout] 822 | / if let Some(style) = style_opt { [INFO] [stdout] 823 | | if style != *last_cursor_style { [INFO] [stdout] 824 | | let ct_style = match style { [INFO] [stdout] 825 | | CursorStyle::DefaultUserShape => CrosstermCursorStyle::DefaultUserShape, [INFO] [stdout] ... | [INFO] [stdout] 836 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 822 ~ if let Some(style) = style_opt [INFO] [stdout] 823 ~ && style != *last_cursor_style { [INFO] [stdout] 824 | let ct_style = match style { [INFO] [stdout] ... [INFO] [stdout] 834 | *last_cursor_style = style; [INFO] [stdout] 835 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:987:21 [INFO] [stdout] | [INFO] [stdout] 987 | / if let Some(state) = search_state.as_mut() { [INFO] [stdout] 988 | | if !state.query.is_empty() { [INFO] [stdout] 989 | | execute_search(controller, scrollback_target, &mini_terminal, state); [INFO] [stdout] 990 | | } [INFO] [stdout] 991 | | } [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 987 ~ if let Some(state) = search_state.as_mut() [INFO] [stdout] 988 ~ && !state.query.is_empty() { [INFO] [stdout] 989 | execute_search(controller, scrollback_target, &mini_terminal, state); [INFO] [stdout] 990 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1126:18 [INFO] [stdout] | [INFO] [stdout] 1126 | .unwrap_or(CursorPos::default()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `unwrap_or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1131:23 [INFO] [stdout] | [INFO] [stdout] 1131 | let cwd = controller.usecase().screen_port().get_cwd(tid) [INFO] [stdout] | _______________________^ [INFO] [stdout] 1132 | | .ok() [INFO] [stdout] 1133 | | .flatten() [INFO] [stdout] 1134 | | .or_else(|| Some(cwd_fallback)); [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `or` instead [INFO] [stdout] | [INFO] [stdout] 1134 - .or_else(|| Some(cwd_fallback)); [INFO] [stdout] 1134 + .or(Some(cwd_fallback)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1235:1 [INFO] [stdout] | [INFO] [stdout] 1235 | / fn handle_key_event( [INFO] [stdout] 1236 | | key: KeyEvent, [INFO] [stdout] 1237 | | controller: &mut TuiController, [INFO] [stdout] 1238 | | input_handler: &mut InputHandler, [INFO] [stdout] ... | [INFO] [stdout] 1249 | | scrollback_cursor: &mut ScrollbackCursor, [INFO] [stdout] 1250 | | ) -> anyhow::Result<()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1541:13 [INFO] [stdout] | [INFO] [stdout] 1541 | / if scrollback_target.is_some() { [INFO] [stdout] 1542 | | if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1543 | | if let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] 1544 | | let text = extract_text_from_cells(cells, 0, cells.len(), None, None); [INFO] [stdout] ... | [INFO] [stdout] 1552 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1541 ~ if scrollback_target.is_some() [INFO] [stdout] 1542 ~ && let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1543 | if let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] ... [INFO] [stdout] 1550 | } [INFO] [stdout] 1551 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1542:17 [INFO] [stdout] | [INFO] [stdout] 1542 | / if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1543 | | if let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] 1544 | | let text = extract_text_from_cells(cells, 0, cells.len(), None, None); [INFO] [stdout] 1545 | | if !text.is_empty() { [INFO] [stdout] ... | [INFO] [stdout] 1551 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1542 ~ if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) [INFO] [stdout] 1543 ~ && let Ok(cells) = controller.usecase().screen_port().get_cells(id) { [INFO] [stdout] 1544 | let text = extract_text_from_cells(cells, 0, cells.len(), None, None); [INFO] [stdout] ... [INFO] [stdout] 1549 | } [INFO] [stdout] 1550 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1555:13 [INFO] [stdout] | [INFO] [stdout] 1555 | / if scrollback_target.is_some() { [INFO] [stdout] 1556 | | if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1557 | | if let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] 1558 | | .get_row_cells(id, scrollback_cursor.row) [INFO] [stdout] ... | [INFO] [stdout] 1569 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1555 ~ if scrollback_target.is_some() [INFO] [stdout] 1556 ~ && let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1557 | if let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] ... [INFO] [stdout] 1567 | // Keep scrollback mode active after yank [INFO] [stdout] 1568 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1556:17 [INFO] [stdout] | [INFO] [stdout] 1556 | / if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) { [INFO] [stdout] 1557 | | if let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] 1558 | | .get_row_cells(id, scrollback_cursor.row) [INFO] [stdout] ... | [INFO] [stdout] 1568 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1556 ~ if let Some(id) = active_scrollback_id(scrollback_target, controller, mini_terminal) [INFO] [stdout] 1557 ~ && let Ok(row_cells) = controller.usecase_mut().screen_port_mut() [INFO] [stdout] 1558 | .get_row_cells(id, scrollback_cursor.row) [INFO] [stdout] ... [INFO] [stdout] 1566 | } [INFO] [stdout] 1567 ~ // Keep scrollback mode active after yank [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1572:13 [INFO] [stdout] | [INFO] [stdout] 1572 | / if let Some(ref text) = *yank_buffer { [INFO] [stdout] 1573 | | if !text.is_empty() { [INFO] [stdout] 1574 | | match *focus { [INFO] [stdout] 1575 | | FocusPane::MiniTerminal if mini_terminal.visible && mini_terminal.spawned => { [INFO] [stdout] ... | [INFO] [stdout] 1605 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1572 ~ if let Some(ref text) = *yank_buffer [INFO] [stdout] 1573 ~ && !text.is_empty() { [INFO] [stdout] 1574 | match *focus { [INFO] [stdout] ... [INFO] [stdout] 1603 | } [INFO] [stdout] 1604 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1608:13 [INFO] [stdout] | [INFO] [stdout] 1608 | / if let Some(ref text) = *yank_buffer { [INFO] [stdout] 1609 | | if !text.is_empty() { [INFO] [stdout] 1610 | | let tid = TerminalId::new(target); [INFO] [stdout] 1611 | | if controller.usecase().get_terminal_by_id(tid).is_some() { [INFO] [stdout] ... | [INFO] [stdout] 1626 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1608 ~ if let Some(ref text) = *yank_buffer [INFO] [stdout] 1609 ~ && !text.is_empty() { [INFO] [stdout] 1610 | let tid = TerminalId::new(target); [INFO] [stdout] ... [INFO] [stdout] 1624 | } [INFO] [stdout] 1625 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1629:13 [INFO] [stdout] | [INFO] [stdout] 1629 | / if scrollback_target.is_some() { [INFO] [stdout] 1630 | | if active_scrollback_id(scrollback_target, controller, mini_terminal).is_some() { [INFO] [stdout] 1631 | | // Initial cursor position taken from the scrollback_cursor (Task #120) [INFO] [stdout] 1632 | | let initial_pos = if matches!(action, AppAction::EnterVisualChar) { [INFO] [stdout] ... | [INFO] [stdout] 1646 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1629 ~ if scrollback_target.is_some() [INFO] [stdout] 1630 ~ && active_scrollback_id(scrollback_target, controller, mini_terminal).is_some() { [INFO] [stdout] 1631 | // Initial cursor position taken from the scrollback_cursor (Task #120) [INFO] [stdout] ... [INFO] [stdout] 1644 | input_handler.set_mode(InputMode::VisualSelection); [INFO] [stdout] 1645 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1689:34 [INFO] [stdout] | [INFO] [stdout] 1689 | ... .map(|s| std::path::PathBuf::from(s)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `std::path::PathBuf::from` [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: this function has too many arguments (9/7) [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1841:1 [INFO] [stdout] | [INFO] [stdout] 1841 | / fn handle_visual_key( [INFO] [stdout] 1842 | | key: KeyEvent, [INFO] [stdout] 1843 | | controller: &mut TuiController, [INFO] [stdout] 1844 | | input_handler: &mut InputHandler, [INFO] [stdout] ... | [INFO] [stdout] 1850 | | size: TerminalSize, [INFO] [stdout] 1851 | | ) -> anyhow::Result<()> { [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:1993:13 [INFO] [stdout] | [INFO] [stdout] 1993 | / if state.cursor_pos > 0 { [INFO] [stdout] 1994 | | let byte_idx = char_to_byte_index(&state.query, state.cursor_pos - 1); [INFO] [stdout] 1995 | | state.query.remove(byte_idx); [INFO] [stdout] 1996 | | state.cursor_pos -= 1; [INFO] [stdout] 1997 | | // Re-run search [INFO] [stdout] 1998 | | execute_search(controller, scrollback_target, mini_terminal, state); [INFO] [stdout] 1999 | | } [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] 1992 ~ KeyCode::Backspace [INFO] [stdout] 1993 ~ if state.cursor_pos > 0 => { [INFO] [stdout] 1994 | let byte_idx = char_to_byte_index(&state.query, state.cursor_pos - 1); [INFO] [stdout] ... [INFO] [stdout] 1998 | execute_search(controller, scrollback_target, mini_terminal, state); [INFO] [stdout] 1999 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2092:17 [INFO] [stdout] | [INFO] [stdout] 2092 | / if *cursor_pos > 0 { [INFO] [stdout] 2093 | | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2094 | | input.remove(byte_idx); [INFO] [stdout] 2095 | | *cursor_pos -= 1; [INFO] [stdout] 2096 | | } [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] 2091 ~ KeyCode::Backspace [INFO] [stdout] 2092 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2093 | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2094 | input.remove(byte_idx); [INFO] [stdout] 2095 | *cursor_pos -= 1; [INFO] [stdout] 2096 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2133:17 [INFO] [stdout] | [INFO] [stdout] 2133 | / if *cursor_pos > 0 { [INFO] [stdout] 2134 | | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2135 | | input.remove(byte_idx); [INFO] [stdout] 2136 | | *cursor_pos -= 1; [INFO] [stdout] 2137 | | } [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] 2132 ~ KeyCode::Backspace [INFO] [stdout] 2133 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2134 | let byte_idx = char_to_byte_index(input, *cursor_pos - 1); [INFO] [stdout] 2135 | input.remove(byte_idx); [INFO] [stdout] 2136 | *cursor_pos -= 1; [INFO] [stdout] 2137 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2140:17 [INFO] [stdout] | [INFO] [stdout] 2140 | / if *cursor_pos > 0 { [INFO] [stdout] 2141 | | *cursor_pos -= 1; [INFO] [stdout] 2142 | | } [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] 2139 ~ KeyCode::Left [INFO] [stdout] 2140 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2141 | *cursor_pos -= 1; [INFO] [stdout] 2142 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2145:17 [INFO] [stdout] | [INFO] [stdout] 2145 | / if *cursor_pos < input.chars().count() { [INFO] [stdout] 2146 | | *cursor_pos += 1; [INFO] [stdout] 2147 | | } [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] 2144 ~ KeyCode::Right [INFO] [stdout] 2145 ~ if *cursor_pos < input.chars().count() => { [INFO] [stdout] 2146 | *cursor_pos += 1; [INFO] [stdout] 2147 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2217:17 [INFO] [stdout] | [INFO] [stdout] 2217 | / if *cursor_row > 0 { [INFO] [stdout] 2218 | | *cursor_row -= 1; [INFO] [stdout] 2219 | | let lines: Vec<&str> = text.split('\n').collect(); [INFO] [stdout] 2220 | | *cursor_col = (*cursor_col).min(lines[*cursor_row].chars().count()); [INFO] [stdout] 2221 | | } [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] 2216 ~ KeyCode::Up [INFO] [stdout] 2217 ~ if *cursor_row > 0 => { [INFO] [stdout] 2218 | *cursor_row -= 1; [INFO] [stdout] 2219 | let lines: Vec<&str> = text.split('\n').collect(); [INFO] [stdout] 2220 | *cursor_col = (*cursor_col).min(lines[*cursor_row].chars().count()); [INFO] [stdout] 2221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2231:17 [INFO] [stdout] | [INFO] [stdout] 2231 | / if *cursor_col > 0 { [INFO] [stdout] 2232 | | *cursor_col -= 1; [INFO] [stdout] 2233 | | } [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] 2230 ~ KeyCode::Left [INFO] [stdout] 2231 ~ if *cursor_col > 0 => { [INFO] [stdout] 2232 | *cursor_col -= 1; [INFO] [stdout] 2233 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2257:21 [INFO] [stdout] | [INFO] [stdout] 2257 | / if *selected_index > 0 { [INFO] [stdout] 2258 | | *selected_index -= 1; [INFO] [stdout] 2259 | | } [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] 2256 ~ KeyCode::Char('k') if key.modifiers.contains(crossterm::event::KeyModifiers::CONTROL) [INFO] [stdout] 2257 ~ && *selected_index > 0 => { [INFO] [stdout] 2258 | *selected_index -= 1; [INFO] [stdout] 2259 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2271:21 [INFO] [stdout] | [INFO] [stdout] 2271 | / if *cursor_pos > 0 { [INFO] [stdout] 2272 | | let byte_idx = char_to_byte_index(query, *cursor_pos - 1); [INFO] [stdout] 2273 | | query.remove(byte_idx); [INFO] [stdout] 2274 | | *cursor_pos -= 1; [INFO] [stdout] 2275 | | *selected_index = 0; // Reset selection when query changes [INFO] [stdout] 2276 | | } [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] 2270 ~ KeyCode::Backspace [INFO] [stdout] 2271 ~ if *cursor_pos > 0 => { [INFO] [stdout] 2272 | let byte_idx = char_to_byte_index(query, *cursor_pos - 1); [INFO] [stdout] ... [INFO] [stdout] 2275 | *selected_index = 0; // Reset selection when query changes [INFO] [stdout] 2276 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2279:21 [INFO] [stdout] | [INFO] [stdout] 2279 | / if *selected_index > 0 { [INFO] [stdout] 2280 | | *selected_index -= 1; [INFO] [stdout] 2281 | | } [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] 2278 ~ KeyCode::Up [INFO] [stdout] 2279 ~ if *selected_index > 0 => { [INFO] [stdout] 2280 | *selected_index -= 1; [INFO] [stdout] 2281 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `FocusPane` which implements the `Copy` trait [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2402:22 [INFO] [stdout] | [INFO] [stdout] 2402 | let cloned = focus.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `focus` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2599:9 [INFO] [stdout] | [INFO] [stdout] 2599 | / if mini_spawned { [INFO] [stdout] 2600 | | if let Some(_code) = exit_code { [INFO] [stdout] 2601 | | mini_visible = false; [INFO] [stdout] 2602 | | mini_spawned = false; [INFO] [stdout] ... | [INFO] [stdout] 2607 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 2599 ~ if mini_spawned [INFO] [stdout] 2600 ~ && let Some(_code) = exit_code { [INFO] [stdout] 2601 | mini_visible = false; [INFO] [stdout] ... [INFO] [stdout] 2605 | } [INFO] [stdout] 2606 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `ScrollbackTarget` which implements the `Copy` trait [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2832:22 [INFO] [stdout] | [INFO] [stdout] 2832 | let cloned = target.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:2898:17 [INFO] [stdout] | [INFO] [stdout] 2898 | assert!(!none_target.is_some()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `none_target.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 `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:3331:9 [INFO] [stdout] | [INFO] [stdout] 3331 | / if mini_spawned { [INFO] [stdout] 3332 | | if let Some(_code) = exit_code { [INFO] [stdout] 3333 | | mini_visible = false; [INFO] [stdout] 3334 | | mini_spawned = false; [INFO] [stdout] ... | [INFO] [stdout] 3343 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 3331 ~ if mini_spawned [INFO] [stdout] 3332 ~ && let Some(_code) = exit_code { [INFO] [stdout] 3333 | mini_visible = false; [INFO] [stdout] ... [INFO] [stdout] 3341 | } [INFO] [stdout] 3342 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:3502:9 [INFO] [stdout] | [INFO] [stdout] 3502 | let si; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `si` here and remove the assignments from the branches [INFO] [stdout] | [INFO] [stdout] 3502 ~ [INFO] [stdout] 3503 ~ let si = if cp > 0 { [INFO] [stdout] 3504 | let byte_idx = char_to_byte_index(&q, cp - 1); [INFO] [stdout] 3505 | q.remove(byte_idx); [INFO] [stdout] 3506 | cp -= 1; [INFO] [stdout] 3507 ~ 0 // Reset on query change [INFO] [stdout] 3508 | } else { [INFO] [stdout] 3509 ~ selected_index // No change [INFO] [stdout] 3510 ~ }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SelectionPos` which implements the `Copy` trait [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:3942:22 [INFO] [stdout] | [INFO] [stdout] 3942 | let cloned = pos.clone(); [INFO] [stdout] | ^^^^^^^^^^^ help: try removing the `clone` call: `pos` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `SelectionMode` which implements the `Copy` trait [INFO] [stdout] --> src/infrastructure/tui/app_runner.rs:3977:22 [INFO] [stdout] | [INFO] [stdout] 3977 | let cloned = mode.clone(); [INFO] [stdout] | ^^^^^^^^^^^^ help: try removing the `clone` call: `mode` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/infrastructure/tui/fuzzy_matcher.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | results.sort_by(|a, b| b.1.score.cmp(&a.1.score)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 99 - results.sort_by(|a, b| b.1.score.cmp(&a.1.score)); [INFO] [stdout] 99 + results.sort_by_key(|b| std::cmp::Reverse(b.1.score)); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/infrastructure/tui/widgets/sidebar.rs:727:13 [INFO] [stdout] | [INFO] [stdout] 727 | / if ch == 's' || ch == 'h' || ch == 'e' || ch == 'l' { [INFO] [stdout] 728 | | if cell.fg == Color::Yellow { [INFO] [stdout] 729 | | found_yellow = true; [INFO] [stdout] 730 | | break; [INFO] [stdout] 731 | | } [INFO] [stdout] 732 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 727 ~ if (ch == 's' || ch == 'h' || ch == 'e' || ch == 'l') { [INFO] [stdout] 728 ~ && cell.fg == Color::Yellow { [INFO] [stdout] 729 | found_yellow = true; [INFO] [stdout] 730 | break; [INFO] [stdout] 731 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (14/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/terminal_view.rs:43:1 [INFO] [stdout] | [INFO] [stdout] 43 | / pub fn render( [INFO] [stdout] 44 | | frame: &mut Frame, [INFO] [stdout] 45 | | area: Rect, [INFO] [stdout] 46 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 57 | | scrollback_cursor_hl: Option<&ScrollbackCursorHighlight>, [INFO] [stdout] 58 | | ) { [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 (11/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/terminal_view.rs:84:1 [INFO] [stdout] | [INFO] [stdout] 84 | / fn render_scrollback_mode( [INFO] [stdout] 85 | | frame: &mut Frame, [INFO] [stdout] 86 | | area: Rect, [INFO] [stdout] 87 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 95 | | scrollback_cursor_hl: Option<&ScrollbackCursorHighlight>, [INFO] [stdout] 96 | | ) { [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 (11/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/terminal_view.rs:181:1 [INFO] [stdout] | [INFO] [stdout] 181 | / fn render_normal_mode( [INFO] [stdout] 182 | | frame: &mut Frame, [INFO] [stdout] 183 | | area: Rect, [INFO] [stdout] 184 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 192 | | selection_highlights: Option<&SelectionHighlights>, [INFO] [stdout] 193 | | ) { [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 (12/7) [INFO] [stdout] --> src/infrastructure/tui/widgets/mini_terminal_view.rs:19:1 [INFO] [stdout] | [INFO] [stdout] 19 | / pub fn render( [INFO] [stdout] 20 | | frame: &mut Frame, [INFO] [stdout] 21 | | area: Rect, [INFO] [stdout] 22 | | cells_opt: Option<&Vec>>, [INFO] [stdout] ... | [INFO] [stdout] 31 | | scrollback_cursor_hl: Option<&ScrollbackCursorHighlight>, [INFO] [stdout] 32 | | ) { [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] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 33.12s [INFO] running `Command { std: "docker" "inspect" "66fe8b1c79ab90b286a838517d654156a5abe9a986b3687ed56bdaf5fec91b59", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "66fe8b1c79ab90b286a838517d654156a5abe9a986b3687ed56bdaf5fec91b59", kill_on_drop: false }` [INFO] [stdout] 66fe8b1c79ab90b286a838517d654156a5abe9a986b3687ed56bdaf5fec91b59