[INFO] crate evdev 0.10.1 is already in cache [INFO] extracting crate evdev 0.10.1 into work/ex/clippy-test-run/sources/stable/reg/evdev/0.10.1 [INFO] extracting crate evdev 0.10.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/evdev/0.10.1 [INFO] validating manifest of evdev-0.10.1 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of evdev-0.10.1 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing evdev-0.10.1 [INFO] finished frobbing evdev-0.10.1 [INFO] frobbed toml for evdev-0.10.1 written to work/ex/clippy-test-run/sources/stable/reg/evdev/0.10.1/Cargo.toml [INFO] started frobbing evdev-0.10.1 [INFO] finished frobbing evdev-0.10.1 [INFO] frobbed toml for evdev-0.10.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/evdev/0.10.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting evdev-0.10.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/evdev/0.10.1:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] eab961d36ff1b225b2ae189259ad049f0e7873ff08469421e1cc0f70a3a75e5b [INFO] running `"docker" "start" "-a" "eab961d36ff1b225b2ae189259ad049f0e7873ff08469421e1cc0f70a3a75e5b"` [INFO] [stderr] Checking evdev v0.10.1 (/opt/crater/workdir) [INFO] [stderr] warning: lint `raw_pointer_derive` has been removed: `using derive with raw pointers is ok` [INFO] [stderr] --> src/raw.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | #[allow(raw_pointer_derive)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:678:13 [INFO] [stderr] | [INFO] [stderr] 678 | fd: fd, [INFO] [stderr] | ^^^^^^ help: replace it with: `fd` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:862:29 [INFO] [stderr] | [INFO] [stderr] 862 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:877:29 [INFO] [stderr] | [INFO] [stderr] 877 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:892:29 [INFO] [stderr] | [INFO] [stderr] 892 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:907:29 [INFO] [stderr] | [INFO] [stderr] 907 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:918:13 [INFO] [stderr] | [INFO] [stderr] 918 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: lint `raw_pointer_derive` has been removed: `using derive with raw pointers is ok` [INFO] [stderr] --> src/raw.rs:171:9 [INFO] [stderr] | [INFO] [stderr] 171 | #[allow(raw_pointer_derive)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(renamed_and_removed_lints)] on by default [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:678:13 [INFO] [stderr] | [INFO] [stderr] 678 | fd: fd, [INFO] [stderr] | ^^^^^^ help: replace it with: `fd` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:862:29 [INFO] [stderr] | [INFO] [stderr] 862 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:877:29 [INFO] [stderr] | [INFO] [stderr] 877 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:892:29 [INFO] [stderr] | [INFO] [stderr] 892 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:907:29 [INFO] [stderr] | [INFO] [stderr] 907 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:918:13 [INFO] [stderr] | [INFO] [stderr] 918 | time: time, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `time` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: unused import: `num::traits::WrappingSub` [INFO] [stderr] --> src/lib.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | use num::traits::WrappingSub; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:859:17 [INFO] [stderr] | [INFO] [stderr] 859 | / if self.key_bits.contains(key_idx) { [INFO] [stderr] 860 | | if old_state.key_vals[key_idx] != self.state.key_vals[key_idx] { [INFO] [stderr] 861 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 862 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 867 | | } [INFO] [stderr] 868 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 859 | if self.key_bits.contains(key_idx) && old_state.key_vals[key_idx] != self.state.key_vals[key_idx] { [INFO] [stderr] 860 | self.pending_events.push(raw::input_event { [INFO] [stderr] 861 | time: time, [INFO] [stderr] 862 | _type: KEY.number(), [INFO] [stderr] 863 | code: key_idx as u16, [INFO] [stderr] 864 | value: if self.state.key_vals[key_idx] { 1 } else { 0 }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:874:17 [INFO] [stderr] | [INFO] [stderr] 874 | / if self.abs.bits() & abs != 0 { [INFO] [stderr] 875 | | if old_state.abs_vals[idx as usize] != self.state.abs_vals[idx as usize] { [INFO] [stderr] 876 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 877 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 882 | | } [INFO] [stderr] 883 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 874 | if self.abs.bits() & abs != 0 && old_state.abs_vals[idx as usize] != self.state.abs_vals[idx as usize] { [INFO] [stderr] 875 | self.pending_events.push(raw::input_event { [INFO] [stderr] 876 | time: time, [INFO] [stderr] 877 | _type: ABSOLUTE.number(), [INFO] [stderr] 878 | code: idx as u16, [INFO] [stderr] 879 | value: self.state.abs_vals[idx as usize].value, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:889:17 [INFO] [stderr] | [INFO] [stderr] 889 | / if sw < SW_MAX.bits() && self.switch.bits() & sw == 1 { [INFO] [stderr] 890 | | if old_state.switch_vals[idx as usize] != self.state.switch_vals[idx as usize] { [INFO] [stderr] 891 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 892 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 897 | | } [INFO] [stderr] 898 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 889 | if sw < SW_MAX.bits() && self.switch.bits() & sw == 1 && old_state.switch_vals[idx as usize] != self.state.switch_vals[idx as usize] { [INFO] [stderr] 890 | self.pending_events.push(raw::input_event { [INFO] [stderr] 891 | time: time, [INFO] [stderr] 892 | _type: SWITCH.number(), [INFO] [stderr] 893 | code: idx as u16, [INFO] [stderr] 894 | value: if self.state.switch_vals[idx as usize] { 1 } else { 0 }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:904:17 [INFO] [stderr] | [INFO] [stderr] 904 | / if led < LED_MAX.bits() && self.led.bits() & led == 1 { [INFO] [stderr] 905 | | if old_state.led_vals[idx as usize] != self.state.led_vals[idx as usize] { [INFO] [stderr] 906 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 907 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 912 | | } [INFO] [stderr] 913 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 904 | if led < LED_MAX.bits() && self.led.bits() & led == 1 && old_state.led_vals[idx as usize] != self.state.led_vals[idx as usize] { [INFO] [stderr] 905 | self.pending_events.push(raw::input_event { [INFO] [stderr] 906 | time: time, [INFO] [stderr] 907 | _type: LED.number(), [INFO] [stderr] 908 | code: idx as u16, [INFO] [stderr] 909 | value: if self.state.led_vals[idx as usize] { 1 } else { 0 }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused import: `num::traits::WrappingSub` [INFO] [stderr] --> src/lib.rs:53:5 [INFO] [stderr] | [INFO] [stderr] 53 | use num::traits::WrappingSub; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:859:17 [INFO] [stderr] | [INFO] [stderr] 859 | / if self.key_bits.contains(key_idx) { [INFO] [stderr] 860 | | if old_state.key_vals[key_idx] != self.state.key_vals[key_idx] { [INFO] [stderr] 861 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 862 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 867 | | } [INFO] [stderr] 868 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 859 | if self.key_bits.contains(key_idx) && old_state.key_vals[key_idx] != self.state.key_vals[key_idx] { [INFO] [stderr] 860 | self.pending_events.push(raw::input_event { [INFO] [stderr] 861 | time: time, [INFO] [stderr] 862 | _type: KEY.number(), [INFO] [stderr] 863 | code: key_idx as u16, [INFO] [stderr] 864 | value: if self.state.key_vals[key_idx] { 1 } else { 0 }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:874:17 [INFO] [stderr] | [INFO] [stderr] 874 | / if self.abs.bits() & abs != 0 { [INFO] [stderr] 875 | | if old_state.abs_vals[idx as usize] != self.state.abs_vals[idx as usize] { [INFO] [stderr] 876 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 877 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 882 | | } [INFO] [stderr] 883 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 874 | if self.abs.bits() & abs != 0 && old_state.abs_vals[idx as usize] != self.state.abs_vals[idx as usize] { [INFO] [stderr] 875 | self.pending_events.push(raw::input_event { [INFO] [stderr] 876 | time: time, [INFO] [stderr] 877 | _type: ABSOLUTE.number(), [INFO] [stderr] 878 | code: idx as u16, [INFO] [stderr] 879 | value: self.state.abs_vals[idx as usize].value, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:889:17 [INFO] [stderr] | [INFO] [stderr] 889 | / if sw < SW_MAX.bits() && self.switch.bits() & sw == 1 { [INFO] [stderr] 890 | | if old_state.switch_vals[idx as usize] != self.state.switch_vals[idx as usize] { [INFO] [stderr] 891 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 892 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 897 | | } [INFO] [stderr] 898 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 889 | if sw < SW_MAX.bits() && self.switch.bits() & sw == 1 && old_state.switch_vals[idx as usize] != self.state.switch_vals[idx as usize] { [INFO] [stderr] 890 | self.pending_events.push(raw::input_event { [INFO] [stderr] 891 | time: time, [INFO] [stderr] 892 | _type: SWITCH.number(), [INFO] [stderr] 893 | code: idx as u16, [INFO] [stderr] 894 | value: if self.state.switch_vals[idx as usize] { 1 } else { 0 }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/lib.rs:904:17 [INFO] [stderr] | [INFO] [stderr] 904 | / if led < LED_MAX.bits() && self.led.bits() & led == 1 { [INFO] [stderr] 905 | | if old_state.led_vals[idx as usize] != self.state.led_vals[idx as usize] { [INFO] [stderr] 906 | | self.pending_events.push(raw::input_event { [INFO] [stderr] 907 | | time: time, [INFO] [stderr] ... | [INFO] [stderr] 912 | | } [INFO] [stderr] 913 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 904 | if led < LED_MAX.bits() && self.led.bits() & led == 1 && old_state.led_vals[idx as usize] != self.state.led_vals[idx as usize] { [INFO] [stderr] 905 | self.pending_events.push(raw::input_event { [INFO] [stderr] 906 | time: time, [INFO] [stderr] 907 | _type: LED.number(), [INFO] [stderr] 908 | code: idx as u16, [INFO] [stderr] 909 | value: if self.state.led_vals[idx as usize] { 1 } else { 0 }, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/lib.rs:668:17 [INFO] [stderr] | [INFO] [stderr] 668 | Err(e) => return Err(Error::InvalidPath), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:927:13 [INFO] [stderr] | [INFO] [stderr] 927 | let mut buf = &mut self.pending_events; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `e` [INFO] [stderr] --> src/lib.rs:668:17 [INFO] [stderr] | [INFO] [stderr] 668 | Err(e) => return Err(Error::InvalidPath), [INFO] [stderr] | ^ help: consider using `_e` instead [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_variables)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/lib.rs:927:13 [INFO] [stderr] | [INFO] [stderr] 927 | let mut buf = &mut self.pending_events; [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:58:28 [INFO] [stderr] | [INFO] [stderr] 58 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_constant_effect` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_ramp_effect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:66:28 [INFO] [stderr] | [INFO] [stderr] 66 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_periodic_effect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:71:28 [INFO] [stderr] | [INFO] [stderr] 71 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut [raw::ff_condition_effect; 2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:75:28 [INFO] [stderr] | [INFO] [stderr] 75 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_rumble_effect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/raw.rs:211:53 [INFO] [stderr] | [INFO] [stderr] 211 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, ior!(b'E', 0x20 + ev, len) as ::libc::c_ulong, buf)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 211 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, u64::from( ( $ dir as u32 ) << $ crate :: sys :: ioctl :: DIRSHIFT ) | ( [INFO] [stderr] 212 | ( $ ty as u32 ) << $ crate :: sys :: ioctl :: TYPESHIFT ) | ( [INFO] [stderr] 213 | ( $ nr as u32 ) << $ crate :: sys :: ioctl :: NRSHIFT ) | ( [INFO] [stderr] 214 | ( $ sz as u32 ) << $ crate :: sys :: ioctl :: SIZESHIFT ), buf)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/raw.rs:215:53 [INFO] [stderr] | [INFO] [stderr] 215 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, ior!(b'E', 0x40 + abs, ::std::mem::size_of::()) as ::libc::c_ulong, buf)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 215 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, u64::from( ( $ dir as u32 ) << $ crate :: sys :: ioctl :: DIRSHIFT ) | ( [INFO] [stderr] 216 | ( $ ty as u32 ) << $ crate :: sys :: ioctl :: TYPESHIFT ) | ( [INFO] [stderr] 217 | ( $ nr as u32 ) << $ crate :: sys :: ioctl :: NRSHIFT ) | ( [INFO] [stderr] 218 | ( $ sz as u32 ) << $ crate :: sys :: ioctl :: SIZESHIFT ), buf)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:78:33 [INFO] [stderr] | [INFO] [stderr] 78 | const SYNCHRONIZATION = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:58:28 [INFO] [stderr] | [INFO] [stderr] 58 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_transmute)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_constant_effect` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_ptr_to_ptr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:62:28 [INFO] [stderr] | [INFO] [stderr] 62 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_ramp_effect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:66:28 [INFO] [stderr] | [INFO] [stderr] 66 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:67:9 [INFO] [stderr] | [INFO] [stderr] 67 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_periodic_effect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:71:28 [INFO] [stderr] | [INFO] [stderr] 71 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:72:9 [INFO] [stderr] | [INFO] [stderr] 72 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut [raw::ff_condition_effect; 2]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a pointer [INFO] [stderr] --> src/raw.rs:75:28 [INFO] [stderr] | [INFO] [stderr] 75 | let raw: *mut u8 = ::std::mem::transmute(&self._bindgen_data_); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self._bindgen_data_ as *const [u64; 4] as *mut u8` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_transmute [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/raw.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | ::std::mem::transmute(raw.offset(0)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `raw.offset(0) as *mut raw::ff_rumble_effect` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_ptr_to_ptr [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | const POINTER = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/raw.rs:211:53 [INFO] [stderr] | [INFO] [stderr] 211 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, ior!(b'E', 0x20 + ev, len) as ::libc::c_ulong, buf)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 211 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, u64::from( ( $ dir as u32 ) << $ crate :: sys :: ioctl :: DIRSHIFT ) | ( [INFO] [stderr] 212 | ( $ ty as u32 ) << $ crate :: sys :: ioctl :: TYPESHIFT ) | ( [INFO] [stderr] 213 | ( $ nr as u32 ) << $ crate :: sys :: ioctl :: NRSHIFT ) | ( [INFO] [stderr] 214 | ( $ sz as u32 ) << $ crate :: sys :: ioctl :: SIZESHIFT ), buf)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/raw.rs:215:53 [INFO] [stderr] | [INFO] [stderr] 215 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, ior!(b'E', 0x40 + abs, ::std::mem::size_of::()) as ::libc::c_ulong, buf)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 215 | convert_ioctl_res!(::nix::sys::ioctl::ioctl(fd, u64::from( ( $ dir as u32 ) << $ crate :: sys :: ioctl :: DIRSHIFT ) | ( [INFO] [stderr] 216 | ( $ ty as u32 ) << $ crate :: sys :: ioctl :: TYPESHIFT ) | ( [INFO] [stderr] 217 | ( $ nr as u32 ) << $ crate :: sys :: ioctl :: NRSHIFT ) | ( [INFO] [stderr] 218 | ( $ sz as u32 ) << $ crate :: sys :: ioctl :: SIZESHIFT ), buf)) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:78:33 [INFO] [stderr] | [INFO] [stderr] 78 | const SYNCHRONIZATION = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:117:25 [INFO] [stderr] | [INFO] [stderr] 117 | const POINTER = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:138:23 [INFO] [stderr] | [INFO] [stderr] 138 | const REL_X = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:153:23 [INFO] [stderr] | [INFO] [stderr] 153 | const ABS_X = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:138:23 [INFO] [stderr] | [INFO] [stderr] 138 | const REL_X = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:215:24 [INFO] [stderr] | [INFO] [stderr] 215 | const SW_LID = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:153:23 [INFO] [stderr] | [INFO] [stderr] 153 | const ABS_X = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:253:26 [INFO] [stderr] | [INFO] [stderr] 253 | const LED_NUML = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:276:28 [INFO] [stderr] | [INFO] [stderr] 276 | const MSC_SERIAL = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:293:35 [INFO] [stderr] | [INFO] [stderr] 293 | const FF_STATUS_STOPPED = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:322:27 [INFO] [stderr] | [INFO] [stderr] 322 | const REP_DELAY = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:329:27 [INFO] [stderr] | [INFO] [stderr] 329 | const SND_CLICK = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:719:9 [INFO] [stderr] | [INFO] [stderr] 719 | / match unsafe { eviocgphys(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 720 | | Ok(phys_len) => { [INFO] [stderr] 721 | | if phys_len > 0 { [INFO] [stderr] 722 | | unsafe { vec.set_len(phys_len as usize - 1) }; [INFO] [stderr] ... | [INFO] [stderr] 726 | | Err(_) => { /* not essential */ } [INFO] [stderr] 727 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 719 | if let Ok(phys_len) = unsafe { eviocgphys(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 720 | if phys_len > 0 { [INFO] [stderr] 721 | unsafe { vec.set_len(phys_len as usize - 1) }; [INFO] [stderr] 722 | dev.phys = Some(CString::new(vec.clone()).unwrap()); [INFO] [stderr] 723 | } [INFO] [stderr] 724 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:729:9 [INFO] [stderr] | [INFO] [stderr] 729 | / match unsafe { eviocguniq(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 730 | | Ok(uniq_len) => { [INFO] [stderr] 731 | | if uniq_len > 0 { [INFO] [stderr] 732 | | unsafe { vec.set_len(uniq_len as usize - 1) }; [INFO] [stderr] ... | [INFO] [stderr] 736 | | Err(_) => { /* not essential */ } [INFO] [stderr] 737 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 729 | if let Ok(uniq_len) = unsafe { eviocguniq(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 730 | if uniq_len > 0 { [INFO] [stderr] 731 | unsafe { vec.set_len(uniq_len as usize - 1) }; [INFO] [stderr] 732 | dev.uniq = Some(CString::new(vec.clone()).unwrap()); [INFO] [stderr] 733 | } [INFO] [stderr] 734 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/lib.rs:933:28 [INFO] [stderr] | [INFO] [stderr] 933 | / buf.as_mut_ptr() [INFO] [stderr] 934 | | .offset(pre_len as isize) as *mut libc::c_void, [INFO] [stderr] | |_______________________________________________________^ help: try: `buf.as_mut_ptr().add(pre_len)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:215:24 [INFO] [stderr] | [INFO] [stderr] 215 | const SW_LID = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:253:26 [INFO] [stderr] | [INFO] [stderr] 253 | const LED_NUML = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:276:28 [INFO] [stderr] | [INFO] [stderr] 276 | const MSC_SERIAL = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:293:35 [INFO] [stderr] | [INFO] [stderr] 293 | const FF_STATUS_STOPPED = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:322:27 [INFO] [stderr] | [INFO] [stderr] 322 | const REP_DELAY = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: the operation is ineffective. Consider reducing it to `1` [INFO] [stderr] --> src/lib.rs:329:27 [INFO] [stderr] | [INFO] [stderr] 329 | const SND_CLICK = 1 << 0x00, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:719:9 [INFO] [stderr] | [INFO] [stderr] 719 | / match unsafe { eviocgphys(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 720 | | Ok(phys_len) => { [INFO] [stderr] 721 | | if phys_len > 0 { [INFO] [stderr] 722 | | unsafe { vec.set_len(phys_len as usize - 1) }; [INFO] [stderr] ... | [INFO] [stderr] 726 | | Err(_) => { /* not essential */ } [INFO] [stderr] 727 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 719 | if let Ok(phys_len) = unsafe { eviocgphys(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 720 | if phys_len > 0 { [INFO] [stderr] 721 | unsafe { vec.set_len(phys_len as usize - 1) }; [INFO] [stderr] 722 | dev.phys = Some(CString::new(vec.clone()).unwrap()); [INFO] [stderr] 723 | } [INFO] [stderr] 724 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/lib.rs:729:9 [INFO] [stderr] | [INFO] [stderr] 729 | / match unsafe { eviocguniq(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 730 | | Ok(uniq_len) => { [INFO] [stderr] 731 | | if uniq_len > 0 { [INFO] [stderr] 732 | | unsafe { vec.set_len(uniq_len as usize - 1) }; [INFO] [stderr] ... | [INFO] [stderr] 736 | | Err(_) => { /* not essential */ } [INFO] [stderr] 737 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 729 | if let Ok(uniq_len) = unsafe { eviocguniq(fd, vec.as_mut_ptr(), 255) } { [INFO] [stderr] 730 | if uniq_len > 0 { [INFO] [stderr] 731 | unsafe { vec.set_len(uniq_len as usize - 1) }; [INFO] [stderr] 732 | dev.uniq = Some(CString::new(vec.clone()).unwrap()); [INFO] [stderr] 733 | } [INFO] [stderr] 734 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/lib.rs:933:28 [INFO] [stderr] | [INFO] [stderr] 933 | / buf.as_mut_ptr() [INFO] [stderr] 934 | | .offset(pre_len as isize) as *mut libc::c_void, [INFO] [stderr] | |_______________________________________________________^ help: try: `buf.as_mut_ptr().add(pre_len)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> examples/evtest.rs:9:5 [INFO] [stderr] | [INFO] [stderr] 9 | / let mut d; [INFO] [stderr] 10 | | if args.len() > 1 { [INFO] [stderr] 11 | | d = evdev::Device::open(&args.nth(1).unwrap()).unwrap(); [INFO] [stderr] 12 | | } else { [INFO] [stderr] ... | [INFO] [stderr] 21 | | d = devices.swap_remove(chosen.trim().parse::().unwrap()); [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ help: it is more idiomatic to write: `let d = if args.len() > 1 { evdev::Device::open(&args.nth(1).unwrap()).unwrap() } else { ..; devices.swap_remove(chosen.trim().parse::().unwrap()) };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.98s [INFO] running `"docker" "inspect" "eab961d36ff1b225b2ae189259ad049f0e7873ff08469421e1cc0f70a3a75e5b"` [INFO] running `"docker" "rm" "-f" "eab961d36ff1b225b2ae189259ad049f0e7873ff08469421e1cc0f70a3a75e5b"` [INFO] [stdout] eab961d36ff1b225b2ae189259ad049f0e7873ff08469421e1cc0f70a3a75e5b