[INFO] fetching crate swaycons 0.3.1... [INFO] linting swaycons-0.3.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate swaycons 0.3.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate swaycons 0.3.1 [INFO] finished tweaking crates.io crate swaycons 0.3.1 [INFO] tweaked toml for crates.io crate swaycons 0.3.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate swaycons 0.3.1 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate swaycons 0.3.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded xdg v2.5.2 [INFO] [stderr] Downloaded config v0.11.0 [INFO] [stderr] Downloaded swayipc v3.0.2 [INFO] [stderr] Downloaded swayipc-types v1.3.1 [INFO] [stderr] Downloaded nom v5.1.3 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 931fac0fbe2610eb42e596e7c3109d3548777acfb0b33a5b746444a4ca4a196e [INFO] running `Command { std: "docker" "start" "-a" "931fac0fbe2610eb42e596e7c3109d3548777acfb0b33a5b746444a4ca4a196e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "931fac0fbe2610eb42e596e7c3109d3548777acfb0b33a5b746444a4ca4a196e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "931fac0fbe2610eb42e596e7c3109d3548777acfb0b33a5b746444a4ca4a196e", kill_on_drop: false }` [INFO] [stdout] 931fac0fbe2610eb42e596e7c3109d3548777acfb0b33a5b746444a4ca4a196e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] a81bd7c7f11d0b4c38b5e31ae5d93aa9c13d06e5745659caa7e85a2dfb663f86 [INFO] running `Command { std: "docker" "start" "-a" "a81bd7c7f11d0b4c38b5e31ae5d93aa9c13d06e5745659caa7e85a2dfb663f86", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.70 [INFO] [stderr] Compiling serde v1.0.193 [INFO] [stderr] Checking memchr v2.6.4 [INFO] [stderr] Compiling serde_json v1.0.108 [INFO] [stderr] Compiling lexical-core v0.7.6 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Compiling thiserror v1.0.50 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling nom v5.1.3 [INFO] [stderr] Checking serde v0.8.23 [INFO] [stderr] Checking rust-ini v0.13.0 [INFO] [stderr] Checking xdg v2.5.2 [INFO] [stderr] Checking yaml-rust v0.4.5 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Compiling syn v2.0.39 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Checking regex-automata v0.4.3 [INFO] [stderr] Compiling serde_derive v1.0.193 [INFO] [stderr] Compiling thiserror-impl v1.0.50 [INFO] [stderr] Checking regex v1.10.2 [INFO] [stderr] Checking serde-hjson v0.9.1 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking swayipc-types v1.3.1 [INFO] [stderr] Checking config v0.11.0 [INFO] [stderr] Checking swayipc v3.0.2 [INFO] [stderr] Checking swaycons v0.3.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:66:28 [INFO] [stdout] | [INFO] [stdout] 66 | Some(color) => match color.into_str() { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 67 | | Ok(color) => Some(color), [INFO] [stdout] 68 | | Err(_e) => None, [INFO] [stdout] 69 | | }, [INFO] [stdout] | |_____________^ help: replace with: `color.into_str().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:73:27 [INFO] [stdout] | [INFO] [stdout] 73 | Some(icon) => match icon.into_str() { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 74 | | Ok(icon) => Some(icon), [INFO] [stdout] 75 | | Err(_e) => None, [INFO] [stdout] 76 | | }, [INFO] [stdout] | |_____________^ help: replace with: `icon.into_str().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:80:27 [INFO] [stdout] | [INFO] [stdout] 80 | Some(size) => match size.into_str() { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 81 | | Ok(size) => Some(size), [INFO] [stdout] 82 | | Err(_e) => None, [INFO] [stdout] 83 | | }, [INFO] [stdout] | |_____________^ help: replace with: `size.into_str().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:100:17 [INFO] [stdout] | [INFO] [stdout] 100 | / match app_id.try_into() { [INFO] [stdout] 101 | | Ok(app_id) => Some(app_id), [INFO] [stdout] 102 | | Err(_e) => None, [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________________^ help: replace with: `app_id.try_into().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:62:32 [INFO] [stdout] | [INFO] [stdout] 62 | || (focused && !(last_focused == Some(id))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(last_focused != Some(id))` [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: called `unwrap` on `pattern` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:45:59 [INFO] [stdout] | [INFO] [stdout] 40 | if pattern.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = pattern` [INFO] [stdout] ... [INFO] [stdout] 45 | let settings = title_settings.get(pattern.unwrap()).unwrap(); [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: called `unwrap` on `settings` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 54 | if settings.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = settings` [INFO] [stdout] 55 | settings.unwrap() [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] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/main.rs:41:42 [INFO] [stdout] | [INFO] [stdout] 41 | ignore_matcher = match pattern { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 42 | | Some(p) => Some(p.to_string()), [INFO] [stdout] 43 | | None => None, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________________________^ help: try: `pattern.map(|p| p.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:67:30 [INFO] [stdout] | [INFO] [stdout] 67 | set_icon(id, &settings, &global_settings, &mut connection, focused)?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `settings` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:88:46 [INFO] [stdout] | [INFO] [stdout] 88 | last_focused_settings = Some(&settings); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `settings` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/main.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | if best_match == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `best_match.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `global_settings.focused_color` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 134 | let color = if focused && global_settings.focused_color.is_some() { [INFO] [stdout] | --------------------------------------- the check is happening here [INFO] [stdout] 135 | global_settings.focused_color.as_ref().unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/main.rs:62:32 [INFO] [stdout] | [INFO] [stdout] 62 | || (focused && !(last_focused == Some(id))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(last_focused != Some(id))` [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: called `unwrap` on `pattern` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:45:59 [INFO] [stdout] | [INFO] [stdout] 40 | if pattern.is_some() { [INFO] [stdout] | -------------------- help: try: `if let Some() = pattern` [INFO] [stdout] ... [INFO] [stdout] 45 | let settings = title_settings.get(pattern.unwrap()).unwrap(); [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: called `unwrap` on `settings` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:55:25 [INFO] [stdout] | [INFO] [stdout] 54 | if settings.is_some() { [INFO] [stdout] | --------------------- help: try: `if let Some() = settings` [INFO] [stdout] 55 | settings.unwrap() [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] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/main.rs:41:42 [INFO] [stdout] | [INFO] [stdout] 41 | ignore_matcher = match pattern { [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 42 | | Some(p) => Some(p.to_string()), [INFO] [stdout] 43 | | None => None, [INFO] [stdout] 44 | | }; [INFO] [stdout] | |_________________________^ help: try: `pattern.map(|p| p.to_string())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:67:30 [INFO] [stdout] | [INFO] [stdout] 67 | set_icon(id, &settings, &global_settings, &mut connection, focused)?; [INFO] [stdout] | ^^^^^^^^^ help: change this to: `settings` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/main.rs:88:46 [INFO] [stdout] | [INFO] [stdout] 88 | last_focused_settings = Some(&settings); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `settings` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/main.rs:114:12 [INFO] [stdout] | [INFO] [stdout] 114 | if best_match == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `best_match.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `global_settings.focused_color` after checking its variant with `is_some` [INFO] [stdout] --> src/main.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 134 | let color = if focused && global_settings.focused_color.is_some() { [INFO] [stdout] | --------------------------------------- the check is happening here [INFO] [stdout] 135 | global_settings.focused_color.as_ref().unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:66:28 [INFO] [stdout] | [INFO] [stdout] 66 | Some(color) => match color.into_str() { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 67 | | Ok(color) => Some(color), [INFO] [stdout] 68 | | Err(_e) => None, [INFO] [stdout] 69 | | }, [INFO] [stdout] | |_____________^ help: replace with: `color.into_str().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] = note: `#[warn(clippy::manual_ok_err)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:73:27 [INFO] [stdout] | [INFO] [stdout] 73 | Some(icon) => match icon.into_str() { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 74 | | Ok(icon) => Some(icon), [INFO] [stdout] 75 | | Err(_e) => None, [INFO] [stdout] 76 | | }, [INFO] [stdout] | |_____________^ help: replace with: `icon.into_str().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:80:27 [INFO] [stdout] | [INFO] [stdout] 80 | Some(size) => match size.into_str() { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 81 | | Ok(size) => Some(size), [INFO] [stdout] 82 | | Err(_e) => None, [INFO] [stdout] 83 | | }, [INFO] [stdout] | |_____________^ help: replace with: `size.into_str().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `ok` [INFO] [stdout] --> src/settings.rs:100:17 [INFO] [stdout] | [INFO] [stdout] 100 | / match app_id.try_into() { [INFO] [stdout] 101 | | Ok(app_id) => Some(app_id), [INFO] [stdout] 102 | | Err(_e) => None, [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________________^ help: replace with: `app_id.try_into().ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_ok_err [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.66s [INFO] running `Command { std: "docker" "inspect" "a81bd7c7f11d0b4c38b5e31ae5d93aa9c13d06e5745659caa7e85a2dfb663f86", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a81bd7c7f11d0b4c38b5e31ae5d93aa9c13d06e5745659caa7e85a2dfb663f86", kill_on_drop: false }` [INFO] [stdout] a81bd7c7f11d0b4c38b5e31ae5d93aa9c13d06e5745659caa7e85a2dfb663f86