[INFO] crate autopilot 0.1.8 is already in cache [INFO] extracting crate autopilot 0.1.8 into work/ex/clippy-test-run/sources/stable/reg/autopilot/0.1.8 [INFO] extracting crate autopilot 0.1.8 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/autopilot/0.1.8 [INFO] validating manifest of autopilot-0.1.8 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 autopilot-0.1.8 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 autopilot-0.1.8 [INFO] finished frobbing autopilot-0.1.8 [INFO] frobbed toml for autopilot-0.1.8 written to work/ex/clippy-test-run/sources/stable/reg/autopilot/0.1.8/Cargo.toml [INFO] started frobbing autopilot-0.1.8 [INFO] finished frobbing autopilot-0.1.8 [INFO] frobbed toml for autopilot-0.1.8 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/autopilot/0.1.8/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 autopilot-0.1.8 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/autopilot/0.1.8:/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] da17996d5101538b6db63d379b9fb43d02bbf008c9efc797f0d22315501d926d [INFO] running `"docker" "start" "-a" "da17996d5101538b6db63d379b9fb43d02bbf008c9efc797f0d22315501d926d"` [INFO] [stderr] Compiling autopilot v0.1.8 (/opt/crater/workdir) [INFO] [stderr] Checking crossbeam-epoch v0.3.1 [INFO] [stderr] Checking crossbeam-deque v0.2.0 [INFO] [stderr] Checking rayon-core v1.4.1 [INFO] [stderr] Checking rayon v1.0.3 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/bitmap.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | image: image, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `image` [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/bitmap.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | scale: scale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/geometry.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/geometry.rs:41:23 [INFO] [stderr] | [INFO] [stderr] 41 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/geometry.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/geometry.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [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/geometry.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/geometry.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/bitmap.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | image: image, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `image` [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/bitmap.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | scale: scale, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `scale` [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/geometry.rs:41:17 [INFO] [stderr] | [INFO] [stderr] 41 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/geometry.rs:41:23 [INFO] [stderr] | [INFO] [stderr] 41 | Point { x: x, y: y } [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/geometry.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | width: width, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `width` [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/geometry.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | height: height, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `height` [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/geometry.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | origin: origin, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `origin` [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/geometry.rs:90:13 [INFO] [stderr] | [INFO] [stderr] 90 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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: long literal lacking separators [INFO] [stderr] --> src/bitmap.rs:421:34 [INFO] [stderr] | [INFO] [stderr] 421 | const MAX_TOLERANCE_DELTA: f64 = 441.6729559301; // => (3.0f64 * 255.0f64 * 255.0f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `441.672_955_930_1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/alert.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | .unwrap_or(format!("{}:2", default_button)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| format!("{}:2", default_button))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:65:29 [INFO] [stderr] | [INFO] [stderr] 65 | size: Size::new(image.width() as f64 / scale, image.height() as f64 / scale), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(image.width())` [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] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:65:59 [INFO] [stderr] | [INFO] [stderr] 65 | size: Size::new(image.width() as f64 / scale, image.height() as f64 / scale), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(image.height())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bitmap.rs:307:25 [INFO] [stderr] | [INFO] [stderr] 307 | let rect = rect.unwrap_or(self.bounds()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.bounds())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bitmap.rs:349:25 [INFO] [stderr] | [INFO] [stderr] 349 | let rect = rect.unwrap_or(self.bounds()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.bounds())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:415:20 [INFO] [stderr] | [INFO] [stderr] 415 | let d1: f64 = (r1 as f64 - r2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(r1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:415:32 [INFO] [stderr] | [INFO] [stderr] 415 | let d1: f64 = (r1 as f64 - r2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(r2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:416:20 [INFO] [stderr] | [INFO] [stderr] 416 | let d2: f64 = (g1 as f64 - g2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(g1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:416:32 [INFO] [stderr] | [INFO] [stderr] 416 | let d2: f64 = (g1 as f64 - g2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(g2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:417:20 [INFO] [stderr] | [INFO] [stderr] 417 | let d3: f64 = (b1 as f64 - b2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(b1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:417:32 [INFO] [stderr] | [INFO] [stderr] 417 | let d3: f64 = (b1 as f64 - b2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(b2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/bitmap.rs:572:12 [INFO] [stderr] | [INFO] [stderr] 572 | if *image_ptr == std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/geometry.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / impl std::hash::Hash for Size { [INFO] [stderr] 23 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 24 | | (self.width as i64).hash(state); [INFO] [stderr] 25 | | (self.height as i64).hash(state); [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/geometry.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Copy, Clone, Debug, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/geometry.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | / impl std::hash::Hash for Point { [INFO] [stderr] 30 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 31 | | (self.x as i64).hash(state); [INFO] [stderr] 32 | | (self.y as i64).hash(state); [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/geometry.rs:10:30 [INFO] [stderr] | [INFO] [stderr] 10 | #[derive(Copy, Clone, Debug, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/internal.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | let width = x11::xlib::XDisplayWidth(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayWidth(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/internal.rs:75:24 [INFO] [stderr] | [INFO] [stderr] 75 | let width_mm = x11::xlib::XDisplayWidthMM(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayWidthMM(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/internal.rs:82:12 [INFO] [stderr] | [INFO] [stderr] 82 | if rms != std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/internal.rs:84:16 [INFO] [stderr] | [INFO] [stderr] 84 | if db != std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/internal.rs:96:21 [INFO] [stderr] | [INFO] [stderr] 96 | CString::new("Xft.dpi").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::temporary_cstring_as_ptr)] on by default [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/internal.rs:96:21 [INFO] [stderr] | [INFO] [stderr] 96 | CString::new("Xft.dpi").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/internal.rs:97:21 [INFO] [stderr] | [INFO] [stderr] 97 | CString::new("String").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/internal.rs:97:21 [INFO] [stderr] | [INFO] [stderr] 97 | CString::new("String").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/internal.rs:100:27 [INFO] [stderr] | [INFO] [stderr] 100 | ) != 0 && value.addr != std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/key.rs:130:41 [INFO] [stderr] | [INFO] [stderr] 130 | let key_flags = key.character().map(|c| flags_for_char(c)).unwrap_or(&[]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `flags_for_char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:154:16 [INFO] [stderr] | [INFO] [stderr] 154 | ' ' => x11::keysym::XK_space as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:155:16 [INFO] [stderr] | [INFO] [stderr] 155 | '!' => x11::keysym::XK_exclam as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_exclam)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:156:16 [INFO] [stderr] | [INFO] [stderr] 156 | '#' => x11::keysym::XK_numbersign as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_numbersign)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:157:16 [INFO] [stderr] | [INFO] [stderr] 157 | '$' => x11::keysym::XK_dollar as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_dollar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:158:16 [INFO] [stderr] | [INFO] [stderr] 158 | '%' => x11::keysym::XK_percent as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_percent)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:159:16 [INFO] [stderr] | [INFO] [stderr] 159 | '&' => x11::keysym::XK_ampersand as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_ampersand)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:160:16 [INFO] [stderr] | [INFO] [stderr] 160 | '(' => x11::keysym::XK_parenleft as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_parenleft)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:161:16 [INFO] [stderr] | [INFO] [stderr] 161 | ')' => x11::keysym::XK_parenright as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_parenright)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:162:16 [INFO] [stderr] | [INFO] [stderr] 162 | '*' => x11::keysym::XK_asterisk as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_asterisk)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:163:16 [INFO] [stderr] | [INFO] [stderr] 163 | '+' => x11::keysym::XK_plus as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_plus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:164:16 [INFO] [stderr] | [INFO] [stderr] 164 | ',' => x11::keysym::XK_comma as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_comma)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:165:16 [INFO] [stderr] | [INFO] [stderr] 165 | '-' => x11::keysym::XK_minus as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_minus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:166:16 [INFO] [stderr] | [INFO] [stderr] 166 | '.' => x11::keysym::XK_period as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_period)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:167:16 [INFO] [stderr] | [INFO] [stderr] 167 | '/' => x11::keysym::XK_slash as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_slash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:168:16 [INFO] [stderr] | [INFO] [stderr] 168 | ':' => x11::keysym::XK_colon as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_colon)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:169:16 [INFO] [stderr] | [INFO] [stderr] 169 | ';' => x11::keysym::XK_semicolon as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_semicolon)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:170:16 [INFO] [stderr] | [INFO] [stderr] 170 | '<' => x11::keysym::XK_less as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_less)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:171:16 [INFO] [stderr] | [INFO] [stderr] 171 | '=' => x11::keysym::XK_equal as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_equal)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:172:16 [INFO] [stderr] | [INFO] [stderr] 172 | '>' => x11::keysym::XK_greater as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_greater)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:173:16 [INFO] [stderr] | [INFO] [stderr] 173 | '?' => x11::keysym::XK_question as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_question)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:174:16 [INFO] [stderr] | [INFO] [stderr] 174 | '@' => x11::keysym::XK_at as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_at)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:175:16 [INFO] [stderr] | [INFO] [stderr] 175 | '[' => x11::keysym::XK_bracketleft as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_bracketleft)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:176:17 [INFO] [stderr] | [INFO] [stderr] 176 | '\'' => x11::keysym::XK_quotedbl as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_quotedbl)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:177:17 [INFO] [stderr] | [INFO] [stderr] 177 | '\\' => x11::keysym::XK_backslash as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_backslash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:178:16 [INFO] [stderr] | [INFO] [stderr] 178 | ']' => x11::keysym::XK_bracketright as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_bracketright)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:179:16 [INFO] [stderr] | [INFO] [stderr] 179 | '^' => x11::keysym::XK_asciicircum as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_asciicircum)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:180:16 [INFO] [stderr] | [INFO] [stderr] 180 | '_' => x11::keysym::XK_underscore as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_underscore)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:181:16 [INFO] [stderr] | [INFO] [stderr] 181 | '`' => x11::keysym::XK_grave as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_grave)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:182:16 [INFO] [stderr] | [INFO] [stderr] 182 | '{' => x11::keysym::XK_braceleft as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_braceleft)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:183:16 [INFO] [stderr] | [INFO] [stderr] 183 | '|' => x11::keysym::XK_bar as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_bar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:184:16 [INFO] [stderr] | [INFO] [stderr] 184 | '}' => x11::keysym::XK_braceright as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_braceright)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:185:16 [INFO] [stderr] | [INFO] [stderr] 185 | '~' => x11::keysym::XK_asciitilde as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_asciitilde)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:186:17 [INFO] [stderr] | [INFO] [stderr] 186 | '\t' => x11::keysym::XK_Tab as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_Tab)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | '\n' => x11::keysym::XK_Return as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_Return)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:464:9 [INFO] [stderr] | [INFO] [stderr] 464 | x_code as XKeyCode [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x_code)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:504:9 [INFO] [stderr] | [INFO] [stderr] 504 | x_code as XKeyCode [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x_code)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/mouse.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | for step in 1..step_count + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `1..=step_count` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mouse.rs:313:20 [INFO] [stderr] | [INFO] [stderr] 313 | Point::new(x as f64, y as f64).scaled(screen::scale()) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mouse.rs:313:30 [INFO] [stderr] | [INFO] [stderr] 313 | Point::new(x as f64, y as f64).scaled(screen::scale()) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/mouse.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | XButton::from(button), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `XButton::from()`: `button` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:107:21 [INFO] [stderr] | [INFO] [stderr] 107 | let width = x11::xlib::XDisplayWidth(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayWidth(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:108:22 [INFO] [stderr] | [INFO] [stderr] 108 | let height = x11::xlib::XDisplayHeight(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayHeight(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `autopilot`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/bitmap.rs:421:34 [INFO] [stderr] | [INFO] [stderr] 421 | const MAX_TOLERANCE_DELTA: f64 = 441.6729559301; // => (3.0f64 * 255.0f64 * 255.0f64).sqrt(); [INFO] [stderr] | ^^^^^^^^^^^^^^ help: consider: `441.672_955_930_1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitmap.rs:653:13 [INFO] [stderr] | [INFO] [stderr] 653 | return Bitmap::new(dynimage, Some(scale)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Bitmap::new(dynimage, Some(scale))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitmap.rs:705:13 [INFO] [stderr] | [INFO] [stderr] 705 | / return TestResult::from_bool(pt_a.is_some() && [INFO] [stderr] 706 | | pt_b.is_some() && [INFO] [stderr] 707 | | pt_b.unwrap() == offset_pt); [INFO] [stderr] | |_____________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 705 | TestResult::from_bool(pt_a.is_some() && [INFO] [stderr] 706 | pt_b.is_some() && [INFO] [stderr] 707 | pt_b.unwrap() == offset_pt) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitmap.rs:721:13 [INFO] [stderr] | [INFO] [stderr] 721 | return TestResult::from_bool(pt.is_none()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `TestResult::from_bool(pt.is_none())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/bitmap.rs:747:13 [INFO] [stderr] | [INFO] [stderr] 747 | return TestResult::from_bool(haystack.count_of_bitmap(&tile, None, None, None) >= 4); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `TestResult::from_bool(haystack.count_of_bitmap(&tile, None, None, None) >= 4)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/alert.rs:142:10 [INFO] [stderr] | [INFO] [stderr] 142 | .unwrap_or(format!("{}:2", default_button)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| format!("{}:2", default_button))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:65:29 [INFO] [stderr] | [INFO] [stderr] 65 | size: Size::new(image.width() as f64 / scale, image.height() as f64 / scale), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(image.width())` [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] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:65:59 [INFO] [stderr] | [INFO] [stderr] 65 | size: Size::new(image.width() as f64 / scale, image.height() as f64 / scale), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(image.height())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bitmap.rs:307:25 [INFO] [stderr] | [INFO] [stderr] 307 | let rect = rect.unwrap_or(self.bounds()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.bounds())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/bitmap.rs:349:25 [INFO] [stderr] | [INFO] [stderr] 349 | let rect = rect.unwrap_or(self.bounds()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| self.bounds())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:415:20 [INFO] [stderr] | [INFO] [stderr] 415 | let d1: f64 = (r1 as f64 - r2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(r1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:415:32 [INFO] [stderr] | [INFO] [stderr] 415 | let d1: f64 = (r1 as f64 - r2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(r2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:416:20 [INFO] [stderr] | [INFO] [stderr] 416 | let d2: f64 = (g1 as f64 - g2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(g1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:416:32 [INFO] [stderr] | [INFO] [stderr] 416 | let d2: f64 = (g1 as f64 - g2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(g2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:417:20 [INFO] [stderr] | [INFO] [stderr] 417 | let d3: f64 = (b1 as f64 - b2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(b1)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/bitmap.rs:417:32 [INFO] [stderr] | [INFO] [stderr] 417 | let d3: f64 = (b1 as f64 - b2 as f64).abs(); [INFO] [stderr] | ^^^^^^^^^ help: try: `f64::from(b2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/bitmap.rs:572:12 [INFO] [stderr] | [INFO] [stderr] 572 | if *image_ptr == std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cmp_null)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/bitmap.rs:649:30 [INFO] [stderr] | [INFO] [stderr] 649 | let scale: f64 = g.choose(&[1.0, 2.0]).unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*g.choose(&[1.0, 2.0]).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/geometry.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | / impl std::hash::Hash for Size { [INFO] [stderr] 23 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 24 | | (self.width as i64).hash(state); [INFO] [stderr] 25 | | (self.height as i64).hash(state); [INFO] [stderr] 26 | | } [INFO] [stderr] 27 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/geometry.rs:4:30 [INFO] [stderr] | [INFO] [stderr] 4 | #[derive(Copy, Clone, Debug, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/geometry.rs:29:1 [INFO] [stderr] | [INFO] [stderr] 29 | / impl std::hash::Hash for Point { [INFO] [stderr] 30 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 31 | | (self.x as i64).hash(state); [INFO] [stderr] 32 | | (self.y as i64).hash(state); [INFO] [stderr] 33 | | } [INFO] [stderr] 34 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/geometry.rs:10:30 [INFO] [stderr] | [INFO] [stderr] 10 | #[derive(Copy, Clone, Debug, PartialEq)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/internal.rs:74:21 [INFO] [stderr] | [INFO] [stderr] 74 | let width = x11::xlib::XDisplayWidth(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayWidth(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/internal.rs:75:24 [INFO] [stderr] | [INFO] [stderr] 75 | let width_mm = x11::xlib::XDisplayWidthMM(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayWidthMM(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/internal.rs:82:12 [INFO] [stderr] | [INFO] [stderr] 82 | if rms != std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/internal.rs:84:16 [INFO] [stderr] | [INFO] [stderr] 84 | if db != std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/internal.rs:96:21 [INFO] [stderr] | [INFO] [stderr] 96 | CString::new("Xft.dpi").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::temporary_cstring_as_ptr)] on by default [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/internal.rs:96:21 [INFO] [stderr] | [INFO] [stderr] 96 | CString::new("Xft.dpi").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] error: you are getting the inner pointer of a temporary `CString` [INFO] [stderr] --> src/internal.rs:97:21 [INFO] [stderr] | [INFO] [stderr] 97 | CString::new("String").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: that pointer will be invalid outside this expression [INFO] [stderr] help: assign the `CString` to a variable to extend its lifetime [INFO] [stderr] --> src/internal.rs:97:21 [INFO] [stderr] | [INFO] [stderr] 97 | CString::new("String").unwrap().as_ptr(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#temporary_cstring_as_ptr [INFO] [stderr] [INFO] [stderr] warning: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/internal.rs:100:27 [INFO] [stderr] | [INFO] [stderr] 100 | ) != 0 && value.addr != std::ptr::null_mut() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cmp_null [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/key.rs:130:41 [INFO] [stderr] | [INFO] [stderr] 130 | let key_flags = key.character().map(|c| flags_for_char(c)).unwrap_or(&[]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `flags_for_char` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:154:16 [INFO] [stderr] | [INFO] [stderr] 154 | ' ' => x11::keysym::XK_space as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:155:16 [INFO] [stderr] | [INFO] [stderr] 155 | '!' => x11::keysym::XK_exclam as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_exclam)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:156:16 [INFO] [stderr] | [INFO] [stderr] 156 | '#' => x11::keysym::XK_numbersign as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_numbersign)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:157:16 [INFO] [stderr] | [INFO] [stderr] 157 | '$' => x11::keysym::XK_dollar as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_dollar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:158:16 [INFO] [stderr] | [INFO] [stderr] 158 | '%' => x11::keysym::XK_percent as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_percent)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:159:16 [INFO] [stderr] | [INFO] [stderr] 159 | '&' => x11::keysym::XK_ampersand as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_ampersand)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:160:16 [INFO] [stderr] | [INFO] [stderr] 160 | '(' => x11::keysym::XK_parenleft as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_parenleft)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:161:16 [INFO] [stderr] | [INFO] [stderr] 161 | ')' => x11::keysym::XK_parenright as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_parenright)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:162:16 [INFO] [stderr] | [INFO] [stderr] 162 | '*' => x11::keysym::XK_asterisk as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_asterisk)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:163:16 [INFO] [stderr] | [INFO] [stderr] 163 | '+' => x11::keysym::XK_plus as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_plus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:164:16 [INFO] [stderr] | [INFO] [stderr] 164 | ',' => x11::keysym::XK_comma as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_comma)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:165:16 [INFO] [stderr] | [INFO] [stderr] 165 | '-' => x11::keysym::XK_minus as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_minus)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:166:16 [INFO] [stderr] | [INFO] [stderr] 166 | '.' => x11::keysym::XK_period as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_period)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:167:16 [INFO] [stderr] | [INFO] [stderr] 167 | '/' => x11::keysym::XK_slash as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_slash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:168:16 [INFO] [stderr] | [INFO] [stderr] 168 | ':' => x11::keysym::XK_colon as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_colon)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:169:16 [INFO] [stderr] | [INFO] [stderr] 169 | ';' => x11::keysym::XK_semicolon as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_semicolon)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:170:16 [INFO] [stderr] | [INFO] [stderr] 170 | '<' => x11::keysym::XK_less as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_less)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:171:16 [INFO] [stderr] | [INFO] [stderr] 171 | '=' => x11::keysym::XK_equal as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_equal)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:172:16 [INFO] [stderr] | [INFO] [stderr] 172 | '>' => x11::keysym::XK_greater as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_greater)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:173:16 [INFO] [stderr] | [INFO] [stderr] 173 | '?' => x11::keysym::XK_question as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_question)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:174:16 [INFO] [stderr] | [INFO] [stderr] 174 | '@' => x11::keysym::XK_at as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_at)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:175:16 [INFO] [stderr] | [INFO] [stderr] 175 | '[' => x11::keysym::XK_bracketleft as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_bracketleft)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:176:17 [INFO] [stderr] | [INFO] [stderr] 176 | '\'' => x11::keysym::XK_quotedbl as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_quotedbl)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:177:17 [INFO] [stderr] | [INFO] [stderr] 177 | '\\' => x11::keysym::XK_backslash as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_backslash)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:178:16 [INFO] [stderr] | [INFO] [stderr] 178 | ']' => x11::keysym::XK_bracketright as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_bracketright)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:179:16 [INFO] [stderr] | [INFO] [stderr] 179 | '^' => x11::keysym::XK_asciicircum as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_asciicircum)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:180:16 [INFO] [stderr] | [INFO] [stderr] 180 | '_' => x11::keysym::XK_underscore as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_underscore)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:181:16 [INFO] [stderr] | [INFO] [stderr] 181 | '`' => x11::keysym::XK_grave as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_grave)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:182:16 [INFO] [stderr] | [INFO] [stderr] 182 | '{' => x11::keysym::XK_braceleft as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_braceleft)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:183:16 [INFO] [stderr] | [INFO] [stderr] 183 | '|' => x11::keysym::XK_bar as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_bar)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:184:16 [INFO] [stderr] | [INFO] [stderr] 184 | '}' => x11::keysym::XK_braceright as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_braceright)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:185:16 [INFO] [stderr] | [INFO] [stderr] 185 | '~' => x11::keysym::XK_asciitilde as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_asciitilde)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:186:17 [INFO] [stderr] | [INFO] [stderr] 186 | '\t' => x11::keysym::XK_Tab as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_Tab)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:187:17 [INFO] [stderr] | [INFO] [stderr] 187 | '\n' => x11::keysym::XK_Return as XKeyCode, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x11::keysym::XK_Return)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:464:9 [INFO] [stderr] | [INFO] [stderr] 464 | x_code as XKeyCode [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x_code)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to u64 may become silently lossy if types change [INFO] [stderr] --> src/key.rs:504:9 [INFO] [stderr] | [INFO] [stderr] 504 | x_code as XKeyCode [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try: `u64::from(x_code)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: an inclusive range would be more readable [INFO] [stderr] --> src/mouse.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | for step in 1..step_count + 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: use: `1..=step_count` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mouse.rs:313:20 [INFO] [stderr] | [INFO] [stderr] 313 | Point::new(x as f64, y as f64).scaled(screen::scale()) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/mouse.rs:313:30 [INFO] [stderr] | [INFO] [stderr] 313 | Point::new(x as f64, y as f64).scaled(screen::scale()) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(y)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/mouse.rs:322:13 [INFO] [stderr] | [INFO] [stderr] 322 | XButton::from(button), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: consider removing `XButton::from()`: `button` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:107:21 [INFO] [stderr] | [INFO] [stderr] 107 | let width = x11::xlib::XDisplayWidth(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayWidth(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/screen.rs:108:22 [INFO] [stderr] | [INFO] [stderr] 108 | let height = x11::xlib::XDisplayHeight(*display, screen) as f64; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(x11::xlib::XDisplayHeight(*display, screen))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `autopilot`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "da17996d5101538b6db63d379b9fb43d02bbf008c9efc797f0d22315501d926d"` [INFO] running `"docker" "rm" "-f" "da17996d5101538b6db63d379b9fb43d02bbf008c9efc797f0d22315501d926d"` [INFO] [stdout] da17996d5101538b6db63d379b9fb43d02bbf008c9efc797f0d22315501d926d