[INFO] crate minifb 0.11.1 is already in cache [INFO] extracting crate minifb 0.11.1 into work/ex/clippy-test-run/sources/stable/reg/minifb/0.11.1 [INFO] extracting crate minifb 0.11.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/minifb/0.11.1 [INFO] validating manifest of minifb-0.11.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 minifb-0.11.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 minifb-0.11.1 [INFO] finished frobbing minifb-0.11.1 [INFO] frobbed toml for minifb-0.11.1 written to work/ex/clippy-test-run/sources/stable/reg/minifb/0.11.1/Cargo.toml [INFO] started frobbing minifb-0.11.1 [INFO] finished frobbing minifb-0.11.1 [INFO] frobbed toml for minifb-0.11.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/minifb/0.11.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 minifb-0.11.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/minifb/0.11.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] ae413ac68c7a90a26e6d65dbe801d8723a457455b5ec908be972cfe56744e668 [INFO] running `"docker" "start" "-a" "ae413ac68c7a90a26e6d65dbe801d8723a457455b5ec908be972cfe56744e668"` [INFO] [stderr] Compiling x11-dl v2.14.0 [INFO] [stderr] Compiling minifb v0.11.1 (/opt/crater/workdir) [INFO] [stderr] warning: src/native/x11/X11MiniFB.c: In function 'setup_display': [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:158:15: warning: implicit declaration of function 'XkbQueryExtension' [-Wimplicit-function-declaration] [INFO] [stderr] warning: s_keyb_ext = XkbQueryExtension(s_display, &majorOpcode, &eventBase, &errorBase, &major, &minor); [INFO] [stderr] warning: ^~~~~~~~~~~~~~~~~ [INFO] [stderr] warning: src/native/x11/X11MiniFB.c: In function 'handle_special_keys': [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:300:11: warning: implicit declaration of function 'XkbKeycodeToKeysym' [-Wimplicit-function-declaration] [INFO] [stderr] warning: keySym = XkbKeycodeToKeysym(s_display, event->xkey.keycode, 0, 1); [INFO] [stderr] warning: ^~~~~~~~~~~~~~~~~~ [INFO] [stderr] warning: src/native/x11/X11MiniFB.c: In function 'process_event': [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:362:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] [INFO] [stderr] warning: if (t != -1) [INFO] [stderr] warning: ^~ [INFO] [stderr] warning: src/native/x11/X11MiniFB.c: In function 'process_events': [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:454:12: warning: unused variable 'sym' [-Wunused-variable] [INFO] [stderr] warning: KeySym sym; [INFO] [stderr] warning: ^~~ [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:453:12: warning: unused variable 'event' [-Wunused-variable] [INFO] [stderr] warning: XEvent event; [INFO] [stderr] warning: ^~~~~ [INFO] [stderr] warning: src/native/x11/X11MiniFB.c: In function 'scale_32x': [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:642:73: warning: unused parameter 'height' [-Wunused-parameter] [INFO] [stderr] warning: void scale_32x(unsigned int* dest, unsigned int* source, int width, int height, int scale) { [INFO] [stderr] warning: ^~~~~~ [INFO] [stderr] warning: src/native/x11/X11MiniFB.c: In function 'mfb_update': [INFO] [stderr] warning: src/native/x11/X11MiniFB.c:748:42: warning: unused parameter 'buffer' [-Wunused-parameter] [INFO] [stderr] warning: void mfb_update(void* window_info, void* buffer) [INFO] [stderr] warning: ^~~~~~ [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/os/unix/mod.rs:458:10 [INFO] [stderr] | [INFO] [stderr] 458 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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:680:13 [INFO] [stderr] | [INFO] [stderr] 680 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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:738:13 [INFO] [stderr] | [INFO] [stderr] 738 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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:753:13 [INFO] [stderr] | [INFO] [stderr] 753 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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:754:13 [INFO] [stderr] | [INFO] [stderr] 754 | modifier: modifier, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `modifier` [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:783:13 [INFO] [stderr] | [INFO] [stderr] 783 | enabled: enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `enabled` [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/os/unix/mod.rs:458:10 [INFO] [stderr] | [INFO] [stderr] 458 | handle: handle, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `handle` [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:680:13 [INFO] [stderr] | [INFO] [stderr] 680 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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:738:13 [INFO] [stderr] | [INFO] [stderr] 738 | id: id, [INFO] [stderr] | ^^^^^^ help: replace it with: `id` [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:753:13 [INFO] [stderr] | [INFO] [stderr] 753 | key: key, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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:754:13 [INFO] [stderr] | [INFO] [stderr] 754 | modifier: modifier, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `modifier` [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:783:13 [INFO] [stderr] | [INFO] [stderr] 783 | enabled: enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `enabled` [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: unneeded return statement [INFO] [stderr] --> src/os/unix/mod.rs:408:9 [INFO] [stderr] | [INFO] [stderr] 408 | return factor; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `factor` [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/key_handler.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | return self.keys[key as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.keys[key as usize]` [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/key_handler.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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/key_handler.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return Self::key_pressed(self, key as usize, repeat); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::key_pressed(self, key as usize, repeat)` [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: long literal lacking separators [INFO] [stderr] --> src/lib.rs:580:33 [INFO] [stderr] | [INFO] [stderr] 580 | const MENU_ID_SEPARATOR:usize = 0xffffffff; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [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/os/unix/mod.rs:408:9 [INFO] [stderr] | [INFO] [stderr] 408 | return factor; [INFO] [stderr] | ^^^^^^^^^^^^^^ help: remove `return` as shown: `factor` [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/key_handler.rs:95:9 [INFO] [stderr] | [INFO] [stderr] 95 | return self.keys[key as usize]; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.keys[key as usize]` [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/key_handler.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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/key_handler.rs:127:9 [INFO] [stderr] | [INFO] [stderr] 127 | return Self::key_pressed(self, key as usize, repeat); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::key_pressed(self, key as usize, repeat)` [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: long literal lacking separators [INFO] [stderr] --> src/lib.rs:580:33 [INFO] [stderr] | [INFO] [stderr] 580 | const MENU_ID_SEPARATOR:usize = 0xffffffff; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [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: transmute from a pointer to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:67:28 [INFO] [stderr] | [INFO] [stderr] 67 | let win: *mut Window = mem::transmute(window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `window as *mut os::unix::Window` [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 pointer to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:178:28 [INFO] [stderr] | [INFO] [stderr] 178 | let win: *mut Window = mem::transmute(window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `window as *mut os::unix::Window` [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: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/os/unix/mod.rs:208:16 [INFO] [stderr] | [INFO] [stderr] 208 | if handle == 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: transmute from a reference to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:251:19 [INFO] [stderr] | [INFO] [stderr] 251 | mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self as *mut os::unix::Window as *mut std::ffi::c_void` [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 reference to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:266:19 [INFO] [stderr] | [INFO] [stderr] 266 | mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self as *mut os::unix::Window as *mut std::ffi::c_void` [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: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/os/unix/mod.rs:367:22 [INFO] [stderr] | [INFO] [stderr] 367 | pub fn is_active(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/os/unix/mod.rs:433:28 [INFO] [stderr] | [INFO] [stderr] 433 | pub fn is_menu_pressed(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/unix/mod.rs:487:43 [INFO] [stderr] | [INFO] [stderr] 487 | pub fn remove_item(&mut self, handle: &MenuItemHandle) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `MenuItemHandle` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the variable `index` is used as a loop counter. Consider using `for (index, item) in self.keys.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/key_handler.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | for i in self.keys.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `index` is used as a loop counter. Consider using `for (index, item) in self.keys.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/key_handler.rs:78:18 [INFO] [stderr] | [INFO] [stderr] 78 | for i in self.keys.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:499:22 [INFO] [stderr] | [INFO] [stderr] 499 | pub fn is_active(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:563:28 [INFO] [stderr] | [INFO] [stderr] 563 | pub fn is_menu_pressed(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:689:41 [INFO] [stderr] | [INFO] [stderr] 689 | pub fn remove_item(&mut self, item: &MenuItemHandle) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `MenuItemHandle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: transmute from a pointer to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:67:28 [INFO] [stderr] | [INFO] [stderr] 67 | let win: *mut Window = mem::transmute(window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `window as *mut os::unix::Window` [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 pointer to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:178:28 [INFO] [stderr] | [INFO] [stderr] 178 | let win: *mut Window = mem::transmute(window); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `window as *mut os::unix::Window` [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: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/os/unix/mod.rs:208:16 [INFO] [stderr] | [INFO] [stderr] 208 | if handle == 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: transmute from a reference to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:251:19 [INFO] [stderr] | [INFO] [stderr] 251 | mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self as *mut os::unix::Window as *mut std::ffi::c_void` [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 reference to a pointer [INFO] [stderr] --> src/os/unix/mod.rs:266:19 [INFO] [stderr] | [INFO] [stderr] 266 | mem::transmute(self), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try: `self as *mut os::unix::Window as *mut std::ffi::c_void` [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: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/os/unix/mod.rs:367:22 [INFO] [stderr] | [INFO] [stderr] 367 | pub fn is_active(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/os/unix/mod.rs:433:28 [INFO] [stderr] | [INFO] [stderr] 433 | pub fn is_menu_pressed(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/os/unix/mod.rs:487:43 [INFO] [stderr] | [INFO] [stderr] 487 | pub fn remove_item(&mut self, handle: &MenuItemHandle) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `MenuItemHandle` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the variable `index` is used as a loop counter. Consider using `for (index, item) in self.keys.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/key_handler.rs:38:18 [INFO] [stderr] | [INFO] [stderr] 38 | for i in self.keys.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::explicit_counter_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: the variable `index` is used as a loop counter. Consider using `for (index, item) in self.keys.iter().enumerate()` or similar iterators [INFO] [stderr] --> src/key_handler.rs:78:18 [INFO] [stderr] | [INFO] [stderr] 78 | for i in self.keys.iter() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_counter_loop [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:499:22 [INFO] [stderr] | [INFO] [stderr] 499 | pub fn is_active(&mut self) -> bool { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: methods called `is_*` usually take self by reference or no self; consider choosing a less ambiguous name [INFO] [stderr] --> src/lib.rs:563:28 [INFO] [stderr] | [INFO] [stderr] 563 | pub fn is_menu_pressed(&mut self) -> Option { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/lib.rs:689:41 [INFO] [stderr] | [INFO] [stderr] 689 | pub fn remove_item(&mut self, item: &MenuItemHandle) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `MenuItemHandle` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:54:60 [INFO] [stderr] | [INFO] [stderr] 54 | Rect { x: 0, y: 0, width: 160, height: 180, color: 0x00b27474, cursor_style: CursorStyle::Arrow }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00b2_7474` [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: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:55:62 [INFO] [stderr] | [INFO] [stderr] 55 | Rect { x: 160, y: 0, width: 160, height: 180, color: 0x00b28050, cursor_style: CursorStyle::Ibeam }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00b2_8050` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:56:62 [INFO] [stderr] | [INFO] [stderr] 56 | Rect { x: 320, y: 0, width: 160, height: 180, color: 0x00a9b250, cursor_style: CursorStyle::Crosshair }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00a9_b250` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:57:62 [INFO] [stderr] | [INFO] [stderr] 57 | Rect { x: 480, y: 0, width: 160, height: 180, color: 0x0060b250, cursor_style: CursorStyle::ClosedHand }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0060_b250` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:58:62 [INFO] [stderr] | [INFO] [stderr] 58 | Rect { x: 0, y: 180, width: 160, height: 180, color: 0x004fb292, cursor_style: CursorStyle::OpenHand }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x004f_b292` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:59:64 [INFO] [stderr] | [INFO] [stderr] 59 | Rect { x: 160, y: 180, width: 160, height: 180, color: 0x004f71b2, cursor_style: CursorStyle::ResizeLeftRight }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x004f_71b2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:60:64 [INFO] [stderr] | [INFO] [stderr] 60 | Rect { x: 320, y: 180, width: 160, height: 180, color: 0x008850b2, cursor_style: CursorStyle::ResizeUpDown }, [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0088_50b2` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/title_cursor.rs:61:64 [INFO] [stderr] | [INFO] [stderr] 61 | Rect { x: 480, y: 180, width: 160, height: 180, color: 0x00b25091, cursor_style: CursorStyle::ResizeAll } [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00b2_5091` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/mouse.rs:29:38 [INFO] [stderr] | [INFO] [stderr] 29 | buffer[screen_pos] = 0x00ffffff; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_ffff` [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: this if-then-else expression returns a bool literal [INFO] [stderr] --> examples/title_cursor.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | / if (y >= self.y) && (y <= ye) && [INFO] [stderr] 25 | | (x >= self.x) && (x <= xe) { [INFO] [stderr] 26 | | true [INFO] [stderr] 27 | | } else { [INFO] [stderr] 28 | | false [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stderr] help: you can reduce it to [INFO] [stderr] | [INFO] [stderr] 24 | (y >= self.y) && (y <= ye) && [INFO] [stderr] 25 | (x >= self.x) && (x <= xe) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> examples/menu.rs:73:33 [INFO] [stderr] | [INFO] [stderr] 73 | color_mul = 0xfe0000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00fe_0000` [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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> examples/mouse.rs:24:9 [INFO] [stderr] | [INFO] [stderr] 24 | window.get_mouse_pos(MouseMode::Discard).map(|mouse| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 25 | || let screen_pos = ((mouse.1 as usize) * WIDTH) + mouse.0 as usize; [INFO] [stderr] 26 | || println!("{:?}", window.get_unscaled_mouse_pos(MouseMode::Discard).unwrap()); [INFO] [stderr] 27 | || [INFO] [stderr] ... || [INFO] [stderr] 34 | || } [INFO] [stderr] 35 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(mouse) = window.get_mouse_pos(MouseMode::Discard) { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> examples/mouse.rs:37:9 [INFO] [stderr] | [INFO] [stderr] 37 | window.get_scroll_wheel().map(|scroll| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 38 | || println!("Scrolling {} - {}", scroll.0, scroll.1); [INFO] [stderr] 39 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(scroll) = window.get_scroll_wheel() { { $ crate :: io :: _print ( format_args_nl ! ( $ ( $ arg ) * ) ) ; } }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> examples/noise.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | window.get_keys().map(|keys| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 42 | || for t in keys { [INFO] [stderr] 43 | || match t { [INFO] [stderr] 44 | || Key::W => println!("holding w!"), [INFO] [stderr] ... || [INFO] [stderr] 48 | || } [INFO] [stderr] 49 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(keys) = window.get_keys() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> examples/menu.rs:57:5 [INFO] [stderr] | [INFO] [stderr] 57 | window.get_unix_menus().map(|menus| { [INFO] [stderr] | _____^ [INFO] [stderr] | |_____| [INFO] [stderr] | || [INFO] [stderr] 58 | || println!("Menus {:?}", menus); [INFO] [stderr] 59 | || }); [INFO] [stderr] | ||______^- help: try this: `if let Some(menus) = window.get_unix_menus() { { $ crate :: io :: _print ( format_args_nl ! ( $ ( $ arg ) * ) ) ; } }` [INFO] [stderr] | |_______| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> examples/menu.rs:70:9 [INFO] [stderr] | [INFO] [stderr] 70 | window.is_menu_pressed().map(|menu_id| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 71 | || match menu_id { [INFO] [stderr] 72 | || COLOR_0_ID => { [INFO] [stderr] 73 | || color_mul = 0xfe0000; [INFO] [stderr] ... || [INFO] [stderr] 88 | || println!("Menu id {} pressed", menu_id); [INFO] [stderr] 89 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(menu_id) = window.is_menu_pressed() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> examples/menu.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | window.get_keys().map(|keys| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 92 | || for t in keys { [INFO] [stderr] 93 | || match t { [INFO] [stderr] 94 | || Key::W => println!("holding w!"), [INFO] [stderr] ... || [INFO] [stderr] 98 | || } [INFO] [stderr] 99 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(keys) = window.get_keys() { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 8.83s [INFO] running `"docker" "inspect" "ae413ac68c7a90a26e6d65dbe801d8723a457455b5ec908be972cfe56744e668"` [INFO] running `"docker" "rm" "-f" "ae413ac68c7a90a26e6d65dbe801d8723a457455b5ec908be972cfe56744e668"` [INFO] [stdout] ae413ac68c7a90a26e6d65dbe801d8723a457455b5ec908be972cfe56744e668