[INFO] cloning repository https://github.com/creepersaur/creeperUI [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/creepersaur/creeperUI" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcreepersaur%2FcreeperUI", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcreepersaur%2FcreeperUI'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 15f3cc750f31945e3481511029ebaf35d0c5d996 [INFO] linting creepersaur/creeperUI against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fcreepersaur%2FcreeperUI" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/creepersaur/creeperUI [INFO] finished tweaking git repo https://github.com/creepersaur/creeperUI [INFO] tweaked toml for git repo https://github.com/creepersaur/creeperUI written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/creepersaur/creeperUI on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/creepersaur/creeperUI already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded quad-rand v0.2.3 [INFO] [stderr] Downloaded macroquad_macro v0.1.8 [INFO] [stderr] Downloaded objc-rs v0.2.8 [INFO] [stderr] Downloaded image v0.25.7 [INFO] [stderr] Downloaded miniquad v0.4.8 [INFO] [stderr] Downloaded macroquad v0.4.14 [INFO] [stderr] Downloaded pxfm v0.1.20 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 3428ff220bc62612b03b441ffc851e9fa845e72bf86b48c4b52b376fe88fdd41 [INFO] running `Command { std: "docker" "start" "-a" "3428ff220bc62612b03b441ffc851e9fa845e72bf86b48c4b52b376fe88fdd41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3428ff220bc62612b03b441ffc851e9fa845e72bf86b48c4b52b376fe88fdd41", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3428ff220bc62612b03b441ffc851e9fa845e72bf86b48c4b52b376fe88fdd41", kill_on_drop: false }` [INFO] [stdout] 3428ff220bc62612b03b441ffc851e9fa845e72bf86b48c4b52b376fe88fdd41 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 4e37f85046b174e3d6bef3c6d69808039fe59e48d064aa0a703da16d2181bd3b [INFO] running `Command { std: "docker" "start" "-a" "4e37f85046b174e3d6bef3c6d69808039fe59e48d064aa0a703da16d2181bd3b", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking bitflags v2.9.3 [INFO] [stderr] Compiling rustix v1.0.8 [INFO] [stderr] Checking linux-raw-sys v0.9.4 [INFO] [stderr] Checking bytemuck v1.23.1 [INFO] [stderr] Checking hashbrown v0.15.4 [INFO] [stderr] Compiling miniquad v0.4.8 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling owo-colors v4.2.2 [INFO] [stderr] Checking ttf-parser v0.21.1 [INFO] [stderr] Checking crc32fast v1.5.0 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking glam v0.27.0 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Checking quad-rand v0.2.3 [INFO] [stderr] Checking flate2 v1.1.2 [INFO] [stderr] Compiling macroquad_macro v0.1.8 [INFO] [stderr] Checking parking_lot_core v0.9.11 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking png v0.17.16 [INFO] [stderr] Checking parking_lot v0.12.4 [INFO] [stderr] Checking indexmap v2.10.0 [INFO] [stderr] Checking pxfm v0.1.20 [INFO] [stderr] Checking image v0.24.9 [INFO] [stderr] Checking fontdue v0.9.3 [INFO] [stderr] Checking macroquad v0.4.14 [INFO] [stderr] Checking moxcms v0.7.5 [INFO] [stderr] Checking gethostname v1.0.2 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Checking image v0.25.7 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking creeperUI v0.1.11 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `crate::Window` [INFO] [stdout] --> src/widgets/widget_holder.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::Window; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::Window` [INFO] [stdout] --> src/widgets/widget_holder.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::Window; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `WidgetAction` [INFO] [stdout] --> src/ui/mouse_action.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn new() -> Self { [INFO] [stdout] 16 | | Self { taken: false } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 14 + impl Default for WidgetAction { [INFO] [stdout] 15 + fn default() -> Self { [INFO] [stdout] 16 + Self::new() [INFO] [stdout] 17 + } [INFO] [stdout] 18 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/ui/windows/action_type.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / impl Default for ActionType { [INFO] [stdout] 8 | | fn default() -> Self { [INFO] [stdout] 9 | | ActionType::EachFrame [INFO] [stdout] 10 | | } [INFO] [stdout] 11 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 2 + #[derive(Default)] [INFO] [stdout] 3 | pub enum ActionType { [INFO] [stdout] 4 | Once, [INFO] [stdout] 5 ~ #[default] [INFO] [stdout] 6 ~ EachFrame, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stdout] --> src/ui/windows/win_resize_handles.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | / match &self.resizing { [INFO] [stdout] 111 | | &Some(ResizeAxis::X(start, o_width)) => { [INFO] [stdout] 112 | | rect.w = o_width + (mouse.x - start); [INFO] [stdout] ... | [INFO] [stdout] 124 | | _ => {} [INFO] [stdout] 125 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 110 ~ match self.resizing { [INFO] [stdout] 111 ~ Some(ResizeAxis::X(start, o_width)) => { [INFO] [stdout] 112 | rect.w = o_width + (mouse.x - start); [INFO] [stdout] 113 | } [INFO] [stdout] 114 | [INFO] [stdout] 115 ~ Some(ResizeAxis::Y(start, o_height)) => { [INFO] [stdout] 116 | rect.h = o_height + (mouse.y - start); [INFO] [stdout] 117 | } [INFO] [stdout] 118 | [INFO] [stdout] 119 ~ Some(ResizeAxis::XY(sx, sy, ow, oh)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui/windows/window.rs:81:82 [INFO] [stdout] | [INFO] [stdout] 81 | if action_type.clone().into() == ActionType::Once && !self.info.ran_once { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 82 | | self.rect.x = position.x; [INFO] [stdout] 83 | | self.rect.y = position.y; [INFO] [stdout] 84 | | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui/windows/window.rs:84:63 [INFO] [stdout] | [INFO] [stdout] 84 | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 85 | | self.rect.x = position.x; [INFO] [stdout] 86 | | self.rect.y = position.y; [INFO] [stdout] 87 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui/windows/window.rs:97:82 [INFO] [stdout] | [INFO] [stdout] 97 | if action_type.clone().into() == ActionType::Once && !self.info.ran_once { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 98 | | self.rect.w = size.x; [INFO] [stdout] 99 | | self.rect.h = size.y; [INFO] [stdout] 100 | | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui/windows/window.rs:100:63 [INFO] [stdout] | [INFO] [stdout] 100 | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 101 | | self.rect.w = size.x; [INFO] [stdout] 102 | | self.rect.h = size.y; [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui/windows/window.rs:212:41 [INFO] [stdout] | [INFO] [stdout] 212 | if !self.info.scroll_hovered && !self.info.scroll_pressed.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.info.scroll_pressed.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/windows/window.rs:277:28 [INFO] [stdout] | [INFO] [stdout] 277 | let mut new_rect = self.rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:292:18 [INFO] [stdout] | [INFO] [stdout] 292 | [&cam_1, &cam_2, &cam_3], [INFO] [stdout] | ^^^^^^ help: change this to: `cam_1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:292:26 [INFO] [stdout] | [INFO] [stdout] 292 | [&cam_1, &cam_2, &cam_3], [INFO] [stdout] | ^^^^^^ help: change this to: `cam_2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:292:34 [INFO] [stdout] | [INFO] [stdout] 292 | [&cam_1, &cam_2, &cam_3], [INFO] [stdout] | ^^^^^^ help: change this to: `cam_3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:359:37 [INFO] [stdout] | [INFO] [stdout] 359 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:393:37 [INFO] [stdout] | [INFO] [stdout] 393 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/windows/window.rs:479:28 [INFO] [stdout] | [INFO] [stdout] 479 | let new_rect = self.rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/windows/window.rs:539:30 [INFO] [stdout] | [INFO] [stdout] 539 | let mut title_rect = self.rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:566:33 [INFO] [stdout] | [INFO] [stdout] 566 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/ui/windows/window.rs:619:20 [INFO] [stdout] | [INFO] [stdout] 619 | } else if is_mouse_button_released(Left) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 620 | | if self.info.close_button_pressed { [INFO] [stdout] 621 | | self.close(); [INFO] [stdout] 622 | | } [INFO] [stdout] 623 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 619 ~ } else if is_mouse_button_released(Left) [INFO] [stdout] 620 ~ && self.info.close_button_pressed { [INFO] [stdout] 621 | self.close(); [INFO] [stdout] 622 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui/windows/window.rs:646:12 [INFO] [stdout] | [INFO] [stdout] 646 | if !self.resize_handles.resizing.is_some() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.resize_handles.resizing.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/ui/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub mod ui; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/widgets/widget_holder.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn render<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/widgets/widget_holder.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | / pub fn update( [INFO] [stdout] 112 | | &mut self, [INFO] [stdout] 113 | | rect: &Rect, [INFO] [stdout] 114 | | vertical_offset: f32, [INFO] [stdout] ... | [INFO] [stdout] 120 | | mouse_action: &mut WidgetAction, [INFO] [stdout] 121 | | ) -> (WidgetAction, Rect) { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 178 | | let w = Text::new(label.clone()); [INFO] [stdout] 179 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 180 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 177 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 178 + let w = Text::new(label.clone()); [INFO] [stdout] 179 + Box::new(w) [INFO] [stdout] 180 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 211 | | let w = TextEx::new(label.clone(), color, font_size, font); [INFO] [stdout] 212 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 213 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 211 + let w = TextEx::new(label.clone(), color, font_size, font); [INFO] [stdout] 212 + Box::new(w) [INFO] [stdout] 213 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 232 | | let w = Button::new(label.clone()); [INFO] [stdout] 233 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 234 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 231 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 232 + let w = Button::new(label.clone()); [INFO] [stdout] 233 + Box::new(w) [INFO] [stdout] 234 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 253 | | let w = Checkbox::new(label.clone(), value); [INFO] [stdout] 254 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 255 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 252 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 253 + let w = Checkbox::new(label.clone(), value); [INFO] [stdout] 254 + Box::new(w) [INFO] [stdout] 255 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 280 | | let w = ImageWidget::new(path, size).await; [INFO] [stdout] 281 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 282 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 279 ~ if let std::collections::hash_map::Entry::Vacant(e) = self.widgets.entry(new_id) { [INFO] [stdout] 280 + let w = ImageWidget::new(path, size).await; [INFO] [stdout] 281 + e.insert(Box::new(w)); [INFO] [stdout] 282 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 308 | | let w = Slider::new(label.clone(), slider_info); [INFO] [stdout] 309 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 310 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 307 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 308 + let w = Slider::new(label.clone(), slider_info); [INFO] [stdout] 309 + Box::new(w) [INFO] [stdout] 310 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 335 | | let w = Dropdown::new(items, default_value); [INFO] [stdout] 336 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 337 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 334 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 335 + let w = Dropdown::new(items, default_value); [INFO] [stdout] 336 + Box::new(w) [INFO] [stdout] 337 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:361:9 [INFO] [stdout] | [INFO] [stdout] 361 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 362 | | let w = RadioButtons::new(options, default_value); [INFO] [stdout] 363 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 364 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 361 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 362 + let w = RadioButtons::new(options, default_value); [INFO] [stdout] 363 + Box::new(w) [INFO] [stdout] 364 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 384 | | let w = Separator::new(); [INFO] [stdout] 385 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 386 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 383 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 384 + let w = Separator::new(); [INFO] [stdout] 385 + Box::new(w) [INFO] [stdout] 386 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:420:9 [INFO] [stdout] | [INFO] [stdout] 420 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 421 | | let w = ProgressBar::new(label.clone(), progress_info); [INFO] [stdout] 422 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 423 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 420 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 421 + let w = ProgressBar::new(label.clone(), progress_info); [INFO] [stdout] 422 + Box::new(w) [INFO] [stdout] 423 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:441:9 [INFO] [stdout] | [INFO] [stdout] 441 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 442 | | let w = TabHolder::new(tabs, default_tab); [INFO] [stdout] 443 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 444 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 441 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 442 + let w = TabHolder::new(tabs, default_tab); [INFO] [stdout] 443 + Box::new(w) [INFO] [stdout] 444 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:462:9 [INFO] [stdout] | [INFO] [stdout] 462 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 463 | | let w = TextBox::new(text.clone(), None); [INFO] [stdout] 464 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 465 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 462 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 463 + let w = TextBox::new(text.clone(), None); [INFO] [stdout] 464 + Box::new(w) [INFO] [stdout] 465 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:483:9 [INFO] [stdout] | [INFO] [stdout] 483 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 484 | | let w = TextBox::new(text.clone(), Some(label)); [INFO] [stdout] 485 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 486 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 483 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 484 + let w = TextBox::new(text.clone(), Some(label)); [INFO] [stdout] 485 + Box::new(w) [INFO] [stdout] 486 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:503:9 [INFO] [stdout] | [INFO] [stdout] 503 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 504 | | let w = Column::new(f); [INFO] [stdout] 505 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 506 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 503 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 504 + let w = Column::new(f); [INFO] [stdout] 505 + Box::new(w) [INFO] [stdout] 506 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/button.rs:62:33 [INFO] [stdout] | [INFO] [stdout] 62 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/button.rs:111:41 [INFO] [stdout] | [INFO] [stdout] 111 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/button.rs:128:33 [INFO] [stdout] | [INFO] [stdout] 128 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:38:33 [INFO] [stdout] | [INFO] [stdout] 38 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:48:33 [INFO] [stdout] | [INFO] [stdout] 48 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:67:41 [INFO] [stdout] | [INFO] [stdout] 67 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:141:33 [INFO] [stdout] | [INFO] [stdout] 141 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | if self.text.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:155:33 [INFO] [stdout] | [INFO] [stdout] 155 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:102:33 [INFO] [stdout] | [INFO] [stdout] 102 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:117:41 [INFO] [stdout] | [INFO] [stdout] 117 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:142:41 [INFO] [stdout] | [INFO] [stdout] 142 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:175:49 [INFO] [stdout] | [INFO] [stdout] 175 | ... Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | / ((text_dim.height + 10.0) * self.items.len() as f32 + 10.0) [INFO] [stdout] 192 | | .max(0.0) [INFO] [stdout] 193 | | .min(120.0), [INFO] [stdout] | |_______________________________^ help: replace with clamp: `((text_dim.height + 10.0) * self.items.len() as f32 + 10.0).clamp(0.0, 120.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | / ((text_dim.height + 10.0) * self.items.len() as f32 + 10.0) [INFO] [stdout] 202 | | .max(0.0) [INFO] [stdout] 203 | | .min(120.0), [INFO] [stdout] | |_______________________________^ help: replace with clamp: `((text_dim.height + 10.0) * self.items.len() as f32 + 10.0).clamp(0.0, 120.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:234:33 [INFO] [stdout] | [INFO] [stdout] 234 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:293:42 [INFO] [stdout] | [INFO] [stdout] 293 | let mut base_item_rect = drop_rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `drop_rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:55:33 [INFO] [stdout] | [INFO] [stdout] 55 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:69:41 [INFO] [stdout] | [INFO] [stdout] 69 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:116:41 [INFO] [stdout] | [INFO] [stdout] 116 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:133:33 [INFO] [stdout] | [INFO] [stdout] 133 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Separator` [INFO] [stdout] --> src/widgets/widget_types/separator.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn new() -> Self { [INFO] [stdout] 14 | | Self { [INFO] [stdout] 15 | | thickness: 2.0, [INFO] [stdout] 16 | | padding: 5.0, [INFO] [stdout] ... | [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 12 + impl Default for Separator { [INFO] [stdout] 13 + fn default() -> Self { [INFO] [stdout] 14 + Self::new() [INFO] [stdout] 15 + } [INFO] [stdout] 16 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `WidgetAction` [INFO] [stdout] --> src/ui/mouse_action.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | / pub fn new() -> Self { [INFO] [stdout] 16 | | Self { taken: false } [INFO] [stdout] 17 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 14 + impl Default for WidgetAction { [INFO] [stdout] 15 + fn default() -> Self { [INFO] [stdout] 16 + Self::new() [INFO] [stdout] 17 + } [INFO] [stdout] 18 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:58:33 [INFO] [stdout] | [INFO] [stdout] 58 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:72:41 [INFO] [stdout] | [INFO] [stdout] 72 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/ui/windows/action_type.rs:7:1 [INFO] [stdout] | [INFO] [stdout] 7 | / impl Default for ActionType { [INFO] [stdout] 8 | | fn default() -> Self { [INFO] [stdout] 9 | | ActionType::EachFrame [INFO] [stdout] 10 | | } [INFO] [stdout] 11 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 2 + #[derive(Default)] [INFO] [stdout] 3 | pub enum ActionType { [INFO] [stdout] 4 | Once, [INFO] [stdout] 5 ~ #[default] [INFO] [stdout] 6 ~ EachFrame, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:124:41 [INFO] [stdout] | [INFO] [stdout] 124 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:141:33 [INFO] [stdout] | [INFO] [stdout] 141 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stdout] --> src/ui/windows/win_resize_handles.rs:110:9 [INFO] [stdout] | [INFO] [stdout] 110 | / match &self.resizing { [INFO] [stdout] 111 | | &Some(ResizeAxis::X(start, o_width)) => { [INFO] [stdout] 112 | | rect.w = o_width + (mouse.x - start); [INFO] [stdout] ... | [INFO] [stdout] 124 | | _ => {} [INFO] [stdout] 125 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 110 ~ match self.resizing { [INFO] [stdout] 111 ~ Some(ResizeAxis::X(start, o_width)) => { [INFO] [stdout] 112 | rect.w = o_width + (mouse.x - start); [INFO] [stdout] 113 | } [INFO] [stdout] 114 | [INFO] [stdout] 115 ~ Some(ResizeAxis::Y(start, o_height)) => { [INFO] [stdout] 116 | rect.h = o_height + (mouse.y - start); [INFO] [stdout] 117 | } [INFO] [stdout] 118 | [INFO] [stdout] 119 ~ Some(ResizeAxis::XY(sx, sy, ow, oh)) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/tab_holder.rs:120:37 [INFO] [stdout] | [INFO] [stdout] 120 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/tab_holder.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | ... Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui/windows/window.rs:81:82 [INFO] [stdout] | [INFO] [stdout] 81 | if action_type.clone().into() == ActionType::Once && !self.info.ran_once { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 82 | | self.rect.x = position.x; [INFO] [stdout] 83 | | self.rect.y = position.y; [INFO] [stdout] 84 | | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui/windows/window.rs:84:63 [INFO] [stdout] | [INFO] [stdout] 84 | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 85 | | self.rect.x = position.x; [INFO] [stdout] 86 | | self.rect.y = position.y; [INFO] [stdout] 87 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui/windows/window.rs:97:82 [INFO] [stdout] | [INFO] [stdout] 97 | if action_type.clone().into() == ActionType::Once && !self.info.ran_once { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 98 | | self.rect.w = size.x; [INFO] [stdout] 99 | | self.rect.h = size.y; [INFO] [stdout] 100 | | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui/windows/window.rs:100:63 [INFO] [stdout] | [INFO] [stdout] 100 | } else if action_type.into() == ActionType::EachFrame { [INFO] [stdout] | _______________________________________________________________^ [INFO] [stdout] 101 | | self.rect.w = size.x; [INFO] [stdout] 102 | | self.rect.h = size.y; [INFO] [stdout] 103 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/text.rs:28:33 [INFO] [stdout] | [INFO] [stdout] 28 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/text.rs:47:41 [INFO] [stdout] | [INFO] [stdout] 47 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/text.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui/windows/window.rs:212:41 [INFO] [stdout] | [INFO] [stdout] 212 | if !self.info.scroll_hovered && !self.info.scroll_pressed.is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.info.scroll_pressed.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/windows/window.rs:277:28 [INFO] [stdout] | [INFO] [stdout] 277 | let mut new_rect = self.rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:292:18 [INFO] [stdout] | [INFO] [stdout] 292 | [&cam_1, &cam_2, &cam_3], [INFO] [stdout] | ^^^^^^ help: change this to: `cam_1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:292:26 [INFO] [stdout] | [INFO] [stdout] 292 | [&cam_1, &cam_2, &cam_3], [INFO] [stdout] | ^^^^^^ help: change this to: `cam_2` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:292:34 [INFO] [stdout] | [INFO] [stdout] 292 | [&cam_1, &cam_2, &cam_3], [INFO] [stdout] | ^^^^^^ help: change this to: `cam_3` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:359:37 [INFO] [stdout] | [INFO] [stdout] 359 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:393:37 [INFO] [stdout] | [INFO] [stdout] 393 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:339:13 [INFO] [stdout] | [INFO] [stdout] 339 | / if is_key_pressed(KeyCode::C) { [INFO] [stdout] 340 | | if self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 341 | | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] 342 | | let end = self.selection_start.max(self.selection_end) as usize; [INFO] [stdout] ... | [INFO] [stdout] 347 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 339 ~ if is_key_pressed(KeyCode::C) [INFO] [stdout] 340 ~ && self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 341 | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] ... [INFO] [stdout] 345 | self.clipboard_queue = Some(text.to_string()); [INFO] [stdout] 346 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | / if is_key_pressed(KeyCode::X) { [INFO] [stdout] 350 | | if self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 351 | | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] 352 | | let end = self.selection_start.max(self.selection_end) as usize; [INFO] [stdout] ... | [INFO] [stdout] 365 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 349 ~ if is_key_pressed(KeyCode::X) [INFO] [stdout] 350 ~ && self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 351 | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] ... [INFO] [stdout] 363 | self.selection_end = -1; [INFO] [stdout] 364 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/windows/window.rs:479:28 [INFO] [stdout] | [INFO] [stdout] 479 | let new_rect = self.rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:394:28 [INFO] [stdout] | [INFO] [stdout] 394 | if self.value.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.value.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/ui/windows/window.rs:539:30 [INFO] [stdout] | [INFO] [stdout] 539 | let mut title_rect = self.rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui/windows/window.rs:566:33 [INFO] [stdout] | [INFO] [stdout] 566 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:506:28 [INFO] [stdout] | [INFO] [stdout] 506 | if self.value.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.value.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:515:20 [INFO] [stdout] | [INFO] [stdout] 515 | if self.value.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.value.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/ui/windows/window.rs:619:20 [INFO] [stdout] | [INFO] [stdout] 619 | } else if is_mouse_button_released(Left) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 620 | | if self.info.close_button_pressed { [INFO] [stdout] 621 | | self.close(); [INFO] [stdout] 622 | | } [INFO] [stdout] 623 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 619 ~ } else if is_mouse_button_released(Left) [INFO] [stdout] 620 ~ && self.info.close_button_pressed { [INFO] [stdout] 621 | self.close(); [INFO] [stdout] 622 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui/windows/window.rs:646:12 [INFO] [stdout] | [INFO] [stdout] 646 | if !self.resize_handles.resizing.is_some() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.resize_handles.resizing.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression assigns a bool literal [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:646:9 [INFO] [stdout] | [INFO] [stdout] 646 | / if old_caret != self.caret { [INFO] [stdout] 647 | | self.caret_changed = true; [INFO] [stdout] 648 | | } else { [INFO] [stdout] 649 | | self.caret_changed = false; [INFO] [stdout] 650 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `self.caret_changed = old_caret != self.caret;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool_assign [INFO] [stdout] = note: `#[warn(clippy::needless_bool_assign)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:68:37 [INFO] [stdout] | [INFO] [stdout] 68 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:118:45 [INFO] [stdout] | [INFO] [stdout] 118 | ... Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:140:33 [INFO] [stdout] | [INFO] [stdout] 140 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:162:37 [INFO] [stdout] | [INFO] [stdout] 162 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:170:16 [INFO] [stdout] | [INFO] [stdout] 170 | if text.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/widgets/widget_types/column.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | func: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/misc/rounded_rect.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn draw_rounded_rect_ex( [INFO] [stdout] 38 | | x: f32, [INFO] [stdout] 39 | | y: f32, [INFO] [stdout] 40 | | w: f32, [INFO] [stdout] ... | [INFO] [stdout] 46 | | color: Color, [INFO] [stdout] 47 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/misc/rounded_rect.rs:134:1 [INFO] [stdout] | [INFO] [stdout] 134 | / pub fn draw_rounded_rect_stroke( [INFO] [stdout] 135 | | x: f32, [INFO] [stdout] 136 | | y: f32, [INFO] [stdout] 137 | | w: f32, [INFO] [stdout] ... | [INFO] [stdout] 142 | | background: Color, [INFO] [stdout] 143 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/ui/mod.rs:4:1 [INFO] [stdout] | [INFO] [stdout] 4 | pub mod ui; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> src/widgets/widget_holder.rs:63:19 [INFO] [stdout] | [INFO] [stdout] 63 | pub fn render<'a>( [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/widgets/widget_holder.rs:111:5 [INFO] [stdout] | [INFO] [stdout] 111 | / pub fn update( [INFO] [stdout] 112 | | &mut self, [INFO] [stdout] 113 | | rect: &Rect, [INFO] [stdout] 114 | | vertical_offset: f32, [INFO] [stdout] ... | [INFO] [stdout] 120 | | mouse_action: &mut WidgetAction, [INFO] [stdout] 121 | | ) -> (WidgetAction, Rect) { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 178 | | let w = Text::new(label.clone()); [INFO] [stdout] 179 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 180 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] = note: `#[warn(clippy::map_entry)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 177 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 178 + let w = Text::new(label.clone()); [INFO] [stdout] 179 + Box::new(w) [INFO] [stdout] 180 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 210 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 211 | | let w = TextEx::new(label.clone(), color, font_size, font); [INFO] [stdout] 212 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 213 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 210 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 211 + let w = TextEx::new(label.clone(), color, font_size, font); [INFO] [stdout] 212 + Box::new(w) [INFO] [stdout] 213 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:231:9 [INFO] [stdout] | [INFO] [stdout] 231 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 232 | | let w = Button::new(label.clone()); [INFO] [stdout] 233 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 234 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 231 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 232 + let w = Button::new(label.clone()); [INFO] [stdout] 233 + Box::new(w) [INFO] [stdout] 234 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:252:9 [INFO] [stdout] | [INFO] [stdout] 252 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 253 | | let w = Checkbox::new(label.clone(), value); [INFO] [stdout] 254 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 255 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 252 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 253 + let w = Checkbox::new(label.clone(), value); [INFO] [stdout] 254 + Box::new(w) [INFO] [stdout] 255 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:279:9 [INFO] [stdout] | [INFO] [stdout] 279 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 280 | | let w = ImageWidget::new(path, size).await; [INFO] [stdout] 281 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 282 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 279 ~ if let std::collections::hash_map::Entry::Vacant(e) = self.widgets.entry(new_id) { [INFO] [stdout] 280 + let w = ImageWidget::new(path, size).await; [INFO] [stdout] 281 + e.insert(Box::new(w)); [INFO] [stdout] 282 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:307:9 [INFO] [stdout] | [INFO] [stdout] 307 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 308 | | let w = Slider::new(label.clone(), slider_info); [INFO] [stdout] 309 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 310 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 307 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 308 + let w = Slider::new(label.clone(), slider_info); [INFO] [stdout] 309 + Box::new(w) [INFO] [stdout] 310 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:334:9 [INFO] [stdout] | [INFO] [stdout] 334 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 335 | | let w = Dropdown::new(items, default_value); [INFO] [stdout] 336 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 337 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 334 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 335 + let w = Dropdown::new(items, default_value); [INFO] [stdout] 336 + Box::new(w) [INFO] [stdout] 337 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:361:9 [INFO] [stdout] | [INFO] [stdout] 361 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 362 | | let w = RadioButtons::new(options, default_value); [INFO] [stdout] 363 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 364 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 361 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 362 + let w = RadioButtons::new(options, default_value); [INFO] [stdout] 363 + Box::new(w) [INFO] [stdout] 364 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:383:9 [INFO] [stdout] | [INFO] [stdout] 383 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 384 | | let w = Separator::new(); [INFO] [stdout] 385 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 386 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 383 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 384 + let w = Separator::new(); [INFO] [stdout] 385 + Box::new(w) [INFO] [stdout] 386 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:420:9 [INFO] [stdout] | [INFO] [stdout] 420 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 421 | | let w = ProgressBar::new(label.clone(), progress_info); [INFO] [stdout] 422 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 423 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 420 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 421 + let w = ProgressBar::new(label.clone(), progress_info); [INFO] [stdout] 422 + Box::new(w) [INFO] [stdout] 423 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:441:9 [INFO] [stdout] | [INFO] [stdout] 441 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 442 | | let w = TabHolder::new(tabs, default_tab); [INFO] [stdout] 443 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 444 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 441 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 442 + let w = TabHolder::new(tabs, default_tab); [INFO] [stdout] 443 + Box::new(w) [INFO] [stdout] 444 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:462:9 [INFO] [stdout] | [INFO] [stdout] 462 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 463 | | let w = TextBox::new(text.clone(), None); [INFO] [stdout] 464 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 465 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 462 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 463 + let w = TextBox::new(text.clone(), None); [INFO] [stdout] 464 + Box::new(w) [INFO] [stdout] 465 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:483:9 [INFO] [stdout] | [INFO] [stdout] 483 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 484 | | let w = TextBox::new(text.clone(), Some(label)); [INFO] [stdout] 485 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 486 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 483 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 484 + let w = TextBox::new(text.clone(), Some(label)); [INFO] [stdout] 485 + Box::new(w) [INFO] [stdout] 486 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/widgets/widget_holder.rs:503:9 [INFO] [stdout] | [INFO] [stdout] 503 | / if !self.widgets.contains_key(&new_id) { [INFO] [stdout] 504 | | let w = Column::new(f); [INFO] [stdout] 505 | | self.widgets.insert(new_id, Box::new(w)); [INFO] [stdout] 506 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 503 ~ self.widgets.entry(new_id).or_insert_with(|| { [INFO] [stdout] 504 + let w = Column::new(f); [INFO] [stdout] 505 + Box::new(w) [INFO] [stdout] 506 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/button.rs:62:33 [INFO] [stdout] | [INFO] [stdout] 62 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/button.rs:111:41 [INFO] [stdout] | [INFO] [stdout] 111 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/button.rs:128:33 [INFO] [stdout] | [INFO] [stdout] 128 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:38:33 [INFO] [stdout] | [INFO] [stdout] 38 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:48:33 [INFO] [stdout] | [INFO] [stdout] 48 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:67:41 [INFO] [stdout] | [INFO] [stdout] 67 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:141:33 [INFO] [stdout] | [INFO] [stdout] 141 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:148:12 [INFO] [stdout] | [INFO] [stdout] 148 | if self.text.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/checkbox.rs:155:33 [INFO] [stdout] | [INFO] [stdout] 155 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:102:33 [INFO] [stdout] | [INFO] [stdout] 102 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:117:41 [INFO] [stdout] | [INFO] [stdout] 117 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:142:41 [INFO] [stdout] | [INFO] [stdout] 142 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:175:49 [INFO] [stdout] | [INFO] [stdout] 175 | ... Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:191:17 [INFO] [stdout] | [INFO] [stdout] 191 | / ((text_dim.height + 10.0) * self.items.len() as f32 + 10.0) [INFO] [stdout] 192 | | .max(0.0) [INFO] [stdout] 193 | | .min(120.0), [INFO] [stdout] | |_______________________________^ help: replace with clamp: `((text_dim.height + 10.0) * self.items.len() as f32 + 10.0).clamp(0.0, 120.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] = note: `#[warn(clippy::manual_clamp)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: clamp-like pattern without using clamp function [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | / ((text_dim.height + 10.0) * self.items.len() as f32 + 10.0) [INFO] [stdout] 202 | | .max(0.0) [INFO] [stdout] 203 | | .min(120.0), [INFO] [stdout] | |_______________________________^ help: replace with clamp: `((text_dim.height + 10.0) * self.items.len() as f32 + 10.0).clamp(0.0, 120.0)` [INFO] [stdout] | [INFO] [stdout] = note: clamp will panic if max < min, min.is_nan(), or max.is_nan() [INFO] [stdout] = note: clamp returns NaN if the input is NaN [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_clamp [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:234:33 [INFO] [stdout] | [INFO] [stdout] 234 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Rect` which implements the `Copy` trait [INFO] [stdout] --> src/widgets/widget_types/dropdown.rs:293:42 [INFO] [stdout] | [INFO] [stdout] 293 | let mut base_item_rect = drop_rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `drop_rect` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:55:33 [INFO] [stdout] | [INFO] [stdout] 55 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:69:41 [INFO] [stdout] | [INFO] [stdout] 69 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:116:41 [INFO] [stdout] | [INFO] [stdout] 116 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/progress_bar.rs:133:33 [INFO] [stdout] | [INFO] [stdout] 133 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Separator` [INFO] [stdout] --> src/widgets/widget_types/separator.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | / pub fn new() -> Self { [INFO] [stdout] 14 | | Self { [INFO] [stdout] 15 | | thickness: 2.0, [INFO] [stdout] 16 | | padding: 5.0, [INFO] [stdout] ... | [INFO] [stdout] 19 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 12 + impl Default for Separator { [INFO] [stdout] 13 + fn default() -> Self { [INFO] [stdout] 14 + Self::new() [INFO] [stdout] 15 + } [INFO] [stdout] 16 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:58:33 [INFO] [stdout] | [INFO] [stdout] 58 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:72:41 [INFO] [stdout] | [INFO] [stdout] 72 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:124:41 [INFO] [stdout] | [INFO] [stdout] 124 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/slider.rs:141:33 [INFO] [stdout] | [INFO] [stdout] 141 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/tab_holder.rs:120:37 [INFO] [stdout] | [INFO] [stdout] 120 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/tab_holder.rs:137:45 [INFO] [stdout] | [INFO] [stdout] 137 | ... Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/text.rs:28:33 [INFO] [stdout] | [INFO] [stdout] 28 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/text.rs:47:41 [INFO] [stdout] | [INFO] [stdout] 47 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/text.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:339:13 [INFO] [stdout] | [INFO] [stdout] 339 | / if is_key_pressed(KeyCode::C) { [INFO] [stdout] 340 | | if self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 341 | | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] 342 | | let end = self.selection_start.max(self.selection_end) as usize; [INFO] [stdout] ... | [INFO] [stdout] 347 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 339 ~ if is_key_pressed(KeyCode::C) [INFO] [stdout] 340 ~ && self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 341 | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] ... [INFO] [stdout] 345 | self.clipboard_queue = Some(text.to_string()); [INFO] [stdout] 346 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:349:13 [INFO] [stdout] | [INFO] [stdout] 349 | / if is_key_pressed(KeyCode::X) { [INFO] [stdout] 350 | | if self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 351 | | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] 352 | | let end = self.selection_start.max(self.selection_end) as usize; [INFO] [stdout] ... | [INFO] [stdout] 365 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 349 ~ if is_key_pressed(KeyCode::X) [INFO] [stdout] 350 ~ && self.selection_start >= 0 && self.selection_end >= 0 { [INFO] [stdout] 351 | let start = self.selection_start.min(self.selection_end) as usize; [INFO] [stdout] ... [INFO] [stdout] 363 | self.selection_end = -1; [INFO] [stdout] 364 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:394:28 [INFO] [stdout] | [INFO] [stdout] 394 | if self.value.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.value.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:506:28 [INFO] [stdout] | [INFO] [stdout] 506 | if self.value.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.value.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:515:20 [INFO] [stdout] | [INFO] [stdout] 515 | if self.value.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.value.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression assigns a bool literal [INFO] [stdout] --> src/widgets/widget_types/textbox.rs:646:9 [INFO] [stdout] | [INFO] [stdout] 646 | / if old_caret != self.caret { [INFO] [stdout] 647 | | self.caret_changed = true; [INFO] [stdout] 648 | | } else { [INFO] [stdout] 649 | | self.caret_changed = false; [INFO] [stdout] 650 | | } [INFO] [stdout] | |_________^ help: you can reduce it to: `self.caret_changed = old_caret != self.caret;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool_assign [INFO] [stdout] = note: `#[warn(clippy::needless_bool_assign)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:49:33 [INFO] [stdout] | [INFO] [stdout] 49 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:68:37 [INFO] [stdout] | [INFO] [stdout] 68 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:118:45 [INFO] [stdout] | [INFO] [stdout] 118 | ... Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:140:33 [INFO] [stdout] | [INFO] [stdout] 140 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:162:37 [INFO] [stdout] | [INFO] [stdout] 162 | Some(f) => Some(&f), [INFO] [stdout] | ^^ help: change this to: `f` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/widgets/widget_types/radio_buttons.rs:170:16 [INFO] [stdout] | [INFO] [stdout] 170 | if text.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!text.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/widgets/widget_types/column.rs:10:11 [INFO] [stdout] | [INFO] [stdout] 10 | func: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/misc/rounded_rect.rs:37:1 [INFO] [stdout] | [INFO] [stdout] 37 | / pub fn draw_rounded_rect_ex( [INFO] [stdout] 38 | | x: f32, [INFO] [stdout] 39 | | y: f32, [INFO] [stdout] 40 | | w: f32, [INFO] [stdout] ... | [INFO] [stdout] 46 | | color: Color, [INFO] [stdout] 47 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/misc/rounded_rect.rs:134:1 [INFO] [stdout] | [INFO] [stdout] 134 | / pub fn draw_rounded_rect_stroke( [INFO] [stdout] 135 | | x: f32, [INFO] [stdout] 136 | | y: f32, [INFO] [stdout] 137 | | w: f32, [INFO] [stdout] ... | [INFO] [stdout] 142 | | background: Color, [INFO] [stdout] 143 | | ) { [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.36s [INFO] running `Command { std: "docker" "inspect" "4e37f85046b174e3d6bef3c6d69808039fe59e48d064aa0a703da16d2181bd3b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4e37f85046b174e3d6bef3c6d69808039fe59e48d064aa0a703da16d2181bd3b", kill_on_drop: false }` [INFO] [stdout] 4e37f85046b174e3d6bef3c6d69808039fe59e48d064aa0a703da16d2181bd3b