[INFO] fetching crate bernardo-tui 0.2.7...
[INFO] checking bernardo-tui-0.2.7 against master#b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1 for pr-156992
[INFO] extracting crate bernardo-tui 0.2.7 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate bernardo-tui 0.2.7
[INFO] finished tweaking crates.io crate bernardo-tui 0.2.7
[INFO] tweaked toml for crates.io crate bernardo-tui 0.2.7 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate bernardo-tui 0.2.7 on toolchain b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate bernardo-tui 0.2.7 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" "+b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded which v8.0.2
[INFO] [stderr]   Downloaded idna_adapter v1.2.0
[INFO] [stderr]   Downloaded arbitrary v1.4.1
[INFO] [stderr]   Downloaded derive_arbitrary v1.4.1
[INFO] [stderr]   Downloaded utf16_iter v1.0.5
[INFO] [stderr]   Downloaded icu_provider_macros v1.5.0
[INFO] [stderr]   Downloaded bumpalo v3.15.4
[INFO] [stderr]   Downloaded write16 v1.0.0
[INFO] [stderr]   Downloaded clipboard-win v5.4.1
[INFO] [stderr]   Downloaded errno v0.3.10
[INFO] [stderr]   Downloaded colorchoice v1.0.0
[INFO] [stderr]   Downloaded anstyle-query v1.0.2
[INFO] [stderr]   Downloaded byteorder-lite v0.1.0
[INFO] [stderr]   Downloaded signal-hook-mio v0.2.4
[INFO] [stderr]   Downloaded gethostname v0.4.3
[INFO] [stderr]   Downloaded windows-targets v0.52.0
[INFO] [stderr]   Downloaded objc2-io-surface v0.3.2
[INFO] [stderr]   Downloaded litemap v0.7.5
[INFO] [stderr]   Downloaded walkdir v2.4.0
[INFO] [stderr]   Downloaded libredox v0.1.16
[INFO] [stderr]   Downloaded winapi-util v0.1.6
[INFO] [stderr]   Downloaded quick-error v2.0.1
[INFO] [stderr]   Downloaded wait-timeout v0.2.0
[INFO] [stderr]   Downloaded error-code v3.0.0
[INFO] [stderr]   Downloaded writeable v0.5.5
[INFO] [stderr]   Downloaded signal-hook-registry v1.4.1
[INFO] [stderr]   Downloaded zune-core v0.5.1
[INFO] [stderr]   Downloaded yoke-derive v0.7.5
[INFO] [stderr]   Downloaded tinystr v0.7.6
[INFO] [stderr]   Downloaded icu_locid_transform v1.5.0
[INFO] [stderr]   Downloaded lock_api v0.4.11
[INFO] [stderr]   Downloaded toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]   Downloaded synstructure v0.13.1
[INFO] [stderr]   Downloaded time-core v0.1.2
[INFO] [stderr]   Downloaded fax v0.2.7
[INFO] [stderr]   Downloaded zerovec-derive v0.10.3
[INFO] [stderr]   Downloaded redox_syscall v0.4.1
[INFO] [stderr]   Downloaded jobserver v0.1.32
[INFO] [stderr]   Downloaded coredump v0.1.2
[INFO] [stderr]   Downloaded str_indices v0.4.3
[INFO] [stderr]   Downloaded parking_lot_core v0.9.9
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.5
[INFO] [stderr]   Downloaded fdeflate v0.3.4
[INFO] [stderr]   Downloaded core-foundation-sys v0.8.6
[INFO] [stderr]   Downloaded icu_locid_transform_data v1.5.1
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.19
[INFO] [stderr]   Downloaded iana-time-zone v0.1.60
[INFO] [stderr]   Downloaded weezl v0.1.12
[INFO] [stderr]   Downloaded bytemuck v1.14.3
[INFO] [stderr]   Downloaded time-macros v0.2.19
[INFO] [stderr]   Downloaded deranged v0.3.11
[INFO] [stderr]   Downloaded parking_lot v0.12.1
[INFO] [stderr]   Downloaded windows-core v0.52.0
[INFO] [stderr]   Downloaded getrandom v0.2.12
[INFO] [stderr]   Downloaded yoke v0.7.5
[INFO] [stderr]   Downloaded icu_locid v1.5.0
[INFO] [stderr]   Downloaded icu_normalizer v1.5.0
[INFO] [stderr]   Downloaded signal-hook v0.3.17
[INFO] [stderr]   Downloaded cargo_toml v0.22.3
[INFO] [stderr]   Downloaded arboard v3.6.1
[INFO] [stderr]   Downloaded dispatch2 v0.3.1
[INFO] [stderr]   Downloaded icu_provider v1.5.0
[INFO] [stderr]   Downloaded toml v0.9.12+spec-1.1.0
[INFO] [stderr]   Downloaded icu_normalizer_data v1.5.1
[INFO] [stderr]   Downloaded crc32fast v1.4.0
[INFO] [stderr]   Downloaded num-traits v0.2.18
[INFO] [stderr]   Downloaded icu_collections v1.5.0
[INFO] [stderr]   Downloaded mio v1.0.3
[INFO] [stderr]   Downloaded objc2-core-graphics v0.3.2
[INFO] [stderr]   Downloaded tiff v0.11.3
[INFO] [stderr]   Downloaded zune-jpeg v0.5.15
[INFO] [stderr]   Downloaded icu_properties v1.5.1
[INFO] [stderr]   Downloaded plist v1.7.0
[INFO] [stderr]   Downloaded time v0.3.37
[INFO] [stderr]   Downloaded libfuzzer-sys v0.4.12
[INFO] [stderr]   Downloaded png v0.18.1
[INFO] [stderr]   Downloaded zerovec v0.10.4
[INFO] [stderr]   Downloaded unicode-segmentation v1.13.2
[INFO] [stderr]   Downloaded ron v0.12.1
[INFO] [stderr]   Downloaded quick-xml v0.32.0
[INFO] [stderr]   Downloaded aho-corasick v1.1.2
[INFO] [stderr]   Downloaded winnow v1.0.2
[INFO] [stderr]   Downloaded moxcms v0.8.1
[INFO] [stderr]   Downloaded icu_properties_data v1.5.1
[INFO] [stderr]   Downloaded x11rb v0.13.0
[INFO] [stderr]   Downloaded flexi_logger v0.31.8
[INFO] [stderr]   Downloaded chrono v0.4.37
[INFO] [stderr]   Downloaded objc2 v0.6.4
[INFO] [stderr]   Downloaded image v0.25.10
[INFO] [stderr]   Downloaded objc2-foundation v0.3.2
[INFO] [stderr]   Downloaded bstr v1.9.0
[INFO] [stderr]   Downloaded windows_x86_64_gnullvm v0.52.0
[INFO] [stderr]   Downloaded windows_aarch64_gnullvm v0.52.0
[INFO] [stderr]   Downloaded x11rb-protocol v0.13.0
[INFO] [stderr]   Downloaded objc2-app-kit v0.3.2
[INFO] [stderr]   Downloaded syntect v5.3.0
[INFO] [stderr]   Downloaded windows_aarch64_msvc v0.52.0
[INFO] [stderr]   Downloaded pxfm v0.1.29
[INFO] [stderr]   Downloaded windows_x86_64_gnu v0.52.0
[INFO] [stderr]   Downloaded windows_i686_msvc v0.52.0
[INFO] [stderr]   Downloaded windows_x86_64_msvc v0.52.0
[INFO] [stderr]   Downloaded windows_i686_gnu v0.52.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" "+b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f02b4a39cb5f2750fd5ff4be050c8e9570b82d40dc9d02115d2b4fe92b03a193
[INFO] running `Command { std: "docker" "start" "-a" "f02b4a39cb5f2750fd5ff4be050c8e9570b82d40dc9d02115d2b4fe92b03a193", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f02b4a39cb5f2750fd5ff4be050c8e9570b82d40dc9d02115d2b4fe92b03a193", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f02b4a39cb5f2750fd5ff4be050c8e9570b82d40dc9d02115d2b4fe92b03a193", kill_on_drop: false }`
[INFO] [stdout] f02b4a39cb5f2750fd5ff4be050c8e9570b82d40dc9d02115d2b4fe92b03a193
[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" "+b4fefcd60bfd770510f7dc540e887dd3ba4fe5c1" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4b3691bcad7208fc886960956a765384dbe578062a5d26a0a8585a4d2a77875a
[INFO] running `Command { std: "docker" "start" "-a" "4b3691bcad7208fc886960956a765384dbe578062a5d26a0a8585a4d2a77875a", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libc v0.2.186
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]     Checking stable_deref_trait v1.2.0
[INFO] [stderr]    Compiling icu_locid_transform_data v1.5.1
[INFO] [stderr]     Checking writeable v0.5.5
[INFO] [stderr]     Checking litemap v0.7.5
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling icu_properties_data v1.5.1
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking rand_core v0.10.1
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.1
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling parking_lot_core v0.9.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]     Checking utf16_iter v1.0.5
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking write16 v1.0.0
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]     Checking deranged v0.3.11
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking fdeflate v0.3.4
[INFO] [stderr]     Checking winnow v1.0.2
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking pxfm v0.1.29
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking time-core v0.1.2
[INFO] [stderr]     Checking linux-raw-sys v0.4.15
[INFO] [stderr]     Checking same-file v1.0.6
[INFO] [stderr]     Checking anstyle v1.0.14
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking walkdir v2.4.0
[INFO] [stderr]     Checking mio v1.0.3
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking toml_parser v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking bstr v1.9.0
[INFO] [stderr]     Checking time v0.3.37
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking quick-xml v0.32.0
[INFO] [stderr]     Checking winnow v0.7.15
[INFO] [stderr]     Checking iana-time-zone v0.1.60
[INFO] [stderr]     Checking bytemuck v1.14.3
[INFO] [stderr]     Checking clap_lex v1.1.0
[INFO] [stderr]     Checking cpufeatures v0.3.0
[INFO] [stderr]     Checking x11rb-protocol v0.13.0
[INFO] [stderr]    Compiling litrs v1.0.0
[INFO] [stderr]     Checking toml_writer v1.1.1+spec-1.1.0
[INFO] [stderr]     Checking byteorder-lite v0.1.0
[INFO] [stderr]     Checking chrono v0.4.37
[INFO] [stderr]     Checking clap_builder v4.6.0
[INFO] [stderr]     Checking chacha20 v0.10.0
[INFO] [stderr]     Checking dirs-sys v0.5.0
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling document-features v0.2.12
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]     Checking str_indices v0.4.3
[INFO] [stderr]     Checking streaming-iterator v0.1.9
[INFO] [stderr]     Checking dirs v6.0.0
[INFO] [stderr]     Checking rand v0.10.1
[INFO] [stderr]     Checking ropey v1.6.1
[INFO] [stderr]     Checking coredump v0.1.2
[INFO] [stderr]    Compiling cc v1.2.61
[INFO] [stderr]     Checking which v8.0.2
[INFO] [stderr]     Checking wait-timeout v0.2.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking matches v0.1.10
[INFO] [stderr]     Checking maplit v1.0.2
[INFO] [stderr]     Checking unicode-segmentation v1.13.2
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking globset v0.4.18
[INFO] [stderr]     Checking bitflags v2.11.1
[INFO] [stderr]     Checking toml_datetime v0.7.5+spec-1.1.0
[INFO] [stderr]     Checking serde_spanned v1.1.1
[INFO] [stderr]     Checking moxcms v0.8.1
[INFO] [stderr]     Checking png v0.18.1
[INFO] [stderr]     Checking ignore v0.4.25
[INFO] [stderr]    Compiling libfuzzer-sys v0.4.12
[INFO] [stderr]    Compiling tree-sitter v0.26.8
[INFO] [stderr]     Checking toml v0.9.12+spec-1.1.0
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking crossterm v0.29.0
[INFO] [stderr]     Checking rusty-fork v0.3.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling derive_arbitrary v1.4.1
[INFO] [stderr]     Checking zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling clap_derive v4.6.1
[INFO] [stderr]     Checking yoke v0.7.5
[INFO] [stderr]     Checking zerovec v0.10.4
[INFO] [stderr]     Checking arbitrary v1.4.1
[INFO] [stderr]     Checking x11rb v0.13.0
[INFO] [stderr]     Checking uuid v1.23.1
[INFO] [stderr]     Checking image v0.25.10
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking flexi_logger v0.31.8
[INFO] [stderr]     Checking tinystr v0.7.6
[INFO] [stderr]     Checking icu_collections v1.5.0
[INFO] [stderr]     Checking icu_locid v1.5.0
[INFO] [stderr]     Checking clap v4.6.1
[INFO] [stderr]     Checking icu_provider v1.5.0
[INFO] [stderr]     Checking plist v1.7.0
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking ron v0.12.1
[INFO] [stderr]     Checking cargo_toml v0.22.3
[INFO] [stderr]     Checking icu_locid_transform v1.5.0
[INFO] [stderr]     Checking icu_properties v1.5.1
[INFO] [stderr]     Checking syntect v5.3.0
[INFO] [stderr]     Checking arboard v3.6.1
[INFO] [stderr]     Checking icu_normalizer v1.5.0
[INFO] [stderr]     Checking idna_adapter v1.2.0
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking bernardo-tui v0.2.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::primitives::is_default::IsDefault`
[INFO] [stdout]   --> src/config/config.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::primitives::is_default::IsDefault;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `syntect::LoadingError`
[INFO] [stdout]   --> src/config/theme.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use syntect::LoadingError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ropey::Rope`
[INFO] [stdout]  --> src/cursor/tests/cursor_set_selection_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use ropey::Rope;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/cursor/tests/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod cursor_set_selection_tests;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cursor::cursor::Cursor`
[INFO] [stdout]  --> src/cursor/tests/cursor_set_selection_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::cursor::cursor::Cursor;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/cursor/tests/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod cursor_set_selection_tests;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::cursor::cursor::Selection`
[INFO] [stdout]  --> src/cursor/tests/cursor_set_selection_tests.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::cursor::cursor::Selection;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout] help: if this is a test module, consider adding a `#[cfg(test)]` to the containing module
[INFO] [stdout]  --> src/cursor/tests/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod cursor_set_selection_tests;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/experiments/subwidget_pointer.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | impl<W, T: Fn(&W) -> &(dyn Widget) + Clone + 'static> Getter<W> for T {
[INFO] [stdout]   |                       ^          ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 - impl<W, T: Fn(&W) -> &(dyn Widget) + Clone + 'static> Getter<W> for T {
[INFO] [stdout] 9 + impl<W, T: Fn(&W) -> &dyn Widget  + Clone + 'static> Getter<W> for T {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/experiments/subwidget_pointer.rs:25:31
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<W, T: Fn(&mut W) -> &mut (dyn Widget) + Clone + 'static> GetterMut<W> for T {
[INFO] [stdout]    |                               ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - impl<W, T: Fn(&mut W) -> &mut (dyn Widget) + Clone + 'static> GetterMut<W> for T {
[INFO] [stdout] 25 + impl<W, T: Fn(&mut W) -> &mut dyn Widget  + Clone + 'static> GetterMut<W> for T {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/experiments/subwidget_pointer.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl<W, T: Fn(&W) -> Option<&(dyn Widget)> + Clone + 'static> GetterOp<W> for T {
[INFO] [stdout]    |                              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 - impl<W, T: Fn(&W) -> Option<&(dyn Widget)> + Clone + 'static> GetterOp<W> for T {
[INFO] [stdout] 41 + impl<W, T: Fn(&W) -> Option<&dyn Widget > + Clone + 'static> GetterOp<W> for T {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/experiments/subwidget_pointer.rs:57:38
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl<W, T: Fn(&mut W) -> Option<&mut (dyn Widget)> + Clone + 'static> GetterOpMut<W> for T {
[INFO] [stdout]    |                                      ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 - impl<W, T: Fn(&mut W) -> Option<&mut (dyn Widget)> + Clone + 'static> GetterOpMut<W> for T {
[INFO] [stdout] 57 + impl<W, T: Fn(&mut W) -> Option<&mut dyn Widget > + Clone + 'static> GetterOpMut<W> for T {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RecvError`, `RecvTimeoutError`, and `SendError`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:8:43
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crossbeam_channel::{select, Receiver, RecvError, RecvTimeoutError, SendError, TryRecvError};
[INFO] [stdout]   |                                           ^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TreeItFilter` and `TreeNode`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::primitives::tree::tree_node::{FilterRef, TreeItFilter, TreeNode};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/fs/real_fs.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{Error, Write};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::widgets::frame_widget::FrameWidget`
[INFO] [stdout]   --> src/layout/frame_layout.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::widgets::frame_widget::FrameWidget;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SendError`
[INFO] [stdout]   --> src/mocks/mock_output.rs:12:35
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crossbeam_channel::{Receiver, SendError, Sender};
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::App`
[INFO] [stdout]  --> src/primitives/common_edit_msgs.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::app::App;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConfigRef`
[INFO] [stdout]  --> src/primitives/common_edit_msgs.rs:9:55
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::config::config::{CommonEditMsgKeybindings, ConfigRef};
[INFO] [stdout]   |                                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/primitives/tree/lazy_tree_it.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, warn};
[INFO] [stdout]   |                  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `streaming_iterator::IntoStreamingIterator`
[INFO] [stdout]  --> src/primitives/tree/lazy_tree_it.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use streaming_iterator::IntoStreamingIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any`
[INFO] [stdout]  --> src/text/buffer_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SendError`
[INFO] [stdout]  --> src/text/buffer_state.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crossbeam_channel::{SendError, Sender};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/text/buffer_state.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cme_to_direction`
[INFO] [stdout]   --> src/text/buffer_state.rs:21:70
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::primitives::common_edit_msgs::{apply_common_edit_message, cme_to_direction, ApplyCemResult, CommonEditMsg};
[INFO] [stdout]    |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `flexi_logger::AdaptiveFormat::Default`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use flexi_logger::AdaptiveFormat::Default;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, error, warn};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::RwLock`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `unpack_or` and `unpack`
[INFO] [stdout]   --> src/text/contents_and_cursors.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::{unpack, unpack_or, unpack_or_e};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bytes` and `Chunks`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ropey::iter::{Bytes, Chunks};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RopeSlice` and `iter`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ropey::{iter, RopeSlice};
[INFO] [stdout]   |             ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Peekable`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::iter::Peekable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::io::input_event::InputEvent`
[INFO] [stdout]  --> src/widget/combined_widget.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::io::input_event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::widget::any_msg::AnyMsg`
[INFO] [stdout]   --> src/widget/combined_widget.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::widget::any_msg::AnyMsg;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsAny`
[INFO] [stdout]  --> src/widget/context_bar_item.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::widget::any_msg::{AnyMsg, AsAny};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/widgets/big_list/big_list_widget.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::rect::Rect`
[INFO] [stdout]   --> src/widgets/big_list/big_list_widget.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::primitives::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Output`
[INFO] [stdout]  --> src/widgets/check_box.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::process::Output;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LabelHighlighter`
[INFO] [stdout]   --> src/widgets/file_tree_view/file_tree_view.rs:26:44
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::widgets::tree_view::tree_view::{LabelHighlighter, TreeViewWidget};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::rect::Rect`
[INFO] [stdout]   --> src/widgets/generic_dialog/generic_dialog.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::primitives::rect::Rect;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fs::read_error::ReadError`
[INFO] [stdout]  --> src/widgets/spath_list_widget_item.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::fs::read_error::ReadError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMutError`, `RefCell`, `RefMut`, and `Ref`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::{BorrowMutError, Ref, RefCell, RefMut};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^  ^^^  ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `flexi_logger::AdaptiveFormat::Default`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use flexi_logger::AdaptiveFormat::Default;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Key`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::io::keys::{Key, Keycode};
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::is_default::IsDefault`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::primitives::is_default::IsDefault;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::tree::tree_it::eager_iterator`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::primitives::tree::tree_it::eager_iterator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `unpack_or_e` and `unpack`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::{unpack, unpack_or_e};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/widgets/context_menu/widget.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{debug, error, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::is_default::IsDefault`
[INFO] [stdout]   --> src/config/config.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::primitives::is_default::IsDefault;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `syntect::LoadingError`
[INFO] [stdout]   --> src/config/theme.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use syntect::LoadingError;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]  --> src/experiments/subwidget_pointer.rs:9:23
[INFO] [stdout]   |
[INFO] [stdout] 9 | impl<W, T: Fn(&W) -> &(dyn Widget) + Clone + 'static> Getter<W> for T {
[INFO] [stdout]   |                       ^          ^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]   |
[INFO] [stdout] 9 - impl<W, T: Fn(&W) -> &(dyn Widget) + Clone + 'static> Getter<W> for T {
[INFO] [stdout] 9 + impl<W, T: Fn(&W) -> &dyn Widget  + Clone + 'static> Getter<W> for T {
[INFO] [stdout]   |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/experiments/subwidget_pointer.rs:25:31
[INFO] [stdout]    |
[INFO] [stdout] 25 | impl<W, T: Fn(&mut W) -> &mut (dyn Widget) + Clone + 'static> GetterMut<W> for T {
[INFO] [stdout]    |                               ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 - impl<W, T: Fn(&mut W) -> &mut (dyn Widget) + Clone + 'static> GetterMut<W> for T {
[INFO] [stdout] 25 + impl<W, T: Fn(&mut W) -> &mut dyn Widget  + Clone + 'static> GetterMut<W> for T {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/experiments/subwidget_pointer.rs:41:30
[INFO] [stdout]    |
[INFO] [stdout] 41 | impl<W, T: Fn(&W) -> Option<&(dyn Widget)> + Clone + 'static> GetterOp<W> for T {
[INFO] [stdout]    |                              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 41 - impl<W, T: Fn(&W) -> Option<&(dyn Widget)> + Clone + 'static> GetterOp<W> for T {
[INFO] [stdout] 41 + impl<W, T: Fn(&W) -> Option<&dyn Widget > + Clone + 'static> GetterOp<W> for T {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/experiments/subwidget_pointer.rs:57:38
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl<W, T: Fn(&mut W) -> Option<&mut (dyn Widget)> + Clone + 'static> GetterOpMut<W> for T {
[INFO] [stdout]    |                                      ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 57 - impl<W, T: Fn(&mut W) -> Option<&mut (dyn Widget)> + Clone + 'static> GetterOpMut<W> for T {
[INFO] [stdout] 57 + impl<W, T: Fn(&mut W) -> Option<&mut dyn Widget > + Clone + 'static> GetterOpMut<W> for T {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::fmt::Debug;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::Arc`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::sync::Arc;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RecvError`, `RecvTimeoutError`, and `SendError`
[INFO] [stdout]  --> src/fs/fsf_async_tree_iter.rs:8:43
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crossbeam_channel::{select, Receiver, RecvError, RecvTimeoutError, SendError, TryRecvError};
[INFO] [stdout]   |                                           ^^^^^^^^^  ^^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TreeItFilter` and `TreeNode`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:14:53
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::primitives::tree::tree_node::{FilterRef, TreeItFilter, TreeNode};
[INFO] [stdout]    |                                                     ^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]  --> src/fs/real_fs.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::io::{Error, Write};
[INFO] [stdout]   |               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::widgets::frame_widget::FrameWidget`
[INFO] [stdout]   --> src/layout/frame_layout.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::widgets::frame_widget::FrameWidget;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SendError`
[INFO] [stdout]   --> src/mocks/mock_output.rs:12:35
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crossbeam_channel::{Receiver, SendError, Sender};
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::app::App`
[INFO] [stdout]  --> src/primitives/common_edit_msgs.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::app::App;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ConfigRef`
[INFO] [stdout]  --> src/primitives/common_edit_msgs.rs:9:55
[INFO] [stdout]   |
[INFO] [stdout] 9 | use crate::config::config::{CommonEditMsgKeybindings, ConfigRef};
[INFO] [stdout]   |                                                       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error` and `warn`
[INFO] [stdout]  --> src/primitives/tree/lazy_tree_it.rs:3:18
[INFO] [stdout]   |
[INFO] [stdout] 3 | use log::{debug, error, warn};
[INFO] [stdout]   |                  ^^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `streaming_iterator::IntoStreamingIterator`
[INFO] [stdout]  --> src/primitives/tree/lazy_tree_it.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use streaming_iterator::IntoStreamingIterator;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any`
[INFO] [stdout]  --> src/text/buffer_state.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::any;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SendError`
[INFO] [stdout]  --> src/text/buffer_state.rs:7:25
[INFO] [stdout]   |
[INFO] [stdout] 7 | use crossbeam_channel::{SendError, Sender};
[INFO] [stdout]   |                         ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/text/buffer_state.rs:8:25
[INFO] [stdout]   |
[INFO] [stdout] 8 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `cme_to_direction`
[INFO] [stdout]   --> src/text/buffer_state.rs:21:70
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::primitives::common_edit_msgs::{apply_common_edit_message, cme_to_direction, ApplyCemResult, CommonEditMsg};
[INFO] [stdout]    |                                                                      ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `flexi_logger::AdaptiveFormat::Default`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use flexi_logger::AdaptiveFormat::Default;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `warn`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:2:25
[INFO] [stdout]   |
[INFO] [stdout] 2 | use log::{debug, error, warn};
[INFO] [stdout]   |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::sync::RwLock`
[INFO] [stdout]  --> src/text/contents_and_cursors.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::sync::RwLock;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `unpack_or` and `unpack`
[INFO] [stdout]   --> src/text/contents_and_cursors.rs:25:13
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::{unpack, unpack_or, unpack_or_e};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Bytes` and `Chunks`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:2:19
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ropey::iter::{Bytes, Chunks};
[INFO] [stdout]   |                   ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `RopeSlice` and `iter`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:3:13
[INFO] [stdout]   |
[INFO] [stdout] 3 | use ropey::{iter, RopeSlice};
[INFO] [stdout]   |             ^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter::Peekable`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::iter::Peekable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::Deref`
[INFO] [stdout]  --> src/tsw/rope_wrappers.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::ops::Deref;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::io::input_event::InputEvent`
[INFO] [stdout]  --> src/widget/combined_widget.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::io::input_event::InputEvent;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::widget::any_msg::AnyMsg`
[INFO] [stdout]   --> src/widget/combined_widget.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::widget::any_msg::AnyMsg;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AsAny`
[INFO] [stdout]  --> src/widget/context_bar_item.rs:6:38
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::widget::any_msg::{AnyMsg, AsAny};
[INFO] [stdout]   |                                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/widgets/big_list/big_list_widget.rs:1:18
[INFO] [stdout]   |
[INFO] [stdout] 1 | use log::{debug, error, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Output`
[INFO] [stdout]  --> src/widgets/check_box.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::process::Output;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `LabelHighlighter`
[INFO] [stdout]   --> src/widgets/file_tree_view/file_tree_view.rs:26:44
[INFO] [stdout]    |
[INFO] [stdout] 26 | use crate::widgets::tree_view::tree_view::{LabelHighlighter, TreeViewWidget};
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::fs::read_error::ReadError`
[INFO] [stdout]  --> src/widgets/spath_list_widget_item.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::fs::read_error::ReadError;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMutError`, `RefCell`, `RefMut`, and `Ref`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::cell::{BorrowMutError, Ref, RefCell, RefMut};
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^  ^^^  ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:3:24
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::iter`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::iter;
[INFO] [stdout]   |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::ops::DerefMut`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::ops::DerefMut;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Mutex`
[INFO] [stdout]  --> src/widgets/tree_view/tree_view.rs:8:22
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::sync::{Arc, Mutex};
[INFO] [stdout]   |                      ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `flexi_logger::AdaptiveFormat::Default`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use flexi_logger::AdaptiveFormat::Default;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Key`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 | use crate::io::keys::{Key, Keycode};
[INFO] [stdout]    |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::is_default::IsDefault`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 | use crate::primitives::is_default::IsDefault;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::primitives::tree::tree_it::eager_iterator`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | use crate::primitives::tree::tree_it::eager_iterator;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `unpack_or_e` and `unpack`
[INFO] [stdout]   --> src/widgets/tree_view/tree_view.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 | use crate::{unpack, unpack_or_e};
[INFO] [stdout]    |             ^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `error`
[INFO] [stdout]  --> src/widgets/context_menu/widget.rs:5:18
[INFO] [stdout]   |
[INFO] [stdout] 5 | use log::{debug, error, warn};
[INFO] [stdout]   |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/widgets/tree_view/tree_view.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let mut iter = LazyTreeIterator::new(self.root_node.clone(), filter_op);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/widgets/tree_view/tree_view.rs:319:13
[INFO] [stdout]     |
[INFO] [stdout] 319 |         let mut iter = LazyTreeIterator::new(self.root_node.clone(), filter_op);
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/fs/fsf_async_tree_iter.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |                            return match e {
[INFO] [stdout]     |  __________________________^      -
[INFO] [stdout]     | | ________________________________|
[INFO] [stdout] 114 | ||                             TryRecvError::Empty => {
[INFO] [stdout] 115 | ||                                 let new_state = StreamingPromiseState::Streaming;
[INFO] [stdout] 116 | ||                                 return UpdateResult {
[INFO] [stdout] ...   ||
[INFO] [stdout] 129 | ||                         }
[INFO] [stdout]     | ||                         ^
[INFO] [stdout]     | ||_________________________|
[INFO] [stdout]     |  |_________________________unreachable expression
[INFO] [stdout]     |                            any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/fs/fsf_async_tree_iter.rs:113:25
[INFO] [stdout]     |
[INFO] [stdout] 113 |                            return match e {
[INFO] [stdout]     |  __________________________^      -
[INFO] [stdout]     | | ________________________________|
[INFO] [stdout] 114 | ||                             TryRecvError::Empty => {
[INFO] [stdout] 115 | ||                                 let new_state = StreamingPromiseState::Streaming;
[INFO] [stdout] 116 | ||                                 return UpdateResult {
[INFO] [stdout] ...   ||
[INFO] [stdout] 129 | ||                         }
[INFO] [stdout]     | ||                         ^
[INFO] [stdout]     | ||_________________________|
[INFO] [stdout]     |  |_________________________unreachable expression
[INFO] [stdout]     |                            any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_segmentation::UnicodeSegmentation`
[INFO] [stdout]  --> src/widgets/text_widget.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use unicode_segmentation::UnicodeSegmentation;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TreeItFilter`
[INFO] [stdout]  --> src/primitives/tree/tree_it.rs:2:53
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::primitives::tree::tree_node::{FilterRef, TreeItFilter, TreeNode};
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TreeItFilter`
[INFO] [stdout]  --> src/primitives/tree/lazy_tree_it.rs:2:53
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::primitives::tree::tree_node::{FilterRef, TreeItFilter, TreeNode};
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/cursor/cursor_set.rs:441:23
[INFO] [stdout]     |
[INFO] [stdout] 441 |         let mut res = false;
[INFO] [stdout]     |                       ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 442 |         res = self.normalize_anchor(false);
[INFO] [stdout]     |         ---------------------------------- `res` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 if let Err(e) = sender.send(item) {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:63:29
[INFO] [stdout]    |
[INFO] [stdout] 63 |                         Err(e) => break 'warmup,
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `how_long`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn drain(&mut self, how_long: Option<Duration>) -> StreamingPromiseState {
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_how_long`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cache_invalid` is assigned to, but never used
[INFO] [stdout]    --> src/fs/fsf_ref.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let mut cache_invalid = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cache_invalid` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cache_invalid` is never read
[INFO] [stdout]    --> src/fs/fsf_ref.rs:168:29
[INFO] [stdout]     |
[INFO] [stdout] 168 | ...                   cache_invalid = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/fs/mock_fs.rs:328:24
[INFO] [stdout]     |
[INFO] [stdout] 328 |     fn metadata(&self, path: &Path) -> Result<Metadata, ReadError> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev`
[INFO] [stdout]   --> src/fs/path.rs:40:33
[INFO] [stdout]    |
[INFO] [stdout] 40 |             PathCell::Segment { prev, cell, hash } => {
[INFO] [stdout]    |                                 ^^^^ help: try ignoring the field: `prev: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> src/fs/path.rs:40:39
[INFO] [stdout]    |
[INFO] [stdout] 40 |             PathCell::Segment { prev, cell, hash } => {
[INFO] [stdout]    |                                       ^^^^ help: try ignoring the field: `cell: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fs/path.rs:341:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |             let mut iter = root.recursive_iter();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/fs/path.rs:505:47
[INFO] [stdout]     |
[INFO] [stdout] 505 |     while let PathCell::Segment { prev, cell, hash } = first.0.as_ref() {
[INFO] [stdout]     |                                               ^^^^ help: try ignoring the field: `hash: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/fs/path.rs:510:47
[INFO] [stdout]     |
[INFO] [stdout] 510 |     while let PathCell::Segment { prev, cell, hash } = second.0.as_ref() {
[INFO] [stdout]     |                                               ^^^^ help: try ignoring the field: `hash: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]   --> src/mocks/log_capture.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn write(&self, now: &mut DeferredNow, record: &Record) -> std::io::Result<()> {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `unicode_segmentation::UnicodeSegmentation`
[INFO] [stdout]  --> src/widgets/text_widget.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use unicode_segmentation::UnicodeSegmentation;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TreeItFilter`
[INFO] [stdout]  --> src/primitives/tree/tree_it.rs:2:53
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::primitives::tree::tree_node::{FilterRef, TreeItFilter, TreeNode};
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `TreeItFilter`
[INFO] [stdout]  --> src/primitives/tree/lazy_tree_it.rs:2:53
[INFO] [stdout]   |
[INFO] [stdout] 2 | use crate::primitives::tree::tree_node::{FilterRef, TreeItFilter, TreeNode};
[INFO] [stdout]   |                                                     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter_op`
[INFO] [stdout]   --> src/primitives/tree/tree_node.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         filter_op: Option<(FilterRef<Self>, FilterPolicy)>,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded_op`
[INFO] [stdout]   --> src/primitives/tree/tree_node.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         expanded_op: Option<HashSet<Key>>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/text/buffer_state.rs:132:28
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         if let (indent_num, indent_type) = self.text().get_indentation_level_dumb(&cursor) {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indent_type`
[INFO] [stdout]    --> src/text/buffer_state.rs:132:45
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         if let (indent_num, indent_type) = self.text().get_indentation_level_dumb(&cursor) {
[INFO] [stdout]     |                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indent_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/widget/context_bar_item.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |             NodeType::Leaf { action, key } => key,
[INFO] [stdout]    |                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/widget/context_bar_item.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |             NodeType::Leaf { action, key } => Some(action()),
[INFO] [stdout]     |                                      ^^^ help: try ignoring the field: `key: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screenspace`
[INFO] [stdout]   --> src/widgets/check_box.rs:78:26
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn layout(&mut self, screenspace: crate::experiments::screenspace::Screenspace) {}
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_screenspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/widgets/edit_box.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut res = EditBoxWidget {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `res` is never read
[INFO] [stdout]    --> src/cursor/cursor_set.rs:441:23
[INFO] [stdout]     |
[INFO] [stdout] 441 |         let mut res = false;
[INFO] [stdout]     |                       ^^^^^ this value is reassigned later and never used
[INFO] [stdout] 442 |         res = self.normalize_anchor(false);
[INFO] [stdout]     |         ---------------------------------- `res` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/widgets/spath_list_widget_item.rs:40:21
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 Err(e) => Some(Rc::new("[no data]".to_string())),
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action_trigger`
[INFO] [stdout]    --> src/widgets/tree_view/tree_view.rs:500:33
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     if let Some(action_trigger) = self.on_keyboard_shortcut_hit.as_ref() {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_trigger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/widgets/with_scroll/with_scroll.rs:91:47
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn mutate_internal<F: FnOnce(W) -> W>(mut self, mutator: F) -> Self {
[INFO] [stdout]    |                                               ----^^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `next` is never read
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:109:42
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let mut next: Option<Item> = None;
[INFO] [stdout]     |                                          ^^^^ this value is reassigned later and never used
[INFO] [stdout] 110 |             if let Some(subtree) = item.child_iter().find(|item| item.id() == &exp.0) {
[INFO] [stdout] 111 |                 next = Some(subtree);
[INFO] [stdout]     |                 ---- `next` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut expanded_items: u16 = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_expanded`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let item_expanded: u16 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_expanded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded_items`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut expanded_items: u16 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_style`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:323:13
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let base_style = get_default_style(theme, focused);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor_style`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let cursor_style = get_highlighted_style(theme, focused);
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]    --> src/widgets/context_menu/widget.rs:249:13
[INFO] [stdout]     |
[INFO] [stdout] 249 |         let size = unpack_unit_e!(self.get_layout_res().map(|lr| lr.total_size), "render before layout",);
[INFO] [stdout]     |             ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `widget_id` is never read
[INFO] [stdout]   --> src/experiments/focus_group.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FocusGraphNode<AdditionalData: Clone> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 21 |     widget_id: WID,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FocusGraphNode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_full_size` is never used
[INFO] [stdout]    --> src/experiments/from_geometry.rs:112:4
[INFO] [stdout]     |
[INFO] [stdout] 112 | fn get_full_size(widgets_and_positions: &Vec<(WID, Rect)>) -> XY {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root` and `handle` are never read
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct FsAsyncTreeIt {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 19 |     root: FileTreeNode,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 20 |     receiver: Option<Receiver<(u16, FileTreeNode)>>,
[INFO] [stdout] 21 |     handle: JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unflatten_index` is never used
[INFO] [stdout]   --> src/io/buffer.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<T: Default + Clone> Buffer<T> {
[INFO] [stdout]    | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn unflatten_index(&self, index: usize) -> XY {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MaybeBool` is never used
[INFO] [stdout]  --> src/primitives/maybe_bool.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum MaybeBool {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `limit` is never read
[INFO] [stdout]   --> src/primitives/tree/lazy_tree_it.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct LazyTreeIterator<'a, Key: Hash + Eq + Debug + Clone, Item: TreeNode<Key> + 'static> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     limit: Option<usize>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title` and `trigger` are never read
[INFO] [stdout]  --> src/widget/action_trigger.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ActionTrigger<W: Widget> {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] 5 |     title: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     trigger: Box<dyn FnOnce(&W) -> Option<Box<dyn AnyMsg>>>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `on_miss` and `max_width_op` are never read
[INFO] [stdout]   --> src/widgets/edit_box.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct EditBoxWidget {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     on_miss: Option<WidgetAction<EditBoxWidget>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     max_width_op: Option<u16>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `event_miss` is never used
[INFO] [stdout]    --> src/widgets/edit_box.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl EditBoxWidget {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn event_miss(&self) -> Option<Box<dyn AnyMsg>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CANCEL_LABEL` is never used
[INFO] [stdout]   --> src/widgets/generic_dialog/generic_dialog.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const CANCEL_LABEL: &str = "Cancel";
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label_op` is never read
[INFO] [stdout]   --> src/widgets/generic_dialog/generic_dialog.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct GenericDialog {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     label_op: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `root_path` is never read
[INFO] [stdout]   --> src/widgets/save_file_dialog/save_file_dialog.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct SaveFileDialogWidget {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     root_path: SPath,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `child_space_visible_rect` is never read
[INFO] [stdout]   --> src/widgets/with_scroll/with_scroll.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct LayoutRes {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     child_space_visible_rect: Rect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fill_non_free_axis` is never read
[INFO] [stdout]   --> src/widgets/with_scroll/with_scroll.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct WithScroll<W: Widget> {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fill_non_free_axis: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/widgets/context_menu/widget.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct ContextMenuWidget<Key: Hash + Eq + Debug + Clone + 'static, Item: TreeNode<Key> + 'static> {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 38 |     id: WID,
[INFO] [stdout] 39 |     size: XY, //TODO never used
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:47:28
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 if let Err(e) = sender.send(item) {
[INFO] [stdout]    |                            ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:63:29
[INFO] [stdout]    |
[INFO] [stdout] 63 |                         Err(e) => break 'warmup,
[INFO] [stdout]    |                             ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `how_long`
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:90:25
[INFO] [stdout]    |
[INFO] [stdout] 90 |     fn drain(&mut self, how_long: Option<Duration>) -> StreamingPromiseState {
[INFO] [stdout]    |                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_how_long`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/fs/path.rs:216:18
[INFO] [stdout]     |
[INFO] [stdout] 216 |     pub fn label(&self) -> Cow<str> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 216 |     pub fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/fs/path.rs:247:35
[INFO] [stdout]     |
[INFO] [stdout] 247 |     pub fn ancestors_and_self_ref(&self) -> ParentRefIter {
[INFO] [stdout]     |                                   ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 247 |     pub fn ancestors_and_self_ref(&self) -> ParentRefIter<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/buffer_output/buffer_output.rs:92:27
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn items_of_style(&self, style: TextStyle) -> BufferStyleIter {
[INFO] [stdout]    |                           ^^^^^                       ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn items_of_style(&self, style: TextStyle) -> BufferStyleIter<'_> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/buffer_output/buffer_output.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn consistent_items_iter(&self) -> BufferConsistentItemsIter {
[INFO] [stdout]    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn consistent_items_iter(&self) -> BufferConsistentItemsIter<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/buffer_output/buffer_output.rs:100:23
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn cells_iter(&self) -> BufferOutputCellsIter {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn cells_iter(&self) -> BufferOutputCellsIter<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/buffer_output/buffer_output.rs:104:23
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn lines_iter(&self) -> BufferLinesIter {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn lines_iter(&self) -> BufferLinesIter<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/buffer_output/buffer_output.rs:130:33
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn get_horizontal_piece(&self, x: Range<u16>, y: u16) -> Option<BufferConsistentItemsIter> {
[INFO] [stdout]     |                                 ^^^^^ the lifetime is elided here       ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn get_horizontal_piece(&self, x: Range<u16>, y: u16) -> Option<BufferConsistentItemsIter<'_>> {
[INFO] [stdout]     |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mocks/meta_frame.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn get_scroll<T: Widget>(&self) -> impl Iterator<Item = WithScrollWidgetInterpreter<T>> {
[INFO] [stdout]    |                                  ^^^^^                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn get_scroll<T: Widget>(&self) -> impl Iterator<Item = WithScrollWidgetInterpreter<'_, T>> {
[INFO] [stdout]    |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mocks/mock_tree_item.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/printable.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn lines(&self) -> GraphemeLinesStreamingIterator {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn lines(&self) -> GraphemeLinesStreamingIterator<'_> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/rope_as_buffer_state.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn chars(&self) -> Chars {
[INFO] [stdout]    |              ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn chars(&self) -> Chars<'_> {
[INFO] [stdout]    |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/rope_as_buffer_state.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn chunks(&self) -> Chunks {
[INFO] [stdout]    |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn chunks(&self) -> Chunks<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/rope_as_buffer_state.rs:60:14
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn lines(&self) -> LinesIter {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn lines(&self) -> LinesIter<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cache_invalid` is assigned to, but never used
[INFO] [stdout]    --> src/fs/fsf_ref.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let mut cache_invalid = false;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cache_invalid` instead
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cache_invalid` is never read
[INFO] [stdout]    --> src/fs/fsf_ref.rs:168:29
[INFO] [stdout]     |
[INFO] [stdout] 168 | ...                   cache_invalid = true;
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/tree/tree_node.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn label(&self) -> Cow<str>;
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn label(&self) -> Cow<'_, str>;
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/buffer_shared_ref.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn lock(&self) -> Option<RwLockReadGuard<BufferState>> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn lock(&self) -> Option<RwLockReadGuard<'_, BufferState>> {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/buffer_shared_ref.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn lock_rw(&self) -> Option<RwLockWriteGuard<BufferState>> {
[INFO] [stdout]    |                    ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn lock_rw(&self) -> Option<RwLockWriteGuard<'_, BufferState>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:636:31
[INFO] [stdout]     |
[INFO] [stdout] 636 |     pub fn streaming_iterator(&self) -> BufferStateStreamingIterator {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     pub fn streaming_iterator(&self) -> BufferStateStreamingIterator<'_> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:832:14
[INFO] [stdout]     |
[INFO] [stdout] 832 |     fn chars(&self) -> Chars {
[INFO] [stdout]     |              ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 832 |     fn chars(&self) -> Chars<'_> {
[INFO] [stdout]     |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:836:15
[INFO] [stdout]     |
[INFO] [stdout] 836 |     fn chunks(&self) -> Chunks {
[INFO] [stdout]     |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |               |
[INFO] [stdout]     |               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 836 |     fn chunks(&self) -> Chunks<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 |     fn lines(&self) -> LinesIter {
[INFO] [stdout]     |              ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 916 |     fn lines(&self) -> LinesIter<'_> {
[INFO] [stdout]     |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/text_buffer.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn chars(&self) -> Chars;
[INFO] [stdout]    |              ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn chars(&self) -> Chars<'_>;
[INFO] [stdout]    |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/text_buffer.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn chunks(&self) -> Chunks;
[INFO] [stdout]    |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn chunks(&self) -> Chunks<'_>;
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/text_buffer.rs:52:14
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn lines(&self) -> LinesIter;
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn lines(&self) -> LinesIter<'_>;
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widget/stupid_tree.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widget/context_bar_item.rs:77:14
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `path`
[INFO] [stdout]    --> src/fs/mock_fs.rs:328:24
[INFO] [stdout]     |
[INFO] [stdout] 328 |     fn metadata(&self, path: &Path) -> Result<Metadata, ReadError> {
[INFO] [stdout]     |                        ^^^^ help: if this is intentional, prefix it with an underscore: `_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widgets/spath_tree_view_node.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widgets/spath_tree_view_node.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `prev`
[INFO] [stdout]   --> src/fs/path.rs:40:33
[INFO] [stdout]    |
[INFO] [stdout] 40 |             PathCell::Segment { prev, cell, hash } => {
[INFO] [stdout]    |                                 ^^^^ help: try ignoring the field: `prev: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell`
[INFO] [stdout]   --> src/fs/path.rs:40:39
[INFO] [stdout]    |
[INFO] [stdout] 40 |             PathCell::Segment { prev, cell, hash } => {
[INFO] [stdout]    |                                       ^^^^ help: try ignoring the field: `cell: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/fs/path.rs:341:17
[INFO] [stdout]     |
[INFO] [stdout] 341 |             let mut iter = root.recursive_iter();
[INFO] [stdout]     |                 ----^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/fs/path.rs:505:47
[INFO] [stdout]     |
[INFO] [stdout] 505 |     while let PathCell::Segment { prev, cell, hash } = first.0.as_ref() {
[INFO] [stdout]     |                                               ^^^^ help: try ignoring the field: `hash: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `hash`
[INFO] [stdout]    --> src/fs/path.rs:510:47
[INFO] [stdout]     |
[INFO] [stdout] 510 |     while let PathCell::Segment { prev, cell, hash } = second.0.as_ref() {
[INFO] [stdout]     |                                               ^^^^ help: try ignoring the field: `hash: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_rect`
[INFO] [stdout]    --> src/io/over_output.rs:124:13
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let original_rect = meta.rect;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `original_rect`
[INFO] [stdout]    --> src/io/sub_output.rs:113:13
[INFO] [stdout]     |
[INFO] [stdout] 113 |         let original_rect = meta.rect;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_original_rect`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `now`
[INFO] [stdout]   --> src/mocks/log_capture.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 |     fn write(&self, now: &mut DeferredNow, record: &Record) -> std::io::Result<()> {
[INFO] [stdout]    |                     ^^^ help: if this is intentional, prefix it with an underscore: `_now`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:33:17
[INFO] [stdout]    |
[INFO] [stdout] 33 |             let mut iterator = eager_iterator(&tree, None, Some(filter.clone()), FilterPolicy::MatchNodeOrAncestors);
[INFO] [stdout]    |                 ----^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |             let mut lazy_iterator = LazyTreeIterator::new(tree, Some((filter, MatchNodeOrAncestors)));
[INFO] [stdout]    |                 ----^^^^^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:35:53
[INFO] [stdout]    |
[INFO] [stdout] 35 |             let names: Vec<String> = iterator.map(|(depth, item)| item.name.clone()).collect();
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `lazy_iterator`
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:39:17
[INFO] [stdout]    |
[INFO] [stdout] 39 |             let mut lazy_iterator = LazyTreeIterator::new(tree, Some((filter, MatchNodeOrAncestors)));
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_lazy_iterator`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |         let mut iterator = LazyTreeIterator::new(tree, Some((filter, MatchNodeOrAncestors)));
[INFO] [stdout]    |             ----^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:52:49
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let names: Vec<String> = iterator.map(|(depth, item)| item.name.clone()).collect();
[INFO] [stdout]    |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:78:17
[INFO] [stdout]    |
[INFO] [stdout] 78 |             let mut iterator = eager_iterator(&tree, None, Some(filter), FilterPolicy::MatchNode);
[INFO] [stdout]    |                 ----^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]   --> src/primitives/tree/tree_it_filter_test.rs:80:53
[INFO] [stdout]    |
[INFO] [stdout] 80 |             let names: Vec<String> = iterator.map(|(depth, item)| item.name.clone()).collect();
[INFO] [stdout]    |                                                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/primitives/tree/tree_it_filter_test.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let mut iterator = LazyTreeIterator::new(tree, Some((filter, MatchNode)));
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `depth`
[INFO] [stdout]    --> src/primitives/tree/tree_it_filter_test.rs:103:49
[INFO] [stdout]     |
[INFO] [stdout] 103 |         let names: Vec<String> = iterator.map(|(depth, item)| item.name.clone()).collect();
[INFO] [stdout]     |                                                 ^^^^^ help: if this is intentional, prefix it with an underscore: `_depth`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filter_op`
[INFO] [stdout]   --> src/primitives/tree/tree_node.rs:40:9
[INFO] [stdout]    |
[INFO] [stdout] 40 |         filter_op: Option<(FilterRef<Self>, FilterPolicy)>,
[INFO] [stdout]    |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filter_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded_op`
[INFO] [stdout]   --> src/primitives/tree/tree_node.rs:41:9
[INFO] [stdout]    |
[INFO] [stdout] 41 |         expanded_op: Option<HashSet<Key>>,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]    --> src/text/buffer_state.rs:132:28
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         if let (indent_num, indent_type) = self.text().get_indentation_level_dumb(&cursor) {
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]     = help: consider replacing the `if let` with a `let`
[INFO] [stdout]     = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `indent_type`
[INFO] [stdout]    --> src/text/buffer_state.rs:132:45
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         if let (indent_num, indent_type) = self.text().get_indentation_level_dumb(&cursor) {
[INFO] [stdout]     |                                             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_indent_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action`
[INFO] [stdout]   --> src/widget/context_bar_item.rs:84:30
[INFO] [stdout]    |
[INFO] [stdout] 84 |             NodeType::Leaf { action, key } => key,
[INFO] [stdout]    |                              ^^^^^^ help: try ignoring the field: `action: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `key`
[INFO] [stdout]    --> src/widget/context_bar_item.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |             NodeType::Leaf { action, key } => Some(action()),
[INFO] [stdout]     |                                      ^^^ help: try ignoring the field: `key: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `screenspace`
[INFO] [stdout]   --> src/widgets/check_box.rs:78:26
[INFO] [stdout]    |
[INFO] [stdout] 78 |     fn layout(&mut self, screenspace: crate::experiments::screenspace::Screenspace) {}
[INFO] [stdout]    |                          ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_screenspace`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/widgets/edit_box.rs:58:13
[INFO] [stdout]    |
[INFO] [stdout] 58 |         let mut res = EditBoxWidget {
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `e`
[INFO] [stdout]   --> src/widgets/spath_list_widget_item.rs:40:21
[INFO] [stdout]    |
[INFO] [stdout] 40 |                 Err(e) => Some(Rc::new("[no data]".to_string())),
[INFO] [stdout]    |                     ^ help: if this is intentional, prefix it with an underscore: `_e`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `action_trigger`
[INFO] [stdout]    --> src/widgets/tree_view/tree_view.rs:500:33
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     if let Some(action_trigger) = self.on_keyboard_shortcut_hit.as_ref() {
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_action_trigger`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/widgets/with_scroll/with_scroll.rs:91:47
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn mutate_internal<F: FnOnce(W) -> W>(mut self, mutator: F) -> Self {
[INFO] [stdout]    |                                               ----^^^^
[INFO] [stdout]    |                                               |
[INFO] [stdout]    |                                               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `next` is never read
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:109:42
[INFO] [stdout]     |
[INFO] [stdout] 109 |             let mut next: Option<Item> = None;
[INFO] [stdout]     |                                          ^^^^ this value is reassigned later and never used
[INFO] [stdout] 110 |             if let Some(subtree) = item.child_iter().find(|item| item.id() == &exp.0) {
[INFO] [stdout] 111 |                 next = Some(subtree);
[INFO] [stdout]     |                 ---- `next` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut expanded_items: u16 = 0;
[INFO] [stdout]     |             ----^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `item_expanded`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:320:13
[INFO] [stdout]     |
[INFO] [stdout] 320 |         let item_expanded: u16 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_item_expanded`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `expanded_items`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:321:13
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let mut expanded_items: u16 = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_expanded_items`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `base_style`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:323:13
[INFO] [stdout]     |
[INFO] [stdout] 323 |         let base_style = get_default_style(theme, focused);
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_base_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cursor_style`
[INFO] [stdout]    --> src/widgets/nested_menu/widget.rs:324:13
[INFO] [stdout]     |
[INFO] [stdout] 324 |         let cursor_style = get_highlighted_style(theme, focused);
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cursor_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `widget_id` is never read
[INFO] [stdout]   --> src/experiments/focus_group.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FocusGraphNode<AdditionalData: Clone> {
[INFO] [stdout]    |            -------------- field in this struct
[INFO] [stdout] 21 |     widget_id: WID,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FocusGraphNode` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `root` and `handle` are never read
[INFO] [stdout]   --> src/fs/fsf_async_tree_iter.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct FsAsyncTreeIt {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 19 |     root: FileTreeNode,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 20 |     receiver: Option<Receiver<(u16, FileTreeNode)>>,
[INFO] [stdout] 21 |     handle: JoinHandle<()>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `unflatten_index` is never used
[INFO] [stdout]   --> src/io/buffer.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl<T: Default + Clone> Buffer<T> {
[INFO] [stdout]    | ---------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     fn unflatten_index(&self, index: usize) -> XY {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `MaybeBool` is never used
[INFO] [stdout]  --> src/primitives/maybe_bool.rs:2:10
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub enum MaybeBool {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `limit` is never read
[INFO] [stdout]   --> src/primitives/tree/lazy_tree_it.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct LazyTreeIterator<'a, Key: Hash + Eq + Debug + Clone, Item: TreeNode<Key> + 'static> {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 19 |     limit: Option<usize>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `title` and `trigger` are never read
[INFO] [stdout]  --> src/widget/action_trigger.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ActionTrigger<W: Widget> {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] 5 |     title: String,
[INFO] [stdout]   |     ^^^^^
[INFO] [stdout] 6 |     trigger: Box<dyn FnOnce(&W) -> Option<Box<dyn AnyMsg>>>,
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `on_miss` and `max_width_op` are never read
[INFO] [stdout]   --> src/widgets/edit_box.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub struct EditBoxWidget {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 34 |     on_miss: Option<WidgetAction<EditBoxWidget>>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 38 |     max_width_op: Option<u16>,
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `event_miss` is never used
[INFO] [stdout]    --> src/widgets/edit_box.rs:171:8
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl EditBoxWidget {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 171 |     fn event_miss(&self) -> Option<Box<dyn AnyMsg>> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `CANCEL_LABEL` is never used
[INFO] [stdout]   --> src/widgets/generic_dialog/generic_dialog.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const CANCEL_LABEL: &str = "Cancel";
[INFO] [stdout]    |       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `label_op` is never read
[INFO] [stdout]   --> src/widgets/generic_dialog/generic_dialog.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct GenericDialog {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 40 |     label_op: Option<String>,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `root_path` is never read
[INFO] [stdout]   --> src/widgets/save_file_dialog/save_file_dialog.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct SaveFileDialogWidget {
[INFO] [stdout]    |            -------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 67 |     root_path: SPath,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `screenshot` is never used
[INFO] [stdout]   --> src/widgets/with_scroll/tests/with_scroll_view_testbed.rs:99:12
[INFO] [stdout]    |
[INFO] [stdout] 57 | impl WithScrollTestbed {
[INFO] [stdout]    | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 99 |     pub fn screenshot(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `child_space_visible_rect` is never read
[INFO] [stdout]   --> src/widgets/with_scroll/with_scroll.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct LayoutRes {
[INFO] [stdout]    |        --------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     child_space_visible_rect: Rect,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `fill_non_free_axis` is never read
[INFO] [stdout]   --> src/widgets/with_scroll/with_scroll.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct WithScroll<W: Widget> {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     fill_non_free_axis: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]   --> src/widgets/context_menu/widget.rs:39:5
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub struct ContextMenuWidget<Key: Hash + Eq + Debug + Clone + 'static, Item: TreeNode<Key> + 'static> {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 38 |     id: WID,
[INFO] [stdout] 39 |     size: XY, //TODO never used
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/fs/path.rs:216:18
[INFO] [stdout]     |
[INFO] [stdout] 216 |     pub fn label(&self) -> Cow<str> {
[INFO] [stdout]     |                  ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 216 |     pub fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]     |                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/fs/path.rs:247:35
[INFO] [stdout]     |
[INFO] [stdout] 247 |     pub fn ancestors_and_self_ref(&self) -> ParentRefIter {
[INFO] [stdout]     |                                   ^^^^^     ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 247 |     pub fn ancestors_and_self_ref(&self) -> ParentRefIter<'_> {
[INFO] [stdout]     |                                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/buffer_output/buffer_output.rs:92:27
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn items_of_style(&self, style: TextStyle) -> BufferStyleIter {
[INFO] [stdout]    |                           ^^^^^                       ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn items_of_style(&self, style: TextStyle) -> BufferStyleIter<'_> {
[INFO] [stdout]    |                                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/io/buffer_output/buffer_output.rs:96:34
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn consistent_items_iter(&self) -> BufferConsistentItemsIter {
[INFO] [stdout]    |                                  ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn consistent_items_iter(&self) -> BufferConsistentItemsIter<'_> {
[INFO] [stdout]    |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/buffer_output/buffer_output.rs:100:23
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn cells_iter(&self) -> BufferOutputCellsIter {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 100 |     pub fn cells_iter(&self) -> BufferOutputCellsIter<'_> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/buffer_output/buffer_output.rs:104:23
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn lines_iter(&self) -> BufferLinesIter {
[INFO] [stdout]     |                       ^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 104 |     pub fn lines_iter(&self) -> BufferLinesIter<'_> {
[INFO] [stdout]     |                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io/buffer_output/buffer_output.rs:130:33
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn get_horizontal_piece(&self, x: Range<u16>, y: u16) -> Option<BufferConsistentItemsIter> {
[INFO] [stdout]     |                                 ^^^^^ the lifetime is elided here       ^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 130 |     pub fn get_horizontal_piece(&self, x: Range<u16>, y: u16) -> Option<BufferConsistentItemsIter<'_>> {
[INFO] [stdout]     |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mocks/meta_frame.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn get_scroll<T: Widget>(&self) -> impl Iterator<Item = WithScrollWidgetInterpreter<T>> {
[INFO] [stdout]    |                                  ^^^^^                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                  |
[INFO] [stdout]    |                                  the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 20 |     pub fn get_scroll<T: Widget>(&self) -> impl Iterator<Item = WithScrollWidgetInterpreter<'_, T>> {
[INFO] [stdout]    |                                                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/mocks/mock_tree_item.rs:16:14
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 16 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/printable.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn lines(&self) -> GraphemeLinesStreamingIterator {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn lines(&self) -> GraphemeLinesStreamingIterator<'_> {
[INFO] [stdout]    |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/rope_as_buffer_state.rs:28:14
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn chars(&self) -> Chars {
[INFO] [stdout]    |              ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     fn chars(&self) -> Chars<'_> {
[INFO] [stdout]    |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/rope_as_buffer_state.rs:32:15
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn chunks(&self) -> Chunks {
[INFO] [stdout]    |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 32 |     fn chunks(&self) -> Chunks<'_> {
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/rope_as_buffer_state.rs:60:14
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn lines(&self) -> LinesIter {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 60 |     fn lines(&self) -> LinesIter<'_> {
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/primitives/tree/tree_node.rs:13:14
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn label(&self) -> Cow<str>;
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 13 |     fn label(&self) -> Cow<'_, str>;
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/buffer_shared_ref.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn lock(&self) -> Option<RwLockReadGuard<BufferState>> {
[INFO] [stdout]    |                 ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 37 |     pub fn lock(&self) -> Option<RwLockReadGuard<'_, BufferState>> {
[INFO] [stdout]    |                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/buffer_shared_ref.rs:47:20
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn lock_rw(&self) -> Option<RwLockWriteGuard<BufferState>> {
[INFO] [stdout]    |                    ^^^^^            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn lock_rw(&self) -> Option<RwLockWriteGuard<'_, BufferState>> {
[INFO] [stdout]    |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:636:31
[INFO] [stdout]     |
[INFO] [stdout] 636 |     pub fn streaming_iterator(&self) -> BufferStateStreamingIterator {
[INFO] [stdout]     |                               ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 636 |     pub fn streaming_iterator(&self) -> BufferStateStreamingIterator<'_> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:832:14
[INFO] [stdout]     |
[INFO] [stdout] 832 |     fn chars(&self) -> Chars {
[INFO] [stdout]     |              ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 832 |     fn chars(&self) -> Chars<'_> {
[INFO] [stdout]     |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:836:15
[INFO] [stdout]     |
[INFO] [stdout] 836 |     fn chunks(&self) -> Chunks {
[INFO] [stdout]     |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |               |
[INFO] [stdout]     |               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 836 |     fn chunks(&self) -> Chunks<'_> {
[INFO] [stdout]     |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/text/buffer_state.rs:916:14
[INFO] [stdout]     |
[INFO] [stdout] 916 |     fn lines(&self) -> LinesIter {
[INFO] [stdout]     |              ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |              |
[INFO] [stdout]     |              the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 916 |     fn lines(&self) -> LinesIter<'_> {
[INFO] [stdout]     |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/text_buffer.rs:24:14
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn chars(&self) -> Chars;
[INFO] [stdout]    |              ^^^^^     ^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 24 |     fn chars(&self) -> Chars<'_>;
[INFO] [stdout]    |                             ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/text_buffer.rs:25:15
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn chunks(&self) -> Chunks;
[INFO] [stdout]    |               ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |               |
[INFO] [stdout]    |               the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn chunks(&self) -> Chunks<'_>;
[INFO] [stdout]    |                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/text/text_buffer.rs:52:14
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn lines(&self) -> LinesIter;
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 52 |     fn lines(&self) -> LinesIter<'_>;
[INFO] [stdout]    |                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widget/stupid_tree.rs:25:14
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 25 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widget/context_bar_item.rs:77:14
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 77 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widgets/spath_tree_view_node.rs:48:14
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 48 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/widgets/spath_tree_view_node.rs:85:14
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn label(&self) -> Cow<str> {
[INFO] [stdout]    |              ^^^^^     ^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |              |
[INFO] [stdout]    |              the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 85 |     fn label(&self) -> Cow<'_, str> {
[INFO] [stdout]    |                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 56.77s
[INFO] running `Command { std: "docker" "inspect" "4b3691bcad7208fc886960956a765384dbe578062a5d26a0a8585a4d2a77875a", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4b3691bcad7208fc886960956a765384dbe578062a5d26a0a8585a4d2a77875a", kill_on_drop: false }`
[INFO] [stdout] 4b3691bcad7208fc886960956a765384dbe578062a5d26a0a8585a4d2a77875a
