[INFO] cloning repository https://github.com/FuryFiber/RefMap [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/FuryFiber/RefMap" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFuryFiber%2FRefMap", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFuryFiber%2FRefMap'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d038f7c8e03223410021a8f7ab694a091b1bab94 [INFO] linting FuryFiber/RefMap against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FFuryFiber%2FRefMap" "/workspace/builds/worker-0-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/FuryFiber/RefMap [INFO] finished tweaking git repo https://github.com/FuryFiber/RefMap [INFO] tweaked toml for git repo https://github.com/FuryFiber/RefMap written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/FuryFiber/RefMap 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/FuryFiber/RefMap 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 derive_arbitrary v1.4.2 [INFO] [stderr] Downloaded glutin-winit v0.5.0 [INFO] [stderr] Downloaded zbus_xml v5.0.2 [INFO] [stderr] Downloaded zbus-lockstep-macros v0.5.1 [INFO] [stderr] Downloaded atspi-connection v0.9.0 [INFO] [stderr] Downloaded zbus-lockstep v0.5.1 [INFO] [stderr] Downloaded atspi-proxies v0.9.0 [INFO] [stderr] Downloaded type-map v0.5.1 [INFO] [stderr] Downloaded egui-wgpu v0.33.0 [INFO] [stderr] Downloaded accesskit_atspi_common v0.14.1 [INFO] [stderr] Downloaded arboard v3.6.1 [INFO] [stderr] Downloaded zvariant v5.7.0 [INFO] [stderr] Downloaded objc2-core-graphics v0.3.2 [INFO] [stderr] Downloaded atspi-common v0.9.0 [INFO] [stderr] Downloaded eframe v0.33.0 [INFO] [stderr] Downloaded moxcms v0.7.7 [INFO] [stderr] Downloaded quick-xml v0.36.2 [INFO] [stderr] Downloaded zbus v5.11.0 [INFO] [stderr] Downloaded zlib-rs v0.5.2 [INFO] [stderr] Downloaded epaint v0.33.0 [INFO] [stderr] Downloaded zip v6.0.0 [INFO] [stderr] Downloaded lzma-rust2 v0.13.0 [INFO] [stderr] Downloaded webbrowser v1.0.5 [INFO] [stderr] Downloaded egui_glow v0.33.0 [INFO] [stderr] Downloaded wgpu-core v27.0.1 [INFO] [stderr] Downloaded glutin v0.32.3 [INFO] [stderr] Downloaded zbus_macros v5.11.0 [INFO] [stderr] Downloaded egui v0.33.0 [INFO] [stderr] Downloaded egui-winit v0.33.0 [INFO] [stderr] Downloaded glutin_glx_sys v0.6.1 [INFO] [stderr] Downloaded wgpu-hal v27.0.2 [INFO] [stderr] Downloaded emath v0.33.0 [INFO] [stderr] Downloaded zopfli v0.8.2 [INFO] [stderr] Downloaded atspi v0.25.0 [INFO] [stderr] Downloaded smithay-clipboard v0.7.2 [INFO] [stderr] Downloaded accesskit_unix v0.17.1 [INFO] [stderr] Downloaded objc2-app-kit v0.3.2 [INFO] [stderr] Downloaded ecolor v0.33.0 [INFO] [stderr] Downloaded opener v0.8.3 [INFO] [stderr] Downloaded zvariant_derive v5.7.0 [INFO] [stderr] Downloaded objc2-io-surface v0.3.2 [INFO] [stderr] Downloaded bzip2 v0.6.0 [INFO] [stderr] Downloaded libz-rs-sys v0.5.2 [INFO] [stderr] Downloaded ppmd-rust v1.2.1 [INFO] [stderr] Downloaded glutin_egl_sys v0.7.1 [INFO] [stderr] Downloaded naga v27.0.0 [INFO] [stderr] Downloaded epaint_default_fonts v0.33.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 3aff463e852d824d5d37125f373ad234737676165e3929e72dfb002d61ccbae0 [INFO] running `Command { std: "docker" "start" "-a" "3aff463e852d824d5d37125f373ad234737676165e3929e72dfb002d61ccbae0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3aff463e852d824d5d37125f373ad234737676165e3929e72dfb002d61ccbae0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3aff463e852d824d5d37125f373ad234737676165e3929e72dfb002d61ccbae0", kill_on_drop: false }` [INFO] [stdout] 3aff463e852d824d5d37125f373ad234737676165e3929e72dfb002d61ccbae0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] 2ca51627b979c710450eee9d538e7445c546473f3a99ac3b58bd5c8f42555f31 [INFO] running `Command { std: "docker" "start" "-a" "2ca51627b979c710450eee9d538e7445c546473f3a99ac3b58bd5c8f42555f31", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling quote v1.0.41 [INFO] [stderr] Compiling unicode-ident v1.0.19 [INFO] [stderr] Compiling libc v0.2.177 [INFO] [stderr] Checking bitflags v2.9.4 [INFO] [stderr] Checking smallvec v1.15.1 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Checking linux-raw-sys v0.11.0 [INFO] [stderr] Checking log v0.4.28 [INFO] [stderr] Checking stable_deref_trait v1.2.1 [INFO] [stderr] Compiling find-msvc-tools v0.1.4 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling memchr v2.7.6 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling hashbrown v0.16.0 [INFO] [stderr] Checking parking v2.2.1 [INFO] [stderr] Compiling toml_datetime v0.7.3 [INFO] [stderr] Checking slab v0.4.11 [INFO] [stderr] Checking libloading v0.8.9 [INFO] [stderr] Checking writeable v0.6.1 [INFO] [stderr] Checking litemap v0.8.0 [INFO] [stderr] Compiling icu_normalizer_data v2.0.0 [INFO] [stderr] Compiling icu_properties_data v2.0.1 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Compiling indexmap v2.11.4 [INFO] [stderr] Compiling wayland-sys v0.31.7 [INFO] [stderr] Checking futures-lite v2.6.1 [INFO] [stderr] Checking utf8_iter v1.0.4 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking form_urlencoded v1.2.2 [INFO] [stderr] Checking downcast-rs v1.2.1 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking event-listener v5.4.1 [INFO] [stderr] Compiling endi v1.1.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling quick-xml v0.37.5 [INFO] [stderr] Checking event-listener-strategy v0.5.4 [INFO] [stderr] Compiling async-io v2.6.0 [INFO] [stderr] Checking syn v2.0.106 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Checking async-task v4.7.1 [INFO] [stderr] Compiling wayland-client v0.31.11 [INFO] [stderr] Compiling static_assertions v1.1.0 [INFO] [stderr] Checking async-channel v2.5.0 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Checking piper v0.2.4 [INFO] [stderr] Checking tracing-core v0.1.34 [INFO] [stderr] Checking async-lock v3.4.1 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling generic-array v0.14.9 [INFO] [stderr] Checking async-executor v1.13.3 [INFO] [stderr] Compiling cc v1.2.41 [INFO] [stderr] Checking blocking v1.6.2 [INFO] [stderr] Checking async-broadcast v0.7.2 [INFO] [stderr] Checking ordered-stream v0.2.0 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Compiling khronos_api v3.1.0 [INFO] [stderr] Compiling toml_parser v1.0.4 [INFO] [stderr] Compiling rustix v0.38.44 [INFO] [stderr] Checking signal-hook-registry v1.4.6 [INFO] [stderr] Checking linux-raw-sys v0.4.15 [INFO] [stderr] Checking ttf-parser v0.25.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling xml-rs v0.8.27 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.10 [INFO] [stderr] Compiling toml_edit v0.23.7 [INFO] [stderr] Compiling crc32fast v1.5.0 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Checking crypto-common v0.1.6 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking cursor-icon v1.2.0 [INFO] [stderr] Checking xkeysym v0.2.1 [INFO] [stderr] Compiling smithay-client-toolkit v0.19.2 [INFO] [stderr] Checking xcursor v0.3.10 [INFO] [stderr] Compiling wayland-scanner v0.31.7 [INFO] [stderr] Checking memmap2 v0.9.8 [INFO] [stderr] Checking accesskit v0.21.1 [INFO] [stderr] Checking adler2 v2.0.1 [INFO] [stderr] Compiling proc-macro-crate v3.4.0 [INFO] [stderr] Checking raw-window-handle v0.6.2 [INFO] [stderr] Checking zlib-rs v0.5.2 [INFO] [stderr] Compiling gl_generator v0.14.0 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking miniz_oxide v0.8.9 [INFO] [stderr] Checking parking_lot_core v0.9.12 [INFO] [stderr] Checking block-buffer v0.10.4 [INFO] [stderr] Compiling wayland-backend v0.3.11 [INFO] [stderr] Checking as-raw-xcb-connection v1.0.1 [INFO] [stderr] Checking x11rb-protocol v0.13.2 [INFO] [stderr] Checking digest v0.10.7 [INFO] [stderr] Checking hashbrown v0.15.5 [INFO] [stderr] Checking parking_lot v0.12.5 [INFO] [stderr] Compiling zstd-sys v2.0.16+zstd.1.5.7 [INFO] [stderr] Compiling winit v0.30.12 [INFO] [stderr] Checking libz-rs-sys v0.5.2 [INFO] [stderr] Compiling glutin_egl_sys v0.7.1 [INFO] [stderr] Checking pxfm v0.1.25 [INFO] [stderr] Checking flate2 v1.1.4 [INFO] [stderr] Compiling glutin_glx_sys v0.6.1 [INFO] [stderr] Checking xkbcommon-dl v0.4.2 [INFO] [stderr] Checking fdeflate v0.3.7 [INFO] [stderr] Checking smol_str v0.2.2 [INFO] [stderr] Checking dpi v0.1.2 [INFO] [stderr] Checking epaint_default_fonts v0.33.0 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Checking owned_ttf_parser v0.25.1 [INFO] [stderr] Checking profiling v1.0.17 [INFO] [stderr] Checking ppv-lite86 v0.2.21 [INFO] [stderr] Checking png v0.18.0 [INFO] [stderr] Checking rand_core v0.9.3 [INFO] [stderr] Compiling glutin v0.32.3 [INFO] [stderr] Checking ab_glyph v0.2.32 [INFO] [stderr] Checking byteorder-lite v0.1.0 [INFO] [stderr] Compiling zstd-safe v7.2.4 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking accesskit_consumer v0.30.1 [INFO] [stderr] Checking rand_chacha v0.9.0 [INFO] [stderr] Checking inout v0.1.4 [INFO] [stderr] Compiling glutin-winit v0.5.0 [INFO] [stderr] Checking crc-catalog v2.4.0 [INFO] [stderr] Checking rand v0.9.2 [INFO] [stderr] Checking crc v3.3.0 [INFO] [stderr] Checking deranged v0.5.4 [INFO] [stderr] Checking cipher v0.4.4 [INFO] [stderr] Checking polling v3.11.0 [INFO] [stderr] Checking gethostname v1.1.0 [INFO] [stderr] Checking sha2 v0.10.9 [INFO] [stderr] Checking hmac v0.12.1 [INFO] [stderr] Checking async-fs v2.2.0 [INFO] [stderr] Checking futures-channel v0.3.31 [INFO] [stderr] Checking bumpalo v3.19.0 [INFO] [stderr] Checking option-ext v0.2.0 [INFO] [stderr] Compiling serde_json v1.0.145 [INFO] [stderr] Compiling litrs v0.4.2 [INFO] [stderr] Checking glow v0.16.0 [INFO] [stderr] Checking libbz2-rs-sys v0.2.2 [INFO] [stderr] Checking web-time v1.1.0 [INFO] [stderr] Checking time-core v0.1.6 [INFO] [stderr] Checking regex-automata v0.4.13 [INFO] [stderr] Checking async-signal v0.2.13 [INFO] [stderr] Checking async-net v2.0.0 [INFO] [stderr] Compiling rfd v0.15.4 [INFO] [stderr] Checking async-process v2.5.0 [INFO] [stderr] Compiling document-features v0.2.11 [INFO] [stderr] Checking zopfli v0.8.2 [INFO] [stderr] Checking bzip2 v0.6.0 [INFO] [stderr] Checking dirs-sys v0.5.0 [INFO] [stderr] Checking lzma-rust2 v0.13.0 [INFO] [stderr] Compiling anyhow v1.0.100 [INFO] [stderr] Checking pbkdf2 v0.12.2 [INFO] [stderr] Checking aes v0.8.4 [INFO] [stderr] Checking sha1 v0.10.6 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Checking wayland-csd-frame v0.3.0 [INFO] [stderr] Checking serde_spanned v1.0.3 [INFO] [stderr] Checking toml_writer v1.0.4 [INFO] [stderr] Checking pollster v0.4.0 [INFO] [stderr] Checking ppmd-rust v1.2.1 [INFO] [stderr] Checking bstr v1.12.0 [INFO] [stderr] Checking iana-time-zone v0.1.64 [INFO] [stderr] Checking deflate64 v0.1.10 [INFO] [stderr] Checking time v0.3.44 [INFO] [stderr] Checking toml v0.9.8 [INFO] [stderr] Checking dirs v6.0.0 [INFO] [stderr] Checking moxcms v0.7.7 [INFO] [stderr] Checking opener v0.8.3 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling yoke-derive v0.8.0 [INFO] [stderr] Compiling zerovec-derive v0.11.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling enumflags2_derive v0.7.12 [INFO] [stderr] Compiling bytemuck_derive v1.10.2 [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling serde_repr v0.1.20 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Checking wayland-protocols v0.32.9 [INFO] [stderr] Checking wayland-cursor v0.31.11 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Checking bytemuck v1.24.0 [INFO] [stderr] Checking zerofrom v0.1.6 [INFO] [stderr] Checking tiny-skia-path v0.11.4 [INFO] [stderr] Checking emath v0.33.0 [INFO] [stderr] Checking yoke v0.8.0 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking zerovec v0.11.4 [INFO] [stderr] Checking zerotrie v0.2.2 [INFO] [stderr] Checking thiserror v1.0.69 [INFO] [stderr] Checking zeroize v1.8.2 [INFO] [stderr] Checking calloop v0.13.0 [INFO] [stderr] Checking ecolor v0.33.0 [INFO] [stderr] Checking futures-util v0.3.31 [INFO] [stderr] Checking epaint v0.33.0 [INFO] [stderr] Checking tiny-skia v0.11.4 [INFO] [stderr] Checking calloop-wayland-source v0.3.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Checking egui v0.33.0 [INFO] [stderr] Checking tinystr v0.8.1 [INFO] [stderr] Checking potential_utf v0.1.3 [INFO] [stderr] Checking icu_collections v2.0.0 [INFO] [stderr] Checking enumflags2 v0.7.12 [INFO] [stderr] Checking zvariant_utils v3.2.1 [INFO] [stderr] Checking quick-xml v0.36.2 [INFO] [stderr] Checking chrono v0.4.42 [INFO] [stderr] Checking uuid v1.18.1 [INFO] [stderr] Checking icu_locale_core v2.0.0 [INFO] [stderr] Compiling zvariant_derive v5.7.0 [INFO] [stderr] Checking image v0.25.8 [INFO] [stderr] Checking icu_provider v2.0.0 [INFO] [stderr] Checking zstd v0.13.3 [INFO] [stderr] Checking icu_properties v2.0.1 [INFO] [stderr] Checking icu_normalizer v2.0.0 [INFO] [stderr] Checking zip v6.0.0 [INFO] [stderr] Compiling zvariant v5.7.0 [INFO] [stderr] Checking idna_adapter v1.2.1 [INFO] [stderr] Checking idna v1.1.0 [INFO] [stderr] Checking url v2.5.7 [INFO] [stderr] Checking webbrowser v1.0.5 [INFO] [stderr] Checking egui_glow v0.33.0 [INFO] [stderr] Compiling zbus_names v4.2.0 [INFO] [stderr] Compiling zbus_xml v5.0.2 [INFO] [stderr] Checking wayland-protocols-wlr v0.3.9 [INFO] [stderr] Checking wayland-protocols-plasma v0.3.9 [INFO] [stderr] Compiling zbus_macros v5.11.0 [INFO] [stderr] Compiling zbus-lockstep v0.5.1 [INFO] [stderr] Checking x11rb v0.13.2 [INFO] [stderr] Compiling zbus-lockstep-macros v0.5.1 [INFO] [stderr] Checking zbus v5.11.0 [INFO] [stderr] Checking sctk-adwaita v0.10.1 [INFO] [stderr] Checking smithay-clipboard v0.7.2 [INFO] [stderr] Checking arboard v3.6.1 [INFO] [stderr] Checking atspi-common v0.9.0 [INFO] [stderr] Checking ashpd v0.11.0 [INFO] [stderr] Checking atspi-proxies v0.9.0 [INFO] [stderr] Checking accesskit_atspi_common v0.14.1 [INFO] [stderr] Checking atspi-connection v0.9.0 [INFO] [stderr] Checking atspi v0.25.0 [INFO] [stderr] Checking accesskit_unix v0.17.1 [INFO] [stderr] Checking accesskit_winit v0.29.1 [INFO] [stderr] Checking egui-winit v0.33.0 [INFO] [stderr] Checking eframe v0.33.0 [INFO] [stderr] Checking refmap v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/app.rs:1238:47 [INFO] [stdout] | [INFO] [stdout] 1238 | ... node.tags.retain(|a| id != tag.id); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/app.rs:1238:47 [INFO] [stdout] | [INFO] [stdout] 1238 | ... node.tags.retain(|a| id != tag.id); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | / if (zoom_delta - 1.0).abs() > f32::EPSILON { [INFO] [stdout] 215 | | if let Some(pointer_pos) = ctx.input(|i| i.pointer.hover_pos()) { [INFO] [stdout] 216 | | // Zoom relative to cursor [INFO] [stdout] 217 | | let canvas_pos = (pointer_pos - rect.min.to_vec2() - self.pan) / self.zoom; [INFO] [stdout] ... | [INFO] [stdout] 222 | | } [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] 214 ~ if (zoom_delta - 1.0).abs() > f32::EPSILON [INFO] [stdout] 215 ~ && let Some(pointer_pos) = ctx.input(|i| i.pointer.hover_pos()) { [INFO] [stdout] 216 | // Zoom relative to cursor [INFO] [stdout] ... [INFO] [stdout] 220 | self.pan = pointer_pos - rect.min.to_vec2() - canvas_pos * self.zoom; [INFO] [stdout] 221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:276:41 [INFO] [stdout] | [INFO] [stdout] 276 | self.handle_left_click(ctx, &response, rect, pointer_pos, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:279:40 [INFO] [stdout] | [INFO] [stdout] 279 | self.handle_left_drag(ctx, &response, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:282:42 [INFO] [stdout] | [INFO] [stdout] 282 | self.handle_right_click(ctx, &response, pointer_pos, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:285:41 [INFO] [stdout] | [INFO] [stdout] 285 | self.handle_right_drag(ctx, &response, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | / if response.drag_stopped_by(egui::PointerButton::Secondary) { [INFO] [stdout] 296 | | if let Some(start_id) = self.connecting_from.take() { [INFO] [stdout] 297 | | self.stop_edge(ctx, canvas_pos, start_id); [INFO] [stdout] 298 | | } [INFO] [stdout] 299 | | } [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] 295 ~ if response.drag_stopped_by(egui::PointerButton::Secondary) [INFO] [stdout] 296 ~ && let Some(start_id) = self.connecting_from.take() { [INFO] [stdout] 297 | self.stop_edge(ctx, canvas_pos, start_id); [INFO] [stdout] 298 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/app.rs:369:57 [INFO] [stdout] | [INFO] [stdout] 369 | if rect.contains(canvas_pos) && self.marquee_rect == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `self.marquee_rect.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:472:21 [INFO] [stdout] | [INFO] [stdout] 472 | / if node_rect.contains(canvas_pos) { [INFO] [stdout] 473 | | if ctx.input(|i| i.modifiers.ctrl) { [INFO] [stdout] 474 | | if node.collapsed{ [INFO] [stdout] 475 | | node.collapsed = false; [INFO] [stdout] ... | [INFO] [stdout] 480 | | } [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] 472 ~ if node_rect.contains(canvas_pos) [INFO] [stdout] 473 ~ && ctx.input(|i| i.modifiers.ctrl) { [INFO] [stdout] 474 | if node.collapsed{ [INFO] [stdout] ... [INFO] [stdout] 478 | } [INFO] [stdout] 479 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression assigns a bool literal [INFO] [stdout] --> src/app.rs:474:29 [INFO] [stdout] | [INFO] [stdout] 474 | / ... if node.collapsed{ [INFO] [stdout] 475 | | ... node.collapsed = false; [INFO] [stdout] 476 | | ... } else { [INFO] [stdout] 477 | | ... node.collapsed = true; [INFO] [stdout] 478 | | ... } [INFO] [stdout] | |_______________________^ help: you can reduce it to: `node.collapsed = !node.collapsed;` [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 `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | / if (zoom_delta - 1.0).abs() > f32::EPSILON { [INFO] [stdout] 215 | | if let Some(pointer_pos) = ctx.input(|i| i.pointer.hover_pos()) { [INFO] [stdout] 216 | | // Zoom relative to cursor [INFO] [stdout] 217 | | let canvas_pos = (pointer_pos - rect.min.to_vec2() - self.pan) / self.zoom; [INFO] [stdout] ... | [INFO] [stdout] 222 | | } [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] 214 ~ if (zoom_delta - 1.0).abs() > f32::EPSILON [INFO] [stdout] 215 ~ && let Some(pointer_pos) = ctx.input(|i| i.pointer.hover_pos()) { [INFO] [stdout] 216 | // Zoom relative to cursor [INFO] [stdout] ... [INFO] [stdout] 220 | self.pan = pointer_pos - rect.min.to_vec2() - canvas_pos * self.zoom; [INFO] [stdout] 221 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 632 | / if let (Some(from), Some(to)) = (self.pending_edge_from, self.pending_edge_to) { [INFO] [stdout] 633 | | if let (Some(f), Some(t)) = ( [INFO] [stdout] 634 | | self.map.nodes.iter().find(|n| n.id == from), [INFO] [stdout] 635 | | self.map.nodes.iter().find(|n| n.id == to), [INFO] [stdout] ... | [INFO] [stdout] 641 | | } [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] 632 ~ if let (Some(from), Some(to)) = (self.pending_edge_from, self.pending_edge_to) [INFO] [stdout] 633 ~ && let (Some(f), Some(t)) = ( [INFO] [stdout] 634 | self.map.nodes.iter().find(|n| n.id == from), [INFO] [stdout] ... [INFO] [stdout] 639 | painter.line_segment([p1, p2], egui::Stroke::new(1.5, egui::Color32::LIGHT_GRAY)); [INFO] [stdout] 640 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:645:9 [INFO] [stdout] | [INFO] [stdout] 645 | / if let Some(start_id) = self.connecting_from { [INFO] [stdout] 646 | | if let Some(pointer_pos) = response.interact_pointer_pos() { [INFO] [stdout] 647 | | if let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] 648 | | let p1 = egui::pos2(start_node.x, start_node.y) * self.zoom [INFO] [stdout] ... | [INFO] [stdout] 655 | | } [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] 645 ~ if let Some(start_id) = self.connecting_from [INFO] [stdout] 646 ~ && let Some(pointer_pos) = response.interact_pointer_pos() { [INFO] [stdout] 647 | if let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] ... [INFO] [stdout] 653 | } [INFO] [stdout] 654 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:646:13 [INFO] [stdout] | [INFO] [stdout] 646 | / if let Some(pointer_pos) = response.interact_pointer_pos() { [INFO] [stdout] 647 | | if let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] 648 | | let p1 = egui::pos2(start_node.x, start_node.y) * self.zoom [INFO] [stdout] 649 | | + self.pan [INFO] [stdout] ... | [INFO] [stdout] 654 | | } [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] 646 ~ if let Some(pointer_pos) = response.interact_pointer_pos() [INFO] [stdout] 647 ~ && let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] 648 | let p1 = egui::pos2(start_node.x, start_node.y) * self.zoom [INFO] [stdout] ... [INFO] [stdout] 652 | painter.line_segment([p1, p2], egui::Stroke::new(1.5, egui::Color32::LIGHT_GRAY)); [INFO] [stdout] 653 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:276:41 [INFO] [stdout] | [INFO] [stdout] 276 | self.handle_left_click(ctx, &response, rect, pointer_pos, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:279:40 [INFO] [stdout] | [INFO] [stdout] 279 | self.handle_left_drag(ctx, &response, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:282:42 [INFO] [stdout] | [INFO] [stdout] 282 | self.handle_right_click(ctx, &response, pointer_pos, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:285:41 [INFO] [stdout] | [INFO] [stdout] 285 | self.handle_right_drag(ctx, &response, canvas_pos); [INFO] [stdout] | ^^^^^^^^^ help: change this to: `response` [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/app.rs:295:9 [INFO] [stdout] | [INFO] [stdout] 295 | / if response.drag_stopped_by(egui::PointerButton::Secondary) { [INFO] [stdout] 296 | | if let Some(start_id) = self.connecting_from.take() { [INFO] [stdout] 297 | | self.stop_edge(ctx, canvas_pos, start_id); [INFO] [stdout] 298 | | } [INFO] [stdout] 299 | | } [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] 295 ~ if response.drag_stopped_by(egui::PointerButton::Secondary) [INFO] [stdout] 296 ~ && let Some(start_id) = self.connecting_from.take() { [INFO] [stdout] 297 | self.stop_edge(ctx, canvas_pos, start_id); [INFO] [stdout] 298 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/app.rs:369:57 [INFO] [stdout] | [INFO] [stdout] 369 | if rect.contains(canvas_pos) && self.marquee_rect == None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `self.marquee_rect.is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:847:25 [INFO] [stdout] | [INFO] [stdout] 847 | / if let Some(project_dir) = FileDialog::new().pick_folder() { [INFO] [stdout] 848 | | if let Ok(loaded_map) = load_map(project_dir.to_str().unwrap()) { [INFO] [stdout] 849 | | self.current_file = Some(project_dir.to_str().unwrap().to_string()); [INFO] [stdout] 850 | | if let Err(e) = save_last_file(&self.current_file.as_ref().unwrap()) { [INFO] [stdout] ... | [INFO] [stdout] 855 | | } [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] 847 ~ if let Some(project_dir) = FileDialog::new().pick_folder() [INFO] [stdout] 848 ~ && let Ok(loaded_map) = load_map(project_dir.to_str().unwrap()) { [INFO] [stdout] 849 | self.current_file = Some(project_dir.to_str().unwrap().to_string()); [INFO] [stdout] ... [INFO] [stdout] 853 | self.map = loaded_map; [INFO] [stdout] 854 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:850:64 [INFO] [stdout] | [INFO] [stdout] 850 | ... if let Err(e) = save_last_file(&self.current_file.as_ref().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.current_file.as_ref().unwrap()` [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/app.rs:866:29 [INFO] [stdout] | [INFO] [stdout] 866 | / ... if let Some(zip_path) = FileDialog::new() [INFO] [stdout] 867 | | ... .add_filter("ZIP", &["zip"]) [INFO] [stdout] 868 | | ... .save_file() [INFO] [stdout] ... | [INFO] [stdout] 873 | | ... } [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] 868 ~ .save_file() [INFO] [stdout] 869 ~ && let Err(e) = export_project(project_dir, zip_path.to_str().unwrap()) { [INFO] [stdout] 870 | eprintln!("Failed to export project: {}", e); [INFO] [stdout] 871 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:472:21 [INFO] [stdout] | [INFO] [stdout] 472 | / if node_rect.contains(canvas_pos) { [INFO] [stdout] 473 | | if ctx.input(|i| i.modifiers.ctrl) { [INFO] [stdout] 474 | | if node.collapsed{ [INFO] [stdout] 475 | | node.collapsed = false; [INFO] [stdout] ... | [INFO] [stdout] 480 | | } [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] 472 ~ if node_rect.contains(canvas_pos) [INFO] [stdout] 473 ~ && ctx.input(|i| i.modifiers.ctrl) { [INFO] [stdout] 474 | if node.collapsed{ [INFO] [stdout] ... [INFO] [stdout] 478 | } [INFO] [stdout] 479 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression assigns a bool literal [INFO] [stdout] --> src/app.rs:474:29 [INFO] [stdout] | [INFO] [stdout] 474 | / ... if node.collapsed{ [INFO] [stdout] 475 | | ... node.collapsed = false; [INFO] [stdout] 476 | | ... } else { [INFO] [stdout] 477 | | ... node.collapsed = true; [INFO] [stdout] 478 | | ... } [INFO] [stdout] | |_______________________^ help: you can reduce it to: `node.collapsed = !node.collapsed;` [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 `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:962:13 [INFO] [stdout] | [INFO] [stdout] 962 | / if ctx.input(|i| i.pointer.any_click()) { [INFO] [stdout] 963 | | if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 964 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | | self.show_node_context_menu = false; [INFO] [stdout] ... | [INFO] [stdout] 968 | | } [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] 962 ~ if ctx.input(|i| i.pointer.any_click()) [INFO] [stdout] 963 ~ && let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 964 | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | self.show_node_context_menu = false; [INFO] [stdout] 966 | } [INFO] [stdout] 967 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:963:17 [INFO] [stdout] | [INFO] [stdout] 963 | / if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 964 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | | self.show_node_context_menu = false; [INFO] [stdout] 966 | | } [INFO] [stdout] 967 | | } [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] 963 ~ if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) [INFO] [stdout] 964 ~ && !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | self.show_node_context_menu = false; [INFO] [stdout] 966 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:987:33 [INFO] [stdout] | [INFO] [stdout] 987 | / ... if let Some(edge_id) = self.rightclick_edge { [INFO] [stdout] 988 | | ... if let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 989 | | ... self.selected_edge_type = edge.edge_type.clone(); [INFO] [stdout] 990 | | ... self.show_edge_type_menu = true; [INFO] [stdout] 991 | | ... } [INFO] [stdout] 992 | | ... } [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] 987 ~ if let Some(edge_id) = self.rightclick_edge [INFO] [stdout] 988 ~ && let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 989 | self.selected_edge_type = edge.edge_type.clone(); [INFO] [stdout] 990 | self.show_edge_type_menu = true; [INFO] [stdout] 991 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1040:13 [INFO] [stdout] | [INFO] [stdout] 1040 | / if ctx.input(|i| i.pointer.any_click()) { [INFO] [stdout] 1041 | | if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 1042 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | | self.show_edge_context_menu = false; [INFO] [stdout] ... | [INFO] [stdout] 1046 | | } [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] 1040 ~ if ctx.input(|i| i.pointer.any_click()) [INFO] [stdout] 1041 ~ && let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 1042 | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | self.show_edge_context_menu = false; [INFO] [stdout] 1044 | } [INFO] [stdout] 1045 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1041:17 [INFO] [stdout] | [INFO] [stdout] 1041 | / if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 1042 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | | self.show_edge_context_menu = false; [INFO] [stdout] 1044 | | } [INFO] [stdout] 1045 | | } [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] 1041 ~ if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) [INFO] [stdout] 1042 ~ && !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | self.show_edge_context_menu = false; [INFO] [stdout] 1044 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:632:9 [INFO] [stdout] | [INFO] [stdout] 632 | / if let (Some(from), Some(to)) = (self.pending_edge_from, self.pending_edge_to) { [INFO] [stdout] 633 | | if let (Some(f), Some(t)) = ( [INFO] [stdout] 634 | | self.map.nodes.iter().find(|n| n.id == from), [INFO] [stdout] 635 | | self.map.nodes.iter().find(|n| n.id == to), [INFO] [stdout] ... | [INFO] [stdout] 641 | | } [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] 632 ~ if let (Some(from), Some(to)) = (self.pending_edge_from, self.pending_edge_to) [INFO] [stdout] 633 ~ && let (Some(f), Some(t)) = ( [INFO] [stdout] 634 | self.map.nodes.iter().find(|n| n.id == from), [INFO] [stdout] ... [INFO] [stdout] 639 | painter.line_segment([p1, p2], egui::Stroke::new(1.5, egui::Color32::LIGHT_GRAY)); [INFO] [stdout] 640 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:645:9 [INFO] [stdout] | [INFO] [stdout] 645 | / if let Some(start_id) = self.connecting_from { [INFO] [stdout] 646 | | if let Some(pointer_pos) = response.interact_pointer_pos() { [INFO] [stdout] 647 | | if let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] 648 | | let p1 = egui::pos2(start_node.x, start_node.y) * self.zoom [INFO] [stdout] ... | [INFO] [stdout] 655 | | } [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] 645 ~ if let Some(start_id) = self.connecting_from [INFO] [stdout] 646 ~ && let Some(pointer_pos) = response.interact_pointer_pos() { [INFO] [stdout] 647 | if let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] ... [INFO] [stdout] 653 | } [INFO] [stdout] 654 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:646:13 [INFO] [stdout] | [INFO] [stdout] 646 | / if let Some(pointer_pos) = response.interact_pointer_pos() { [INFO] [stdout] 647 | | if let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] 648 | | let p1 = egui::pos2(start_node.x, start_node.y) * self.zoom [INFO] [stdout] 649 | | + self.pan [INFO] [stdout] ... | [INFO] [stdout] 654 | | } [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] 646 ~ if let Some(pointer_pos) = response.interact_pointer_pos() [INFO] [stdout] 647 ~ && let Some(start_node) = self.map.nodes.iter().find(|n| n.id == start_id) { [INFO] [stdout] 648 | let p1 = egui::pos2(start_node.x, start_node.y) * self.zoom [INFO] [stdout] ... [INFO] [stdout] 652 | painter.line_segment([p1, p2], egui::Stroke::new(1.5, egui::Color32::LIGHT_GRAY)); [INFO] [stdout] 653 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/app.rs:1340:76 [INFO] [stdout] | [INFO] [stdout] 1340 | ... ui.selectable_value(&mut self.edit_tag.id, tag.id.clone(), tag.name.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `tag.id` [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 `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1412:9 [INFO] [stdout] | [INFO] [stdout] 1412 | / if let Some(node_id) = self.annotations_node_id { [INFO] [stdout] 1413 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1414 | | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] 1415 | | None [INFO] [stdout] ... | [INFO] [stdout] 1446 | | } [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] 1412 ~ if let Some(node_id) = self.annotations_node_id [INFO] [stdout] 1413 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1414 | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] ... [INFO] [stdout] 1444 | self.dirty = true; [INFO] [stdout] 1445 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1448:9 [INFO] [stdout] | [INFO] [stdout] 1448 | / if let Some(edge_id) = self.rightclick_edge { [INFO] [stdout] 1449 | | if let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 1450 | | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] 1451 | | None [INFO] [stdout] ... | [INFO] [stdout] 1481 | | } [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] 1448 ~ if let Some(edge_id) = self.rightclick_edge [INFO] [stdout] 1449 ~ && let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 1450 | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] ... [INFO] [stdout] 1479 | self.dirty = true; [INFO] [stdout] 1480 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1485:9 [INFO] [stdout] | [INFO] [stdout] 1485 | / if let Some(node_id) = self.tags_node_id { [INFO] [stdout] 1486 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1487 | | if !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] 1488 | | node.tags.push(self.edit_tag.id); [INFO] [stdout] ... | [INFO] [stdout] 1492 | | } [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] 1485 ~ if let Some(node_id) = self.tags_node_id [INFO] [stdout] 1486 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1487 | if !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] ... [INFO] [stdout] 1490 | } [INFO] [stdout] 1491 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1486:13 [INFO] [stdout] | [INFO] [stdout] 1486 | / if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1487 | | if !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] 1488 | | node.tags.push(self.edit_tag.id); [INFO] [stdout] 1489 | | self.dirty = true; [INFO] [stdout] 1490 | | } [INFO] [stdout] 1491 | | } [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] 1486 ~ if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) [INFO] [stdout] 1487 ~ && !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] 1488 | node.tags.push(self.edit_tag.id); [INFO] [stdout] 1489 | self.dirty = true; [INFO] [stdout] 1490 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:847:25 [INFO] [stdout] | [INFO] [stdout] 847 | / if let Some(project_dir) = FileDialog::new().pick_folder() { [INFO] [stdout] 848 | | if let Ok(loaded_map) = load_map(project_dir.to_str().unwrap()) { [INFO] [stdout] 849 | | self.current_file = Some(project_dir.to_str().unwrap().to_string()); [INFO] [stdout] 850 | | if let Err(e) = save_last_file(&self.current_file.as_ref().unwrap()) { [INFO] [stdout] ... | [INFO] [stdout] 855 | | } [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] 847 ~ if let Some(project_dir) = FileDialog::new().pick_folder() [INFO] [stdout] 848 ~ && let Ok(loaded_map) = load_map(project_dir.to_str().unwrap()) { [INFO] [stdout] 849 | self.current_file = Some(project_dir.to_str().unwrap().to_string()); [INFO] [stdout] ... [INFO] [stdout] 853 | self.map = loaded_map; [INFO] [stdout] 854 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1496:13 [INFO] [stdout] | [INFO] [stdout] 1496 | / if let Some(tag_id) = self.edit_tag_id { [INFO] [stdout] 1497 | | if let Some(tag) = self.map.tags.iter_mut().find(|t| t.id == tag_id) { [INFO] [stdout] 1498 | | tag.name = self.edit_tag.name.clone(); [INFO] [stdout] 1499 | | let color = self.edit_tag.color; [INFO] [stdout] ... | [INFO] [stdout] 1502 | | } [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] 1496 ~ if let Some(tag_id) = self.edit_tag_id [INFO] [stdout] 1497 ~ && let Some(tag) = self.map.tags.iter_mut().find(|t| t.id == tag_id) { [INFO] [stdout] 1498 | tag.name = self.edit_tag.name.clone(); [INFO] [stdout] 1499 | let color = self.edit_tag.color; [INFO] [stdout] 1500 | tag.color = [color.r(), color.g(), color.b(), color.a()]; [INFO] [stdout] 1501 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:850:64 [INFO] [stdout] | [INFO] [stdout] 850 | ... if let Err(e) = save_last_file(&self.current_file.as_ref().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.current_file.as_ref().unwrap()` [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/app.rs:866:29 [INFO] [stdout] | [INFO] [stdout] 866 | / ... if let Some(zip_path) = FileDialog::new() [INFO] [stdout] 867 | | ... .add_filter("ZIP", &["zip"]) [INFO] [stdout] 868 | | ... .save_file() [INFO] [stdout] ... | [INFO] [stdout] 873 | | ... } [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] 868 ~ .save_file() [INFO] [stdout] 869 ~ && let Err(e) = export_project(project_dir, zip_path.to_str().unwrap()) { [INFO] [stdout] 870 | eprintln!("Failed to export project: {}", e); [INFO] [stdout] 871 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1511:13 [INFO] [stdout] | [INFO] [stdout] 1511 | / if let Some(node_id) = self.tags_node_id { [INFO] [stdout] 1512 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1513 | | node.tags.push(new_tag.id); [INFO] [stdout] 1514 | | self.dirty = true; [INFO] [stdout] 1515 | | } [INFO] [stdout] 1516 | | } [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] 1511 ~ if let Some(node_id) = self.tags_node_id [INFO] [stdout] 1512 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1513 | node.tags.push(new_tag.id); [INFO] [stdout] 1514 | self.dirty = true; [INFO] [stdout] 1515 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1596:9 [INFO] [stdout] | [INFO] [stdout] 1596 | / if let Some(node_id) = self.edit_node_id { [INFO] [stdout] 1597 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1598 | | // Update node title [INFO] [stdout] 1599 | | node.title = self.edit_metadata.title.clone(); [INFO] [stdout] ... | [INFO] [stdout] 1625 | | } [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] 1596 ~ if let Some(node_id) = self.edit_node_id [INFO] [stdout] 1597 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1598 | // Update node title [INFO] [stdout] ... [INFO] [stdout] 1623 | self.dirty = true; [INFO] [stdout] 1624 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:962:13 [INFO] [stdout] | [INFO] [stdout] 962 | / if ctx.input(|i| i.pointer.any_click()) { [INFO] [stdout] 963 | | if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 964 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | | self.show_node_context_menu = false; [INFO] [stdout] ... | [INFO] [stdout] 968 | | } [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] 962 ~ if ctx.input(|i| i.pointer.any_click()) [INFO] [stdout] 963 ~ && let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 964 | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | self.show_node_context_menu = false; [INFO] [stdout] 966 | } [INFO] [stdout] 967 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:963:17 [INFO] [stdout] | [INFO] [stdout] 963 | / if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 964 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | | self.show_node_context_menu = false; [INFO] [stdout] 966 | | } [INFO] [stdout] 967 | | } [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] 963 ~ if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) [INFO] [stdout] 964 ~ && !menu_rect.contains(pointer_pos) { [INFO] [stdout] 965 | self.show_node_context_menu = false; [INFO] [stdout] 966 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1641:9 [INFO] [stdout] | [INFO] [stdout] 1641 | / if self.show_edge_type_menu { [INFO] [stdout] 1642 | | if let Some(menu_pos) = self.edge_type_menu_pos { [INFO] [stdout] 1643 | | egui::Window::new("Select Edge Type") [INFO] [stdout] 1644 | | .collapsible(false) [INFO] [stdout] ... | [INFO] [stdout] 1686 | | } [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] 1641 ~ if self.show_edge_type_menu [INFO] [stdout] 1642 ~ && let Some(menu_pos) = self.edge_type_menu_pos { [INFO] [stdout] 1643 | egui::Window::new("Select Edge Type") [INFO] [stdout] ... [INFO] [stdout] 1684 | }); [INFO] [stdout] 1685 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1708:9 [INFO] [stdout] | [INFO] [stdout] 1708 | / if self.show_node_color_picker { [INFO] [stdout] 1709 | | if let Some(node_id) = self.node_color_picker_id { [INFO] [stdout] 1710 | | egui::Window::new("Change Node Color") [INFO] [stdout] 1711 | | .collapsible(false) [INFO] [stdout] ... | [INFO] [stdout] 1745 | | } [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] 1708 ~ if self.show_node_color_picker [INFO] [stdout] 1709 ~ && let Some(node_id) = self.node_color_picker_id { [INFO] [stdout] 1710 | egui::Window::new("Change Node Color") [INFO] [stdout] ... [INFO] [stdout] 1743 | }); [INFO] [stdout] 1744 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:987:33 [INFO] [stdout] | [INFO] [stdout] 987 | / ... if let Some(edge_id) = self.rightclick_edge { [INFO] [stdout] 988 | | ... if let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 989 | | ... self.selected_edge_type = edge.edge_type.clone(); [INFO] [stdout] 990 | | ... self.show_edge_type_menu = true; [INFO] [stdout] 991 | | ... } [INFO] [stdout] 992 | | ... } [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] 987 ~ if let Some(edge_id) = self.rightclick_edge [INFO] [stdout] 988 ~ && let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 989 | self.selected_edge_type = edge.edge_type.clone(); [INFO] [stdout] 990 | self.show_edge_type_menu = true; [INFO] [stdout] 991 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1040:13 [INFO] [stdout] | [INFO] [stdout] 1040 | / if ctx.input(|i| i.pointer.any_click()) { [INFO] [stdout] 1041 | | if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 1042 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | | self.show_edge_context_menu = false; [INFO] [stdout] ... | [INFO] [stdout] 1046 | | } [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] 1040 ~ if ctx.input(|i| i.pointer.any_click()) [INFO] [stdout] 1041 ~ && let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 1042 | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | self.show_edge_context_menu = false; [INFO] [stdout] 1044 | } [INFO] [stdout] 1045 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1041:17 [INFO] [stdout] | [INFO] [stdout] 1041 | / if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) { [INFO] [stdout] 1042 | | if !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | | self.show_edge_context_menu = false; [INFO] [stdout] 1044 | | } [INFO] [stdout] 1045 | | } [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] 1041 ~ if let Some(pointer_pos) = ctx.input(|i| i.pointer.interact_pos()) [INFO] [stdout] 1042 ~ && !menu_rect.contains(pointer_pos) { [INFO] [stdout] 1043 | self.show_edge_context_menu = false; [INFO] [stdout] 1044 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1749:9 [INFO] [stdout] | [INFO] [stdout] 1749 | / if self.show_edge_color_picker { [INFO] [stdout] 1750 | | if let Some(edge_id) = self.edge_color_picker_id { [INFO] [stdout] 1751 | | egui::Window::new("Change Edge Color") [INFO] [stdout] 1752 | | .collapsible(false) [INFO] [stdout] ... | [INFO] [stdout] 1786 | | } [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] 1749 ~ if self.show_edge_color_picker [INFO] [stdout] 1750 ~ && let Some(edge_id) = self.edge_color_picker_id { [INFO] [stdout] 1751 | egui::Window::new("Change Edge Color") [INFO] [stdout] ... [INFO] [stdout] 1784 | }); [INFO] [stdout] 1785 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:1792:44 [INFO] [stdout] | [INFO] [stdout] 1792 | if let Err(e) = save_last_file(&self.current_file.as_ref().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.current_file.as_ref().unwrap()` [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/app.rs:1797:49 [INFO] [stdout] | [INFO] [stdout] 1797 | if let Err(e) = save_map(&self.map, &project_dir.to_str().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `project_dir.to_str().unwrap()` [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/app.rs:1937:46 [INFO] [stdout] | [INFO] [stdout] 1937 | if let Ok(loaded_map) = load_map(&app.current_file.as_ref().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `app.current_file.as_ref().unwrap()` [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/app.rs:1952:9 [INFO] [stdout] | [INFO] [stdout] 1952 | / if self.dirty && self.last_save.elapsed().as_secs() > 5 { [INFO] [stdout] 1953 | | if let Some(path) = &self.current_file { [INFO] [stdout] 1954 | | let _ = save_map(&self.map, path); [INFO] [stdout] 1955 | | self.last_save = std::time::Instant::now(); [INFO] [stdout] ... | [INFO] [stdout] 1958 | | } [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] 1952 ~ if self.dirty && self.last_save.elapsed().as_secs() > 5 [INFO] [stdout] 1953 ~ && let Some(path) = &self.current_file { [INFO] [stdout] 1954 | let _ = save_map(&self.map, path); [INFO] [stdout] 1955 | self.last_save = std::time::Instant::now(); [INFO] [stdout] 1956 | self.dirty = false; [INFO] [stdout] 1957 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Uuid` which implements the `Copy` trait [INFO] [stdout] --> src/app.rs:1340:76 [INFO] [stdout] | [INFO] [stdout] 1340 | ... ui.selectable_value(&mut self.edit_tag.id, tag.id.clone(), tag.name.as_str()); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `tag.id` [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: returning the result of a `let` binding from a block [INFO] [stdout] --> src/app.rs:2081:5 [INFO] [stdout] | [INFO] [stdout] 2068 | / let frame = egui::Frame{ [INFO] [stdout] 2069 | | inner_margin: Default::default(), [INFO] [stdout] 2070 | | fill: egui::Color32::from_hex("#2b2c36").unwrap(), [INFO] [stdout] 2071 | | stroke: Default::default(), [INFO] [stdout] ... | [INFO] [stdout] 2079 | | }, [INFO] [stdout] 2080 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 2081 | frame [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 2068 ~ [INFO] [stdout] 2069 ~ egui::Frame{ [INFO] [stdout] 2070 + inner_margin: Default::default(), [INFO] [stdout] 2071 + fill: egui::Color32::from_hex("#2b2c36").unwrap(), [INFO] [stdout] 2072 + stroke: Default::default(), [INFO] [stdout] 2073 + corner_radius: Default::default(), [INFO] [stdout] 2074 + outer_margin: Default::default(), [INFO] [stdout] 2075 + shadow: egui::Shadow{ [INFO] [stdout] 2076 + offset: [5,5], [INFO] [stdout] 2077 + blur: 20, [INFO] [stdout] 2078 + spread: 0, [INFO] [stdout] 2079 + color: egui::Color32::BLACK, [INFO] [stdout] 2080 + }, [INFO] [stdout] 2081 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1412:9 [INFO] [stdout] | [INFO] [stdout] 1412 | / if let Some(node_id) = self.annotations_node_id { [INFO] [stdout] 1413 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1414 | | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] 1415 | | None [INFO] [stdout] ... | [INFO] [stdout] 1446 | | } [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] 1412 ~ if let Some(node_id) = self.annotations_node_id [INFO] [stdout] 1413 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1414 | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] ... [INFO] [stdout] 1444 | self.dirty = true; [INFO] [stdout] 1445 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1448:9 [INFO] [stdout] | [INFO] [stdout] 1448 | / if let Some(edge_id) = self.rightclick_edge { [INFO] [stdout] 1449 | | if let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 1450 | | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] 1451 | | None [INFO] [stdout] ... | [INFO] [stdout] 1481 | | } [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] 1448 ~ if let Some(edge_id) = self.rightclick_edge [INFO] [stdout] 1449 ~ && let Some(edge) = self.map.edges.iter_mut().find(|e| e.id == edge_id) { [INFO] [stdout] 1450 | let page_number = if self.edit_annotation.page_number.trim().is_empty() { [INFO] [stdout] ... [INFO] [stdout] 1479 | self.dirty = true; [INFO] [stdout] 1480 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1485:9 [INFO] [stdout] | [INFO] [stdout] 1485 | / if let Some(node_id) = self.tags_node_id { [INFO] [stdout] 1486 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1487 | | if !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] 1488 | | node.tags.push(self.edit_tag.id); [INFO] [stdout] ... | [INFO] [stdout] 1492 | | } [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] 1485 ~ if let Some(node_id) = self.tags_node_id [INFO] [stdout] 1486 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1487 | if !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] ... [INFO] [stdout] 1490 | } [INFO] [stdout] 1491 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1486:13 [INFO] [stdout] | [INFO] [stdout] 1486 | / if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1487 | | if !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] 1488 | | node.tags.push(self.edit_tag.id); [INFO] [stdout] 1489 | | self.dirty = true; [INFO] [stdout] 1490 | | } [INFO] [stdout] 1491 | | } [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] 1486 ~ if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) [INFO] [stdout] 1487 ~ && !node.tags.contains(&self.edit_tag.id) { [INFO] [stdout] 1488 | node.tags.push(self.edit_tag.id); [INFO] [stdout] 1489 | self.dirty = true; [INFO] [stdout] 1490 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1496:13 [INFO] [stdout] | [INFO] [stdout] 1496 | / if let Some(tag_id) = self.edit_tag_id { [INFO] [stdout] 1497 | | if let Some(tag) = self.map.tags.iter_mut().find(|t| t.id == tag_id) { [INFO] [stdout] 1498 | | tag.name = self.edit_tag.name.clone(); [INFO] [stdout] 1499 | | let color = self.edit_tag.color; [INFO] [stdout] ... | [INFO] [stdout] 1502 | | } [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] 1496 ~ if let Some(tag_id) = self.edit_tag_id [INFO] [stdout] 1497 ~ && let Some(tag) = self.map.tags.iter_mut().find(|t| t.id == tag_id) { [INFO] [stdout] 1498 | tag.name = self.edit_tag.name.clone(); [INFO] [stdout] 1499 | let color = self.edit_tag.color; [INFO] [stdout] 1500 | tag.color = [color.r(), color.g(), color.b(), color.a()]; [INFO] [stdout] 1501 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1511:13 [INFO] [stdout] | [INFO] [stdout] 1511 | / if let Some(node_id) = self.tags_node_id { [INFO] [stdout] 1512 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1513 | | node.tags.push(new_tag.id); [INFO] [stdout] 1514 | | self.dirty = true; [INFO] [stdout] 1515 | | } [INFO] [stdout] 1516 | | } [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] 1511 ~ if let Some(node_id) = self.tags_node_id [INFO] [stdout] 1512 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1513 | node.tags.push(new_tag.id); [INFO] [stdout] 1514 | self.dirty = true; [INFO] [stdout] 1515 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1596:9 [INFO] [stdout] | [INFO] [stdout] 1596 | / if let Some(node_id) = self.edit_node_id { [INFO] [stdout] 1597 | | if let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1598 | | // Update node title [INFO] [stdout] 1599 | | node.title = self.edit_metadata.title.clone(); [INFO] [stdout] ... | [INFO] [stdout] 1625 | | } [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] 1596 ~ if let Some(node_id) = self.edit_node_id [INFO] [stdout] 1597 ~ && let Some(node) = self.map.nodes.iter_mut().find(|n| n.id == node_id) { [INFO] [stdout] 1598 | // Update node title [INFO] [stdout] ... [INFO] [stdout] 1623 | self.dirty = true; [INFO] [stdout] 1624 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1641:9 [INFO] [stdout] | [INFO] [stdout] 1641 | / if self.show_edge_type_menu { [INFO] [stdout] 1642 | | if let Some(menu_pos) = self.edge_type_menu_pos { [INFO] [stdout] 1643 | | egui::Window::new("Select Edge Type") [INFO] [stdout] 1644 | | .collapsible(false) [INFO] [stdout] ... | [INFO] [stdout] 1686 | | } [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] 1641 ~ if self.show_edge_type_menu [INFO] [stdout] 1642 ~ && let Some(menu_pos) = self.edge_type_menu_pos { [INFO] [stdout] 1643 | egui::Window::new("Select Edge Type") [INFO] [stdout] ... [INFO] [stdout] 1684 | }); [INFO] [stdout] 1685 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1708:9 [INFO] [stdout] | [INFO] [stdout] 1708 | / if self.show_node_color_picker { [INFO] [stdout] 1709 | | if let Some(node_id) = self.node_color_picker_id { [INFO] [stdout] 1710 | | egui::Window::new("Change Node Color") [INFO] [stdout] 1711 | | .collapsible(false) [INFO] [stdout] ... | [INFO] [stdout] 1745 | | } [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] 1708 ~ if self.show_node_color_picker [INFO] [stdout] 1709 ~ && let Some(node_id) = self.node_color_picker_id { [INFO] [stdout] 1710 | egui::Window::new("Change Node Color") [INFO] [stdout] ... [INFO] [stdout] 1743 | }); [INFO] [stdout] 1744 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/app.rs:1749:9 [INFO] [stdout] | [INFO] [stdout] 1749 | / if self.show_edge_color_picker { [INFO] [stdout] 1750 | | if let Some(edge_id) = self.edge_color_picker_id { [INFO] [stdout] 1751 | | egui::Window::new("Change Edge Color") [INFO] [stdout] 1752 | | .collapsible(false) [INFO] [stdout] ... | [INFO] [stdout] 1786 | | } [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] 1749 ~ if self.show_edge_color_picker [INFO] [stdout] 1750 ~ && let Some(edge_id) = self.edge_color_picker_id { [INFO] [stdout] 1751 | egui::Window::new("Change Edge Color") [INFO] [stdout] ... [INFO] [stdout] 1784 | }); [INFO] [stdout] 1785 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/app.rs:1792:44 [INFO] [stdout] | [INFO] [stdout] 1792 | if let Err(e) = save_last_file(&self.current_file.as_ref().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `self.current_file.as_ref().unwrap()` [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/app.rs:1797:49 [INFO] [stdout] | [INFO] [stdout] 1797 | if let Err(e) = save_map(&self.map, &project_dir.to_str().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `project_dir.to_str().unwrap()` [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/app.rs:1937:46 [INFO] [stdout] | [INFO] [stdout] 1937 | if let Ok(loaded_map) = load_map(&app.current_file.as_ref().unwrap()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `app.current_file.as_ref().unwrap()` [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/app.rs:1952:9 [INFO] [stdout] | [INFO] [stdout] 1952 | / if self.dirty && self.last_save.elapsed().as_secs() > 5 { [INFO] [stdout] 1953 | | if let Some(path) = &self.current_file { [INFO] [stdout] 1954 | | let _ = save_map(&self.map, path); [INFO] [stdout] 1955 | | self.last_save = std::time::Instant::now(); [INFO] [stdout] ... | [INFO] [stdout] 1958 | | } [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] 1952 ~ if self.dirty && self.last_save.elapsed().as_secs() > 5 [INFO] [stdout] 1953 ~ && let Some(path) = &self.current_file { [INFO] [stdout] 1954 | let _ = save_map(&self.map, path); [INFO] [stdout] 1955 | self.last_save = std::time::Instant::now(); [INFO] [stdout] 1956 | self.dirty = false; [INFO] [stdout] 1957 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/app.rs:2081:5 [INFO] [stdout] | [INFO] [stdout] 2068 | / let frame = egui::Frame{ [INFO] [stdout] 2069 | | inner_margin: Default::default(), [INFO] [stdout] 2070 | | fill: egui::Color32::from_hex("#2b2c36").unwrap(), [INFO] [stdout] 2071 | | stroke: Default::default(), [INFO] [stdout] ... | [INFO] [stdout] 2079 | | }, [INFO] [stdout] 2080 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 2081 | frame [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 2068 ~ [INFO] [stdout] 2069 ~ egui::Frame{ [INFO] [stdout] 2070 + inner_margin: Default::default(), [INFO] [stdout] 2071 + fill: egui::Color32::from_hex("#2b2c36").unwrap(), [INFO] [stdout] 2072 + stroke: Default::default(), [INFO] [stdout] 2073 + corner_radius: Default::default(), [INFO] [stdout] 2074 + outer_margin: Default::default(), [INFO] [stdout] 2075 + shadow: egui::Shadow{ [INFO] [stdout] 2076 + offset: [5,5], [INFO] [stdout] 2077 + blur: 20, [INFO] [stdout] 2078 + spread: 0, [INFO] [stdout] 2079 + color: egui::Color32::BLACK, [INFO] [stdout] 2080 + }, [INFO] [stdout] 2081 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 25s [INFO] running `Command { std: "docker" "inspect" "2ca51627b979c710450eee9d538e7445c546473f3a99ac3b58bd5c8f42555f31", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2ca51627b979c710450eee9d538e7445c546473f3a99ac3b58bd5c8f42555f31", kill_on_drop: false }` [INFO] [stdout] 2ca51627b979c710450eee9d538e7445c546473f3a99ac3b58bd5c8f42555f31