[INFO] cloning repository https://github.com/redox-os/orbutils [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/redox-os/orbutils" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fredox-os%2Forbutils", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fredox-os%2Forbutils'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bd3c76bf721d6aad8f8dc380621b1d9944e35485 [INFO] linting redox-os/orbutils/bd3c76bf721d6aad8f8dc380621b1d9944e35485 against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fredox-os%2Forbutils" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/redox-os/orbutils [INFO] finished tweaking git repo https://github.com/redox-os/orbutils [INFO] tweaked toml for git repo https://github.com/redox-os/orbutils written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/redox-os/orbutils 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/redox-os/orbutils 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 ioslice v0.6.0 [INFO] [stderr] Downloaded redox-log v0.1.4 [INFO] [stderr] Downloaded cssparser-macros v0.3.6 [INFO] [stderr] Downloaded redox_event v0.4.3 [INFO] [stderr] Downloaded orbimage v0.1.17 [INFO] [stderr] Downloaded ordered-float v1.1.1 [INFO] [stderr] Downloaded procedural-masquerade v0.1.7 [INFO] [stderr] Downloaded core-graphics v0.14.0 [INFO] [stderr] Downloaded core-text v10.0.0 [INFO] [stderr] Downloaded orbtk v0.2.31 [INFO] [stderr] Downloaded kurbo v0.11.1 [INFO] [stderr] Downloaded resvg v0.44.0 [INFO] [stderr] Downloaded orbfont v0.1.10 [INFO] [stderr] Downloaded freedesktop-icons v0.2.6 [INFO] [stderr] Downloaded freedesktop_entry_parser v1.3.0 [INFO] [stderr] Downloaded gdi32-sys v0.2.0 [INFO] [stderr] Downloaded font-loader v0.7.0 [INFO] [stderr] Downloaded sdl2 v0.38.0 [INFO] [stderr] Downloaded cssparser v0.16.1 [INFO] [stderr] Downloaded resize v0.3.1 [INFO] [stderr] Downloaded servo-fontconfig-sys v4.0.6 [INFO] [stderr] Downloaded sdl2-sys v0.38.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 4e68ea54fbb874720bd44e16e0874f7b60f96b4b7165f300c96baff51a878aa1 [INFO] running `Command { std: "docker" "start" "-a" "4e68ea54fbb874720bd44e16e0874f7b60f96b4b7165f300c96baff51a878aa1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4e68ea54fbb874720bd44e16e0874f7b60f96b4b7165f300c96baff51a878aa1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4e68ea54fbb874720bd44e16e0874f7b60f96b4b7165f300c96baff51a878aa1", kill_on_drop: false }` [INFO] [stdout] 4e68ea54fbb874720bd44e16e0874f7b60f96b4b7165f300c96baff51a878aa1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 24465b35fa8aabdcb95fee6431dcfd8f43d2e214318950ca940d7839a798ee23 [INFO] running `Command { std: "docker" "start" "-a" "24465b35fa8aabdcb95fee6431dcfd8f43d2e214318950ca940d7839a798ee23", kill_on_drop: false }` [INFO] [stderr] Compiling rand_core v0.4.2 [INFO] [stderr] Compiling libc v0.2.180 [INFO] [stderr] Compiling autocfg v0.1.8 [INFO] [stderr] Compiling cc v1.2.19 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling version-compare v0.1.1 [INFO] [stderr] Checking smallvec v1.15.0 [INFO] [stderr] Checking bytemuck v1.22.0 [INFO] [stderr] Compiling siphasher v0.2.3 [INFO] [stderr] Checking miniz_oxide v0.8.8 [INFO] [stderr] Checking either v1.15.0 [INFO] [stderr] Compiling syn v2.0.100 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling servo-fontconfig-sys v4.0.6 [INFO] [stderr] Compiling sdl2 v0.38.0 [INFO] [stderr] Compiling num-derive v0.2.5 [INFO] [stderr] Compiling phf_shared v0.7.24 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling sdl2-sys v0.38.0 [INFO] [stderr] Compiling num-rational v0.2.4 [INFO] [stderr] Checking rayon v1.10.0 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Checking lzw v0.10.0 [INFO] [stderr] Compiling orbclient v0.3.50 [INFO] [stderr] Checking inflate v0.4.5 [INFO] [stderr] Checking deflate v0.7.20 [INFO] [stderr] Checking num-iter v0.1.45 [INFO] [stderr] Checking weezl v0.1.8 [INFO] [stderr] Checking gif v0.10.3 [INFO] [stderr] Checking ordered-float v1.1.1 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Checking unicase v1.4.2 [INFO] [stderr] Checking stb_truetype v0.3.1 [INFO] [stderr] Checking flate2 v1.1.1 [INFO] [stderr] Compiling crunchy v0.2.3 [INFO] [stderr] Checking gif v0.13.1 [INFO] [stderr] Checking libredox v0.1.12 [INFO] [stderr] Checking numtoa v0.2.4 [INFO] [stderr] Checking resize v0.3.1 [INFO] [stderr] Checking rusttype v0.8.3 [INFO] [stderr] Checking termion v4.0.5 [INFO] [stderr] Checking chrono v0.4.40 [INFO] [stderr] Checking png v0.14.1 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling cssparser v0.16.1 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Checking phf v0.7.24 [INFO] [stderr] Compiling procedural-masquerade v0.1.7 [INFO] [stderr] Checking arrayvec v0.5.2 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling cmake v0.1.54 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking half v2.6.0 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking zune-inflate v0.2.54 [INFO] [stderr] Checking blake2b_simd v0.5.11 [INFO] [stderr] Checking lebe v0.5.2 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Compiling getrandom v0.2.15 [INFO] [stderr] Checking bit_field v0.10.2 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking mime v0.2.6 [INFO] [stderr] Checking core_maths v0.1.1 [INFO] [stderr] Checking qoi v0.4.1 [INFO] [stderr] Checking float-cmp v0.9.0 [INFO] [stderr] Compiling const-random-macro v0.1.16 [INFO] [stderr] Checking ttf-parser v0.24.1 [INFO] [stderr] Checking exr v1.73.0 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking roxmltree v0.20.0 [INFO] [stderr] Checking xxhash-rust v0.8.15 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking kurbo v0.11.1 [INFO] [stderr] Checking redox-log v0.1.4 [INFO] [stderr] Checking rust-argon2 v0.8.3 [INFO] [stderr] Checking const-random v0.1.18 [INFO] [stderr] Checking memmap2 v0.9.5 [INFO] [stderr] Checking dlv-list v0.5.2 [INFO] [stderr] Checking unicode-script v0.5.7 [INFO] [stderr] Compiling servo-freetype-sys v4.0.5 [INFO] [stderr] Compiling expat-sys v2.1.6 [INFO] [stderr] Checking fontconfig-parser v0.5.7 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking unicode-ccc v0.3.0 [INFO] [stderr] Checking unicode-bidi-mirroring v0.3.0 [INFO] [stderr] Checking unicode-properties v0.1.3 [INFO] [stderr] Checking simplecss v0.2.2 [INFO] [stderr] Checking unicode-vo v0.1.0 [INFO] [stderr] Checking data-url v0.3.1 [INFO] [stderr] Checking quick-error v2.0.1 [INFO] [stderr] Checking xmlwriter v0.1.0 [INFO] [stderr] Checking imagesize v0.13.0 [INFO] [stderr] Checking servo-fontconfig v0.4.0 [INFO] [stderr] Checking svgtypes v0.15.3 [INFO] [stderr] Checking pico-args v0.5.0 [INFO] [stderr] Checking zune-jpeg v0.4.14 [INFO] [stderr] Checking font-loader v0.7.0 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking image-webp v0.1.3 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking rgb v0.8.50 [INFO] [stderr] Checking redox_event v0.4.3 [INFO] [stderr] Checking jpeg-decoder v0.1.22 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Checking jpeg-decoder v0.3.1 [INFO] [stderr] Compiling phf_codegen v0.7.24 [INFO] [stderr] Compiling mime_guess v1.8.8 [INFO] [stderr] Checking ordered-multimap v0.7.3 [INFO] [stderr] Checking orbfont v0.1.10 [INFO] [stderr] Checking rust-ini v0.20.0 [INFO] [stderr] Checking tiff v0.9.1 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking redox_users v0.4.6 [INFO] [stderr] Checking freedesktop-icons v0.2.6 [INFO] [stderr] Checking freedesktop_entry_parser v1.3.0 [INFO] [stderr] Checking rustybuzz v0.18.0 [INFO] [stderr] Checking fontdb v0.22.0 [INFO] [stderr] Checking tiff v0.2.2 [INFO] [stderr] Checking image v0.21.3 [INFO] [stderr] Compiling cssparser-macros v0.3.6 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking usvg v0.44.0 [INFO] [stderr] Checking orbimage v0.1.17 [INFO] [stderr] Checking orbtk v0.2.31 [INFO] [stderr] Checking resvg v0.44.0 [INFO] [stderr] Checking launcher v0.1.0 (/opt/rustwide/workdir/launcher) [INFO] [stderr] Checking orbutils v0.1.16 (/opt/rustwide/workdir/orbutils) [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> launcher/src/main.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 56 | static UI_PATH: &'static str = "ui"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: statics have by default a `'static` lifetime [INFO] [stdout] --> launcher/src/main.rs:56:18 [INFO] [stdout] | [INFO] [stdout] 56 | static UI_PATH: &'static str = "ui"; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> launcher/src/package.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | / match self { [INFO] [stdout] 22 | | IconSource::Name(name) => { [INFO] [stdout] 23 | | let size = if small { 32 } else { 48 }; [INFO] [stdout] 24 | | let scale = crate::SCALE.load(Ordering::Relaxed) as u16; [INFO] [stdout] ... | [INFO] [stdout] 36 | | _ => {} [INFO] [stdout] 37 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 21 ~ if let IconSource::Name(name) = self { [INFO] [stdout] 22 + let size = if small { 32 } else { 48 }; [INFO] [stdout] 23 + let scale = crate::SCALE.load(Ordering::Relaxed) as u16; [INFO] [stdout] 24 + if let Some(path) = freedesktop_icons::lookup(name) [INFO] [stdout] 25 + .with_size(size) [INFO] [stdout] 26 + .with_scale(scale) [INFO] [stdout] 27 + .with_theme("Cosmic") [INFO] [stdout] 28 + .find() [INFO] [stdout] 29 + { [INFO] [stdout] 30 + *self = IconSource::Path(path) [INFO] [stdout] 31 + } else { [INFO] [stdout] 32 + log::warn!("failed to find icon {name} with size {size} and scale {scale}"); [INFO] [stdout] 33 + } [INFO] [stdout] 34 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/package.rs:67:41 [INFO] [stdout] | [INFO] [stdout] 67 | load_icon_small(&path) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/package.rs:69:35 [INFO] [stdout] | [INFO] [stdout] 69 | load_icon(&path) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/package.rs:72:35 [INFO] [stdout] | [INFO] [stdout] 72 | load_icon_svg(&path, self.small) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:145:32 [INFO] [stdout] | [INFO] [stdout] 145 | package.name = line[5..].to_string(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | if line.starts_with("name=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 144 ~ if let Some() = line.strip_prefix("name=") { [INFO] [stdout] 145 ~ package.name = .to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:147:32 [INFO] [stdout] | [INFO] [stdout] 147 | let category = &line[9..]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:146:20 [INFO] [stdout] | [INFO] [stdout] 146 | } else if line.starts_with("category=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 146 ~ } else if let Some(category) = line.strip_prefix("category=") { [INFO] [stdout] 147 ~ if !category.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:152:40 [INFO] [stdout] | [INFO] [stdout] 152 | match shlex::try_quote(&line[7..]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:151:20 [INFO] [stdout] | [INFO] [stdout] 151 | } else if line.starts_with("binary=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 151 ~ } else if let Some() = line.strip_prefix("binary=") { [INFO] [stdout] 152 ~ match shlex::try_quote() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:162:38 [INFO] [stdout] | [INFO] [stdout] 162 | let path = Path::new(&line[5..]); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:161:20 [INFO] [stdout] | [INFO] [stdout] 161 | } else if line.starts_with("icon=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 161 ~ } else if let Some() = line.strip_prefix("icon=") { [INFO] [stdout] 162 ~ let path = Path::new(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:166:38 [INFO] [stdout] | [INFO] [stdout] 166 | package.accepts.push(line[7..].to_string()); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 165 | } else if line.starts_with("accept=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 165 ~ } else if let Some() = line.strip_prefix("accept=") { [INFO] [stdout] 166 ~ package.accepts.push(.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:168:38 [INFO] [stdout] | [INFO] [stdout] 168 | package.authors.push(line[7..].to_string()); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:167:20 [INFO] [stdout] | [INFO] [stdout] 167 | } else if line.starts_with("author=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 167 ~ } else if let Some() = line.strip_prefix("author=") { [INFO] [stdout] 168 ~ package.authors.push(.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:170:43 [INFO] [stdout] | [INFO] [stdout] 170 | package.descriptions.push(line[12..].to_string()); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:169:20 [INFO] [stdout] | [INFO] [stdout] 169 | } else if line.starts_with("description=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 169 ~ } else if let Some() = line.strip_prefix("description=") { [INFO] [stdout] 170 ~ package.descriptions.push(.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> launcher/src/main.rs:108:20 [INFO] [stdout] | [INFO] [stdout] 108 | return Err(io::Error::new( [INFO] [stdout] | ____________________^ [INFO] [stdout] 109 | | ErrorKind::Other, [INFO] [stdout] 110 | | format!("waitpid failed: {}", err), [INFO] [stdout] 111 | | )); [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] 108 ~ return Err(io::Error::other( [INFO] [stdout] 109 ~ format!("waitpid failed: {}", err), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> launcher/src/main.rs:230:61 [INFO] [stdout] | [INFO] [stdout] 230 | fn draw_chooser(window: &mut Window, font: &Font, packages: &mut Vec, selected: i32) { [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] 230 - fn draw_chooser(window: &mut Window, font: &Font, packages: &mut Vec, selected: i32) { [INFO] [stdout] 230 + fn draw_chooser(window: &mut Window, font: &Font, packages: &mut [Package], selected: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/main.rs:342:30 [INFO] [stdout] | [INFO] [stdout] 342 | start: load_icon(&format!("{}/icons/places/start-here.png", UI_PATH)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{}/icons/places/start-here.png", UI_PATH)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fs` and `path::PathBuf` [INFO] [stdout] --> orbutils/src/orblogin/keymap.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fs, path::PathBuf, process::Command}; [INFO] [stdout] | ^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:400:21 [INFO] [stdout] | [INFO] [stdout] 400 | x as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:401:21 [INFO] [stdout] | [INFO] [stdout] 401 | y as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:402:21 [INFO] [stdout] | [INFO] [stdout] 402 | self.start.width() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.start.width()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:403:21 [INFO] [stdout] | [INFO] [stdout] 403 | self.start.height() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.start.height()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:408:47 [INFO] [stdout] | [INFO] [stdout] 408 | self.start.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:408:57 [INFO] [stdout] | [INFO] [stdout] 408 | self.start.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:418:21 [INFO] [stdout] | [INFO] [stdout] 418 | x as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:419:21 [INFO] [stdout] | [INFO] [stdout] 419 | y as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:420:21 [INFO] [stdout] | [INFO] [stdout] 420 | image.width() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `image.width()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:421:21 [INFO] [stdout] | [INFO] [stdout] 421 | image.height() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `image.height()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `fs` and `path::PathBuf` [INFO] [stdout] --> orbutils/src/orblogin/keymap.rs:1:11 [INFO] [stdout] | [INFO] [stdout] 1 | use std::{fs, path::PathBuf, process::Command}; [INFO] [stdout] | ^^ ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:438:42 [INFO] [stdout] | [INFO] [stdout] 438 | image.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:438:52 [INFO] [stdout] | [INFO] [stdout] 438 | image.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:448:21 [INFO] [stdout] | [INFO] [stdout] 448 | x as i32 + 4, [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:449:21 [INFO] [stdout] | [INFO] [stdout] 449 | y as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:506:25 [INFO] [stdout] | [INFO] [stdout] 506 | / if !focus_event.focused { [INFO] [stdout] 507 | | break 'start_choosing; [INFO] [stdout] 508 | | } else { [INFO] [stdout] 509 | | false [INFO] [stdout] 510 | | } [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] 505 ~ EventOption::Focus(focus_event) [INFO] [stdout] 506 ~ if !focus_event.focused => { [INFO] [stdout] 507 | break 'start_choosing; [INFO] [stdout] 508 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `package_i` is only used to index `packages` [INFO] [stdout] --> launcher/src/main.rs:534:42 [INFO] [stdout] | [INFO] [stdout] 534 | for package_i in 0..packages.len() { [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] 534 - for package_i in 0..packages.len() { [INFO] [stdout] 534 + for in &packages { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/main.rs:580:36 [INFO] [stdout] | [INFO] [stdout] 580 | let mut time_file = File::open(&format!("/scheme/time/{}", flag::CLOCK_MONOTONIC))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("/scheme/time/{}", flag::CLOCK_MONOTONIC)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: written amount is not handled [INFO] [stdout] --> launcher/src/main.rs:661:17 [INFO] [stdout] | [INFO] [stdout] 661 | time_file.write(&time_buf)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Write::write_all` instead, or handle partial writes [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stdout] = note: `#[deny(clippy::unused_io_amount)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be written as a `let` statement [INFO] [stdout] --> launcher/src/main.rs:655:17 [INFO] [stdout] | [INFO] [stdout] 655 | / match libredox::data::timespec_from_mut_bytes(&mut time_buf) { [INFO] [stdout] 656 | | time => { [INFO] [stdout] 657 | | time.tv_sec += 1; [INFO] [stdout] 658 | | time.tv_nsec = 0; [INFO] [stdout] 659 | | } [INFO] [stdout] 660 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using a `let` statement [INFO] [stdout] | [INFO] [stdout] 655 ~ let time = libredox::data::timespec_from_mut_bytes(&mut time_buf); [INFO] [stdout] 656 + { [INFO] [stdout] 657 + time.tv_sec += 1; [INFO] [stdout] 658 + time.tv_nsec = 0; [INFO] [stdout] 659 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> launcher/src/main.rs:673:25 [INFO] [stdout] | [INFO] [stdout] 673 | / match event_option { [INFO] [stdout] 674 | | EventOption::Key(key_event) => match key_event.scancode { [INFO] [stdout] 675 | | orbclient::K_B => { [INFO] [stdout] 676 | | if key_event.pressed { [INFO] [stdout] ... | [INFO] [stdout] 692 | | _ => (), [INFO] [stdout] 693 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 673 ~ if let EventOption::Key(key_event) = event_option { match key_event.scancode { [INFO] [stdout] 674 + orbclient::K_B => { [INFO] [stdout] 675 + if key_event.pressed { [INFO] [stdout] 676 + bar.spawn("netsurf-fb".to_string()); [INFO] [stdout] 677 + } [INFO] [stdout] 678 + } [INFO] [stdout] 679 + orbclient::K_F => { [INFO] [stdout] 680 + if key_event.pressed { [INFO] [stdout] 681 + bar.spawn("cosmic-files".to_string()); [INFO] [stdout] 682 + } [INFO] [stdout] 683 + } [INFO] [stdout] 684 + orbclient::K_T => { [INFO] [stdout] 685 + if key_event.pressed { [INFO] [stdout] 686 + bar.spawn("cosmic-term".to_string()); [INFO] [stdout] 687 + } [INFO] [stdout] 688 + } [INFO] [stdout] 689 + _ => (), [INFO] [stdout] 690 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:676:37 [INFO] [stdout] | [INFO] [stdout] 676 | / ... if key_event.pressed { [INFO] [stdout] 677 | | ... bar.spawn("netsurf-fb".to_string()); [INFO] [stdout] 678 | | ... } [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] 675 ~ orbclient::K_B [INFO] [stdout] 676 ~ if key_event.pressed => { [INFO] [stdout] 677 | bar.spawn("netsurf-fb".to_string()); [INFO] [stdout] 678 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:681:37 [INFO] [stdout] | [INFO] [stdout] 681 | / ... if key_event.pressed { [INFO] [stdout] 682 | | ... bar.spawn("cosmic-files".to_string()); [INFO] [stdout] 683 | | ... } [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] 680 ~ orbclient::K_F [INFO] [stdout] 681 ~ if key_event.pressed => { [INFO] [stdout] 682 | bar.spawn("cosmic-files".to_string()); [INFO] [stdout] 683 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:686:37 [INFO] [stdout] | [INFO] [stdout] 686 | / ... if key_event.pressed { [INFO] [stdout] 687 | | ... bar.spawn("cosmic-term".to_string()); [INFO] [stdout] 688 | | ... } [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] 685 ~ orbclient::K_T [INFO] [stdout] 686 ~ if key_event.pressed => { [INFO] [stdout] 687 | bar.spawn("cosmic-term".to_string()); [INFO] [stdout] 688 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/main.rs:779:56 [INFO] [stdout] | [INFO] [stdout] 779 | ... let category = &exec[9..]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/main.rs:778:37 [INFO] [stdout] | [INFO] [stdout] 778 | ... if exec.starts_with("category=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 778 ~ if let Some(category) = exec.strip_prefix("category=") { [INFO] [stdout] 779 ~ category_opt = Some(category.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `libredox` [INFO] [stdout] --> orbutils/src/background/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use libredox::flag; [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `libredox` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `libredox`, use `cargo add libredox` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `event` [INFO] [stdout] --> orbutils/src/background/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use event::RawEventQueue; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: a similar path exists [INFO] [stdout] | [INFO] [stdout] 19 | use orbtk::event::RawEventQueue; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> launcher/src/main.rs:904:68 [INFO] [stdout] | [INFO] [stdout] 904 | ... spawn_exec(&package.exec, Some(&path)); [INFO] [stdout] | ^^^^^ help: change this to: `path` [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: accessing first element with `packages.get(0)` [INFO] [stdout] --> launcher/src/main.rs:915:39 [INFO] [stdout] | [INFO] [stdout] 915 | } else if let Some(package) = packages.get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `packages.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> launcher/src/main.rs:916:44 [INFO] [stdout] | [INFO] [stdout] 916 | spawn_exec(&package.exec, Some(&path)); [INFO] [stdout] | ^^^^^ help: change this to: `path` [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] error[E0432]: unresolved import `libredox` [INFO] [stdout] --> orbutils/src/background/main.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use libredox::flag; [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `libredox` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `libredox`, use `cargo add libredox` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0432]: unresolved import `event` [INFO] [stdout] --> orbutils/src/background/main.rs:19:5 [INFO] [stdout] | [INFO] [stdout] 19 | use event::RawEventQueue; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] help: a similar path exists [INFO] [stdout] | [INFO] [stdout] 19 | use orbtk::event::RawEventQueue; [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find module or crate `libredox` in this scope [INFO] [stdout] --> orbutils/src/background/main.rs:226:22 [INFO] [stdout] | [INFO] [stdout] 226 | let file = match libredox::call::open(path, flag::O_CLOEXEC | flag::O_PATH, 0) { [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `libredox` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `libredox`, use `cargo add libredox` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find module or crate `libredox` in this scope [INFO] [stdout] --> orbutils/src/background/main.rs:232:17 [INFO] [stdout] | [INFO] [stdout] 232 | let count = libredox::call::fpath(file.as_raw_fd() as usize, &mut buf) [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `libredox` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `libredox`, use `cargo add libredox` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `launcher` (bin "launcher" test) due to 1 previous error; 41 warnings emitted [INFO] [stdout] error[E0433]: cannot find module or crate `event` in this scope [INFO] [stdout] --> orbutils/src/background/main.rs:348:17 [INFO] [stdout] | [INFO] [stdout] 348 | event::EventFlags::READ, [INFO] [stdout] | ^^^^^ use of unresolved module or unlinked crate `event` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `event`, use `cargo add event` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error[E0433]: cannot find module or crate `libredox` in this scope [INFO] [stdout] --> orbutils/src/background/main.rs:226:22 [INFO] [stdout] | [INFO] [stdout] 226 | let file = match libredox::call::open(path, flag::O_CLOEXEC | flag::O_PATH, 0) { [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `libredox` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `libredox`, use `cargo add libredox` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `username` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:731:35 [INFO] [stdout] | [INFO] [stdout] 731 | Ok(Some((mut command, username))) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find module or crate `libredox` in this scope [INFO] [stdout] --> orbutils/src/background/main.rs:232:17 [INFO] [stdout] | [INFO] [stdout] 232 | let count = libredox::call::fpath(file.as_raw_fd() as usize, &mut buf) [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `libredox` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `libredox`, use `cargo add libredox` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> orbutils/src/orblogin/keymap.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | 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] 38 - return false; [INFO] [stdout] 38 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> orbutils/src/orblogin/keymap.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / if let Ok(output) = Command::new("inputd").arg("-K").arg(val).status() { [INFO] [stdout] 32 | | if output.success() { [INFO] [stdout] 33 | | self.active = val.to_owned(); [INFO] [stdout] 34 | | return true; [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [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] 31 ~ if let Ok(output) = Command::new("inputd").arg("-K").arg(val).status() [INFO] [stdout] 32 ~ && output.success() { [INFO] [stdout] 33 | self.active = val.to_owned(); [INFO] [stdout] 34 | return true; [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:107:33 [INFO] [stdout] | [INFO] [stdout] 107 | match sys_users.get_by_name(&username) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `username` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:109:35 [INFO] [stdout] | [INFO] [stdout] 109 | if user.verify_passwd(&pass) { [INFO] [stdout] | ^^^^^ help: change this to: `pass` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `orbutils` (bin "background") due to 5 previous errors [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:110:50 [INFO] [stdout] | [INFO] [stdout] 110 | let mut command = user.login_cmd(&launcher_cmd); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `launcher_cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:112:33 [INFO] [stdout] | [INFO] [stdout] 112 | command.arg(&arg); [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0432, E0433. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0432`. [INFO] [stdout] [INFO] [stdout] error[E0433]: cannot find module or crate `event` in this scope [INFO] [stdout] --> orbutils/src/background/main.rs:348:17 [INFO] [stdout] | [INFO] [stdout] 348 | event::EventFlags::READ, [INFO] [stdout] | ^^^^^ use of unresolved module or unlinked crate `event` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `event`, use `cargo add event` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> orbutils/src/orblogin/main.rs:331:40 [INFO] [stdout] | [INFO] [stdout] 331 | let text = font.render(&"Login", 16.0 * s_f); [INFO] [stdout] | ^^^^^^^^ help: change this to: `"Login"` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:500:21 [INFO] [stdout] | [INFO] [stdout] 500 | / if key_event.pressed { [INFO] [stdout] 501 | | if keymap_dropdown_open || power_dropdown_open { [INFO] [stdout] 502 | | match key_event.scancode { [INFO] [stdout] 503 | | orbclient::K_ENTER | orbclient::K_ESC | orbclient::K_TAB => { [INFO] [stdout] ... | [INFO] [stdout] 572 | | } [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] 499 ~ EventOption::Key(key_event) [INFO] [stdout] 500 ~ if key_event.pressed => { [INFO] [stdout] 501 | if keymap_dropdown_open || power_dropdown_open { [INFO] [stdout] ... [INFO] [stdout] 571 | } [INFO] [stdout] 572 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:723:42 [INFO] [stdout] | [INFO] [stdout] 723 | let launcher_cmd = args.next().ok_or(io::Error::new( [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 724 | | io::ErrorKind::Other, [INFO] [stdout] 725 | | "Could not get 'launcher_cmd'", [INFO] [stdout] 726 | | ))?; [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] 723 ~ let launcher_cmd = args.next().ok_or(io::Error::other( [INFO] [stdout] 724 ~ "Could not get 'launcher_cmd'", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:179:25 [INFO] [stdout] | [INFO] [stdout] 179 | let power_options = vec!["Restart", "Shutdown"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["Restart", "Shutdown"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0432, E0433. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0432`. [INFO] [stdout] [INFO] [stdout] warning: unused variable: `username` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:731:35 [INFO] [stdout] | [INFO] [stdout] 731 | Ok(Some((mut command, username))) => { [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_username` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `orbutils` (bin "background" test) due to 5 previous errors [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> orbutils/src/orblogin/keymap.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | 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] 38 - return false; [INFO] [stdout] 38 + false [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> orbutils/src/orblogin/keymap.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 31 | / if let Ok(output) = Command::new("inputd").arg("-K").arg(val).status() { [INFO] [stdout] 32 | | if output.success() { [INFO] [stdout] 33 | | self.active = val.to_owned(); [INFO] [stdout] 34 | | return true; [INFO] [stdout] 35 | | } [INFO] [stdout] 36 | | } [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] 31 ~ if let Ok(output) = Command::new("inputd").arg("-K").arg(val).status() [INFO] [stdout] 32 ~ && output.success() { [INFO] [stdout] 33 | self.active = val.to_owned(); [INFO] [stdout] 34 | return true; [INFO] [stdout] 35 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:107:33 [INFO] [stdout] | [INFO] [stdout] 107 | match sys_users.get_by_name(&username) { [INFO] [stdout] | ^^^^^^^^^ help: change this to: `username` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:109:35 [INFO] [stdout] | [INFO] [stdout] 109 | if user.verify_passwd(&pass) { [INFO] [stdout] | ^^^^^ help: change this to: `pass` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:110:50 [INFO] [stdout] | [INFO] [stdout] 110 | let mut command = user.login_cmd(&launcher_cmd); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `launcher_cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> orbutils/src/orblogin/main.rs:112:33 [INFO] [stdout] | [INFO] [stdout] 112 | command.arg(&arg); [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> orbutils/src/orblogin/main.rs:331:40 [INFO] [stdout] | [INFO] [stdout] 331 | let text = font.render(&"Login", 16.0 * s_f); [INFO] [stdout] | ^^^^^^^^ help: change this to: `"Login"` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:500:21 [INFO] [stdout] | [INFO] [stdout] 500 | / if key_event.pressed { [INFO] [stdout] 501 | | if keymap_dropdown_open || power_dropdown_open { [INFO] [stdout] 502 | | match key_event.scancode { [INFO] [stdout] 503 | | orbclient::K_ENTER | orbclient::K_ESC | orbclient::K_TAB => { [INFO] [stdout] ... | [INFO] [stdout] 572 | | } [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] 499 ~ EventOption::Key(key_event) [INFO] [stdout] 500 ~ if key_event.pressed => { [INFO] [stdout] 501 | if keymap_dropdown_open || power_dropdown_open { [INFO] [stdout] ... [INFO] [stdout] 571 | } [INFO] [stdout] 572 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:723:42 [INFO] [stdout] | [INFO] [stdout] 723 | let launcher_cmd = args.next().ok_or(io::Error::new( [INFO] [stdout] | __________________________________________^ [INFO] [stdout] 724 | | io::ErrorKind::Other, [INFO] [stdout] 725 | | "Could not get 'launcher_cmd'", [INFO] [stdout] 726 | | ))?; [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] 723 ~ let launcher_cmd = args.next().ok_or(io::Error::other( [INFO] [stdout] 724 ~ "Could not get 'launcher_cmd'", [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> orbutils/src/orblogin/main.rs:179:25 [INFO] [stdout] | [INFO] [stdout] 179 | let power_options = vec!["Restart", "Shutdown"]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["Restart", "Shutdown"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> launcher/src/package.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | / match self { [INFO] [stdout] 22 | | IconSource::Name(name) => { [INFO] [stdout] 23 | | let size = if small { 32 } else { 48 }; [INFO] [stdout] 24 | | let scale = crate::SCALE.load(Ordering::Relaxed) as u16; [INFO] [stdout] ... | [INFO] [stdout] 36 | | _ => {} [INFO] [stdout] 37 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 21 ~ if let IconSource::Name(name) = self { [INFO] [stdout] 22 + let size = if small { 32 } else { 48 }; [INFO] [stdout] 23 + let scale = crate::SCALE.load(Ordering::Relaxed) as u16; [INFO] [stdout] 24 + if let Some(path) = freedesktop_icons::lookup(name) [INFO] [stdout] 25 + .with_size(size) [INFO] [stdout] 26 + .with_scale(scale) [INFO] [stdout] 27 + .with_theme("Cosmic") [INFO] [stdout] 28 + .find() [INFO] [stdout] 29 + { [INFO] [stdout] 30 + *self = IconSource::Path(path) [INFO] [stdout] 31 + } else { [INFO] [stdout] 32 + log::warn!("failed to find icon {name} with size {size} and scale {scale}"); [INFO] [stdout] 33 + } [INFO] [stdout] 34 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/package.rs:67:41 [INFO] [stdout] | [INFO] [stdout] 67 | load_icon_small(&path) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/package.rs:69:35 [INFO] [stdout] | [INFO] [stdout] 69 | load_icon(&path) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/package.rs:72:35 [INFO] [stdout] | [INFO] [stdout] 72 | load_icon_svg(&path, self.small) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:145:32 [INFO] [stdout] | [INFO] [stdout] 145 | package.name = line[5..].to_string(); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:144:13 [INFO] [stdout] | [INFO] [stdout] 144 | if line.starts_with("name=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] = note: `#[warn(clippy::manual_strip)]` on by default [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 144 ~ if let Some() = line.strip_prefix("name=") { [INFO] [stdout] 145 ~ package.name = .to_string(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:147:32 [INFO] [stdout] | [INFO] [stdout] 147 | let category = &line[9..]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:146:20 [INFO] [stdout] | [INFO] [stdout] 146 | } else if line.starts_with("category=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 146 ~ } else if let Some(category) = line.strip_prefix("category=") { [INFO] [stdout] 147 ~ if !category.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:152:40 [INFO] [stdout] | [INFO] [stdout] 152 | match shlex::try_quote(&line[7..]) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:151:20 [INFO] [stdout] | [INFO] [stdout] 151 | } else if line.starts_with("binary=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 151 ~ } else if let Some() = line.strip_prefix("binary=") { [INFO] [stdout] 152 ~ match shlex::try_quote() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:162:38 [INFO] [stdout] | [INFO] [stdout] 162 | let path = Path::new(&line[5..]); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:161:20 [INFO] [stdout] | [INFO] [stdout] 161 | } else if line.starts_with("icon=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 161 ~ } else if let Some() = line.strip_prefix("icon=") { [INFO] [stdout] 162 ~ let path = Path::new(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:166:38 [INFO] [stdout] | [INFO] [stdout] 166 | package.accepts.push(line[7..].to_string()); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 165 | } else if line.starts_with("accept=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 165 ~ } else if let Some() = line.strip_prefix("accept=") { [INFO] [stdout] 166 ~ package.accepts.push(.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:168:38 [INFO] [stdout] | [INFO] [stdout] 168 | package.authors.push(line[7..].to_string()); [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:167:20 [INFO] [stdout] | [INFO] [stdout] 167 | } else if line.starts_with("author=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 167 ~ } else if let Some() = line.strip_prefix("author=") { [INFO] [stdout] 168 ~ package.authors.push(.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/package.rs:170:43 [INFO] [stdout] | [INFO] [stdout] 170 | package.descriptions.push(line[12..].to_string()); [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/package.rs:169:20 [INFO] [stdout] | [INFO] [stdout] 169 | } else if line.starts_with("description=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 169 ~ } else if let Some() = line.strip_prefix("description=") { [INFO] [stdout] 170 ~ package.descriptions.push(.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> launcher/src/main.rs:108:20 [INFO] [stdout] | [INFO] [stdout] 108 | return Err(io::Error::new( [INFO] [stdout] | ____________________^ [INFO] [stdout] 109 | | ErrorKind::Other, [INFO] [stdout] 110 | | format!("waitpid failed: {}", err), [INFO] [stdout] 111 | | )); [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] 108 ~ return Err(io::Error::other( [INFO] [stdout] 109 ~ format!("waitpid failed: {}", err), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> launcher/src/main.rs:230:61 [INFO] [stdout] | [INFO] [stdout] 230 | fn draw_chooser(window: &mut Window, font: &Font, packages: &mut Vec, selected: i32) { [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] 230 - fn draw_chooser(window: &mut Window, font: &Font, packages: &mut Vec, selected: i32) { [INFO] [stdout] 230 + fn draw_chooser(window: &mut Window, font: &Font, packages: &mut [Package], selected: i32) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/main.rs:342:30 [INFO] [stdout] | [INFO] [stdout] 342 | start: load_icon(&format!("{}/icons/places/start-here.png", UI_PATH)), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("{}/icons/places/start-here.png", UI_PATH)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:400:21 [INFO] [stdout] | [INFO] [stdout] 400 | x as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:401:21 [INFO] [stdout] | [INFO] [stdout] 401 | y as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:402:21 [INFO] [stdout] | [INFO] [stdout] 402 | self.start.width() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.start.width()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:403:21 [INFO] [stdout] | [INFO] [stdout] 403 | self.start.height() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.start.height()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:408:47 [INFO] [stdout] | [INFO] [stdout] 408 | self.start.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:408:57 [INFO] [stdout] | [INFO] [stdout] 408 | self.start.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:418:21 [INFO] [stdout] | [INFO] [stdout] 418 | x as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:419:21 [INFO] [stdout] | [INFO] [stdout] 419 | y as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:420:21 [INFO] [stdout] | [INFO] [stdout] 420 | image.width() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try: `image.width()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`u32` -> `u32`) [INFO] [stdout] --> launcher/src/main.rs:421:21 [INFO] [stdout] | [INFO] [stdout] 421 | image.height() as u32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `image.height()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:438:42 [INFO] [stdout] | [INFO] [stdout] 438 | image.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:438:52 [INFO] [stdout] | [INFO] [stdout] 438 | image.draw(&mut self.window, x as i32, y as i32); [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:448:21 [INFO] [stdout] | [INFO] [stdout] 448 | x as i32 + 4, [INFO] [stdout] | ^^^^^^^^ help: try: `x` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> launcher/src/main.rs:449:21 [INFO] [stdout] | [INFO] [stdout] 449 | y as i32, [INFO] [stdout] | ^^^^^^^^ help: try: `y` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:506:25 [INFO] [stdout] | [INFO] [stdout] 506 | / if !focus_event.focused { [INFO] [stdout] 507 | | break 'start_choosing; [INFO] [stdout] 508 | | } else { [INFO] [stdout] 509 | | false [INFO] [stdout] 510 | | } [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] 505 ~ EventOption::Focus(focus_event) [INFO] [stdout] 506 ~ if !focus_event.focused => { [INFO] [stdout] 507 | break 'start_choosing; [INFO] [stdout] 508 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `package_i` is only used to index `packages` [INFO] [stdout] --> launcher/src/main.rs:534:42 [INFO] [stdout] | [INFO] [stdout] 534 | for package_i in 0..packages.len() { [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] 534 - for package_i in 0..packages.len() { [INFO] [stdout] 534 + for in &packages { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> launcher/src/main.rs:580:36 [INFO] [stdout] | [INFO] [stdout] 580 | let mut time_file = File::open(&format!("/scheme/time/{}", flag::CLOCK_MONOTONIC))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `format!("/scheme/time/{}", flag::CLOCK_MONOTONIC)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: written amount is not handled [INFO] [stdout] --> launcher/src/main.rs:661:17 [INFO] [stdout] | [INFO] [stdout] 661 | time_file.write(&time_buf)?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: use `Write::write_all` instead, or handle partial writes [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_io_amount [INFO] [stdout] = note: `#[deny(clippy::unused_io_amount)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this match could be written as a `let` statement [INFO] [stdout] --> launcher/src/main.rs:655:17 [INFO] [stdout] | [INFO] [stdout] 655 | / match libredox::data::timespec_from_mut_bytes(&mut time_buf) { [INFO] [stdout] 656 | | time => { [INFO] [stdout] 657 | | time.tv_sec += 1; [INFO] [stdout] 658 | | time.tv_nsec = 0; [INFO] [stdout] 659 | | } [INFO] [stdout] 660 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_single_binding [INFO] [stdout] = note: `#[warn(clippy::match_single_binding)]` on by default [INFO] [stdout] help: consider using a `let` statement [INFO] [stdout] | [INFO] [stdout] 655 ~ let time = libredox::data::timespec_from_mut_bytes(&mut time_buf); [INFO] [stdout] 656 + { [INFO] [stdout] 657 + time.tv_sec += 1; [INFO] [stdout] 658 + time.tv_nsec = 0; [INFO] [stdout] 659 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> launcher/src/main.rs:673:25 [INFO] [stdout] | [INFO] [stdout] 673 | / match event_option { [INFO] [stdout] 674 | | EventOption::Key(key_event) => match key_event.scancode { [INFO] [stdout] 675 | | orbclient::K_B => { [INFO] [stdout] 676 | | if key_event.pressed { [INFO] [stdout] ... | [INFO] [stdout] 692 | | _ => (), [INFO] [stdout] 693 | | } [INFO] [stdout] | |_________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 673 ~ if let EventOption::Key(key_event) = event_option { match key_event.scancode { [INFO] [stdout] 674 + orbclient::K_B => { [INFO] [stdout] 675 + if key_event.pressed { [INFO] [stdout] 676 + bar.spawn("netsurf-fb".to_string()); [INFO] [stdout] 677 + } [INFO] [stdout] 678 + } [INFO] [stdout] 679 + orbclient::K_F => { [INFO] [stdout] 680 + if key_event.pressed { [INFO] [stdout] 681 + bar.spawn("cosmic-files".to_string()); [INFO] [stdout] 682 + } [INFO] [stdout] 683 + } [INFO] [stdout] 684 + orbclient::K_T => { [INFO] [stdout] 685 + if key_event.pressed { [INFO] [stdout] 686 + bar.spawn("cosmic-term".to_string()); [INFO] [stdout] 687 + } [INFO] [stdout] 688 + } [INFO] [stdout] 689 + _ => (), [INFO] [stdout] 690 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:676:37 [INFO] [stdout] | [INFO] [stdout] 676 | / ... if key_event.pressed { [INFO] [stdout] 677 | | ... bar.spawn("netsurf-fb".to_string()); [INFO] [stdout] 678 | | ... } [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] 675 ~ orbclient::K_B [INFO] [stdout] 676 ~ if key_event.pressed => { [INFO] [stdout] 677 | bar.spawn("netsurf-fb".to_string()); [INFO] [stdout] 678 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:681:37 [INFO] [stdout] | [INFO] [stdout] 681 | / ... if key_event.pressed { [INFO] [stdout] 682 | | ... bar.spawn("cosmic-files".to_string()); [INFO] [stdout] 683 | | ... } [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] 680 ~ orbclient::K_F [INFO] [stdout] 681 ~ if key_event.pressed => { [INFO] [stdout] 682 | bar.spawn("cosmic-files".to_string()); [INFO] [stdout] 683 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> launcher/src/main.rs:686:37 [INFO] [stdout] | [INFO] [stdout] 686 | / ... if key_event.pressed { [INFO] [stdout] 687 | | ... bar.spawn("cosmic-term".to_string()); [INFO] [stdout] 688 | | ... } [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] 685 ~ orbclient::K_T [INFO] [stdout] 686 ~ if key_event.pressed => { [INFO] [stdout] 687 | bar.spawn("cosmic-term".to_string()); [INFO] [stdout] 688 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: stripping a prefix manually [INFO] [stdout] --> launcher/src/main.rs:779:56 [INFO] [stdout] | [INFO] [stdout] 779 | ... let category = &exec[9..]; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the prefix was tested here [INFO] [stdout] --> launcher/src/main.rs:778:37 [INFO] [stdout] | [INFO] [stdout] 778 | ... if exec.starts_with("category=") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_strip [INFO] [stdout] help: try using the `strip_prefix` method [INFO] [stdout] | [INFO] [stdout] 778 ~ if let Some(category) = exec.strip_prefix("category=") { [INFO] [stdout] 779 ~ category_opt = Some(category.to_string()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> launcher/src/main.rs:904:68 [INFO] [stdout] | [INFO] [stdout] 904 | ... spawn_exec(&package.exec, Some(&path)); [INFO] [stdout] | ^^^^^ help: change this to: `path` [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: accessing first element with `packages.get(0)` [INFO] [stdout] --> launcher/src/main.rs:915:39 [INFO] [stdout] | [INFO] [stdout] 915 | } else if let Some(package) = packages.get(0) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `packages.first()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_first [INFO] [stdout] = note: `#[warn(clippy::get_first)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> launcher/src/main.rs:916:44 [INFO] [stdout] | [INFO] [stdout] 916 | spawn_exec(&package.exec, Some(&path)); [INFO] [stdout] | ^^^^^ help: change this to: `path` [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] [stderr] error: could not compile `launcher` (bin "launcher") due to 1 previous error; 41 warnings emitted [INFO] running `Command { std: "docker" "inspect" "24465b35fa8aabdcb95fee6431dcfd8f43d2e214318950ca940d7839a798ee23", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "24465b35fa8aabdcb95fee6431dcfd8f43d2e214318950ca940d7839a798ee23", kill_on_drop: false }` [INFO] [stdout] 24465b35fa8aabdcb95fee6431dcfd8f43d2e214318950ca940d7839a798ee23