[INFO] cloning repository https://github.com/leath-dub/vboox [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leath-dub/vboox" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleath-dub%2Fvboox", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleath-dub%2Fvboox'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] dca5ea603cc86b93da3e3143e074764ce242628d [INFO] linting leath-dub/vboox against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleath-dub%2Fvboox" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/leath-dub/vboox [INFO] finished tweaking git repo https://github.com/leath-dub/vboox [INFO] tweaked toml for git repo https://github.com/leath-dub/vboox written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/leath-dub/vboox 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/leath-dub/vboox 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] Downloading crates ... [INFO] [stderr] Downloaded syn v2.0.27 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 32ea1e0683f238c7e309b4acbf95c900d92a5af08b81a62044663accb8aa4317 [INFO] running `Command { std: "docker" "start" "-a" "32ea1e0683f238c7e309b4acbf95c900d92a5af08b81a62044663accb8aa4317", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "32ea1e0683f238c7e309b4acbf95c900d92a5af08b81a62044663accb8aa4317", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "32ea1e0683f238c7e309b4acbf95c900d92a5af08b81a62044663accb8aa4317", kill_on_drop: false }` [INFO] [stdout] 32ea1e0683f238c7e309b4acbf95c900d92a5af08b81a62044663accb8aa4317 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 9567dc3fdcafbe398f85a59e062e54c719b3845a318f836f166874bab0b0d91b [INFO] running `Command { std: "docker" "start" "-a" "9567dc3fdcafbe398f85a59e062e54c719b3845a318f836f166874bab0b0d91b", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.66 [INFO] [stderr] Compiling unicode-ident v1.0.11 [INFO] [stderr] Compiling radium v0.7.0 [INFO] [stderr] Compiling libc v0.2.147 [INFO] [stderr] Compiling thiserror v1.0.44 [INFO] [stderr] Checking tap v1.0.1 [INFO] [stderr] Checking funty v2.0.0 [INFO] [stderr] Checking regex-syntax v0.7.4 [INFO] [stderr] Checking aho-corasick v1.0.2 [INFO] [stderr] Checking wyz v0.5.1 [INFO] [stderr] Compiling quote v1.0.32 [INFO] [stderr] Checking bitvec v1.0.1 [INFO] [stderr] Compiling syn v2.0.27 [INFO] [stderr] Checking nix v0.23.2 [INFO] [stderr] Checking regex-automata v0.3.4 [INFO] [stderr] Compiling thiserror-impl v1.0.44 [INFO] [stderr] Checking regex v1.9.1 [INFO] [stderr] Checking evdev v0.12.1 [INFO] [stderr] Checking vboox v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/boox.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / return Some(Self { [INFO] [stdout] 54 | | dev: VirtualDeviceBuilder::new() [INFO] [stdout] 55 | | .unwrap() [INFO] [stdout] 56 | | .name("Boox Virtual Tablet") [INFO] [stdout] ... | [INFO] [stdout] 113 | | connected: false, [INFO] [stdout] 114 | | }); [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] 53 ~ Some(Self { [INFO] [stdout] 54 + dev: VirtualDeviceBuilder::new() [INFO] [stdout] 55 + .unwrap() [INFO] [stdout] 56 + .name("Boox Virtual Tablet") [INFO] [stdout] 57 + .input_id(InputId::new(BusType::BUS_USB, 1, 1, 1)) [INFO] [stdout] 58 + .with_absolute_axis(abs_setup!(ABS_X, 0, 0, NOTE_AIR_2_MAX_X, 0, 0, NOTE_AIR_2_MAX_X)) [INFO] [stdout] 59 + .unwrap() [INFO] [stdout] 60 + .with_absolute_axis(abs_setup!(ABS_Y, 0, 0, NOTE_AIR_2_MAX_Y, 0, 0, NOTE_AIR_2_MAX_Y)) [INFO] [stdout] 61 + .unwrap() [INFO] [stdout] 62 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 63 + ABS_PRESSURE, [INFO] [stdout] 64 + 0, [INFO] [stdout] 65 + 0, [INFO] [stdout] 66 + NOTE_AIR_2_MAX_PRESSURE, [INFO] [stdout] 67 + 0, [INFO] [stdout] 68 + 0, [INFO] [stdout] 69 + 0 [INFO] [stdout] 70 + )) [INFO] [stdout] 71 + .unwrap() [INFO] [stdout] 72 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 73 + ABS_DISTANCE, [INFO] [stdout] 74 + 0, [INFO] [stdout] 75 + 0, [INFO] [stdout] 76 + NOTE_AIR_2_MAX_DISTANCE, [INFO] [stdout] 77 + 0, [INFO] [stdout] 78 + 0, [INFO] [stdout] 79 + 400 [INFO] [stdout] 80 + )) [INFO] [stdout] 81 + .unwrap() [INFO] [stdout] 82 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 83 + ABS_TILT_X, [INFO] [stdout] 84 + 0, [INFO] [stdout] 85 + NOTE_AIR_2_MIN_TILT_X, [INFO] [stdout] 86 + NOTE_AIR_2_MAX_TILT_X, [INFO] [stdout] 87 + 0, [INFO] [stdout] 88 + 0, [INFO] [stdout] 89 + 0 [INFO] [stdout] 90 + )) [INFO] [stdout] 91 + .unwrap() [INFO] [stdout] 92 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 93 + ABS_TILT_Y, [INFO] [stdout] 94 + 0, [INFO] [stdout] 95 + NOTE_AIR_2_MIN_TILT_Y, [INFO] [stdout] 96 + NOTE_AIR_2_MAX_TILT_Y, [INFO] [stdout] 97 + 0, [INFO] [stdout] 98 + 0, [INFO] [stdout] 99 + 0 [INFO] [stdout] 100 + )) [INFO] [stdout] 101 + .unwrap() [INFO] [stdout] 102 + .with_keys(keys![ [INFO] [stdout] 103 + Key::BTN_TOOL_RUBBER, [INFO] [stdout] 104 + Key::BTN_TOOL_BRUSH, [INFO] [stdout] 105 + Key::BTN_TOUCH, [INFO] [stdout] 106 + Key::BTN_STYLUS, [INFO] [stdout] 107 + Key::BTN_STYLUS2, [INFO] [stdout] 108 + ]) [INFO] [stdout] 109 + .unwrap() [INFO] [stdout] 110 + .build() [INFO] [stdout] 111 + .unwrap(), [INFO] [stdout] 112 + udev_path: Self::get_udev_path(), [INFO] [stdout] 113 + connected: false, [INFO] [stdout] 114 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/devices/boox.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | if !(start.elapsed() >= timeout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(start.elapsed() < timeout)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/boox.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | return Err("Failed to connect"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 137 - return Err("Failed to connect"); [INFO] [stdout] 137 + Err("Failed to connect") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/devices/boox.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | let proc = Command::new("adb") [INFO] [stdout] | ____________________^ [INFO] [stdout] 142 | | .args(["shell", "-T", "getevent", &self.udev_path]) [INFO] [stdout] 143 | | .stdout(Stdio::piped()) [INFO] [stdout] 144 | | .spawn() [INFO] [stdout] 145 | | .expect("Error reading events via getevent"); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: consider calling `.wait()` [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/devices/boox.rs:151:25 [INFO] [stdout] | [INFO] [stdout] 151 | rdr.lines().flatten().for_each(|ev| { [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/devices/boox.rs:151:13 [INFO] [stdout] | [INFO] [stdout] 151 | rdr.lines().flatten().for_each(|ev| { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] = note: `#[warn(clippy::lines_filter_map_ok)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/devices/boox.rs:157:21 [INFO] [stdout] | [INFO] [stdout] 157 | _ = self.dev.emit(event_buf.as_slice()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 157 - _ = self.dev.emit(event_buf.as_slice()).unwrap(); [INFO] [stdout] 157 + self.dev.emit(event_buf.as_slice()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/boox.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return cap.as_str().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - return cap.as_str().to_string(); [INFO] [stdout] 178 + cap.as_str().to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / return match s { [INFO] [stdout] 13 | | "NoteAir2" => NoteAir2::new(), [INFO] [stdout] 14 | | "UltraTabC" => UltraTabC::new(), [INFO] [stdout] 15 | | _ => None, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 12 ~ match s { [INFO] [stdout] 13 + "NoteAir2" => NoteAir2::new(), [INFO] [stdout] 14 + "UltraTabC" => UltraTabC::new(), [INFO] [stdout] 15 + _ => None, [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/boox.rs:53:9 [INFO] [stdout] | [INFO] [stdout] 53 | / return Some(Self { [INFO] [stdout] 54 | | dev: VirtualDeviceBuilder::new() [INFO] [stdout] 55 | | .unwrap() [INFO] [stdout] 56 | | .name("Boox Virtual Tablet") [INFO] [stdout] ... | [INFO] [stdout] 113 | | connected: false, [INFO] [stdout] 114 | | }); [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] 53 ~ Some(Self { [INFO] [stdout] 54 + dev: VirtualDeviceBuilder::new() [INFO] [stdout] 55 + .unwrap() [INFO] [stdout] 56 + .name("Boox Virtual Tablet") [INFO] [stdout] 57 + .input_id(InputId::new(BusType::BUS_USB, 1, 1, 1)) [INFO] [stdout] 58 + .with_absolute_axis(abs_setup!(ABS_X, 0, 0, NOTE_AIR_2_MAX_X, 0, 0, NOTE_AIR_2_MAX_X)) [INFO] [stdout] 59 + .unwrap() [INFO] [stdout] 60 + .with_absolute_axis(abs_setup!(ABS_Y, 0, 0, NOTE_AIR_2_MAX_Y, 0, 0, NOTE_AIR_2_MAX_Y)) [INFO] [stdout] 61 + .unwrap() [INFO] [stdout] 62 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 63 + ABS_PRESSURE, [INFO] [stdout] 64 + 0, [INFO] [stdout] 65 + 0, [INFO] [stdout] 66 + NOTE_AIR_2_MAX_PRESSURE, [INFO] [stdout] 67 + 0, [INFO] [stdout] 68 + 0, [INFO] [stdout] 69 + 0 [INFO] [stdout] 70 + )) [INFO] [stdout] 71 + .unwrap() [INFO] [stdout] 72 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 73 + ABS_DISTANCE, [INFO] [stdout] 74 + 0, [INFO] [stdout] 75 + 0, [INFO] [stdout] 76 + NOTE_AIR_2_MAX_DISTANCE, [INFO] [stdout] 77 + 0, [INFO] [stdout] 78 + 0, [INFO] [stdout] 79 + 400 [INFO] [stdout] 80 + )) [INFO] [stdout] 81 + .unwrap() [INFO] [stdout] 82 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 83 + ABS_TILT_X, [INFO] [stdout] 84 + 0, [INFO] [stdout] 85 + NOTE_AIR_2_MIN_TILT_X, [INFO] [stdout] 86 + NOTE_AIR_2_MAX_TILT_X, [INFO] [stdout] 87 + 0, [INFO] [stdout] 88 + 0, [INFO] [stdout] 89 + 0 [INFO] [stdout] 90 + )) [INFO] [stdout] 91 + .unwrap() [INFO] [stdout] 92 + .with_absolute_axis(abs_setup!( [INFO] [stdout] 93 + ABS_TILT_Y, [INFO] [stdout] 94 + 0, [INFO] [stdout] 95 + NOTE_AIR_2_MIN_TILT_Y, [INFO] [stdout] 96 + NOTE_AIR_2_MAX_TILT_Y, [INFO] [stdout] 97 + 0, [INFO] [stdout] 98 + 0, [INFO] [stdout] 99 + 0 [INFO] [stdout] 100 + )) [INFO] [stdout] 101 + .unwrap() [INFO] [stdout] 102 + .with_keys(keys![ [INFO] [stdout] 103 + Key::BTN_TOOL_RUBBER, [INFO] [stdout] 104 + Key::BTN_TOOL_BRUSH, [INFO] [stdout] 105 + Key::BTN_TOUCH, [INFO] [stdout] 106 + Key::BTN_STYLUS, [INFO] [stdout] 107 + Key::BTN_STYLUS2, [INFO] [stdout] 108 + ]) [INFO] [stdout] 109 + .unwrap() [INFO] [stdout] 110 + .build() [INFO] [stdout] 111 + .unwrap(), [INFO] [stdout] 112 + udev_path: Self::get_udev_path(), [INFO] [stdout] 113 + connected: false, [INFO] [stdout] 114 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/devices/boox.rs:131:12 [INFO] [stdout] | [INFO] [stdout] 131 | if !(start.elapsed() >= timeout) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(start.elapsed() < timeout)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/boox.rs:137:9 [INFO] [stdout] | [INFO] [stdout] 137 | return Err("Failed to connect"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 137 - return Err("Failed to connect"); [INFO] [stdout] 137 + Err("Failed to connect") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/devices/boox.rs:141:20 [INFO] [stdout] | [INFO] [stdout] 141 | let proc = Command::new("adb") [INFO] [stdout] | ____________________^ [INFO] [stdout] 142 | | .args(["shell", "-T", "getevent", &self.udev_path]) [INFO] [stdout] 143 | | .stdout(Stdio::piped()) [INFO] [stdout] 144 | | .spawn() [INFO] [stdout] 145 | | .expect("Error reading events via getevent"); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: consider calling `.wait()` [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `flatten()` will run forever if the iterator repeatedly produces an `Err` [INFO] [stdout] --> src/devices/boox.rs:151:25 [INFO] [stdout] | [INFO] [stdout] 151 | rdr.lines().flatten().for_each(|ev| { [INFO] [stdout] | ^^^^^^^^^ help: replace with: `map_while(Result::ok)` [INFO] [stdout] | [INFO] [stdout] note: this expression returning a `std::io::Lines` may produce an infinite number of `Err` in case of a read error [INFO] [stdout] --> src/devices/boox.rs:151:13 [INFO] [stdout] | [INFO] [stdout] 151 | rdr.lines().flatten().for_each(|ev| { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#lines_filter_map_ok [INFO] [stdout] = note: `#[warn(clippy::lines_filter_map_ok)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/devices/boox.rs:157:21 [INFO] [stdout] | [INFO] [stdout] 157 | _ = self.dev.emit(event_buf.as_slice()).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 157 - _ = self.dev.emit(event_buf.as_slice()).unwrap(); [INFO] [stdout] 157 + self.dev.emit(event_buf.as_slice()).unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/boox.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 178 | return cap.as_str().to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 178 - return cap.as_str().to_string(); [INFO] [stdout] 178 + cap.as_str().to_string() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/devices/mod.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | / return match s { [INFO] [stdout] 13 | | "NoteAir2" => NoteAir2::new(), [INFO] [stdout] 14 | | "UltraTabC" => UltraTabC::new(), [INFO] [stdout] 15 | | _ => None, [INFO] [stdout] 16 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 12 ~ match s { [INFO] [stdout] 13 + "NoteAir2" => NoteAir2::new(), [INFO] [stdout] 14 + "UltraTabC" => UltraTabC::new(), [INFO] [stdout] 15 + _ => None, [INFO] [stdout] 16 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.03s [INFO] running `Command { std: "docker" "inspect" "9567dc3fdcafbe398f85a59e062e54c719b3845a318f836f166874bab0b0d91b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9567dc3fdcafbe398f85a59e062e54c719b3845a318f836f166874bab0b0d91b", kill_on_drop: false }` [INFO] [stdout] 9567dc3fdcafbe398f85a59e062e54c719b3845a318f836f166874bab0b0d91b