[INFO] cloning repository https://github.com/dumestre/RustUi [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dumestre/RustUi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdumestre%2FRustUi", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdumestre%2FRustUi'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 9e2aa3f35a056bbba0e7b0c247ae7dbd6da3b199 [INFO] linting dumestre/RustUi against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdumestre%2FRustUi" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/dumestre/RustUi [INFO] finished tweaking git repo https://github.com/dumestre/RustUi [INFO] tweaked toml for git repo https://github.com/dumestre/RustUi written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/dumestre/RustUi 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/dumestre/RustUi 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] Downloading crates ... [INFO] [stderr] Downloaded jiff-static v0.2.20 [INFO] [stderr] Downloaded glam v0.29.3 [INFO] [stderr] Downloaded jiff v0.2.20 [INFO] [stderr] Downloaded pixels v0.13.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 3bd48ffec46167384d3fb03e2e4cfafa7b2d1fa1b3bed3dd6d2bdde714ae1fa8 [INFO] running `Command { std: "docker" "start" "-a" "3bd48ffec46167384d3fb03e2e4cfafa7b2d1fa1b3bed3dd6d2bdde714ae1fa8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3bd48ffec46167384d3fb03e2e4cfafa7b2d1fa1b3bed3dd6d2bdde714ae1fa8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3bd48ffec46167384d3fb03e2e4cfafa7b2d1fa1b3bed3dd6d2bdde714ae1fa8", kill_on_drop: false }` [INFO] [stdout] 3bd48ffec46167384d3fb03e2e4cfafa7b2d1fa1b3bed3dd6d2bdde714ae1fa8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] fa8e422c1d6b498e94eabc7abef60e3c3ed5fee77aacc00fc8c77f74ef591014 [INFO] running `Command { std: "docker" "start" "-a" "fa8e422c1d6b498e94eabc7abef60e3c3ed5fee77aacc00fc8c77f74ef591014", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.182 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Compiling xml-rs v0.8.28 [INFO] [stderr] Checking log v0.4.29 [INFO] [stderr] Compiling zerocopy v0.8.39 [INFO] [stderr] Checking bytemuck v1.25.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking bitflags v2.11.0 [INFO] [stderr] Compiling slotmap v1.1.1 [INFO] [stderr] Compiling syn v2.0.116 [INFO] [stderr] Compiling khronos-egl v4.1.0 [INFO] [stderr] Checking spirv v0.2.0+1.5.4 [INFO] [stderr] Checking gpu-alloc-types v0.2.0 [INFO] [stderr] Checking raw-window-handle v0.5.2 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking ash v0.37.3+1.3.251 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking gpu-alloc v0.5.4 [INFO] [stderr] Compiling smithay-client-toolkit v0.16.1 [INFO] [stderr] Checking wayland-sys v0.29.5 [INFO] [stderr] Checking gpu-descriptor-types v0.1.2 [INFO] [stderr] Checking wgpu-types v0.16.1 [INFO] [stderr] Checking glow v0.12.3 [INFO] [stderr] Checking regex-syntax v0.8.9 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking tiny-skia-path v0.8.4 [INFO] [stderr] Checking safe_arch v0.7.4 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking anstream v0.6.21 [INFO] [stderr] Checking instant v0.1.13 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking jiff v0.2.20 [INFO] [stderr] Checking num-format v0.4.4 [INFO] [stderr] Checking glam v0.29.3 [INFO] [stderr] Checking wide v0.7.33 [INFO] [stderr] Checking tiny-skia v0.8.4 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Compiling winit v0.28.7 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking ultraviolet v0.9.2 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Checking mio v0.8.11 [INFO] [stderr] Checking x11-dl v2.21.0 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking env_filter v1.0.0 [INFO] [stderr] Checking env_logger v0.11.9 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking naga v0.12.3 [INFO] [stderr] Checking calloop v0.10.6 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking ahash v0.8.12 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking gpu-descriptor v0.2.4 [INFO] [stderr] Checking wgpu-hal v0.16.2 [INFO] [stderr] Checking wgpu-core v0.16.1 [INFO] [stderr] Checking wgpu v0.16.3 [INFO] [stderr] Checking pixels v0.13.0 [INFO] [stderr] Checking sctk-adwaita v0.5.4 [INFO] [stderr] Checking rustui v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/config.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// Centraliza paths, constantes de layout, temas e configurações de renderização [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | use crate::renderer::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Configurações globais do RustUI [INFO] [stdout] 2 ~ //! Centraliza paths, constantes de layout, temas e configurações de renderização [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/config.rs:2:1 [INFO] [stdout] | [INFO] [stdout] 2 | / /// Centraliza paths, constantes de layout, temas e configurações de renderização [INFO] [stdout] 3 | | [INFO] [stdout] | |_^ [INFO] [stdout] 4 | use crate::renderer::Color; [INFO] [stdout] | - the comment documents this `use` import [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] help: if the comment should document the parent module use an inner doc comment [INFO] [stdout] | [INFO] [stdout] 1 ~ //! Configurações globais do RustUI [INFO] [stdout] 2 ~ //! Centraliza paths, constantes de layout, temas e configurações de renderização [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value captured by `debug_info.fps` is never read [INFO] [stdout] --> src/core.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | debug_info.fps = frame_count as f64 / fps_timer.elapsed().as_secs_f64(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: did you mean to capture by reference instead? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `debug_info.fps` is never read [INFO] [stdout] --> src/core.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | debug_info.fps = frame_count as f64 / fps_timer.elapsed().as_secs_f64(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value captured by `debug_info.frame_time_ms` is never read [INFO] [stdout] --> src/core.rs:335:21 [INFO] [stdout] | [INFO] [stdout] 335 | debug_info.frame_time_ms = frame_time.as_secs_f64() * 1000.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: did you mean to capture by reference instead? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `debug_info.frame_time_ms` is never read [INFO] [stdout] --> src/core.rs:335:21 [INFO] [stdout] | [INFO] [stdout] 335 | debug_info.frame_time_ms = frame_time.as_secs_f64() * 1000.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/config.rs:259:5 [INFO] [stdout] | [INFO] [stdout] 259 | / if let Some(name) = font_name { [INFO] [stdout] 260 | | if let Some(path) = get_system_font(name) { [INFO] [stdout] 261 | | if let Ok(data) = std::fs::read(&path) { [INFO] [stdout] 262 | | log::info!("Fonte carregada do sistema: {:?}", path); [INFO] [stdout] ... | [INFO] [stdout] 266 | | } [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] 259 ~ if let Some(name) = font_name [INFO] [stdout] 260 ~ && let Some(path) = get_system_font(name) { [INFO] [stdout] 261 | if let Ok(data) = std::fs::read(&path) { [INFO] [stdout] ... [INFO] [stdout] 264 | } [INFO] [stdout] 265 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/config.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | / if let Some(path) = get_system_font(name) { [INFO] [stdout] 261 | | if let Ok(data) = std::fs::read(&path) { [INFO] [stdout] 262 | | log::info!("Fonte carregada do sistema: {:?}", path); [INFO] [stdout] 263 | | return Some(data); [INFO] [stdout] 264 | | } [INFO] [stdout] 265 | | } [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] 260 ~ if let Some(path) = get_system_font(name) [INFO] [stdout] 261 ~ && let Ok(data) = std::fs::read(&path) { [INFO] [stdout] 262 | log::info!("Fonte carregada do sistema: {:?}", path); [INFO] [stdout] 263 | return Some(data); [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `StateStore` [INFO] [stdout] --> src/core.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn new() -> Self { [INFO] [stdout] 124 | | Self { [INFO] [stdout] 125 | | states: HashMap::new(), [INFO] [stdout] 126 | | widget_stack: WidgetIdStack::new(), [INFO] [stdout] ... | [INFO] [stdout] 130 | | } [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] 122 + impl Default for StateStore { [INFO] [stdout] 123 + fn default() -> Self { [INFO] [stdout] 124 + Self::new() [INFO] [stdout] 125 + } [INFO] [stdout] 126 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/core.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | / fn draw( [INFO] [stdout] 157 | | &self, [INFO] [stdout] 158 | | frame: &mut [u8], [INFO] [stdout] 159 | | width: u32, [INFO] [stdout] ... | [INFO] [stdout] 164 | | input: &InputState, [INFO] [stdout] 165 | | ); [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: you should consider adding a `Default` implementation for `Modifier` [INFO] [stdout] --> src/modifier.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub fn new() -> Self { [INFO] [stdout] 19 | | Self::DEFAULT [INFO] [stdout] 20 | | } [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] 11 + impl Default for Modifier { [INFO] [stdout] 12 + fn default() -> Self { [INFO] [stdout] 13 + Self::new() [INFO] [stdout] 14 + } [INFO] [stdout] 15 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FontAtlas` [INFO] [stdout] --> src/renderer.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | / pub fn new() -> Self { [INFO] [stdout] 89 | | Self { [INFO] [stdout] 90 | | cache: HashMap::new(), [INFO] [stdout] 91 | | } [INFO] [stdout] 92 | | } [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] 87 + impl Default for FontAtlas { [INFO] [stdout] 88 + fn default() -> Self { [INFO] [stdout] 89 + Self::new() [INFO] [stdout] 90 + } [INFO] [stdout] 91 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/renderer.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | / if !self.cache.contains_key(&key) { [INFO] [stdout] 97 | | let scale = PxScale::from(size); [INFO] [stdout] 98 | | let scaled_font = font.as_scaled(scale); [INFO] [stdout] 99 | | let glyph = scaled_font.scaled_glyph(c); [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [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] 96 ~ self.cache.entry(key).or_insert_with(|| { [INFO] [stdout] 97 + let scale = PxScale::from(size); [INFO] [stdout] 98 + let scaled_font = font.as_scaled(scale); [INFO] [stdout] 99 + let glyph = scaled_font.scaled_glyph(c); [INFO] [stdout] 100 + if let Some(outlined) = font.outline_glyph(glyph) { [INFO] [stdout] 101 + let bounds = outlined.px_bounds(); [INFO] [stdout] 102 + let width = bounds.width() as u32; [INFO] [stdout] 103 + let height = bounds.height() as u32; [INFO] [stdout] 104 + let mut data = vec![0.0; (width * height) as usize]; [INFO] [stdout] 105 + outlined.draw(|px, py, v| { [INFO] [stdout] 106 + if px < width && py < height { [INFO] [stdout] 107 + data[(py * width + px) as usize] = v; [INFO] [stdout] 108 + } [INFO] [stdout] 109 + }); [INFO] [stdout] 110 + CachedGlyph { [INFO] [stdout] 111 + width, [INFO] [stdout] 112 + height, [INFO] [stdout] 113 + offset_x: bounds.min.x, [INFO] [stdout] 114 + offset_y: bounds.min.y, [INFO] [stdout] 115 + data, [INFO] [stdout] 116 + } [INFO] [stdout] 117 + } else { [INFO] [stdout] 118 + CachedGlyph { [INFO] [stdout] 119 + width: 0, [INFO] [stdout] 120 + height: 0, [INFO] [stdout] 121 + offset_x: 0.0, [INFO] [stdout] 122 + offset_y: 0.0, [INFO] [stdout] 123 + data: vec![], [INFO] [stdout] 124 + } [INFO] [stdout] 125 + } [INFO] [stdout] 126 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/renderer.rs:137:1 [INFO] [stdout] | [INFO] [stdout] 137 | / pub fn draw_text_smooth( [INFO] [stdout] 138 | | frame: &mut [u8], [INFO] [stdout] 139 | | atlas: &mut FontAtlas, [INFO] [stdout] 140 | | font: &FontArc, [INFO] [stdout] ... | [INFO] [stdout] 147 | | sh: u32, [INFO] [stdout] 148 | | ) { [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 (9/7) [INFO] [stdout] --> src/renderer.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | / pub fn draw_rounded_rect( [INFO] [stdout] 223 | | f: &mut [u8], [INFO] [stdout] 224 | | x: f32, [INFO] [stdout] 225 | | y: f32, [INFO] [stdout] ... | [INFO] [stdout] 231 | | sh: u32, [INFO] [stdout] 232 | | ) { [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: using `clone` on type `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:279:26 [INFO] [stdout] | [INFO] [stdout] 279 | (x as i32)..(cx.clone() as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cx` [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: using `clone` on type `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:281:14 [INFO] [stdout] | [INFO] [stdout] 281 | (cx.clone() as i32)..(x as i32 + w as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cx` [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 `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:284:26 [INFO] [stdout] | [INFO] [stdout] 284 | (y as i32)..(cy.clone() as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cy` [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 `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:286:14 [INFO] [stdout] | [INFO] [stdout] 286 | (cy.clone() as i32)..(y as i32 + h as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cy` [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 function has too many arguments (9/7) [INFO] [stdout] --> src/renderer.rs:311:1 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn draw_shadow(f: &mut [u8], x: f32, y: f32, w: f32, h: f32, r: f32, b: f32, sw: u32, sh: u32) { [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/renderer.rs:339:1 [INFO] [stdout] | [INFO] [stdout] 339 | pub fn draw_rect(f: &mut [u8], x: i32, y: i32, w: i32, h: i32, c: Color, sw: u32, sh: u32) { [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/renderer.rs:464:1 [INFO] [stdout] | [INFO] [stdout] 464 | / pub fn draw_debug_bounds( [INFO] [stdout] 465 | | frame: &mut [u8], [INFO] [stdout] 466 | | x: f32, [INFO] [stdout] 467 | | y: f32, [INFO] [stdout] ... | [INFO] [stdout] 472 | | sh: u32, [INFO] [stdout] 473 | | ) { [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/ui_context.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | / if !store.states.contains_key(&id) { [INFO] [stdout] 255 | | store.states.insert(id, Box::new(init())); [INFO] [stdout] 256 | | } [INFO] [stdout] | |_____________^ help: try: `store.states.entry(id).or_insert_with(|| Box::new(init()));` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/ui_context.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | / if let Some(clip) = &self.clip_rect { [INFO] [stdout] 294 | | if mx < clip.x || mx > clip.x + clip.w || my < clip.y || my > clip.y + clip.h { [INFO] [stdout] 295 | | return false; [INFO] [stdout] 296 | | } [INFO] [stdout] 297 | | } [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] 293 ~ if let Some(clip) = &self.clip_rect [INFO] [stdout] 294 ~ && (mx < clip.x || mx > clip.x + clip.w || my < clip.y || my > clip.y + clip.h) { [INFO] [stdout] 295 | return false; [INFO] [stdout] 296 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | let old_clip = ui.clip_rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:82:20 [INFO] [stdout] | [INFO] [stdout] 82 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:150:20 [INFO] [stdout] | [INFO] [stdout] 150 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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: called `unwrap` on `modifier.width` after checking its variant with `is_some` [INFO] [stdout] --> src/widgets.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 245 | let final_w_for_row = if modifier.width.is_some() { [INFO] [stdout] | --------------------------- help: try: `if let Some() = modifier.width` [INFO] [stdout] 246 | modifier.width.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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: redundant closure [INFO] [stdout] --> src/widgets.rs:385:54 [INFO] [stdout] | [INFO] [stdout] 385 | let text_state = ui.use_state_with_id(widget_id, || String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `String::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value captured by `debug_info.fps` is never read [INFO] [stdout] --> src/core.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | debug_info.fps = frame_count as f64 / fps_timer.elapsed().as_secs_f64(); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: did you mean to capture by reference instead? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `debug_info.fps` is never read [INFO] [stdout] --> src/core.rs:334:21 [INFO] [stdout] | [INFO] [stdout] 334 | debug_info.fps = frame_count as f64 / fps_timer.elapsed().as_secs_f64(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value captured by `debug_info.frame_time_ms` is never read [INFO] [stdout] --> src/core.rs:335:21 [INFO] [stdout] | [INFO] [stdout] 335 | debug_info.frame_time_ms = frame_time.as_secs_f64() * 1000.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: did you mean to capture by reference instead? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `debug_info.frame_time_ms` is never read [INFO] [stdout] --> src/core.rs:335:21 [INFO] [stdout] | [INFO] [stdout] 335 | debug_info.frame_time_ms = frame_time.as_secs_f64() * 1000.0; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:857:20 [INFO] [stdout] | [INFO] [stdout] 857 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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 `if` statement can be collapsed [INFO] [stdout] --> src/config.rs:259:5 [INFO] [stdout] | [INFO] [stdout] 259 | / if let Some(name) = font_name { [INFO] [stdout] 260 | | if let Some(path) = get_system_font(name) { [INFO] [stdout] 261 | | if let Ok(data) = std::fs::read(&path) { [INFO] [stdout] 262 | | log::info!("Fonte carregada do sistema: {:?}", path); [INFO] [stdout] ... | [INFO] [stdout] 266 | | } [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] 259 ~ if let Some(name) = font_name [INFO] [stdout] 260 ~ && let Some(path) = get_system_font(name) { [INFO] [stdout] 261 | if let Ok(data) = std::fs::read(&path) { [INFO] [stdout] ... [INFO] [stdout] 264 | } [INFO] [stdout] 265 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/config.rs:260:9 [INFO] [stdout] | [INFO] [stdout] 260 | / if let Some(path) = get_system_font(name) { [INFO] [stdout] 261 | | if let Ok(data) = std::fs::read(&path) { [INFO] [stdout] 262 | | log::info!("Fonte carregada do sistema: {:?}", path); [INFO] [stdout] 263 | | return Some(data); [INFO] [stdout] 264 | | } [INFO] [stdout] 265 | | } [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] 260 ~ if let Some(path) = get_system_font(name) [INFO] [stdout] 261 ~ && let Ok(data) = std::fs::read(&path) { [INFO] [stdout] 262 | log::info!("Fonte carregada do sistema: {:?}", path); [INFO] [stdout] 263 | return Some(data); [INFO] [stdout] 264 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `StateStore` [INFO] [stdout] --> src/core.rs:123:5 [INFO] [stdout] | [INFO] [stdout] 123 | / pub fn new() -> Self { [INFO] [stdout] 124 | | Self { [INFO] [stdout] 125 | | states: HashMap::new(), [INFO] [stdout] 126 | | widget_stack: WidgetIdStack::new(), [INFO] [stdout] ... | [INFO] [stdout] 130 | | } [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] 122 + impl Default for StateStore { [INFO] [stdout] 123 + fn default() -> Self { [INFO] [stdout] 124 + Self::new() [INFO] [stdout] 125 + } [INFO] [stdout] 126 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (8/7) [INFO] [stdout] --> src/core.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | / fn draw( [INFO] [stdout] 157 | | &self, [INFO] [stdout] 158 | | frame: &mut [u8], [INFO] [stdout] 159 | | width: u32, [INFO] [stdout] ... | [INFO] [stdout] 164 | | input: &InputState, [INFO] [stdout] 165 | | ); [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: you should consider adding a `Default` implementation for `Modifier` [INFO] [stdout] --> src/modifier.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | / pub fn new() -> Self { [INFO] [stdout] 19 | | Self::DEFAULT [INFO] [stdout] 20 | | } [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] 11 + impl Default for Modifier { [INFO] [stdout] 12 + fn default() -> Self { [INFO] [stdout] 13 + Self::new() [INFO] [stdout] 14 + } [INFO] [stdout] 15 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `FontAtlas` [INFO] [stdout] --> src/renderer.rs:88:5 [INFO] [stdout] | [INFO] [stdout] 88 | / pub fn new() -> Self { [INFO] [stdout] 89 | | Self { [INFO] [stdout] 90 | | cache: HashMap::new(), [INFO] [stdout] 91 | | } [INFO] [stdout] 92 | | } [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] 87 + impl Default for FontAtlas { [INFO] [stdout] 88 + fn default() -> Self { [INFO] [stdout] 89 + Self::new() [INFO] [stdout] 90 + } [INFO] [stdout] 91 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/renderer.rs:96:9 [INFO] [stdout] | [INFO] [stdout] 96 | / if !self.cache.contains_key(&key) { [INFO] [stdout] 97 | | let scale = PxScale::from(size); [INFO] [stdout] 98 | | let scaled_font = font.as_scaled(scale); [INFO] [stdout] 99 | | let glyph = scaled_font.scaled_glyph(c); [INFO] [stdout] ... | [INFO] [stdout] 132 | | } [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] 96 ~ self.cache.entry(key).or_insert_with(|| { [INFO] [stdout] 97 + let scale = PxScale::from(size); [INFO] [stdout] 98 + let scaled_font = font.as_scaled(scale); [INFO] [stdout] 99 + let glyph = scaled_font.scaled_glyph(c); [INFO] [stdout] 100 + if let Some(outlined) = font.outline_glyph(glyph) { [INFO] [stdout] 101 + let bounds = outlined.px_bounds(); [INFO] [stdout] 102 + let width = bounds.width() as u32; [INFO] [stdout] 103 + let height = bounds.height() as u32; [INFO] [stdout] 104 + let mut data = vec![0.0; (width * height) as usize]; [INFO] [stdout] 105 + outlined.draw(|px, py, v| { [INFO] [stdout] 106 + if px < width && py < height { [INFO] [stdout] 107 + data[(py * width + px) as usize] = v; [INFO] [stdout] 108 + } [INFO] [stdout] 109 + }); [INFO] [stdout] 110 + CachedGlyph { [INFO] [stdout] 111 + width, [INFO] [stdout] 112 + height, [INFO] [stdout] 113 + offset_x: bounds.min.x, [INFO] [stdout] 114 + offset_y: bounds.min.y, [INFO] [stdout] 115 + data, [INFO] [stdout] 116 + } [INFO] [stdout] 117 + } else { [INFO] [stdout] 118 + CachedGlyph { [INFO] [stdout] 119 + width: 0, [INFO] [stdout] 120 + height: 0, [INFO] [stdout] 121 + offset_x: 0.0, [INFO] [stdout] 122 + offset_y: 0.0, [INFO] [stdout] 123 + data: vec![], [INFO] [stdout] 124 + } [INFO] [stdout] 125 + } [INFO] [stdout] 126 + }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (10/7) [INFO] [stdout] --> src/renderer.rs:137:1 [INFO] [stdout] | [INFO] [stdout] 137 | / pub fn draw_text_smooth( [INFO] [stdout] 138 | | frame: &mut [u8], [INFO] [stdout] 139 | | atlas: &mut FontAtlas, [INFO] [stdout] 140 | | font: &FontArc, [INFO] [stdout] ... | [INFO] [stdout] 147 | | sh: u32, [INFO] [stdout] 148 | | ) { [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 (9/7) [INFO] [stdout] --> src/renderer.rs:222:1 [INFO] [stdout] | [INFO] [stdout] 222 | / pub fn draw_rounded_rect( [INFO] [stdout] 223 | | f: &mut [u8], [INFO] [stdout] 224 | | x: f32, [INFO] [stdout] 225 | | y: f32, [INFO] [stdout] ... | [INFO] [stdout] 231 | | sh: u32, [INFO] [stdout] 232 | | ) { [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: using `clone` on type `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:279:26 [INFO] [stdout] | [INFO] [stdout] 279 | (x as i32)..(cx.clone() as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cx` [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: using `clone` on type `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:281:14 [INFO] [stdout] | [INFO] [stdout] 281 | (cx.clone() as i32)..(x as i32 + w as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cx` [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 `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:284:26 [INFO] [stdout] | [INFO] [stdout] 284 | (y as i32)..(cy.clone() as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cy` [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 `f32` which implements the `Copy` trait [INFO] [stdout] --> src/renderer.rs:286:14 [INFO] [stdout] | [INFO] [stdout] 286 | (cy.clone() as i32)..(y as i32 + h as i32) [INFO] [stdout] | ^^^^^^^^^^ help: try dereferencing it: `*cy` [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 function has too many arguments (9/7) [INFO] [stdout] --> src/renderer.rs:311:1 [INFO] [stdout] | [INFO] [stdout] 311 | pub fn draw_shadow(f: &mut [u8], x: f32, y: f32, w: f32, h: f32, r: f32, b: f32, sw: u32, sh: u32) { [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/renderer.rs:339:1 [INFO] [stdout] | [INFO] [stdout] 339 | pub fn draw_rect(f: &mut [u8], x: i32, y: i32, w: i32, h: i32, c: Color, sw: u32, sh: u32) { [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/renderer.rs:464:1 [INFO] [stdout] | [INFO] [stdout] 464 | / pub fn draw_debug_bounds( [INFO] [stdout] 465 | | frame: &mut [u8], [INFO] [stdout] 466 | | x: f32, [INFO] [stdout] 467 | | y: f32, [INFO] [stdout] ... | [INFO] [stdout] 472 | | sh: u32, [INFO] [stdout] 473 | | ) { [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: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stdout] --> src/ui_context.rs:254:13 [INFO] [stdout] | [INFO] [stdout] 254 | / if !store.states.contains_key(&id) { [INFO] [stdout] 255 | | store.states.insert(id, Box::new(init())); [INFO] [stdout] 256 | | } [INFO] [stdout] | |_____________^ help: try: `store.states.entry(id).or_insert_with(|| Box::new(init()));` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/ui_context.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | / if let Some(clip) = &self.clip_rect { [INFO] [stdout] 294 | | if mx < clip.x || mx > clip.x + clip.w || my < clip.y || my > clip.y + clip.h { [INFO] [stdout] 295 | | return false; [INFO] [stdout] 296 | | } [INFO] [stdout] 297 | | } [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] 293 ~ if let Some(clip) = &self.clip_rect [INFO] [stdout] 294 ~ && (mx < clip.x || mx > clip.x + clip.w || my < clip.y || my > clip.y + clip.h) { [INFO] [stdout] 295 | return false; [INFO] [stdout] 296 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:60:20 [INFO] [stdout] | [INFO] [stdout] 60 | let old_clip = ui.clip_rect.clone(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:82:20 [INFO] [stdout] | [INFO] [stdout] 82 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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 `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:150:20 [INFO] [stdout] | [INFO] [stdout] 150 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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: called `unwrap` on `modifier.width` after checking its variant with `is_some` [INFO] [stdout] --> src/widgets.rs:246:9 [INFO] [stdout] | [INFO] [stdout] 245 | let final_w_for_row = if modifier.width.is_some() { [INFO] [stdout] | --------------------------- help: try: `if let Some() = modifier.width` [INFO] [stdout] 246 | modifier.width.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:230:20 [INFO] [stdout] | [INFO] [stdout] 230 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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: redundant closure [INFO] [stdout] --> src/widgets.rs:385:54 [INFO] [stdout] | [INFO] [stdout] 385 | let text_state = ui.use_state_with_id(widget_id, || String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `String::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Option` which implements the `Copy` trait [INFO] [stdout] --> src/widgets.rs:857:20 [INFO] [stdout] | [INFO] [stdout] 857 | clip_rect: ui.clip_rect.clone(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `ui.clip_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: redundant closure [INFO] [stdout] --> src/main.rs:49:41 [INFO] [stdout] | [INFO] [stdout] 49 | let _search_text = ui.use_state(|| String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `String::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:49:41 [INFO] [stdout] | [INFO] [stdout] 49 | let _search_text = ui.use_state(|| String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `String::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 42.68s [INFO] running `Command { std: "docker" "inspect" "fa8e422c1d6b498e94eabc7abef60e3c3ed5fee77aacc00fc8c77f74ef591014", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fa8e422c1d6b498e94eabc7abef60e3c3ed5fee77aacc00fc8c77f74ef591014", kill_on_drop: false }` [INFO] [stdout] fa8e422c1d6b498e94eabc7abef60e3c3ed5fee77aacc00fc8c77f74ef591014