[INFO] cloning repository https://github.com/fhungus/pathetic [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fhungus/pathetic" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffhungus%2Fpathetic", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffhungus%2Fpathetic'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 61bf5901a4be035ef3d1b0943d2055a9dfa66ec4 [INFO] linting fhungus/pathetic against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffhungus%2Fpathetic" "/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/fhungus/pathetic [INFO] finished tweaking git repo https://github.com/fhungus/pathetic [INFO] tweaked toml for git repo https://github.com/fhungus/pathetic written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/fhungus/pathetic 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/fhungus/pathetic already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded hyprland-macros v0.4.0-beta.2 [INFO] [stderr] Downloaded hyprland v0.4.0-beta.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6fb758685bbbbc2b3ff12dfca13adea6f9a987ebdd872a55f943a3c43b81e28f [INFO] running `Command { std: "docker" "start" "-a" "6fb758685bbbbc2b3ff12dfca13adea6f9a987ebdd872a55f943a3c43b81e28f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6fb758685bbbbc2b3ff12dfca13adea6f9a987ebdd872a55f943a3c43b81e28f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6fb758685bbbbc2b3ff12dfca13adea6f9a987ebdd872a55f943a3c43b81e28f", kill_on_drop: false }` [INFO] [stdout] 6fb758685bbbbc2b3ff12dfca13adea6f9a987ebdd872a55f943a3c43b81e28f [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] 915eaf300fa448d2568c292d83c5fbcb87c5d9ae571b15aeb2b27c38947f8450 [INFO] running `Command { std: "docker" "start" "-a" "915eaf300fa448d2568c292d83c5fbcb87c5d9ae571b15aeb2b27c38947f8450", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.101 [INFO] [stderr] Compiling phf_shared v0.11.3 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Checking winnow v0.7.10 [INFO] [stderr] Checking mio v1.0.4 [INFO] [stderr] Checking socket2 v0.5.10 [INFO] [stderr] Checking clap_builder v4.5.39 [INFO] [stderr] Checking futures-lite v2.6.0 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Checking patheticctl v0.1.0 (/opt/rustwide/workdir/crates/patheticctl) [INFO] [stderr] Compiling phf_generator v0.11.3 [INFO] [stderr] Checking clap v4.5.39 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling phf_macros v0.11.3 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling derive_more-impl v1.0.0 [INFO] [stderr] Compiling tokio-macros v2.5.0 [INFO] [stderr] Compiling hyprland-macros v0.4.0-beta.2 [INFO] [stderr] Compiling derive_more-impl v2.0.1 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Checking tokio v1.45.1 [INFO] [stderr] Checking async-stream v0.3.6 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking derive_more v1.0.0 [INFO] [stderr] Checking derive_more v2.0.1 [INFO] [stderr] Checking serde v1.0.219 [INFO] [stderr] Checking serde_spanned v0.6.9 [INFO] [stderr] Checking toml_datetime v0.6.11 [INFO] [stderr] Checking serde_json v1.0.140 [INFO] [stderr] Checking toml_edit v0.22.27 [INFO] [stderr] Checking hyprland v0.4.0-beta.2 [INFO] [stderr] Checking toml v0.8.23 [INFO] [stderr] Checking patheticd v0.1.0 (/opt/rustwide/workdir/crates/patheticd) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | send: send [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `send` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | send: send [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `send` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> crates/patheticd/src/net.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn push_to_network(output: BackendOutput) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/patheticd/src/backends/backend_traits.rs:15:37 [INFO] [stdout] | [INFO] [stdout] 15 | fn init(config: Arc) -> Result<( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 16 | | Arc< [INFO] [stdout] 17 | | Mutex< [INFO] [stdout] 18 | | Self>>, [INFO] [stdout] ... | [INFO] [stdout] 22 | | BackendOutput>>>), [INFO] [stdout] 23 | | PatheticError>; [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: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | return false [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return false [INFO] [stdout] 29 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:24:64 [INFO] [stdout] | [INFO] [stdout] 24 | fn in_do_not_show(class: &String, title: &String, do_not_show: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 24 - fn in_do_not_show(class: &String, title: &String, do_not_show: &Vec) -> bool { [INFO] [stdout] 24 + fn in_do_not_show(class: &String, title: &String, do_not_show: &[String]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `result` after checking its variant with `is_err` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:173:58 [INFO] [stdout] | [INFO] [stdout] 172 | if result.is_err() { [INFO] [stdout] | ------------------ help: try: `if let Err() = result` [INFO] [stdout] 173 | return Err(PatheticError::ThreadInitFailiure(result.unwrap_err())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | return Ok((backend, receive)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 - return Ok((backend, receive)) [INFO] [stdout] 176 + Ok((backend, receive)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | return backend.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return backend.lock().unwrap(); [INFO] [stdout] 91 + backend.lock().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&data.address.to_string()).is_none()` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:111:45 [INFO] [stdout] | [INFO] [stdout] 111 | if backend_data.clients.get(&data.address.to_string()).is_none() { [INFO] [stdout] | ---------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!backend_data.clients.contains_key(&data.address.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:150:76 [INFO] [stdout] | [INFO] [stdout] 150 | if address.to_string() == backend_data.focused.clone().unwrap_or(String::new()) { [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: this `if` statement can be collapsed [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:154:25 [INFO] [stdout] | [INFO] [stdout] 154 | / ... if let Some(focused) = new_focused { [INFO] [stdout] 155 | | ... if !in_do_not_show(&focused.class, &focused.class, &window_close_config.do_not_show) && backend_data.clients.get(&focus... [INFO] [stdout] 156 | | ... backend_data.focused = Some(focused.address.to_string()); [INFO] [stdout] 157 | | ... } [INFO] [stdout] 158 | | ... } [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] 154 ~ if let Some(focused) = new_focused [INFO] [stdout] 155 ~ && !in_do_not_show(&focused.class, &focused.class, &window_close_config.do_not_show) && backend_data.clients.get(&focused.address.to_string()).is_some() { [INFO] [stdout] 156 | backend_data.focused = Some(focused.address.to_string()); [INFO] [stdout] 157 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&focused.address.to_string()).is_some()` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:155:138 [INFO] [stdout] | [INFO] [stdout] 155 | ...clients.get(&focused.address.to_string()).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&focused.address.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:161:28 [INFO] [stdout] | [INFO] [stdout] 161 | if let Some(_) = backend_data.clients.get(&address.to_string()) { [INFO] [stdout] | -------^^^^^^^------------------------------------------------- help: try: `if backend_data.clients.get(&address.to_string()).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/patheticd/src/backends/select.rs:7:44 [INFO] [stdout] | [INFO] [stdout] 7 | ...g: Arc) -> Result<(Arc>, mpsc::Receiver>>), PatheticError> { [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: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/select.rs:9:25 [INFO] [stdout] | [INFO] [stdout] 9 | "hyprland" => { return Hyprland::init(config); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 9 - "hyprland" => { return Hyprland::init(config); }, [INFO] [stdout] 9 + "hyprland" => { Hyprland::init(config)}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/config.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / return Config { [INFO] [stdout] 14 | | address: "localhost".to_string(), [INFO] [stdout] 15 | | key: "".to_string(), [INFO] [stdout] 16 | | backend: "hyprland".to_string(), [INFO] [stdout] 17 | | do_not_show: Vec::new() [INFO] [stdout] 18 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ Config { [INFO] [stdout] 14 + address: "localhost".to_string(), [INFO] [stdout] 15 + key: "".to_string(), [INFO] [stdout] 16 + backend: "hyprland".to_string(), [INFO] [stdout] 17 + do_not_show: Vec::new() [INFO] [stdout] 18 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/config.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return None [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return None [INFO] [stdout] 34 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/patheticd/src/config.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | if !stringified.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `stringified.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: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/config.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | return base [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return base [INFO] [stdout] 78 + base [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/error.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | return PatheticError::HyprError(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return PatheticError::HyprError(value); [INFO] [stdout] 17 + PatheticError::HyprError(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `output` [INFO] [stdout] --> crates/patheticd/src/net.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn push_to_network(output: BackendOutput) { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/patheticd/src/backends/backend_traits.rs:15:37 [INFO] [stdout] | [INFO] [stdout] 15 | fn init(config: Arc) -> Result<( [INFO] [stdout] | _____________________________________^ [INFO] [stdout] 16 | | Arc< [INFO] [stdout] 17 | | Mutex< [INFO] [stdout] 18 | | Self>>, [INFO] [stdout] ... | [INFO] [stdout] 22 | | BackendOutput>>>), [INFO] [stdout] 23 | | PatheticError>; [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: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 29 | return false [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 29 - return false [INFO] [stdout] 29 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:24:64 [INFO] [stdout] | [INFO] [stdout] 24 | fn in_do_not_show(class: &String, title: &String, do_not_show: &Vec) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 24 - fn in_do_not_show(class: &String, title: &String, do_not_show: &Vec) -> bool { [INFO] [stdout] 24 + fn in_do_not_show(class: &String, title: &String, do_not_show: &[String]) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap_err` on `result` after checking its variant with `is_err` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:173:58 [INFO] [stdout] | [INFO] [stdout] 172 | if result.is_err() { [INFO] [stdout] | ------------------ help: try: `if let Err() = result` [INFO] [stdout] 173 | return Err(PatheticError::ThreadInitFailiure(result.unwrap_err())) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:176:9 [INFO] [stdout] | [INFO] [stdout] 176 | return Ok((backend, receive)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 176 - return Ok((backend, receive)) [INFO] [stdout] 176 + Ok((backend, receive)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | return backend.lock().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 91 - return backend.lock().unwrap(); [INFO] [stdout] 91 + backend.lock().unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&data.address.to_string()).is_none()` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:111:45 [INFO] [stdout] | [INFO] [stdout] 111 | if backend_data.clients.get(&data.address.to_string()).is_none() { [INFO] [stdout] | ---------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!backend_data.clients.contains_key(&data.address.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `unwrap_or` to construct default value [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:150:76 [INFO] [stdout] | [INFO] [stdout] 150 | if address.to_string() == backend_data.focused.clone().unwrap_or(String::new()) { [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: this `if` statement can be collapsed [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:154:25 [INFO] [stdout] | [INFO] [stdout] 154 | / ... if let Some(focused) = new_focused { [INFO] [stdout] 155 | | ... if !in_do_not_show(&focused.class, &focused.class, &window_close_config.do_not_show) && backend_data.clients.get(&focus... [INFO] [stdout] 156 | | ... backend_data.focused = Some(focused.address.to_string()); [INFO] [stdout] 157 | | ... } [INFO] [stdout] 158 | | ... } [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] 154 ~ if let Some(focused) = new_focused [INFO] [stdout] 155 ~ && !in_do_not_show(&focused.class, &focused.class, &window_close_config.do_not_show) && backend_data.clients.get(&focused.address.to_string()).is_some() { [INFO] [stdout] 156 | backend_data.focused = Some(focused.address.to_string()); [INFO] [stdout] 157 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(&focused.address.to_string()).is_some()` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:155:138 [INFO] [stdout] | [INFO] [stdout] 155 | ...clients.get(&focused.address.to_string()).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(&focused.address.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> crates/patheticd/src/backends/hyprland.rs:161:28 [INFO] [stdout] | [INFO] [stdout] 161 | if let Some(_) = backend_data.clients.get(&address.to_string()) { [INFO] [stdout] | -------^^^^^^^------------------------------------------------- help: try: `if backend_data.clients.get(&address.to_string()).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> crates/patheticd/src/backends/select.rs:7:44 [INFO] [stdout] | [INFO] [stdout] 7 | ...g: Arc) -> Result<(Arc>, mpsc::Receiver>>), PatheticError> { [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: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/backends/select.rs:9:25 [INFO] [stdout] | [INFO] [stdout] 9 | "hyprland" => { return Hyprland::init(config); }, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 9 - "hyprland" => { return Hyprland::init(config); }, [INFO] [stdout] 9 + "hyprland" => { Hyprland::init(config)}, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/config.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / return Config { [INFO] [stdout] 14 | | address: "localhost".to_string(), [INFO] [stdout] 15 | | key: "".to_string(), [INFO] [stdout] 16 | | backend: "hyprland".to_string(), [INFO] [stdout] 17 | | do_not_show: Vec::new() [INFO] [stdout] 18 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 13 ~ Config { [INFO] [stdout] 14 + address: "localhost".to_string(), [INFO] [stdout] 15 + key: "".to_string(), [INFO] [stdout] 16 + backend: "hyprland".to_string(), [INFO] [stdout] 17 + do_not_show: Vec::new() [INFO] [stdout] 18 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/config.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | return None [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 34 - return None [INFO] [stdout] 34 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> crates/patheticd/src/config.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | if !stringified.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `stringified.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: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/config.rs:78:5 [INFO] [stdout] | [INFO] [stdout] 78 | return base [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 78 - return base [INFO] [stdout] 78 + base [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> crates/patheticd/src/error.rs:17:9 [INFO] [stdout] | [INFO] [stdout] 17 | return PatheticError::HyprError(value); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 17 - return PatheticError::HyprError(value); [INFO] [stdout] 17 + PatheticError::HyprError(value) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: temporary with significant `Drop` can be early dropped [INFO] [stdout] --> crates/patheticd/src/main.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 32 | Ok(data) => { [INFO] [stdout] | _________________________- [INFO] [stdout] 33 | | let locked = data.lock().unwrap(); [INFO] [stdout] | | ^^^^^^ [INFO] [stdout] 34 | | match &locked.focused { [INFO] [stdout] 35 | | Some(i) => { [INFO] [stdout] ... | [INFO] [stdout] 42 | | }, [INFO] [stdout] | |_____________- temporary `locked` is currently being dropped at the end of its contained scope [INFO] [stdout] | [INFO] [stdout] = note: this might lead to unnecessary resource contention [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#significant_drop_tightening [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> crates/patheticd/src/main.rs:9:26 [INFO] [stdout] | [INFO] [stdout] 9 | #[warn(clippy::pedantic, clippy::nursery)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::significant_drop_tightening)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: temporary with significant `Drop` can be early dropped [INFO] [stdout] --> crates/patheticd/src/main.rs:33:21 [INFO] [stdout] | [INFO] [stdout] 32 | Ok(data) => { [INFO] [stdout] | _________________________- [INFO] [stdout] 33 | | let locked = data.lock().unwrap(); [INFO] [stdout] | | ^^^^^^ [INFO] [stdout] 34 | | match &locked.focused { [INFO] [stdout] 35 | | Some(i) => { [INFO] [stdout] ... | [INFO] [stdout] 42 | | }, [INFO] [stdout] | |_____________- temporary `locked` is currently being dropped at the end of its contained scope [INFO] [stdout] | [INFO] [stdout] = note: this might lead to unnecessary resource contention [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#significant_drop_tightening [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> crates/patheticd/src/main.rs:9:26 [INFO] [stdout] | [INFO] [stdout] 9 | #[warn(clippy::pedantic, clippy::nursery)] [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::significant_drop_tightening)]` implied by `#[warn(clippy::nursery)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider adding a `;` to the last statement for consistent formatting [INFO] [stdout] --> crates/patheticd/src/main.rs:39:25 [INFO] [stdout] | [INFO] [stdout] 39 | println!("lets justr say... im leagueing it") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `println!("lets justr say... im leagueing it");` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> crates/patheticd/src/main.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | #[warn(clippy::pedantic, clippy::nursery)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::semicolon_if_nothing_returned)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider adding a `;` to the last statement for consistent formatting [INFO] [stdout] --> crates/patheticd/src/main.rs:39:25 [INFO] [stdout] | [INFO] [stdout] 39 | println!("lets justr say... im leagueing it") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: add a `;` here: `println!("lets justr say... im leagueing it");` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#semicolon_if_nothing_returned [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> crates/patheticd/src/main.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | #[warn(clippy::pedantic, clippy::nursery)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(clippy::semicolon_if_nothing_returned)]` implied by `#[warn(clippy::pedantic)]` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.93s [INFO] running `Command { std: "docker" "inspect" "915eaf300fa448d2568c292d83c5fbcb87c5d9ae571b15aeb2b27c38947f8450", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "915eaf300fa448d2568c292d83c5fbcb87c5d9ae571b15aeb2b27c38947f8450", kill_on_drop: false }` [INFO] [stdout] 915eaf300fa448d2568c292d83c5fbcb87c5d9ae571b15aeb2b27c38947f8450