[INFO] crate winit 0.18.0 is already in cache [INFO] extracting crate winit 0.18.0 into work/ex/clippy-test-run/sources/stable/reg/winit/0.18.0 [INFO] extracting crate winit 0.18.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/winit/0.18.0 [INFO] validating manifest of winit-0.18.0 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 winit-0.18.0 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 winit-0.18.0 [INFO] finished frobbing winit-0.18.0 [INFO] frobbed toml for winit-0.18.0 written to work/ex/clippy-test-run/sources/stable/reg/winit/0.18.0/Cargo.toml [INFO] started frobbing winit-0.18.0 [INFO] finished frobbing winit-0.18.0 [INFO] frobbed toml for winit-0.18.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/winit/0.18.0/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 winit-0.18.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-6/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/winit/0.18.0:/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] a7a77d7320bb06fca26829a0e96375561645196677a0d250042da83f07923329 [INFO] running `"docker" "start" "-a" "a7a77d7320bb06fca26829a0e96375561645196677a0d250042da83f07923329"` [INFO] [stderr] Checking nix v0.12.0 [INFO] [stderr] Checking memmap v0.7.0 [INFO] [stderr] Compiling wayland-scanner v0.21.11 [INFO] [stderr] Checking wayland-sys v0.21.11 [INFO] [stderr] Checking andrew v0.1.6 [INFO] [stderr] Compiling wayland-client v0.21.11 [INFO] [stderr] Compiling wayland-protocols v0.21.11 [INFO] [stderr] Checking wayland-commons v0.21.11 [INFO] [stderr] Checking smithay-client-toolkit v0.4.4 [INFO] [stderr] Checking winit v0.18.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:100:33 [INFO] [stderr] | [INFO] [stderr] 100 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/pointer.rs:101:33 [INFO] [stderr] | [INFO] [stderr] 101 | button: button, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `button` [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/platform/linux/wayland/touch.rs:46:29 [INFO] [stderr] | [INFO] [stderr] 46 | wid: wid, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `wid` [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/platform/linux/wayland/touch.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | 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/platform/linux/wayland/keyboard.rs:65:33 [INFO] [stderr] | [INFO] [stderr] 65 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/keyboard.rs:98:29 [INFO] [stderr] | [INFO] [stderr] 98 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/keyboard.rs:158:41 [INFO] [stderr] | [INFO] [stderr] 158 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/window.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | surface: surface, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `surface` [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/platform/linux/wayland/window.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | frame: frame, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `frame` [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/platform/linux/wayland/window.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | 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/platform/linux/wayland/window.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | need_frame_refresh: need_frame_refresh, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `need_frame_refresh` [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/platform/linux/wayland/pointer.rs:100:33 [INFO] [stderr] | [INFO] [stderr] 100 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/pointer.rs:101:33 [INFO] [stderr] | [INFO] [stderr] 101 | button: button, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `button` [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/platform/linux/wayland/touch.rs:46:29 [INFO] [stderr] | [INFO] [stderr] 46 | wid: wid, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `wid` [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/platform/linux/wayland/touch.rs:48:29 [INFO] [stderr] | [INFO] [stderr] 48 | 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/platform/linux/wayland/keyboard.rs:65:33 [INFO] [stderr] | [INFO] [stderr] 65 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/keyboard.rs:98:29 [INFO] [stderr] | [INFO] [stderr] 98 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/keyboard.rs:158:41 [INFO] [stderr] | [INFO] [stderr] 158 | state: state, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `state` [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/platform/linux/wayland/window.rs:152:13 [INFO] [stderr] | [INFO] [stderr] 152 | surface: surface, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `surface` [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/platform/linux/wayland/window.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | frame: frame, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `frame` [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/platform/linux/wayland/window.rs:156:13 [INFO] [stderr] | [INFO] [stderr] 156 | 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/platform/linux/wayland/window.rs:158:13 [INFO] [stderr] | [INFO] [stderr] 158 | need_frame_refresh: need_frame_refresh, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `need_frame_refresh` [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/platform/linux/x11/mod.rs:1394:13 [INFO] [stderr] | [INFO] [stderr] 1394 | scroll_axes: scroll_axes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `scroll_axes` [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/platform/linux/x11/mod.rs:1394:13 [INFO] [stderr] | [INFO] [stderr] 1394 | scroll_axes: scroll_axes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `scroll_axes` [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: module has the same name as its containing module [INFO] [stderr] --> src/platform/mod.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | mod platform; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/platform/linux/x11/ime/input_method.rs:267:20 [INFO] [stderr] | [INFO] [stderr] 267 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 268 | | if let Some(ref callback) = callback { [INFO] [stderr] 269 | | callback(); [INFO] [stderr] 270 | | } [INFO] [stderr] 271 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 267 | } else if let Some(ref callback) = callback { [INFO] [stderr] 268 | callback(); [INFO] [stderr] 269 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `Failed` [INFO] [stderr] --> src/platform/linux/x11/ime/callbacks.rs:79:1 [INFO] [stderr] | [INFO] [stderr] 79 | / enum ReplaceImError { [INFO] [stderr] 80 | | MethodOpenFailed(PotentialInputMethods), [INFO] [stderr] 81 | | ContextCreationFailed(ImeContextCreationError), [INFO] [stderr] 82 | | SetDestroyCallbackFailed(XError), [INFO] [stderr] 83 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/platform/mod.rs:8:1 [INFO] [stderr] | [INFO] [stderr] 8 | mod platform; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/platform/linux/x11/ime/input_method.rs:267:20 [INFO] [stderr] | [INFO] [stderr] 267 | } else { [INFO] [stderr] | ____________________^ [INFO] [stderr] 268 | | if let Some(ref callback) = callback { [INFO] [stderr] 269 | | callback(); [INFO] [stderr] 270 | | } [INFO] [stderr] 271 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 267 | } else if let Some(ref callback) = callback { [INFO] [stderr] 268 | callback(); [INFO] [stderr] 269 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: All variants have the same postfix: `Failed` [INFO] [stderr] --> src/platform/linux/x11/ime/callbacks.rs:79:1 [INFO] [stderr] | [INFO] [stderr] 79 | / enum ReplaceImError { [INFO] [stderr] 80 | | MethodOpenFailed(PotentialInputMethods), [INFO] [stderr] 81 | | ContextCreationFailed(ImeContextCreationError), [INFO] [stderr] 82 | | SetDestroyCallbackFailed(XError), [INFO] [stderr] 83 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::enum_variant_names)] on by default [INFO] [stderr] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:131:19 [INFO] [stderr] | [INFO] [stderr] 131 | Self::new(x as f64, y as f64) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | Self::new(x as f64, y as f64) [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:192:19 [INFO] [stderr] | [INFO] [stderr] 192 | Self::new(x as f64, y as f64) [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/dpi.rs:192:29 [INFO] [stderr] | [INFO] [stderr] 192 | Self::new(x as f64, y as f64) [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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:253:19 [INFO] [stderr] | [INFO] [stderr] 253 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:253:33 [INFO] [stderr] | [INFO] [stderr] 253 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:314:19 [INFO] [stderr] | [INFO] [stderr] 314 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:314:33 [INFO] [stderr] | [INFO] [stderr] 314 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/icon.rs:42:19 [INFO] [stderr] | [INFO] [stderr] 42 | let msg = match self { [INFO] [stderr] | ___________________^ [INFO] [stderr] 43 | | &BadIcon::ByteCountNotDivisibleBy4 { byte_count } => format!( [INFO] [stderr] 44 | | "The length of the `rgba` argument ({:?}) isn't divisible by 4, making it impossible to interpret as 32bpp RGBA pixels.", [INFO] [stderr] 45 | | byte_count, [INFO] [stderr] ... | [INFO] [stderr] 55 | | ), [INFO] [stderr] 56 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 42 | let msg = match *self { [INFO] [stderr] 43 | BadIcon::ByteCountNotDivisibleBy4 { byte_count } => format!( [INFO] [stderr] 44 | "The length of the `rgba` argument ({:?}) isn't divisible by 4, making it impossible to interpret as 32bpp RGBA pixels.", [INFO] [stderr] 45 | byte_count, [INFO] [stderr] 46 | ), [INFO] [stderr] 47 | BadIcon::DimensionsVsPixelCount { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:73:16 [INFO] [stderr] | [INFO] [stderr] 73 | pub seats: Arc)>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:141:38 [INFO] [stderr] | [INFO] [stderr] 141 | cleanup_needed: Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:253:63 [INFO] [stderr] | [INFO] [stderr] 253 | let logical_size = ::LogicalSize::new(w as f64, h as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(w)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:253:73 [INFO] [stderr] | [INFO] [stderr] 253 | let logical_size = ::LogicalSize::new(w as f64, h as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(h)` [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/platform/linux/wayland/event_loop.rs:264:71 [INFO] [stderr] | [INFO] [stderr] 264 | sink.send_event(::WindowEvent::HiDpiFactorChanged(dpi as f64), wid); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(dpi)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:284:12 [INFO] [stderr] | [INFO] [stderr] 284 | seats: Arc)>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().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] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:78:44 [INFO] [stderr] | [INFO] [stderr] 78 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:102:44 [INFO] [stderr] | [INFO] [stderr] 102 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:121:74 [INFO] [stderr] | [INFO] [stderr] 121 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:121:84 [INFO] [stderr] | [INFO] [stderr] 121 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:123:48 [INFO] [stderr] | [INFO] [stderr] 123 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:152:48 [INFO] [stderr] | [INFO] [stderr] 152 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:160:74 [INFO] [stderr] | [INFO] [stderr] 160 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:160:84 [INFO] [stderr] | [INFO] [stderr] 160 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:162:48 [INFO] [stderr] | [INFO] [stderr] 162 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/keyboard.rs:68:44 [INFO] [stderr] | [INFO] [stderr] 68 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/keyboard.rs:101:40 [INFO] [stderr] | [INFO] [stderr] 101 | modifiers: my_modifiers.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `my_modifiers.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/platform/linux/wayland/window.rs:132:36 [INFO] [stderr] | [INFO] [stderr] 132 | let kill_switch = Arc::new(Mutex::new(false)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/platform/linux/wayland/window.rs:133:43 [INFO] [stderr] | [INFO] [stderr] 133 | let need_frame_refresh = Arc::new(Mutex::new(true)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/window.rs:199:14 [INFO] [stderr] | [INFO] [stderr] 199 | Some(self.size.lock().unwrap().clone().into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.size.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/window.rs:204:22 [INFO] [stderr] | [INFO] [stderr] 204 | let (w, h) = self.size.lock().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.size.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/platform/linux/x11/window.rs:105:32 [INFO] [stderr] | [INFO] [stderr] 105 | return Err(OsError(format!("No monitors were detected."))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No monitors were detected.".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/platform/linux/x11/window.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | window.set_pid().map(|flusher| flusher.queue()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(flusher) = window.set_pid() { flusher.queue() }` [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: useless use of `format!` [INFO] [stderr] --> src/platform/linux/x11/window.rs:336:40 [INFO] [stderr] | [INFO] [stderr] 336 | return Err(OsError(format!("`XkbSetDetectableAutoRepeat` failed"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"`XkbSetDetectableAutoRepeat` failed".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/window.rs:439:19 [INFO] [stderr] | [INFO] [stderr] 439 | &[libc::getpid() as util::Cardinal], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(libc::getpid())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/window.rs:884:33 [INFO] [stderr] | [INFO] [stderr] 884 | let new_width = width as f64 * scale_factor; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/window.rs:885:34 [INFO] [stderr] | [INFO] [stderr] 885 | let new_height = height as f64 * scale_factor; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/x11/window.rs:922:14 [INFO] [stderr] | [INFO] [stderr] 922 | (window_size.clone(), window_size) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `window_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/ime/inner.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | / if let &Some(ref context) = context { [INFO] [stderr] 70 | | self.destroy_ic_if_necessary(context.ic)?; [INFO] [stderr] 71 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 69 | if let Some(ref context) = *context { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/ime/input_method.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | / if let &InputMethodResult::Fallback(_) = self { [INFO] [stderr] 67 | | true [INFO] [stderr] 68 | | } else { [INFO] [stderr] 69 | | false [INFO] [stderr] 70 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 66 | if let InputMethodResult::Fallback(_) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] error: casting from `*mut i8` to a more-strictly-aligned pointer (`*mut platform::platform::x11::ime::inner::ImeInner`) [INFO] [stderr] --> src/platform/linux/x11/ime/callbacks.rs:146:32 [INFO] [stderr] | [INFO] [stderr] 146 | let inner: *mut ImeInner = client_data as _; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut i8` to a more-strictly-aligned pointer (`*mut platform::platform::x11::ime::inner::ImeInner`) [INFO] [stderr] --> src/platform/linux/x11/ime/callbacks.rs:169:32 [INFO] [stderr] | [INFO] [stderr] 169 | let inner: *mut ImeInner = client_data as _; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:72:36 [INFO] [stderr] | [INFO] [stderr] 72 | let payload = unsafe { payload_ptr.offset(payload_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `payload_ptr.add(payload_index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:81:44 [INFO] [stderr] | [INFO] [stderr] 81 | let invalid_payload = unsafe { payload_ptr.offset(payload_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `payload_ptr.add(payload_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | let valid_t = unsafe { invalid_t_payload.offset(t_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `invalid_t_payload.add(t_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:86:66 [INFO] [stderr] | [INFO] [stderr] 86 | unsafe { (*t_payload.offset(t_index as isize)) = (*valid_t).clone() }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(*valid_t)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:86:28 [INFO] [stderr] | [INFO] [stderr] 86 | unsafe { (*t_payload.offset(t_index as isize)) = (*valid_t).clone() }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t_payload.add(t_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:26:31 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn is_same_size_as(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:30:28 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn get_actual_size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | / match self { [INFO] [stderr] 32 | | &Format::Char => mem::size_of::(), [INFO] [stderr] 33 | | &Format::Short => mem::size_of::(), [INFO] [stderr] 34 | | &Format::Long => mem::size_of::(), [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 31 | match *self { [INFO] [stderr] 32 | Format::Char => mem::size_of::(), [INFO] [stderr] 33 | Format::Short => mem::size_of::(), [INFO] [stderr] 34 | Format::Long => mem::size_of::(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn get_payload_size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match self { [INFO] [stderr] 40 | | // Due to the wonders of X11, half the space goes unused if you're not using longs (on 64-bit). [INFO] [stderr] 41 | | &Format::Char => mem::size_of::() * 20, [INFO] [stderr] 42 | | &Format::Short => mem::size_of::() * 10, [INFO] [stderr] 43 | | &Format::Long => mem::size_of::() * 5, [INFO] [stderr] 44 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 39 | match *self { [INFO] [stderr] 40 | // Due to the wonders of X11, half the space goes unused if you're not using longs (on 64-bit). [INFO] [stderr] 41 | Format::Char => mem::size_of::() * 20, [INFO] [stderr] 42 | Format::Short => mem::size_of::() * 10, [INFO] [stderr] 43 | Format::Long => mem::size_of::() * 5, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:17:23 [INFO] [stderr] | [INFO] [stderr] 17 | let (x, y) = (x as i64, y as i64); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::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 i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:17:33 [INFO] [stderr] | [INFO] [stderr] 17 | let (x, y) = (x as i64, y as i64); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:18:32 [INFO] [stderr] | [INFO] [stderr] 18 | let (width, height) = (width as i64, height as i64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(width)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:18:46 [INFO] [stderr] | [INFO] [stderr] 18 | let (width, height) = (width as i64, height as i64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:258:16 [INFO] [stderr] | [INFO] [stderr] 258 | if children != 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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:73:27 [INFO] [stderr] | [INFO] [stderr] 73 | pub(crate) fn as_atom(&self, xconn: &Arc) -> ffi::Atom { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:75:32 [INFO] [stderr] | [INFO] [stderr] 75 | let atom_name: &[u8] = match self { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 76 | | &Desktop => b"_NET_WM_WINDOW_TYPE_DESKTOP\0", [INFO] [stderr] 77 | | &Dock => b"_NET_WM_WINDOW_TYPE_DOCK\0", [INFO] [stderr] 78 | | &Toolbar => b"_NET_WM_WINDOW_TYPE_TOOLBAR\0", [INFO] [stderr] ... | [INFO] [stderr] 89 | | &Normal => b"_NET_WM_WINDOW_TYPE_NORMAL\0", [INFO] [stderr] 90 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 75 | let atom_name: &[u8] = match *self { [INFO] [stderr] 76 | Desktop => b"_NET_WM_WINDOW_TYPE_DESKTOP\0", [INFO] [stderr] 77 | Dock => b"_NET_WM_WINDOW_TYPE_DOCK\0", [INFO] [stderr] 78 | Toolbar => b"_NET_WM_WINDOW_TYPE_TOOLBAR\0", [INFO] [stderr] 79 | Menu => b"_NET_WM_WINDOW_TYPE_MENU\0", [INFO] [stderr] 80 | Utility => b"_NET_WM_WINDOW_TYPE_UTILITY\0", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:108:44 [INFO] [stderr] | [INFO] [stderr] 108 | fn getter(&self, flag: c_long, field1: &c_int, field2: &c_int) -> Option<(u32, u32)> { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `c_int` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:108:60 [INFO] [stderr] | [INFO] [stderr] 108 | fn getter(&self, flag: c_long, field1: &c_int, field2: &c_int) -> Option<(u32, u32)> { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `c_int` [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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/icon.rs:25:19 [INFO] [stderr] | [INFO] [stderr] 25 | data.push(self.width as Cardinal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.width)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/icon.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | data.push(self.height as Cardinal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.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 `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/icon.rs:29:36 [INFO] [stderr] | [INFO] [stderr] 29 | let pixel = unsafe { &*pixels.offset(pixel_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pixels.add(pixel_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | if width_mm == 0 || width_mm == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `width_mm == 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `||` [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | if width_mm == 0 || width_mm == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:32:10 [INFO] [stderr] | [INFO] [stderr] 32 | (width_px as f64 * height_px as f64) / (width_mm as f64 * height_mm as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(width_px)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | (width_px as f64 * height_px as f64) / (width_mm as f64 * height_mm as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(height_px)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/platform/linux/x11/util/mod.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | / pub fn reinterpret<'a, A, B>(a: &'a A) -> &'a B { [INFO] [stderr] 36 | | let b_ptr = a as *const _ as *const B; [INFO] [stderr] 37 | | unsafe { &*b_ptr } [INFO] [stderr] 38 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:118:18 [INFO] [stderr] | [INFO] [stderr] 118 | ) != ffi::Success as libc::c_int { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(ffi::Success)` [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: the function has a cyclomatic complexity of 70 [INFO] [stderr] --> src/platform/linux/x11/mod.rs:234:5 [INFO] [stderr] | [INFO] [stderr] 234 | / fn process_event(&mut self, xev: &mut ffi::XEvent, mut callback: F) [INFO] [stderr] 235 | | where F: FnMut(Event) [INFO] [stderr] 236 | | { [INFO] [stderr] 237 | | // XFilterEvent tells us when an event has been discarded by the input method. [INFO] [stderr] ... | [INFO] [stderr] 1146 | | } [INFO] [stderr] 1147 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:131:19 [INFO] [stderr] | [INFO] [stderr] 131 | Self::new(x as f64, y as f64) [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [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 i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:131:29 [INFO] [stderr] | [INFO] [stderr] 131 | Self::new(x as f64, y as f64) [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:192:19 [INFO] [stderr] | [INFO] [stderr] 192 | Self::new(x as f64, y as f64) [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/dpi.rs:192:29 [INFO] [stderr] | [INFO] [stderr] 192 | Self::new(x as f64, y as f64) [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: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:469:49 [INFO] [stderr] | [INFO] [stderr] 469 | .unwrap_or_else(|| (xev.width as f64, xev.height as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(xev.width)` [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/platform/linux/x11/mod.rs:469:67 [INFO] [stderr] | [INFO] [stderr] 469 | .unwrap_or_else(|| (xev.width as f64, xev.height as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(xev.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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/platform/linux/x11/mod.rs:485:28 [INFO] [stderr] | [INFO] [stderr] 485 | if last_hidpi_factor != new_hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(last_hidpi_factor - new_hidpi_factor).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/platform/linux/x11/mod.rs:485:28 [INFO] [stderr] | [INFO] [stderr] 485 | if last_hidpi_factor != new_hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:253:19 [INFO] [stderr] | [INFO] [stderr] 253 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:253:33 [INFO] [stderr] | [INFO] [stderr] 253 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:314:19 [INFO] [stderr] | [INFO] [stderr] 314 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/dpi.rs:314:33 [INFO] [stderr] | [INFO] [stderr] 314 | Self::new(width as f64, height as f64) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1103:29 [INFO] [stderr] | [INFO] [stderr] 1103 | / prev_list [INFO] [stderr] 1104 | | .iter() [INFO] [stderr] 1105 | | .find(|prev_monitor| prev_monitor.name == new_monitor.name) [INFO] [stderr] 1106 | | .map(|prev_monitor| { [INFO] [stderr] ... | [INFO] [stderr] 1133 | | } [INFO] [stderr] 1134 | | }); [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] help: try this [INFO] [stderr] | [INFO] [stderr] 1103 | if let Some(prev_monitor) = prev_list [INFO] [stderr] 1104 | .iter() [INFO] [stderr] 1105 | .find(|prev_monitor| prev_monitor.name == new_monitor.name) { ... } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1107:40 [INFO] [stderr] | [INFO] [stderr] 1107 | if new_monitor.hidpi_factor != prev_monitor.hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_monitor.hidpi_factor - prev_monitor.hidpi_factor).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1107:40 [INFO] [stderr] | [INFO] [stderr] 1107 | if new_monitor.hidpi_factor != prev_monitor.hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1126:57 [INFO] [stderr] | [INFO] [stderr] 1126 | width as f64, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1127:57 [INFO] [stderr] | [INFO] [stderr] 1127 | height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1141:9 [INFO] [stderr] | [INFO] [stderr] 1141 | / match self.ime_receiver.try_recv() { [INFO] [stderr] 1142 | | Ok((window_id, x, y)) => { [INFO] [stderr] 1143 | | self.ime.borrow_mut().send_xim_spot(window_id, x, y); [INFO] [stderr] 1144 | | }, [INFO] [stderr] 1145 | | Err(_) => (), [INFO] [stderr] 1146 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1141 | if let Ok((window_id, x, y)) = self.ime_receiver.try_recv() { [INFO] [stderr] 1142 | self.ime.borrow_mut().send_xim_spot(window_id, x, y); [INFO] [stderr] 1143 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1304:5 [INFO] [stderr] | [INFO] [stderr] 1304 | / fn from_event<'b>(xconn: &'b XConnection, event: ffi::XEvent) -> Option> { [INFO] [stderr] 1305 | | unsafe { [INFO] [stderr] 1306 | | let mut cookie: ffi::XGenericEventCookie = From::from(event); [INFO] [stderr] 1307 | | if (xconn.xlib.XGetEventData)(xconn.display, &mut cookie) == ffi::True { [INFO] [stderr] ... | [INFO] [stderr] 1312 | | } [INFO] [stderr] 1313 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1374:17 [INFO] [stderr] | [INFO] [stderr] 1374 | / match class._type { [INFO] [stderr] 1375 | | ffi::XIScrollClass => { [INFO] [stderr] 1376 | | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIScrollClassInfo>(class) }; [INFO] [stderr] 1377 | | scroll_axes.push((info.number, ScrollAxis { [INFO] [stderr] ... | [INFO] [stderr] 1387 | | _ => {} [INFO] [stderr] 1388 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1374 | if let ffi::XIScrollClass = class._type { [INFO] [stderr] 1375 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIScrollClassInfo>(class) }; [INFO] [stderr] 1376 | scroll_axes.push((info.number, ScrollAxis { [INFO] [stderr] 1377 | increment: info.increment, [INFO] [stderr] 1378 | orientation: match info.scroll_type { [INFO] [stderr] 1379 | ffi::XIScrollTypeHorizontal => ScrollOrientation::Horizontal, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1376:45 [INFO] [stderr] | [INFO] [stderr] 1376 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIScrollClassInfo>(class) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(class as *const x11_dl::xinput2::XIAnyClassInfo as *const x11_dl::xinput2::XIScrollClassInfo)` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1405:17 [INFO] [stderr] | [INFO] [stderr] 1405 | / match class._type { [INFO] [stderr] 1406 | | ffi::XIValuatorClass => { [INFO] [stderr] 1407 | | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIValuatorClassInfo>(class) }; [INFO] [stderr] 1408 | | if let Some(&mut (_, ref mut axis)) = self.scroll_axes.iter_mut().find(|&&mut (axis, _)| axis == info.number) { [INFO] [stderr] ... | [INFO] [stderr] 1412 | | _ => {} [INFO] [stderr] 1413 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1405 | if let ffi::XIValuatorClass = class._type { [INFO] [stderr] 1406 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIValuatorClassInfo>(class) }; [INFO] [stderr] 1407 | if let Some(&mut (_, ref mut axis)) = self.scroll_axes.iter_mut().find(|&&mut (axis, _)| axis == info.number) { [INFO] [stderr] 1408 | axis.position = info.value; [INFO] [stderr] 1409 | } [INFO] [stderr] 1410 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1407:45 [INFO] [stderr] | [INFO] [stderr] 1407 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIValuatorClassInfo>(class) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(class as *const x11_dl::xinput2::XIAnyClassInfo as *const x11_dl::xinput2::XIValuatorClassInfo)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / match self { [INFO] [stderr] 84 | | &MonitorId::X(ref m) => m.get_name(), [INFO] [stderr] 85 | | &MonitorId::Wayland(ref m) => m.get_name(), [INFO] [stderr] 86 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 83 | match *self { [INFO] [stderr] 84 | MonitorId::X(ref m) => m.get_name(), [INFO] [stderr] 85 | MonitorId::Wayland(ref m) => m.get_name(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | / match self { [INFO] [stderr] 92 | | &MonitorId::X(ref m) => m.get_native_identifier(), [INFO] [stderr] 93 | | &MonitorId::Wayland(ref m) => m.get_native_identifier(), [INFO] [stderr] 94 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 91 | match *self { [INFO] [stderr] 92 | MonitorId::X(ref m) => m.get_native_identifier(), [INFO] [stderr] 93 | MonitorId::Wayland(ref m) => m.get_native_identifier(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / match self { [INFO] [stderr] 100 | | &MonitorId::X(ref m) => m.get_dimensions(), [INFO] [stderr] 101 | | &MonitorId::Wayland(ref m) => m.get_dimensions(), [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 99 | match *self { [INFO] [stderr] 100 | MonitorId::X(ref m) => m.get_dimensions(), [INFO] [stderr] 101 | MonitorId::Wayland(ref m) => m.get_dimensions(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | / match self { [INFO] [stderr] 108 | | &MonitorId::X(ref m) => m.get_position(), [INFO] [stderr] 109 | | &MonitorId::Wayland(ref m) => m.get_position(), [INFO] [stderr] 110 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 107 | match *self { [INFO] [stderr] 108 | MonitorId::X(ref m) => m.get_position(), [INFO] [stderr] 109 | MonitorId::Wayland(ref m) => m.get_position(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | / match self { [INFO] [stderr] 116 | | &MonitorId::X(ref m) => m.get_hidpi_factor(), [INFO] [stderr] 117 | | &MonitorId::Wayland(ref m) => m.get_hidpi_factor() as f64, [INFO] [stderr] 118 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 115 | match *self { [INFO] [stderr] 116 | MonitorId::X(ref m) => m.get_hidpi_factor(), [INFO] [stderr] 117 | MonitorId::Wayland(ref m) => m.get_hidpi_factor() as f64, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/mod.rs:117:43 [INFO] [stderr] | [INFO] [stderr] 117 | &MonitorId::Wayland(ref m) => m.get_hidpi_factor() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(m.get_hidpi_factor())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | / match self { [INFO] [stderr] 142 | | &Window::X(ref w) => WindowId::X(w.id()), [INFO] [stderr] 143 | | &Window::Wayland(ref w) => WindowId::Wayland(w.id()), [INFO] [stderr] 144 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 141 | match *self { [INFO] [stderr] 142 | Window::X(ref w) => WindowId::X(w.id()), [INFO] [stderr] 143 | Window::Wayland(ref w) => WindowId::Wayland(w.id()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | / match self { [INFO] [stderr] 150 | | &Window::X(ref w) => w.set_title(title), [INFO] [stderr] 151 | | &Window::Wayland(ref w) => w.set_title(title), [INFO] [stderr] 152 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 149 | match *self { [INFO] [stderr] 150 | Window::X(ref w) => w.set_title(title), [INFO] [stderr] 151 | Window::Wayland(ref w) => w.set_title(title), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | / match self { [INFO] [stderr] 158 | | &Window::X(ref w) => w.show(), [INFO] [stderr] 159 | | &Window::Wayland(ref w) => w.show(), [INFO] [stderr] 160 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 157 | match *self { [INFO] [stderr] 158 | Window::X(ref w) => w.show(), [INFO] [stderr] 159 | Window::Wayland(ref w) => w.show(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | / match self { [INFO] [stderr] 166 | | &Window::X(ref w) => w.hide(), [INFO] [stderr] 167 | | &Window::Wayland(ref w) => w.hide(), [INFO] [stderr] 168 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 165 | match *self { [INFO] [stderr] 166 | Window::X(ref w) => w.hide(), [INFO] [stderr] 167 | Window::Wayland(ref w) => w.hide(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / match self { [INFO] [stderr] 174 | | &Window::X(ref w) => w.get_position(), [INFO] [stderr] 175 | | &Window::Wayland(ref w) => w.get_position(), [INFO] [stderr] 176 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 173 | match *self { [INFO] [stderr] 174 | Window::X(ref w) => w.get_position(), [INFO] [stderr] 175 | Window::Wayland(ref w) => w.get_position(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | / match self { [INFO] [stderr] 182 | | &Window::X(ref m) => m.get_inner_position(), [INFO] [stderr] 183 | | &Window::Wayland(ref m) => m.get_inner_position(), [INFO] [stderr] 184 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 181 | match *self { [INFO] [stderr] 182 | Window::X(ref m) => m.get_inner_position(), [INFO] [stderr] 183 | Window::Wayland(ref m) => m.get_inner_position(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | / match self { [INFO] [stderr] 190 | | &Window::X(ref w) => w.set_position(position), [INFO] [stderr] 191 | | &Window::Wayland(ref w) => w.set_position(position), [INFO] [stderr] 192 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 189 | match *self { [INFO] [stderr] 190 | Window::X(ref w) => w.set_position(position), [INFO] [stderr] 191 | Window::Wayland(ref w) => w.set_position(position), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | / match self { [INFO] [stderr] 198 | | &Window::X(ref w) => w.get_inner_size(), [INFO] [stderr] 199 | | &Window::Wayland(ref w) => w.get_inner_size(), [INFO] [stderr] 200 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 197 | match *self { [INFO] [stderr] 198 | Window::X(ref w) => w.get_inner_size(), [INFO] [stderr] 199 | Window::Wayland(ref w) => w.get_inner_size(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | / match self { [INFO] [stderr] 206 | | &Window::X(ref w) => w.get_outer_size(), [INFO] [stderr] 207 | | &Window::Wayland(ref w) => w.get_outer_size(), [INFO] [stderr] 208 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 205 | match *self { [INFO] [stderr] 206 | Window::X(ref w) => w.get_outer_size(), [INFO] [stderr] 207 | Window::Wayland(ref w) => w.get_outer_size(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:213:9 [INFO] [stderr] | [INFO] [stderr] 213 | / match self { [INFO] [stderr] 214 | | &Window::X(ref w) => w.set_inner_size(size), [INFO] [stderr] 215 | | &Window::Wayland(ref w) => w.set_inner_size(size), [INFO] [stderr] 216 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 213 | match *self { [INFO] [stderr] 214 | Window::X(ref w) => w.set_inner_size(size), [INFO] [stderr] 215 | Window::Wayland(ref w) => w.set_inner_size(size), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | / match self { [INFO] [stderr] 222 | | &Window::X(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] 223 | | &Window::Wayland(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] 224 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 221 | match *self { [INFO] [stderr] 222 | Window::X(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] 223 | Window::Wayland(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | / match self { [INFO] [stderr] 230 | | &Window::X(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] 231 | | &Window::Wayland(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] 232 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 229 | match *self { [INFO] [stderr] 230 | Window::X(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] 231 | Window::Wayland(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:237:9 [INFO] [stderr] | [INFO] [stderr] 237 | / match self { [INFO] [stderr] 238 | | &Window::X(ref w) => w.set_resizable(resizable), [INFO] [stderr] 239 | | &Window::Wayland(ref w) => w.set_resizable(resizable), [INFO] [stderr] 240 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 237 | match *self { [INFO] [stderr] 238 | Window::X(ref w) => w.set_resizable(resizable), [INFO] [stderr] 239 | Window::Wayland(ref w) => w.set_resizable(resizable), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | / match self { [INFO] [stderr] 246 | | &Window::X(ref w) => w.set_cursor(cursor), [INFO] [stderr] 247 | | &Window::Wayland(ref w) => w.set_cursor(cursor) [INFO] [stderr] 248 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 245 | match *self { [INFO] [stderr] 246 | Window::X(ref w) => w.set_cursor(cursor), [INFO] [stderr] 247 | Window::Wayland(ref w) => w.set_cursor(cursor) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | / match self { [INFO] [stderr] 254 | | &Window::X(ref window) => window.grab_cursor(grab), [INFO] [stderr] 255 | | &Window::Wayland(ref window) => window.grab_cursor(grab), [INFO] [stderr] 256 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 253 | match *self { [INFO] [stderr] 254 | Window::X(ref window) => window.grab_cursor(grab), [INFO] [stderr] 255 | Window::Wayland(ref window) => window.grab_cursor(grab), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | / match self { [INFO] [stderr] 262 | | &Window::X(ref window) => window.hide_cursor(hide), [INFO] [stderr] 263 | | &Window::Wayland(ref window) => window.hide_cursor(hide), [INFO] [stderr] 264 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 261 | match *self { [INFO] [stderr] 262 | Window::X(ref window) => window.hide_cursor(hide), [INFO] [stderr] 263 | Window::Wayland(ref window) => window.hide_cursor(hide), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:269:8 [INFO] [stderr] | [INFO] [stderr] 269 | / match self { [INFO] [stderr] 270 | | &Window::X(ref w) => w.get_hidpi_factor(), [INFO] [stderr] 271 | | &Window::Wayland(ref w) => w.hidpi_factor() as f64, [INFO] [stderr] 272 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 269 | match *self { [INFO] [stderr] 270 | Window::X(ref w) => w.get_hidpi_factor(), [INFO] [stderr] 271 | Window::Wayland(ref w) => w.hidpi_factor() as f64, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/mod.rs:271:40 [INFO] [stderr] | [INFO] [stderr] 271 | &Window::Wayland(ref w) => w.hidpi_factor() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(w.hidpi_factor())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 277 | / match self { [INFO] [stderr] 278 | | &Window::X(ref w) => w.set_cursor_position(position), [INFO] [stderr] 279 | | &Window::Wayland(ref w) => w.set_cursor_position(position), [INFO] [stderr] 280 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 277 | match *self { [INFO] [stderr] 278 | Window::X(ref w) => w.set_cursor_position(position), [INFO] [stderr] 279 | Window::Wayland(ref w) => w.set_cursor_position(position), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:285:9 [INFO] [stderr] | [INFO] [stderr] 285 | / match self { [INFO] [stderr] 286 | | &Window::X(ref w) => w.set_maximized(maximized), [INFO] [stderr] 287 | | &Window::Wayland(ref w) => w.set_maximized(maximized), [INFO] [stderr] 288 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 285 | match *self { [INFO] [stderr] 286 | Window::X(ref w) => w.set_maximized(maximized), [INFO] [stderr] 287 | Window::Wayland(ref w) => w.set_maximized(maximized), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:293:9 [INFO] [stderr] | [INFO] [stderr] 293 | / match self { [INFO] [stderr] 294 | | &Window::X(ref w) => w.set_fullscreen(monitor), [INFO] [stderr] 295 | | &Window::Wayland(ref w) => w.set_fullscreen(monitor) [INFO] [stderr] 296 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 293 | match *self { [INFO] [stderr] 294 | Window::X(ref w) => w.set_fullscreen(monitor), [INFO] [stderr] 295 | Window::Wayland(ref w) => w.set_fullscreen(monitor) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:301:9 [INFO] [stderr] | [INFO] [stderr] 301 | / match self { [INFO] [stderr] 302 | | &Window::X(ref w) => w.set_decorations(decorations), [INFO] [stderr] 303 | | &Window::Wayland(ref w) => w.set_decorations(decorations) [INFO] [stderr] 304 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 301 | match *self { [INFO] [stderr] 302 | Window::X(ref w) => w.set_decorations(decorations), [INFO] [stderr] 303 | Window::Wayland(ref w) => w.set_decorations(decorations) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | / match self { [INFO] [stderr] 310 | | &Window::X(ref w) => w.set_always_on_top(always_on_top), [INFO] [stderr] 311 | | &Window::Wayland(_) => (), [INFO] [stderr] 312 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 309 | match *self { [INFO] [stderr] 310 | Window::X(ref w) => w.set_always_on_top(always_on_top), [INFO] [stderr] 311 | Window::Wayland(_) => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:317:9 [INFO] [stderr] | [INFO] [stderr] 317 | / match self { [INFO] [stderr] 318 | | &Window::X(ref w) => w.set_window_icon(window_icon), [INFO] [stderr] 319 | | &Window::Wayland(_) => (), [INFO] [stderr] 320 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 317 | match *self { [INFO] [stderr] 318 | Window::X(ref w) => w.set_window_icon(window_icon), [INFO] [stderr] 319 | Window::Wayland(_) => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:325:9 [INFO] [stderr] | [INFO] [stderr] 325 | / match self { [INFO] [stderr] 326 | | &Window::X(ref w) => w.set_ime_spot(position), [INFO] [stderr] 327 | | &Window::Wayland(_) => (), [INFO] [stderr] 328 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 325 | match *self { [INFO] [stderr] 326 | Window::X(ref w) => w.set_ime_spot(position), [INFO] [stderr] 327 | Window::Wayland(_) => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:333:9 [INFO] [stderr] | [INFO] [stderr] 333 | / match self { [INFO] [stderr] 334 | | &Window::X(ref window) => RootMonitorId { inner: MonitorId::X(window.get_current_monitor()) }, [INFO] [stderr] 335 | | &Window::Wayland(ref window) => RootMonitorId { inner: MonitorId::Wayland(window.get_current_monitor()) }, [INFO] [stderr] 336 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 333 | match *self { [INFO] [stderr] 334 | Window::X(ref window) => RootMonitorId { inner: MonitorId::X(window.get_current_monitor()) }, [INFO] [stderr] 335 | Window::Wayland(ref window) => RootMonitorId { inner: MonitorId::Wayland(window.get_current_monitor()) }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:341:9 [INFO] [stderr] | [INFO] [stderr] 341 | / match self { [INFO] [stderr] 342 | | &Window::X(ref window) => window.get_available_monitors() [INFO] [stderr] 343 | | .into_iter() [INFO] [stderr] 344 | | .map(MonitorId::X) [INFO] [stderr] ... | [INFO] [stderr] 349 | | .collect(), [INFO] [stderr] 350 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 341 | match *self { [INFO] [stderr] 342 | Window::X(ref window) => window.get_available_monitors() [INFO] [stderr] 343 | .into_iter() [INFO] [stderr] 344 | .map(MonitorId::X) [INFO] [stderr] 345 | .collect(), [INFO] [stderr] 346 | Window::Wayland(ref window) => window.get_available_monitors() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:355:9 [INFO] [stderr] | [INFO] [stderr] 355 | / match self { [INFO] [stderr] 356 | | &Window::X(ref window) => MonitorId::X(window.get_primary_monitor()), [INFO] [stderr] 357 | | &Window::Wayland(ref window) => MonitorId::Wayland(window.get_primary_monitor()), [INFO] [stderr] 358 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 355 | match *self { [INFO] [stderr] 356 | Window::X(ref window) => MonitorId::X(window.get_primary_monitor()), [INFO] [stderr] 357 | Window::Wayland(ref window) => MonitorId::Wayland(window.get_primary_monitor()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/mod.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | (*event).error_code as c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from((*event).error_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: you should consider deriving a `Default` implementation for `WindowBuilder` [INFO] [stderr] --> src/window.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> WindowBuilder { [INFO] [stderr] 22 | | WindowBuilder { [INFO] [stderr] 23 | | window: Default::default(), [INFO] [stderr] 24 | | platform_specific: Default::default(), [INFO] [stderr] 25 | | } [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 318| #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/os/unix.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | Err(_) => panic!() // TODO: propagate [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `EventsLoop` [INFO] [stderr] --> src/lib.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn new() -> EventsLoop { [INFO] [stderr] 222 | | EventsLoop { [INFO] [stderr] 223 | | events_loop: platform::EventsLoop::new(), [INFO] [stderr] 224 | | _marker: ::std::marker::PhantomData, [INFO] [stderr] 225 | | } [INFO] [stderr] 226 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 214 | impl Default for EventsLoop { [INFO] [stderr] 215 | fn default() -> Self { [INFO] [stderr] 216 | Self::new() [INFO] [stderr] 217 | } [INFO] [stderr] 218 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/icon.rs:42:19 [INFO] [stderr] | [INFO] [stderr] 42 | let msg = match self { [INFO] [stderr] | ___________________^ [INFO] [stderr] 43 | | &BadIcon::ByteCountNotDivisibleBy4 { byte_count } => format!( [INFO] [stderr] 44 | | "The length of the `rgba` argument ({:?}) isn't divisible by 4, making it impossible to interpret as 32bpp RGBA pixels.", [INFO] [stderr] 45 | | byte_count, [INFO] [stderr] ... | [INFO] [stderr] 55 | | ), [INFO] [stderr] 56 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 42 | let msg = match *self { [INFO] [stderr] 43 | BadIcon::ByteCountNotDivisibleBy4 { byte_count } => format!( [INFO] [stderr] 44 | "The length of the `rgba` argument ({:?}) isn't divisible by 4, making it impossible to interpret as 32bpp RGBA pixels.", [INFO] [stderr] 45 | byte_count, [INFO] [stderr] 46 | ), [INFO] [stderr] 47 | BadIcon::DimensionsVsPixelCount { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:73:16 [INFO] [stderr] | [INFO] [stderr] 73 | pub seats: Arc)>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:141:38 [INFO] [stderr] | [INFO] [stderr] 141 | cleanup_needed: Arc::new(Mutex::new(false)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::mutex_atomic)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:253:63 [INFO] [stderr] | [INFO] [stderr] 253 | let logical_size = ::LogicalSize::new(w as f64, h as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(w)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:253:73 [INFO] [stderr] | [INFO] [stderr] 253 | let logical_size = ::LogicalSize::new(w as f64, h as f64); [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(h)` [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/platform/linux/wayland/event_loop.rs:264:71 [INFO] [stderr] | [INFO] [stderr] 264 | sink.send_event(::WindowEvent::HiDpiFactorChanged(dpi as f64), wid); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(dpi)` [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: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/platform/linux/wayland/event_loop.rs:284:12 [INFO] [stderr] | [INFO] [stderr] 284 | seats: Arc)>>>, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: Could not compile `winit`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:50:44 [INFO] [stderr] | [INFO] [stderr] 50 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().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] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:78:44 [INFO] [stderr] | [INFO] [stderr] 78 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:102:44 [INFO] [stderr] | [INFO] [stderr] 102 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:121:74 [INFO] [stderr] | [INFO] [stderr] 121 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:121:84 [INFO] [stderr] | [INFO] [stderr] 121 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:123:48 [INFO] [stderr] | [INFO] [stderr] 123 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:152:48 [INFO] [stderr] | [INFO] [stderr] 152 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:160:74 [INFO] [stderr] | [INFO] [stderr] 160 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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 f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:160:84 [INFO] [stderr] | [INFO] [stderr] 160 | delta: MouseScrollDelta::PixelDelta((x as f64, y as f64).into()), [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/pointer.rs:162:48 [INFO] [stderr] | [INFO] [stderr] 162 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/keyboard.rs:68:44 [INFO] [stderr] | [INFO] [stderr] 68 | modifiers: modifiers_tracker.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `modifiers_tracker.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/keyboard.rs:101:40 [INFO] [stderr] | [INFO] [stderr] 101 | modifiers: my_modifiers.lock().unwrap().clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `my_modifiers.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/platform/linux/wayland/window.rs:132:36 [INFO] [stderr] | [INFO] [stderr] 132 | let kill_switch = Arc::new(Mutex::new(false)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: Consider using an AtomicBool instead of a Mutex here. If you just want the locking behaviour and not the internal type, consider using Mutex<()>. [INFO] [stderr] --> src/platform/linux/wayland/window.rs:133:43 [INFO] [stderr] | [INFO] [stderr] 133 | let need_frame_refresh = Arc::new(Mutex::new(true)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#mutex_atomic [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/window.rs:199:14 [INFO] [stderr] | [INFO] [stderr] 199 | Some(self.size.lock().unwrap().clone().into()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.size.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/wayland/window.rs:204:22 [INFO] [stderr] | [INFO] [stderr] 204 | let (w, h) = self.size.lock().unwrap().clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.size.lock().unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: useless use of `format!` [INFO] [stderr] --> src/platform/linux/x11/window.rs:105:32 [INFO] [stderr] | [INFO] [stderr] 105 | return Err(OsError(format!("No monitors were detected."))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"No monitors were detected.".to_string()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_format)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/platform/linux/x11/window.rs:269:13 [INFO] [stderr] | [INFO] [stderr] 269 | window.set_pid().map(|flusher| flusher.queue()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(flusher) = window.set_pid() { flusher.queue() }` [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: useless use of `format!` [INFO] [stderr] --> src/platform/linux/x11/window.rs:336:40 [INFO] [stderr] | [INFO] [stderr] 336 | return Err(OsError(format!("`XkbSetDetectableAutoRepeat` failed"))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using .to_string(): `"`XkbSetDetectableAutoRepeat` failed".to_string()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/window.rs:439:19 [INFO] [stderr] | [INFO] [stderr] 439 | &[libc::getpid() as util::Cardinal], [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(libc::getpid())` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/window.rs:884:33 [INFO] [stderr] | [INFO] [stderr] 884 | let new_width = width as f64 * scale_factor; [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/window.rs:885:34 [INFO] [stderr] | [INFO] [stderr] 885 | let new_height = height as f64 * scale_factor; [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/x11/window.rs:922:14 [INFO] [stderr] | [INFO] [stderr] 922 | (window_size.clone(), window_size) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `window_size` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/ime/inner.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | / if let &Some(ref context) = context { [INFO] [stderr] 70 | | self.destroy_ic_if_necessary(context.ic)?; [INFO] [stderr] 71 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 69 | if let Some(ref context) = *context { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/ime/input_method.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | / if let &InputMethodResult::Fallback(_) = self { [INFO] [stderr] 67 | | true [INFO] [stderr] 68 | | } else { [INFO] [stderr] 69 | | false [INFO] [stderr] 70 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 66 | if let InputMethodResult::Fallback(_) = *self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] [INFO] [stderr] error: casting from `*mut i8` to a more-strictly-aligned pointer (`*mut platform::platform::x11::ime::inner::ImeInner`) [INFO] [stderr] --> src/platform/linux/x11/ime/callbacks.rs:146:32 [INFO] [stderr] | [INFO] [stderr] 146 | let inner: *mut ImeInner = client_data as _; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*mut i8` to a more-strictly-aligned pointer (`*mut platform::platform::x11::ime::inner::ImeInner`) [INFO] [stderr] --> src/platform/linux/x11/ime/callbacks.rs:169:32 [INFO] [stderr] | [INFO] [stderr] 169 | let inner: *mut ImeInner = client_data as _; [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:72:36 [INFO] [stderr] | [INFO] [stderr] 72 | let payload = unsafe { payload_ptr.offset(payload_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `payload_ptr.add(payload_index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_offset_with_cast)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:81:44 [INFO] [stderr] | [INFO] [stderr] 81 | let invalid_payload = unsafe { payload_ptr.offset(payload_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `payload_ptr.add(payload_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:85:40 [INFO] [stderr] | [INFO] [stderr] 85 | let valid_t = unsafe { invalid_t_payload.offset(t_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `invalid_t_payload.add(t_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:86:66 [INFO] [stderr] | [INFO] [stderr] 86 | unsafe { (*t_payload.offset(t_index as isize)) = (*valid_t).clone() }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `(*valid_t)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: use of `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/client_msg.rs:86:28 [INFO] [stderr] | [INFO] [stderr] 86 | unsafe { (*t_payload.offset(t_index as isize)) = (*valid_t).clone() }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `t_payload.add(t_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:26:31 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn is_same_size_as(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:30:28 [INFO] [stderr] | [INFO] [stderr] 30 | pub fn get_actual_size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:31:9 [INFO] [stderr] | [INFO] [stderr] 31 | / match self { [INFO] [stderr] 32 | | &Format::Char => mem::size_of::(), [INFO] [stderr] 33 | | &Format::Short => mem::size_of::(), [INFO] [stderr] 34 | | &Format::Long => mem::size_of::(), [INFO] [stderr] 35 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 31 | match *self { [INFO] [stderr] 32 | Format::Char => mem::size_of::(), [INFO] [stderr] 33 | Format::Short => mem::size_of::(), [INFO] [stderr] 34 | Format::Long => mem::size_of::(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:38:29 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn get_payload_size(&self) -> usize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/util/format.rs:39:9 [INFO] [stderr] | [INFO] [stderr] 39 | / match self { [INFO] [stderr] 40 | | // Due to the wonders of X11, half the space goes unused if you're not using longs (on 64-bit). [INFO] [stderr] 41 | | &Format::Char => mem::size_of::() * 20, [INFO] [stderr] 42 | | &Format::Short => mem::size_of::() * 10, [INFO] [stderr] 43 | | &Format::Long => mem::size_of::() * 5, [INFO] [stderr] 44 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 39 | match *self { [INFO] [stderr] 40 | // Due to the wonders of X11, half the space goes unused if you're not using longs (on 64-bit). [INFO] [stderr] 41 | Format::Char => mem::size_of::() * 20, [INFO] [stderr] 42 | Format::Short => mem::size_of::() * 10, [INFO] [stderr] 43 | Format::Long => mem::size_of::() * 5, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:17:23 [INFO] [stderr] | [INFO] [stderr] 17 | let (x, y) = (x as i64, y as i64); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::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 i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:17:33 [INFO] [stderr] | [INFO] [stderr] 17 | let (x, y) = (x as i64, y as i64); [INFO] [stderr] | ^^^^^^^^ help: try: `i64::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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:18:32 [INFO] [stderr] | [INFO] [stderr] 18 | let (width, height) = (width as i64, height as i64); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `i64::from(width)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:18:46 [INFO] [stderr] | [INFO] [stderr] 18 | let (width, height) = (width as i64, height as i64); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `i64::from(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: Comparing with null is better expressed by the .is_null() method [INFO] [stderr] --> src/platform/linux/x11/util/geometry.rs:258:16 [INFO] [stderr] | [INFO] [stderr] 258 | if children != 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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:73:27 [INFO] [stderr] | [INFO] [stderr] 73 | pub(crate) fn as_atom(&self, xconn: &Arc) -> ffi::Atom { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:75:32 [INFO] [stderr] | [INFO] [stderr] 75 | let atom_name: &[u8] = match self { [INFO] [stderr] | ________________________________^ [INFO] [stderr] 76 | | &Desktop => b"_NET_WM_WINDOW_TYPE_DESKTOP\0", [INFO] [stderr] 77 | | &Dock => b"_NET_WM_WINDOW_TYPE_DOCK\0", [INFO] [stderr] 78 | | &Toolbar => b"_NET_WM_WINDOW_TYPE_TOOLBAR\0", [INFO] [stderr] ... | [INFO] [stderr] 89 | | &Normal => b"_NET_WM_WINDOW_TYPE_NORMAL\0", [INFO] [stderr] 90 | | }; [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 75 | let atom_name: &[u8] = match *self { [INFO] [stderr] 76 | Desktop => b"_NET_WM_WINDOW_TYPE_DESKTOP\0", [INFO] [stderr] 77 | Dock => b"_NET_WM_WINDOW_TYPE_DOCK\0", [INFO] [stderr] 78 | Toolbar => b"_NET_WM_WINDOW_TYPE_TOOLBAR\0", [INFO] [stderr] 79 | Menu => b"_NET_WM_WINDOW_TYPE_MENU\0", [INFO] [stderr] 80 | Utility => b"_NET_WM_WINDOW_TYPE_UTILITY\0", [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:108:44 [INFO] [stderr] | [INFO] [stderr] 108 | fn getter(&self, flag: c_long, field1: &c_int, field2: &c_int) -> Option<(u32, u32)> { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `c_int` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/platform/linux/x11/util/hint.rs:108:60 [INFO] [stderr] | [INFO] [stderr] 108 | fn getter(&self, flag: c_long, field1: &c_int, field2: &c_int) -> Option<(u32, u32)> { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `c_int` [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: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/icon.rs:25:19 [INFO] [stderr] | [INFO] [stderr] 25 | data.push(self.width as Cardinal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.width)` [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 i64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/icon.rs:26:19 [INFO] [stderr] | [INFO] [stderr] 26 | data.push(self.height as Cardinal); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i64::from(self.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 `offset` with a `usize` casted to an `isize` [INFO] [stderr] --> src/platform/linux/x11/util/icon.rs:29:36 [INFO] [stderr] | [INFO] [stderr] 29 | let pixel = unsafe { &*pixels.offset(pixel_index as isize) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `pixels.add(pixel_index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_offset_with_cast [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | if width_mm == 0 || width_mm == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `width_mm == 0` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] error: equal expressions as operands to `||` [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | if width_mm == 0 || width_mm == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::eq_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#eq_op [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:32:10 [INFO] [stderr] | [INFO] [stderr] 32 | (width_px as f64 * height_px as f64) / (width_mm as f64 * height_mm as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: try: `f64::from(width_px)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/util/randr.rs:32:28 [INFO] [stderr] | [INFO] [stderr] 32 | (width_px as f64 * height_px as f64) / (width_mm as f64 * height_mm as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(height_px)` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/platform/linux/x11/util/mod.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | / pub fn reinterpret<'a, A, B>(a: &'a A) -> &'a B { [INFO] [stderr] 36 | | let b_ptr = a as *const _ as *const B; [INFO] [stderr] 37 | | unsafe { &*b_ptr } [INFO] [stderr] 38 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:118:18 [INFO] [stderr] | [INFO] [stderr] 118 | ) != ffi::Success as libc::c_int { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from(ffi::Success)` [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: the function has a cyclomatic complexity of 70 [INFO] [stderr] --> src/platform/linux/x11/mod.rs:234:5 [INFO] [stderr] | [INFO] [stderr] 234 | / fn process_event(&mut self, xev: &mut ffi::XEvent, mut callback: F) [INFO] [stderr] 235 | | where F: FnMut(Event) [INFO] [stderr] 236 | | { [INFO] [stderr] 237 | | // XFilterEvent tells us when an event has been discarded by the input method. [INFO] [stderr] ... | [INFO] [stderr] 1146 | | } [INFO] [stderr] 1147 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:469:49 [INFO] [stderr] | [INFO] [stderr] 469 | .unwrap_or_else(|| (xev.width as f64, xev.height as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try: `f64::from(xev.width)` [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/platform/linux/x11/mod.rs:469:67 [INFO] [stderr] | [INFO] [stderr] 469 | .unwrap_or_else(|| (xev.width as f64, xev.height as f64)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: try: `f64::from(xev.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] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/platform/linux/x11/mod.rs:485:28 [INFO] [stderr] | [INFO] [stderr] 485 | if last_hidpi_factor != new_hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(last_hidpi_factor - new_hidpi_factor).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/platform/linux/x11/mod.rs:485:28 [INFO] [stderr] | [INFO] [stderr] 485 | if last_hidpi_factor != new_hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1103:29 [INFO] [stderr] | [INFO] [stderr] 1103 | / prev_list [INFO] [stderr] 1104 | | .iter() [INFO] [stderr] 1105 | | .find(|prev_monitor| prev_monitor.name == new_monitor.name) [INFO] [stderr] 1106 | | .map(|prev_monitor| { [INFO] [stderr] ... | [INFO] [stderr] 1133 | | } [INFO] [stderr] 1134 | | }); [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] help: try this [INFO] [stderr] | [INFO] [stderr] 1103 | if let Some(prev_monitor) = prev_list [INFO] [stderr] 1104 | .iter() [INFO] [stderr] 1105 | .find(|prev_monitor| prev_monitor.name == new_monitor.name) { ... } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1107:40 [INFO] [stderr] | [INFO] [stderr] 1107 | if new_monitor.hidpi_factor != prev_monitor.hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider comparing them within some error: `(new_monitor.hidpi_factor - prev_monitor.hidpi_factor).abs() < error` [INFO] [stderr] | [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1107:40 [INFO] [stderr] | [INFO] [stderr] 1107 | if new_monitor.hidpi_factor != prev_monitor.hidpi_factor { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1126:57 [INFO] [stderr] | [INFO] [stderr] 1126 | width as f64, [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(width)` [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 f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1127:57 [INFO] [stderr] | [INFO] [stderr] 1127 | height as f64, [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1141:9 [INFO] [stderr] | [INFO] [stderr] 1141 | / match self.ime_receiver.try_recv() { [INFO] [stderr] 1142 | | Ok((window_id, x, y)) => { [INFO] [stderr] 1143 | | self.ime.borrow_mut().send_xim_spot(window_id, x, y); [INFO] [stderr] 1144 | | }, [INFO] [stderr] 1145 | | Err(_) => (), [INFO] [stderr] 1146 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1141 | if let Ok((window_id, x, y)) = self.ime_receiver.try_recv() { [INFO] [stderr] 1142 | self.ime.borrow_mut().send_xim_spot(window_id, x, y); [INFO] [stderr] 1143 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1304:5 [INFO] [stderr] | [INFO] [stderr] 1304 | / fn from_event<'b>(xconn: &'b XConnection, event: ffi::XEvent) -> Option> { [INFO] [stderr] 1305 | | unsafe { [INFO] [stderr] 1306 | | let mut cookie: ffi::XGenericEventCookie = From::from(event); [INFO] [stderr] 1307 | | if (xconn.xlib.XGetEventData)(xconn.display, &mut cookie) == ffi::True { [INFO] [stderr] ... | [INFO] [stderr] 1312 | | } [INFO] [stderr] 1313 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1374:17 [INFO] [stderr] | [INFO] [stderr] 1374 | / match class._type { [INFO] [stderr] 1375 | | ffi::XIScrollClass => { [INFO] [stderr] 1376 | | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIScrollClassInfo>(class) }; [INFO] [stderr] 1377 | | scroll_axes.push((info.number, ScrollAxis { [INFO] [stderr] ... | [INFO] [stderr] 1387 | | _ => {} [INFO] [stderr] 1388 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1374 | if let ffi::XIScrollClass = class._type { [INFO] [stderr] 1375 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIScrollClassInfo>(class) }; [INFO] [stderr] 1376 | scroll_axes.push((info.number, ScrollAxis { [INFO] [stderr] 1377 | increment: info.increment, [INFO] [stderr] 1378 | orientation: match info.scroll_type { [INFO] [stderr] 1379 | ffi::XIScrollTypeHorizontal => ScrollOrientation::Horizontal, [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1376:45 [INFO] [stderr] | [INFO] [stderr] 1376 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIScrollClassInfo>(class) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(class as *const x11_dl::xinput2::XIAnyClassInfo as *const x11_dl::xinput2::XIScrollClassInfo)` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1405:17 [INFO] [stderr] | [INFO] [stderr] 1405 | / match class._type { [INFO] [stderr] 1406 | | ffi::XIValuatorClass => { [INFO] [stderr] 1407 | | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIValuatorClassInfo>(class) }; [INFO] [stderr] 1408 | | if let Some(&mut (_, ref mut axis)) = self.scroll_axes.iter_mut().find(|&&mut (axis, _)| axis == info.number) { [INFO] [stderr] ... | [INFO] [stderr] 1412 | | _ => {} [INFO] [stderr] 1413 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 1405 | if let ffi::XIValuatorClass = class._type { [INFO] [stderr] 1406 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIValuatorClassInfo>(class) }; [INFO] [stderr] 1407 | if let Some(&mut (_, ref mut axis)) = self.scroll_axes.iter_mut().find(|&&mut (axis, _)| axis == info.number) { [INFO] [stderr] 1408 | axis.position = info.value; [INFO] [stderr] 1409 | } [INFO] [stderr] 1410 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a reference to a reference [INFO] [stderr] --> src/platform/linux/x11/mod.rs:1407:45 [INFO] [stderr] | [INFO] [stderr] 1407 | let info = unsafe { mem::transmute::<&ffi::XIAnyClassInfo, &ffi::XIValuatorClassInfo>(class) }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&*(class as *const x11_dl::xinput2::XIAnyClassInfo as *const x11_dl::xinput2::XIValuatorClassInfo)` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / match self { [INFO] [stderr] 84 | | &MonitorId::X(ref m) => m.get_name(), [INFO] [stderr] 85 | | &MonitorId::Wayland(ref m) => m.get_name(), [INFO] [stderr] 86 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 83 | match *self { [INFO] [stderr] 84 | MonitorId::X(ref m) => m.get_name(), [INFO] [stderr] 85 | MonitorId::Wayland(ref m) => m.get_name(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | / match self { [INFO] [stderr] 92 | | &MonitorId::X(ref m) => m.get_native_identifier(), [INFO] [stderr] 93 | | &MonitorId::Wayland(ref m) => m.get_native_identifier(), [INFO] [stderr] 94 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 91 | match *self { [INFO] [stderr] 92 | MonitorId::X(ref m) => m.get_native_identifier(), [INFO] [stderr] 93 | MonitorId::Wayland(ref m) => m.get_native_identifier(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | / match self { [INFO] [stderr] 100 | | &MonitorId::X(ref m) => m.get_dimensions(), [INFO] [stderr] 101 | | &MonitorId::Wayland(ref m) => m.get_dimensions(), [INFO] [stderr] 102 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 99 | match *self { [INFO] [stderr] 100 | MonitorId::X(ref m) => m.get_dimensions(), [INFO] [stderr] 101 | MonitorId::Wayland(ref m) => m.get_dimensions(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:107:9 [INFO] [stderr] | [INFO] [stderr] 107 | / match self { [INFO] [stderr] 108 | | &MonitorId::X(ref m) => m.get_position(), [INFO] [stderr] 109 | | &MonitorId::Wayland(ref m) => m.get_position(), [INFO] [stderr] 110 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 107 | match *self { [INFO] [stderr] 108 | MonitorId::X(ref m) => m.get_position(), [INFO] [stderr] 109 | MonitorId::Wayland(ref m) => m.get_position(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:115:9 [INFO] [stderr] | [INFO] [stderr] 115 | / match self { [INFO] [stderr] 116 | | &MonitorId::X(ref m) => m.get_hidpi_factor(), [INFO] [stderr] 117 | | &MonitorId::Wayland(ref m) => m.get_hidpi_factor() as f64, [INFO] [stderr] 118 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 115 | match *self { [INFO] [stderr] 116 | MonitorId::X(ref m) => m.get_hidpi_factor(), [INFO] [stderr] 117 | MonitorId::Wayland(ref m) => m.get_hidpi_factor() as f64, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/mod.rs:117:43 [INFO] [stderr] | [INFO] [stderr] 117 | &MonitorId::Wayland(ref m) => m.get_hidpi_factor() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(m.get_hidpi_factor())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:141:9 [INFO] [stderr] | [INFO] [stderr] 141 | / match self { [INFO] [stderr] 142 | | &Window::X(ref w) => WindowId::X(w.id()), [INFO] [stderr] 143 | | &Window::Wayland(ref w) => WindowId::Wayland(w.id()), [INFO] [stderr] 144 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 141 | match *self { [INFO] [stderr] 142 | Window::X(ref w) => WindowId::X(w.id()), [INFO] [stderr] 143 | Window::Wayland(ref w) => WindowId::Wayland(w.id()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | / match self { [INFO] [stderr] 150 | | &Window::X(ref w) => w.set_title(title), [INFO] [stderr] 151 | | &Window::Wayland(ref w) => w.set_title(title), [INFO] [stderr] 152 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 149 | match *self { [INFO] [stderr] 150 | Window::X(ref w) => w.set_title(title), [INFO] [stderr] 151 | Window::Wayland(ref w) => w.set_title(title), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:157:9 [INFO] [stderr] | [INFO] [stderr] 157 | / match self { [INFO] [stderr] 158 | | &Window::X(ref w) => w.show(), [INFO] [stderr] 159 | | &Window::Wayland(ref w) => w.show(), [INFO] [stderr] 160 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 157 | match *self { [INFO] [stderr] 158 | Window::X(ref w) => w.show(), [INFO] [stderr] 159 | Window::Wayland(ref w) => w.show(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:165:9 [INFO] [stderr] | [INFO] [stderr] 165 | / match self { [INFO] [stderr] 166 | | &Window::X(ref w) => w.hide(), [INFO] [stderr] 167 | | &Window::Wayland(ref w) => w.hide(), [INFO] [stderr] 168 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 165 | match *self { [INFO] [stderr] 166 | Window::X(ref w) => w.hide(), [INFO] [stderr] 167 | Window::Wayland(ref w) => w.hide(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:173:9 [INFO] [stderr] | [INFO] [stderr] 173 | / match self { [INFO] [stderr] 174 | | &Window::X(ref w) => w.get_position(), [INFO] [stderr] 175 | | &Window::Wayland(ref w) => w.get_position(), [INFO] [stderr] 176 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 173 | match *self { [INFO] [stderr] 174 | Window::X(ref w) => w.get_position(), [INFO] [stderr] 175 | Window::Wayland(ref w) => w.get_position(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:181:9 [INFO] [stderr] | [INFO] [stderr] 181 | / match self { [INFO] [stderr] 182 | | &Window::X(ref m) => m.get_inner_position(), [INFO] [stderr] 183 | | &Window::Wayland(ref m) => m.get_inner_position(), [INFO] [stderr] 184 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 181 | match *self { [INFO] [stderr] 182 | Window::X(ref m) => m.get_inner_position(), [INFO] [stderr] 183 | Window::Wayland(ref m) => m.get_inner_position(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:189:9 [INFO] [stderr] | [INFO] [stderr] 189 | / match self { [INFO] [stderr] 190 | | &Window::X(ref w) => w.set_position(position), [INFO] [stderr] 191 | | &Window::Wayland(ref w) => w.set_position(position), [INFO] [stderr] 192 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 189 | match *self { [INFO] [stderr] 190 | Window::X(ref w) => w.set_position(position), [INFO] [stderr] 191 | Window::Wayland(ref w) => w.set_position(position), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:197:9 [INFO] [stderr] | [INFO] [stderr] 197 | / match self { [INFO] [stderr] 198 | | &Window::X(ref w) => w.get_inner_size(), [INFO] [stderr] 199 | | &Window::Wayland(ref w) => w.get_inner_size(), [INFO] [stderr] 200 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 197 | match *self { [INFO] [stderr] 198 | Window::X(ref w) => w.get_inner_size(), [INFO] [stderr] 199 | Window::Wayland(ref w) => w.get_inner_size(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:205:9 [INFO] [stderr] | [INFO] [stderr] 205 | / match self { [INFO] [stderr] 206 | | &Window::X(ref w) => w.get_outer_size(), [INFO] [stderr] 207 | | &Window::Wayland(ref w) => w.get_outer_size(), [INFO] [stderr] 208 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 205 | match *self { [INFO] [stderr] 206 | Window::X(ref w) => w.get_outer_size(), [INFO] [stderr] 207 | Window::Wayland(ref w) => w.get_outer_size(), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:213:9 [INFO] [stderr] | [INFO] [stderr] 213 | / match self { [INFO] [stderr] 214 | | &Window::X(ref w) => w.set_inner_size(size), [INFO] [stderr] 215 | | &Window::Wayland(ref w) => w.set_inner_size(size), [INFO] [stderr] 216 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 213 | match *self { [INFO] [stderr] 214 | Window::X(ref w) => w.set_inner_size(size), [INFO] [stderr] 215 | Window::Wayland(ref w) => w.set_inner_size(size), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:221:9 [INFO] [stderr] | [INFO] [stderr] 221 | / match self { [INFO] [stderr] 222 | | &Window::X(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] 223 | | &Window::Wayland(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] 224 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 221 | match *self { [INFO] [stderr] 222 | Window::X(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] 223 | Window::Wayland(ref w) => w.set_min_dimensions(dimensions), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:229:9 [INFO] [stderr] | [INFO] [stderr] 229 | / match self { [INFO] [stderr] 230 | | &Window::X(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] 231 | | &Window::Wayland(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] 232 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 229 | match *self { [INFO] [stderr] 230 | Window::X(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] 231 | Window::Wayland(ref w) => w.set_max_dimensions(dimensions), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:237:9 [INFO] [stderr] | [INFO] [stderr] 237 | / match self { [INFO] [stderr] 238 | | &Window::X(ref w) => w.set_resizable(resizable), [INFO] [stderr] 239 | | &Window::Wayland(ref w) => w.set_resizable(resizable), [INFO] [stderr] 240 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 237 | match *self { [INFO] [stderr] 238 | Window::X(ref w) => w.set_resizable(resizable), [INFO] [stderr] 239 | Window::Wayland(ref w) => w.set_resizable(resizable), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:245:9 [INFO] [stderr] | [INFO] [stderr] 245 | / match self { [INFO] [stderr] 246 | | &Window::X(ref w) => w.set_cursor(cursor), [INFO] [stderr] 247 | | &Window::Wayland(ref w) => w.set_cursor(cursor) [INFO] [stderr] 248 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 245 | match *self { [INFO] [stderr] 246 | Window::X(ref w) => w.set_cursor(cursor), [INFO] [stderr] 247 | Window::Wayland(ref w) => w.set_cursor(cursor) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:253:9 [INFO] [stderr] | [INFO] [stderr] 253 | / match self { [INFO] [stderr] 254 | | &Window::X(ref window) => window.grab_cursor(grab), [INFO] [stderr] 255 | | &Window::Wayland(ref window) => window.grab_cursor(grab), [INFO] [stderr] 256 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 253 | match *self { [INFO] [stderr] 254 | Window::X(ref window) => window.grab_cursor(grab), [INFO] [stderr] 255 | Window::Wayland(ref window) => window.grab_cursor(grab), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:261:9 [INFO] [stderr] | [INFO] [stderr] 261 | / match self { [INFO] [stderr] 262 | | &Window::X(ref window) => window.hide_cursor(hide), [INFO] [stderr] 263 | | &Window::Wayland(ref window) => window.hide_cursor(hide), [INFO] [stderr] 264 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 261 | match *self { [INFO] [stderr] 262 | Window::X(ref window) => window.hide_cursor(hide), [INFO] [stderr] 263 | Window::Wayland(ref window) => window.hide_cursor(hide), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:269:8 [INFO] [stderr] | [INFO] [stderr] 269 | / match self { [INFO] [stderr] 270 | | &Window::X(ref w) => w.get_hidpi_factor(), [INFO] [stderr] 271 | | &Window::Wayland(ref w) => w.hidpi_factor() as f64, [INFO] [stderr] 272 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 269 | match *self { [INFO] [stderr] 270 | Window::X(ref w) => w.get_hidpi_factor(), [INFO] [stderr] 271 | Window::Wayland(ref w) => w.hidpi_factor() as f64, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting i32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/mod.rs:271:40 [INFO] [stderr] | [INFO] [stderr] 271 | &Window::Wayland(ref w) => w.hidpi_factor() as f64, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(w.hidpi_factor())` [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: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:277:9 [INFO] [stderr] | [INFO] [stderr] 277 | / match self { [INFO] [stderr] 278 | | &Window::X(ref w) => w.set_cursor_position(position), [INFO] [stderr] 279 | | &Window::Wayland(ref w) => w.set_cursor_position(position), [INFO] [stderr] 280 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 277 | match *self { [INFO] [stderr] 278 | Window::X(ref w) => w.set_cursor_position(position), [INFO] [stderr] 279 | Window::Wayland(ref w) => w.set_cursor_position(position), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:285:9 [INFO] [stderr] | [INFO] [stderr] 285 | / match self { [INFO] [stderr] 286 | | &Window::X(ref w) => w.set_maximized(maximized), [INFO] [stderr] 287 | | &Window::Wayland(ref w) => w.set_maximized(maximized), [INFO] [stderr] 288 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 285 | match *self { [INFO] [stderr] 286 | Window::X(ref w) => w.set_maximized(maximized), [INFO] [stderr] 287 | Window::Wayland(ref w) => w.set_maximized(maximized), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:293:9 [INFO] [stderr] | [INFO] [stderr] 293 | / match self { [INFO] [stderr] 294 | | &Window::X(ref w) => w.set_fullscreen(monitor), [INFO] [stderr] 295 | | &Window::Wayland(ref w) => w.set_fullscreen(monitor) [INFO] [stderr] 296 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 293 | match *self { [INFO] [stderr] 294 | Window::X(ref w) => w.set_fullscreen(monitor), [INFO] [stderr] 295 | Window::Wayland(ref w) => w.set_fullscreen(monitor) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:301:9 [INFO] [stderr] | [INFO] [stderr] 301 | / match self { [INFO] [stderr] 302 | | &Window::X(ref w) => w.set_decorations(decorations), [INFO] [stderr] 303 | | &Window::Wayland(ref w) => w.set_decorations(decorations) [INFO] [stderr] 304 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 301 | match *self { [INFO] [stderr] 302 | Window::X(ref w) => w.set_decorations(decorations), [INFO] [stderr] 303 | Window::Wayland(ref w) => w.set_decorations(decorations) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:309:9 [INFO] [stderr] | [INFO] [stderr] 309 | / match self { [INFO] [stderr] 310 | | &Window::X(ref w) => w.set_always_on_top(always_on_top), [INFO] [stderr] 311 | | &Window::Wayland(_) => (), [INFO] [stderr] 312 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 309 | match *self { [INFO] [stderr] 310 | Window::X(ref w) => w.set_always_on_top(always_on_top), [INFO] [stderr] 311 | Window::Wayland(_) => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:317:9 [INFO] [stderr] | [INFO] [stderr] 317 | / match self { [INFO] [stderr] 318 | | &Window::X(ref w) => w.set_window_icon(window_icon), [INFO] [stderr] 319 | | &Window::Wayland(_) => (), [INFO] [stderr] 320 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 317 | match *self { [INFO] [stderr] 318 | Window::X(ref w) => w.set_window_icon(window_icon), [INFO] [stderr] 319 | Window::Wayland(_) => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:325:9 [INFO] [stderr] | [INFO] [stderr] 325 | / match self { [INFO] [stderr] 326 | | &Window::X(ref w) => w.set_ime_spot(position), [INFO] [stderr] 327 | | &Window::Wayland(_) => (), [INFO] [stderr] 328 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 325 | match *self { [INFO] [stderr] 326 | Window::X(ref w) => w.set_ime_spot(position), [INFO] [stderr] 327 | Window::Wayland(_) => (), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:333:9 [INFO] [stderr] | [INFO] [stderr] 333 | / match self { [INFO] [stderr] 334 | | &Window::X(ref window) => RootMonitorId { inner: MonitorId::X(window.get_current_monitor()) }, [INFO] [stderr] 335 | | &Window::Wayland(ref window) => RootMonitorId { inner: MonitorId::Wayland(window.get_current_monitor()) }, [INFO] [stderr] 336 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 333 | match *self { [INFO] [stderr] 334 | Window::X(ref window) => RootMonitorId { inner: MonitorId::X(window.get_current_monitor()) }, [INFO] [stderr] 335 | Window::Wayland(ref window) => RootMonitorId { inner: MonitorId::Wayland(window.get_current_monitor()) }, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:341:9 [INFO] [stderr] | [INFO] [stderr] 341 | / match self { [INFO] [stderr] 342 | | &Window::X(ref window) => window.get_available_monitors() [INFO] [stderr] 343 | | .into_iter() [INFO] [stderr] 344 | | .map(MonitorId::X) [INFO] [stderr] ... | [INFO] [stderr] 349 | | .collect(), [INFO] [stderr] 350 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 341 | match *self { [INFO] [stderr] 342 | Window::X(ref window) => window.get_available_monitors() [INFO] [stderr] 343 | .into_iter() [INFO] [stderr] 344 | .map(MonitorId::X) [INFO] [stderr] 345 | .collect(), [INFO] [stderr] 346 | Window::Wayland(ref window) => window.get_available_monitors() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/platform/linux/mod.rs:355:9 [INFO] [stderr] | [INFO] [stderr] 355 | / match self { [INFO] [stderr] 356 | | &Window::X(ref window) => MonitorId::X(window.get_primary_monitor()), [INFO] [stderr] 357 | | &Window::Wayland(ref window) => MonitorId::Wayland(window.get_primary_monitor()), [INFO] [stderr] 358 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 355 | match *self { [INFO] [stderr] 356 | Window::X(ref window) => MonitorId::X(window.get_primary_monitor()), [INFO] [stderr] 357 | Window::Wayland(ref window) => MonitorId::Wayland(window.get_primary_monitor()), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u8 to i32 may become silently lossy if types change [INFO] [stderr] --> src/platform/linux/mod.rs:371:13 [INFO] [stderr] | [INFO] [stderr] 371 | (*event).error_code as c_int, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `i32::from((*event).error_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: you should consider deriving a `Default` implementation for `WindowBuilder` [INFO] [stderr] --> src/window.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn new() -> WindowBuilder { [INFO] [stderr] 22 | | WindowBuilder { [INFO] [stderr] 23 | | window: Default::default(), [INFO] [stderr] 24 | | platform_specific: Default::default(), [INFO] [stderr] 25 | | } [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 318| #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/os/unix.rs:64:17 [INFO] [stderr] | [INFO] [stderr] 64 | Err(_) => panic!() // TODO: propagate [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `EventsLoop` [INFO] [stderr] --> src/lib.rs:221:5 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn new() -> EventsLoop { [INFO] [stderr] 222 | | EventsLoop { [INFO] [stderr] 223 | | events_loop: platform::EventsLoop::new(), [INFO] [stderr] 224 | | _marker: ::std::marker::PhantomData, [INFO] [stderr] 225 | | } [INFO] [stderr] 226 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 214 | impl Default for EventsLoop { [INFO] [stderr] 215 | fn default() -> Self { [INFO] [stderr] 216 | Self::new() [INFO] [stderr] 217 | } [INFO] [stderr] 218 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 5 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `winit`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "a7a77d7320bb06fca26829a0e96375561645196677a0d250042da83f07923329"` [INFO] running `"docker" "rm" "-f" "a7a77d7320bb06fca26829a0e96375561645196677a0d250042da83f07923329"` [INFO] [stdout] a7a77d7320bb06fca26829a0e96375561645196677a0d250042da83f07923329