[INFO] cloning repository https://github.com/kavniekerk/neovim-gtk [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kavniekerk/neovim-gtk" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavniekerk%2Fneovim-gtk", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavniekerk%2Fneovim-gtk'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 620328a66802fb246ee0d2802241027309c8e4f2 [INFO] linting kavniekerk/neovim-gtk against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkavniekerk%2Fneovim-gtk" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kavniekerk/neovim-gtk [INFO] finished tweaking git repo https://github.com/kavniekerk/neovim-gtk [INFO] tweaked toml for git repo https://github.com/kavniekerk/neovim-gtk written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kavniekerk/neovim-gtk on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/kavniekerk/neovim-gtk already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded toml v0.4.6 [INFO] [stderr] Downloaded itoa v0.4.2 [INFO] [stderr] Downloaded unix-daemonize v0.1.2 [INFO] [stderr] Downloaded serde_derive v1.0.71 [INFO] [stderr] Downloaded winres v0.1.6 [INFO] [stderr] Downloaded pkg-config v0.3.13 [INFO] [stderr] Downloaded phf_shared v0.7.22 [INFO] [stderr] Downloaded termcolor v1.0.1 [INFO] [stderr] Downloaded wincolor v1.0.0 [INFO] [stderr] Downloaded cfg-if v0.1.4 [INFO] [stderr] Downloaded fragile v0.3.0 [INFO] [stderr] Downloaded gdk-pixbuf-sys v0.7.0 [INFO] [stderr] Downloaded gdk-pixbuf v0.5.0 [INFO] [stderr] Downloaded dirs v1.0.3 [INFO] [stderr] Downloaded log v0.4.3 [INFO] [stderr] Downloaded env_logger v0.5.12 [INFO] [stderr] Downloaded cc v1.0.18 [INFO] [stderr] Downloaded gdk-sys v0.7.0 [INFO] [stderr] Downloaded gdk v0.9.0 [INFO] [stderr] Downloaded glib v0.6.0 [INFO] [stderr] Downloaded rand v0.4.2 [INFO] [stderr] Downloaded gio v0.5.0 [INFO] [stderr] Downloaded gtk-sys v0.7.0 [INFO] [stderr] Downloaded syn v0.14.7 [INFO] [stderr] Downloaded gio-sys v0.7.0 [INFO] [stderr] Downloaded glib-sys v0.7.0 [INFO] [stderr] Downloaded num-traits v0.2.5 [INFO] [stderr] Downloaded regex v1.0.2 [INFO] [stderr] Downloaded serde v1.0.71 [INFO] [stderr] Downloaded cairo-rs v0.5.0 [INFO] [stderr] Downloaded gtk v0.5.0 [INFO] [stderr] Downloaded pango v0.5.0 [INFO] [stderr] Downloaded proc-macro2 v0.4.9 [INFO] [stderr] Downloaded serde_json v1.0.24 [INFO] [stderr] Downloaded unicode-segmentation v1.2.1 [INFO] [stderr] Downloaded atk-sys v0.7.0 [INFO] [stderr] Downloaded neovim-lib v0.5.4 [INFO] [stderr] Downloaded gobject-sys v0.7.0 [INFO] [stderr] Downloaded pango-sys v0.7.0 [INFO] [stderr] Downloaded byteorder v1.2.4 [INFO] [stderr] Downloaded rmp v0.8.7 [INFO] [stderr] Downloaded rmpv v0.4.0 [INFO] [stderr] Downloaded aho-corasick v0.6.6 [INFO] [stderr] Downloaded thread_local v0.3.5 [INFO] [stderr] Downloaded unix_socket v0.5.0 [INFO] [stderr] Downloaded cairo-sys-rs v0.7.0 [INFO] [stderr] Downloaded version_check v0.1.4 [INFO] [stderr] Downloaded quote v0.6.5 [INFO] [stderr] Downloaded pangocairo v0.6.0 [INFO] [stderr] Downloaded bitflags v1.0.3 [INFO] [stderr] Downloaded phf_codegen v0.7.22 [INFO] [stderr] Downloaded memchr v2.0.1 [INFO] [stderr] Downloaded pangocairo-sys v0.8.0 [INFO] [stderr] Downloaded phf v0.7.22 [INFO] [stderr] Downloaded phf_generator v0.7.22 [INFO] [stderr] Downloaded serde_bytes v0.10.4 [INFO] [stderr] Downloaded winapi v0.3.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 11619a6966387236c127d4fc9bd64713a37efb4cb8e5e81448cbef930790226a [INFO] running `Command { std: "docker" "start" "-a" "11619a6966387236c127d4fc9bd64713a37efb4cb8e5e81448cbef930790226a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "11619a6966387236c127d4fc9bd64713a37efb4cb8e5e81448cbef930790226a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "11619a6966387236c127d4fc9bd64713a37efb4cb8e5e81448cbef930790226a", kill_on_drop: false }` [INFO] [stdout] 11619a6966387236c127d4fc9bd64713a37efb4cb8e5e81448cbef930790226a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ee8b0a4cb7c40e00ab678329d995411830d65edecf0ef91aec02abf00578b1b9 [INFO] running `Command { std: "docker" "start" "-a" "ee8b0a4cb7c40e00ab678329d995411830d65edecf0ef91aec02abf00578b1b9", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling pkg-config v0.3.13 [INFO] [stderr] Checking libc v0.2.43 [INFO] [stderr] Compiling version_check v0.1.4 [INFO] [stderr] Checking bitflags v1.0.3 [INFO] [stderr] Compiling serde v1.0.71 [INFO] [stderr] Compiling num-traits v0.2.5 [INFO] [stderr] Compiling gio v0.5.0 [INFO] [stderr] Compiling cairo-rs v0.5.0 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking cfg-if v0.1.4 [INFO] [stderr] Compiling gdk-pixbuf v0.5.0 [INFO] [stderr] Checking fragile v0.3.0 [INFO] [stderr] Compiling regex v1.0.2 [INFO] [stderr] Compiling phf_shared v0.7.22 [INFO] [stderr] Compiling proc-macro2 v0.4.9 [INFO] [stderr] Checking ucd-util v0.1.1 [INFO] [stderr] Checking byteorder v1.2.4 [INFO] [stderr] Checking unreachable v1.0.0 [INFO] [stderr] Compiling gdk v0.9.0 [INFO] [stderr] Checking log v0.4.3 [INFO] [stderr] Checking regex-syntax v0.6.2 [INFO] [stderr] Checking utf8-ranges v1.0.0 [INFO] [stderr] Compiling gtk v0.5.0 [INFO] [stderr] Checking quick-error v1.2.2 [INFO] [stderr] Compiling pangocairo v0.6.0 [INFO] [stderr] Checking humantime v1.1.1 [INFO] [stderr] Checking itoa v0.4.2 [INFO] [stderr] Compiling lazy_static v1.1.0 [INFO] [stderr] Checking termcolor v1.0.1 [INFO] [stderr] Checking dtoa v0.4.3 [INFO] [stderr] Checking phf v0.7.22 [INFO] [stderr] Compiling rand v0.4.2 [INFO] [stderr] Checking unicode-segmentation v1.2.1 [INFO] [stderr] Checking unicode-width v0.1.5 [INFO] [stderr] Compiling quote v0.6.5 [INFO] [stderr] Checking htmlescape v0.3.1 [INFO] [stderr] Compiling syn v0.14.7 [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking atty v0.2.11 [INFO] [stderr] Checking unix_socket v0.5.0 [INFO] [stderr] Checking unix-daemonize v0.1.2 [INFO] [stderr] Checking aho-corasick v0.6.6 [INFO] [stderr] Checking dirs v1.0.3 [INFO] [stderr] Checking thread_local v0.3.5 [INFO] [stderr] Compiling glib-sys v0.7.0 [INFO] [stderr] Compiling gobject-sys v0.7.0 [INFO] [stderr] Compiling cairo-sys-rs v0.7.0 [INFO] [stderr] Compiling gio-sys v0.7.0 [INFO] [stderr] Compiling pango-sys v0.7.0 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.7.0 [INFO] [stderr] Compiling gdk-sys v0.7.0 [INFO] [stderr] Compiling atk-sys v0.7.0 [INFO] [stderr] Compiling pangocairo-sys v0.8.0 [INFO] [stderr] Compiling gtk-sys v0.7.0 [INFO] [stderr] Compiling phf_generator v0.7.22 [INFO] [stderr] Checking num-traits v0.1.43 [INFO] [stderr] Compiling phf_codegen v0.7.22 [INFO] [stderr] Checking rmp v0.8.7 [INFO] [stderr] Compiling nvim-gtk v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: using `write!()` with a format string that ends in a single newline [INFO] [stdout] --> build.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | write!(&mut file, ";\n").unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#write_with_newline [INFO] [stdout] = note: `#[warn(clippy::write_with_newline)]` on by default [INFO] [stdout] help: use `writeln!` instead [INFO] [stdout] | [INFO] [stdout] 53 - write!(&mut file, ";\n").unwrap(); [INFO] [stdout] 53 + writeln!(&mut file, ";").unwrap(); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking glib v0.6.0 [INFO] [stderr] Checking pango v0.5.0 [INFO] [stderr] Checking env_logger v0.5.12 [INFO] [stderr] Compiling serde_derive v1.0.71 [INFO] [stderr] Checking serde_bytes v0.10.4 [INFO] [stderr] Checking serde_json v1.0.24 [INFO] [stderr] Checking toml v0.4.6 [INFO] [stderr] Checking rmpv v0.4.0 [INFO] [stderr] Checking neovim-lib v0.5.4 [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/ui.rs:483:10 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/ui.rs:483:21 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:123:10 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:144:10 [INFO] [stdout] | [INFO] [stdout] 144 | #[derive(Deserialize, Debug)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:155:10 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Deserialize, Debug, Clone)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:583:10 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:583:21 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:588:10 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:588:21 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | top: top, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `top` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | bot: bot, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `bot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | left: left, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | right: right, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::item::Item` [INFO] [stdout] --> src/ui_model/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use self::item::Item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/ui.rs:483:10 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: `#[warn(unexpected_cfgs)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/ui.rs:483:21 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:123:10 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/store.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:144:10 [INFO] [stdout] | [INFO] [stdout] 144 | #[derive(Deserialize, Debug)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:155:10 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Deserialize, Debug, Clone)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:583:10 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:583:21 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:588:10 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy` [INFO] [stdout] --> src/project.rs:588:21 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: no expected values for `feature` [INFO] [stdout] = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate [INFO] [stdout] = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg [INFO] [stdout] = help: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: see for more information about checking conditional configuration [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:62:13 [INFO] [stdout] | [INFO] [stdout] 62 | top: top, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `top` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | bot: bot, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `bot` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:64:13 [INFO] [stdout] | [INFO] [stdout] 64 | left: left, [INFO] [stdout] | ^^^^^^^^^^ help: replace it with: `left` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/ui_model/model_rect.rs:65:13 [INFO] [stdout] | [INFO] [stdout] 65 | right: right, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `right` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self::item::Item` [INFO] [stdout] --> src/ui_model/mod.rs:8:9 [INFO] [stdout] | [INFO] [stdout] 8 | pub use self::item::Item; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/render/mod.rs:19:31 [INFO] [stdout] | [INFO] [stdout] 19 | fn set_source_rgbo(&self, &color::Color, Option); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &color::Color` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/render/mod.rs:19:46 [INFO] [stdout] | [INFO] [stdout] 19 | fn set_source_rgbo(&self, &color::Color, Option); [INFO] [stdout] | ^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/render/mod.rs:19:31 [INFO] [stdout] | [INFO] [stdout] 19 | fn set_source_rgbo(&self, &color::Color, Option); [INFO] [stdout] | ^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &color::Color` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(anonymous_parameters)]` (part of `#[warn(rust_2018_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/render/mod.rs:19:46 [INFO] [stdout] | [INFO] [stdout] 19 | fn set_source_rgbo(&self, &color::Color, Option); [INFO] [stdout] | ^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Option` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2018! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | source: Box, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | source: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/shell.rs:135:35 [INFO] [stdout] | [INFO] [stdout] 135 | detach_cb: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 135 | detach_cb: Option>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/shell.rs:136:41 [INFO] [stdout] | [INFO] [stdout] 136 | nvim_started_cb: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 136 | nvim_started_cb: Option>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/shell.rs:137:28 [INFO] [stdout] | [INFO] [stdout] 137 | command_cb: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 137 | command_cb: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/subscriptions.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | cb: Box) + 'static>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 10 | cb: Box) + 'static>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:27:17 [INFO] [stdout] | [INFO] [stdout] 27 | source: Box, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 27 | source: Box, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/shell.rs:135:35 [INFO] [stdout] | [INFO] [stdout] 135 | detach_cb: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 135 | detach_cb: Option>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/shell.rs:136:41 [INFO] [stdout] | [INFO] [stdout] 136 | nvim_started_cb: Option>>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 136 | nvim_started_cb: Option>>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/shell.rs:137:28 [INFO] [stdout] | [INFO] [stdout] 137 | command_cb: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 137 | command_cb: Option>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/subscriptions.rs:10:13 [INFO] [stdout] | [INFO] [stdout] 10 | cb: Box) + 'static>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 10 | cb: Box) + 'static>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:72:32 [INFO] [stdout] | [INFO] [stdout] 72 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 72 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | E: Into>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 34 | E: Into>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:44:21 [INFO] [stdout] | [INFO] [stdout] 44 | E: Into>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 | E: Into>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:72:32 [INFO] [stdout] | [INFO] [stdout] 72 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 72 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/project.rs:560:34 [INFO] [stdout] | [INFO] [stdout] 560 | fn to_values(&self) -> Box<[>k::ToValue]> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 560 | fn to_values(&self) -> Box<[&dyn gtk::ToValue]> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:34:21 [INFO] [stdout] | [INFO] [stdout] 34 | E: Into>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 34 | E: Into>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/nvim/mod.rs:44:21 [INFO] [stdout] | [INFO] [stdout] 44 | E: Into>, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 44 | E: Into>, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/project.rs:560:34 [INFO] [stdout] | [INFO] [stdout] 560 | fn to_values(&self) -> Box<[>k::ToValue]> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 560 | fn to_values(&self) -> Box<[&dyn gtk::ToValue]> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/plug_manager/store.rs:142:18 [INFO] [stdout] | [INFO] [stdout] 142 | .trim_right_matches(".git") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] help: replace the use of the deprecated method [INFO] [stdout] | [INFO] [stdout] 142 - .trim_right_matches(".git") [INFO] [stdout] 142 + .trim_end_matches(".git") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/plug_manager/plugin_settings_dlg.rs:93:29 [INFO] [stdout] | [INFO] [stdout] 93 | let path = path.trim_right_matches(".git"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace the use of the deprecated method [INFO] [stdout] | [INFO] [stdout] 93 - let path = path.trim_right_matches(".git"); [INFO] [stdout] 93 + let path = path.trim_end_matches(".git"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/popup_menu.rs:159:31 [INFO] [stdout] | [INFO] [stdout] 159 | let line_array: [&glib::ToValue; 4] = [&line.word, &line.kind, &line.menu, &line.info]; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 159 | let line_array: [&dyn glib::ToValue; 4] = [&line.word, &line.kind, &line.menu, &line.info]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/plug_manager/store.rs:142:18 [INFO] [stdout] | [INFO] [stdout] 142 | .trim_right_matches(".git") [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] help: replace the use of the deprecated method [INFO] [stdout] | [INFO] [stdout] 142 - .trim_right_matches(".git") [INFO] [stdout] 142 + .trim_end_matches(".git") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `core::str::::trim_right_matches`: superseded by `trim_end_matches` [INFO] [stdout] --> src/plug_manager/plugin_settings_dlg.rs:93:29 [INFO] [stdout] | [INFO] [stdout] 93 | let path = path.trim_right_matches(".git"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: replace the use of the deprecated method [INFO] [stdout] | [INFO] [stdout] 93 - let path = path.trim_right_matches(".git"); [INFO] [stdout] 93 + let path = path.trim_end_matches(".git"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/popup_menu.rs:159:31 [INFO] [stdout] | [INFO] [stdout] 159 | let line_array: [&glib::ToValue; 4] = [&line.word, &line.kind, &line.menu, &line.info]; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 159 | let line_array: [&dyn glib::ToValue; 4] = [&line.word, &line.kind, &line.menu, &line.info]; [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/ui_model/mod.rs:129:17 [INFO] [stdout] | [INFO] [stdout] 129 | let mut target_row = &mut target.model[row_idx]; [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/ui_model/mod.rs:129:17 [INFO] [stdout] | [INFO] [stdout] 129 | let mut target_row = &mut target.model[row_idx]; [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/popup_menu.rs:333:13 [INFO] [stdout] | [INFO] [stdout] 333 | let mut apply_command: String = if target_idx > selected_idx { [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/popup_menu.rs:333:13 [INFO] [stdout] | [INFO] [stdout] 333 | let mut apply_command: String = if target_idx > selected_idx { [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/shell.rs:1328:17 [INFO] [stdout] | [INFO] [stdout] 1328 | let mut render_state = self.render_state.borrow_mut(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `bot` is never read [INFO] [stdout] --> src/ui_model/item.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct InkOverflow { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub bot: f64, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InkOverflow` has a derived impl for the trait `Clone`, but this is 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: field `github_stars` is never read [INFO] [stdout] --> src/plug_manager/vimawesome.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 156 | pub struct Description { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 160 | pub github_stars: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Description` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/color.rs:36:14 [INFO] [stdout] | [INFO] [stdout] 36 | (std::u16::MAX as f64 * self.0) as u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 36 - (std::u16::MAX as f64 * self.0) as u16, [INFO] [stdout] 36 + (u16::MAX as f64 * self.0) as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/color.rs:37:14 [INFO] [stdout] | [INFO] [stdout] 37 | (std::u16::MAX as f64 * self.1) as u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 37 - (std::u16::MAX as f64 * self.1) as u16, [INFO] [stdout] 37 + (u16::MAX as f64 * self.1) as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/color.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | (std::u16::MAX as f64 * self.2) as u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 38 - (std::u16::MAX as f64 * self.2) as u16, [INFO] [stdout] 38 + (u16::MAX as f64 * self.2) as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/color.rs:98:21 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn pmenu_bg<'a>(&'a self) -> Color { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 98 - pub fn pmenu_bg<'a>(&'a self) -> Color { [INFO] [stdout] 98 + pub fn pmenu_bg(&self) -> Color { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/shell.rs:1328:17 [INFO] [stdout] | [INFO] [stdout] 1328 | let mut render_state = self.render_state.borrow_mut(); [INFO] [stdout] | ----^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/theme.rs:75:24 [INFO] [stdout] | [INFO] [stdout] 75 | cb(&mut *state, bg, fg); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `&mut state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/ui_model/cell.rs:37:23 [INFO] [stdout] | [INFO] [stdout] 37 | for (ref key, ref val) in attrs { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 37 - for (ref key, ref val) in attrs { [INFO] [stdout] 37 + for (ref key, val) in attrs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui_model/item.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | if left == 0 && right == 0 && top == 0 && right == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 86 - if left == 0 && right == 0 && top == 0 && right == 0 { [INFO] [stdout] 86 + if !(left != 0 || right != 0 || top != 0) { [INFO] [stdout] | [INFO] [stdout] 86 - if left == 0 && right == 0 && top == 0 && right == 0 { [INFO] [stdout] 86 + if left == 0 && right == 0 && top == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/ui_model/model_layout.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | for &(ref attr, ref ch_list) in content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 119 - for &(ref attr, ref ch_list) in content { [INFO] [stdout] 119 + for (attr, ch_list) in content { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/ui_model/model_layout.rs:128:52 [INFO] [stdout] | [INFO] [stdout] 128 | self.model.set_cursor(row_idx, col_idx as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `col_idx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui_model/model_rect.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | / { [INFO] [stdout] 24 | | return Some(i); [INFO] [stdout] 25 | | } else if (neighbor.left > 0 && rect.left == neighbor.left - 1 [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui_model/model_rect.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | / { [INFO] [stdout] 29 | | return Some(i); [INFO] [stdout] 30 | | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui_model/model_rect.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | / { [INFO] [stdout] 29 | | return Some(i); [INFO] [stdout] 30 | | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui_model/model_rect.rs:30:82 [INFO] [stdout] | [INFO] [stdout] 30 | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 31 | | return Some(i); [INFO] [stdout] 32 | | } else if rect.contains(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui_model/model_rect.rs:30:82 [INFO] [stdout] | [INFO] [stdout] 30 | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 31 | | return Some(i); [INFO] [stdout] 32 | | } else if rect.contains(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui_model/model_rect.rs:32:47 [INFO] [stdout] | [INFO] [stdout] 32 | } else if rect.contains(neighbor) { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 33 | | return Some(i); [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `bot` is never read [INFO] [stdout] --> src/ui_model/item.rs:55:9 [INFO] [stdout] | [INFO] [stdout] 51 | pub struct InkOverflow { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 55 | pub bot: f64, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `InkOverflow` has a derived impl for the trait `Clone`, but this is 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: field `github_stars` is never read [INFO] [stdout] --> src/plug_manager/vimawesome.rs:160:9 [INFO] [stdout] | [INFO] [stdout] 156 | pub struct Description { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 160 | pub github_stars: Option, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Description` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/ui_model/model_rect.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | / if cell.attrs.double_width { [INFO] [stdout] 129 | | if right < dw_char_idx { [INFO] [stdout] 130 | | right = dw_char_idx; [INFO] [stdout] 131 | | } [INFO] [stdout] 132 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 128 ~ if cell.attrs.double_width [INFO] [stdout] 129 ~ && right < dw_char_idx { [INFO] [stdout] 130 | right = dw_char_idx; [INFO] [stdout] 131 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/color.rs:36:14 [INFO] [stdout] | [INFO] [stdout] 36 | (std::u16::MAX as f64 * self.0) as u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] = note: `#[warn(clippy::legacy_numeric_constants)]` on by default [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 36 - (std::u16::MAX as f64 * self.0) as u16, [INFO] [stdout] 36 + (u16::MAX as f64 * self.0) as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/color.rs:37:14 [INFO] [stdout] | [INFO] [stdout] 37 | (std::u16::MAX as f64 * self.1) as u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 37 - (std::u16::MAX as f64 * self.1) as u16, [INFO] [stdout] 37 + (u16::MAX as f64 * self.1) as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of a legacy numeric constant [INFO] [stdout] --> src/color.rs:38:14 [INFO] [stdout] | [INFO] [stdout] 38 | (std::u16::MAX as f64 * self.2) as u16, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#legacy_numeric_constants [INFO] [stdout] help: use the associated constant instead [INFO] [stdout] | [INFO] [stdout] 38 - (std::u16::MAX as f64 * self.2) as u16, [INFO] [stdout] 38 + (u16::MAX as f64 * self.2) as u16, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the following explicit lifetimes could be elided: 'a [INFO] [stdout] --> src/color.rs:98:21 [INFO] [stdout] | [INFO] [stdout] 98 | pub fn pmenu_bg<'a>(&'a self) -> Color { [INFO] [stdout] | ^^ ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stdout] = note: `#[warn(clippy::needless_lifetimes)]` on by default [INFO] [stdout] help: elide the lifetimes [INFO] [stdout] | [INFO] [stdout] 98 - pub fn pmenu_bg<'a>(&'a self) -> Color { [INFO] [stdout] 98 + pub fn pmenu_bg(&self) -> Color { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/ui_model/mod.rs:104:22 [INFO] [stdout] | [INFO] [stdout] 104 | cell.attrs = attrs.map(Attrs::clone).unwrap_or_else(Attrs::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `attrs.cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | &mut *comps_ref.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut comps_ref.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:209:43 [INFO] [stdout] | [INFO] [stdout] 209 | gtk_window_state_event(event, &mut *comps_ref.borrow_mut()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut comps_ref.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/theme.rs:75:24 [INFO] [stdout] | [INFO] [stdout] 75 | cb(&mut *state, bg, fg); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `&mut state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/ui.rs:246:35 [INFO] [stdout] | [INFO] [stdout] 246 | .strip_prefix(&dir) [INFO] [stdout] | ^^^^ help: change this to: `dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:252:21 [INFO] [stdout] | [INFO] [stdout] 252 | &file_path [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:260:60 [INFO] [stdout] | [INFO] [stdout] 260 | window.connect_delete_event(move |_, _| gtk_delete(&*comps_ref, &*shell_ref)); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `&comps_ref` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:260:73 [INFO] [stdout] | [INFO] [stdout] 260 | window.connect_delete_event(move |_, _| gtk_delete(&*comps_ref, &*shell_ref)); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `&shell_ref` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:285:31 [INFO] [stdout] | [INFO] [stdout] 285 | state.run_now(&update_subtitle); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `update_subtitle` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/ui_model/cell.rs:37:23 [INFO] [stdout] | [INFO] [stdout] 37 | for (ref key, ref val) in attrs { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 37 - for (ref key, ref val) in attrs { [INFO] [stdout] 37 + for (ref key, val) in attrs { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:352:64 [INFO] [stdout] | [INFO] [stdout] 352 | header_bar.pack_end(&self.create_primary_menu_btn(app, &window)); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/ui_model/item.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | if left == 0 && right == 0 && top == 0 && right == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 86 - if left == 0 && right == 0 && top == 0 && right == 0 { [INFO] [stdout] 86 + if !(left != 0 || right != 0 || top != 0) { [INFO] [stdout] | [INFO] [stdout] 86 - if left == 0 && right == 0 && top == 0 && right == 0 { [INFO] [stdout] 86 + if left == 0 && right == 0 && top == 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:508:24 [INFO] [stdout] | [INFO] [stdout] 508 | toml::from_str(&s).map_err(|e| format!("{}", e)) [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cmd_line.rs:132:6 [INFO] [stdout] | [INFO] [stdout] 132 | ) -> (usize, Vec<(Option, Vec)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/cmd_line.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | / self.levels [INFO] [stdout] 210 | | .get_mut(level - 1) [INFO] [stdout] 211 | | .map(|l| l.set_cursor(render_state, pos)); [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 209 ~ if let Some(l) = self.levels [INFO] [stdout] 210 + .get_mut(level - 1) { l.set_cursor(render_state, pos) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/cmd_line.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | if let Some(ref level) = self.levels.last() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 215 - if let Some(ref level) = self.levels.last() { [INFO] [stdout] 215 + if let Some(level) = self.levels.last() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/ui_model/model_layout.rs:119:17 [INFO] [stdout] | [INFO] [stdout] 119 | for &(ref attr, ref ch_list) in content { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] = note: `#[warn(clippy::needless_borrowed_reference)]` on by default [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 119 - for &(ref attr, ref ch_list) in content { [INFO] [stdout] 119 + for (attr, ch_list) in content { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`usize` -> `usize`) [INFO] [stdout] --> src/ui_model/model_layout.rs:128:52 [INFO] [stdout] | [INFO] [stdout] 128 | self.model.set_cursor(row_idx, col_idx as usize); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `col_idx` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] = note: `#[warn(clippy::unnecessary_cast)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:336:61 [INFO] [stdout] | [INFO] [stdout] 336 | popup_menu::tree_button_press(tree, ev, &mut *nvim, ""); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:354:41 [INFO] [stdout] | [INFO] [stdout] 354 | level.replace_from_ctx(ctx, &*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:355:32 [INFO] [stdout] | [INFO] [stdout] 355 | level.update_cache(&*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:357:50 [INFO] [stdout] | [INFO] [stdout] 357 | let mut level = Level::from_ctx(ctx, &*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:358:32 [INFO] [stdout] | [INFO] [stdout] 358 | level.update_cache(&*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/cmd_line.rs:391:32 [INFO] [stdout] | [INFO] [stdout] 391 | level.update_cache(&*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:421:63 [INFO] [stdout] | [INFO] [stdout] 421 | Level::from_multiline_content(content, max_width, &*state.render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&state.render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:422:28 [INFO] [stdout] | [INFO] [stdout] 422 | block.update_cache(&*state.render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&state.render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:435:41 [INFO] [stdout] | [INFO] [stdout] 435 | block.update_preferred_size(&*render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:436:32 [INFO] [stdout] | [INFO] [stdout] 436 | block.update_cache(&*render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui_model/model_rect.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | / { [INFO] [stdout] 24 | | return Some(i); [INFO] [stdout] 25 | | } else if (neighbor.left > 0 && rect.left == neighbor.left - 1 [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui_model/model_rect.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | / { [INFO] [stdout] 29 | | return Some(i); [INFO] [stdout] 30 | | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] = note: `#[warn(clippy::if_same_then_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui_model/model_rect.rs:28:13 [INFO] [stdout] | [INFO] [stdout] 28 | / { [INFO] [stdout] 29 | | return Some(i); [INFO] [stdout] 30 | | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui_model/model_rect.rs:30:82 [INFO] [stdout] | [INFO] [stdout] 30 | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 31 | | return Some(i); [INFO] [stdout] 32 | | } else if rect.contains(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` has identical blocks [INFO] [stdout] --> src/ui_model/model_rect.rs:30:82 [INFO] [stdout] | [INFO] [stdout] 30 | } else if rect.in_horizontal(neighbor) && rect.in_vertical(neighbor) { [INFO] [stdout] | __________________________________________________________________________________^ [INFO] [stdout] 31 | | return Some(i); [INFO] [stdout] 32 | | } else if rect.contains(neighbor) { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] note: same as this [INFO] [stdout] --> src/ui_model/model_rect.rs:32:47 [INFO] [stdout] | [INFO] [stdout] 32 | } else if rect.contains(neighbor) { [INFO] [stdout] | _______________________________________________^ [INFO] [stdout] 33 | | return Some(i); [INFO] [stdout] 34 | | } [INFO] [stdout] | |_____________^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#if_same_then_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/cmd_line.rs:592:13 [INFO] [stdout] | [INFO] [stdout] 592 | / content [INFO] [stdout] 593 | | .last_mut() [INFO] [stdout] 594 | | .map(|line| line.extend(content_line.remove(0))); [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 592 ~ if let Some(line) = content [INFO] [stdout] 593 + .last_mut() { line.extend(content_line.remove(0)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/ui_model/model_rect.rs:128:17 [INFO] [stdout] | [INFO] [stdout] 128 | / if cell.attrs.double_width { [INFO] [stdout] 129 | | if right < dw_char_idx { [INFO] [stdout] 130 | | right = dw_char_idx; [INFO] [stdout] 131 | | } [INFO] [stdout] 132 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 128 ~ if cell.attrs.double_width [INFO] [stdout] 129 ~ && right < dw_char_idx { [INFO] [stdout] 130 | right = dw_char_idx; [INFO] [stdout] 131 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/error.rs:24:60 [INFO] [stdout] | [INFO] [stdout] 24 | gtk::Image::new_from_icon_name("dialog-error", gtk_sys::GTK_ICON_SIZE_DIALOG as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `gtk_sys::GTK_ICON_SIZE_DIALOG` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/file_browser.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 84 | / let file_browser = FileBrowserWidget { [INFO] [stdout] 85 | | store, [INFO] [stdout] 86 | | tree, [INFO] [stdout] 87 | | widget, [INFO] [stdout] ... | [INFO] [stdout] 100 | | })), [INFO] [stdout] 101 | | }; [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 102 | file_browser [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 84 ~ [INFO] [stdout] 85 ~ FileBrowserWidget { [INFO] [stdout] 86 + store, [INFO] [stdout] 87 + tree, [INFO] [stdout] 88 + widget, [INFO] [stdout] 89 + nvim: None, [INFO] [stdout] 90 + comps: Components { [INFO] [stdout] 91 + dir_list_model, [INFO] [stdout] 92 + dir_list, [INFO] [stdout] 93 + context_menu, [INFO] [stdout] 94 + show_hidden_checkbox, [INFO] [stdout] 95 + cd_action: gio::SimpleAction::new("cd", None), [INFO] [stdout] 96 + }, [INFO] [stdout] 97 + state: Rc::new(RefCell::new(State { [INFO] [stdout] 98 + current_dir: "".to_owned(), [INFO] [stdout] 99 + show_hidden: false, [INFO] [stdout] 100 + selected_path: None, [INFO] [stdout] 101 + })), [INFO] [stdout] 102 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:124:23 [INFO] [stdout] | [INFO] [stdout] 124 | store.set(&iter, &[Column::IconName as u32], &[&ICON_FOLDER_OPEN]); [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:133:53 [INFO] [stdout] | [INFO] [stdout] 133 | let dir_value = store.get_value(&iter, Column::Path as i32); [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:157:23 [INFO] [stdout] | [INFO] [stdout] 157 | store.set(&iter, &[Column::IconName as u32], &[&ICON_FOLDER_CLOSED]); [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:183:44 [INFO] [stdout] | [INFO] [stdout] 183 | nvim.set_current_dir_async(&path) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/file_browser.rs:224:78 [INFO] [stdout] | [INFO] [stdout] 224 | if let Ok(rel_path) = Path::new(&file_path).strip_prefix(&Path::new(&dir)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `Path::new(&dir)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are explicitly cloning with `.map()` [INFO] [stdout] --> src/ui_model/mod.rs:104:22 [INFO] [stdout] | [INFO] [stdout] 104 | cell.attrs = attrs.map(Attrs::clone).unwrap_or_else(Attrs::new); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: consider calling the dedicated `cloned` method: `attrs.cloned()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:225:60 [INFO] [stdout] | [INFO] [stdout] 225 | reveal_path_in_tree(&store, &tree, &rel_path) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `rel_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/file_browser.rs:264:35 [INFO] [stdout] | [INFO] [stdout] 264 | .strip_prefix(&cwd) [INFO] [stdout] | ^^^^ help: change this to: `cwd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:311:44 [INFO] [stdout] | [INFO] [stdout] 311 | ... .get_value(&iter, Column::FileType as i32) [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:400:90 [INFO] [stdout] | [INFO] [stdout] 400 | if is_prefix && dir_list_model.get_value(¤t_iter, 0).get::<&str>() != Some(&dir_name) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `dir_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/input.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | / if let Some(ch) = gdk::keyval_to_unicode(keyval) { [INFO] [stdout] 73 | | Some(keyval_to_input_string(&ch.to_string(), state)) [INFO] [stdout] 74 | | } else { [INFO] [stdout] 75 | | None [INFO] [stdout] 76 | | } [INFO] [stdout] | |_____^ help: try: `gdk::keyval_to_unicode(keyval).map(|ch| keyval_to_input_string(&ch.to_string(), state))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/misc.rs:17:31 [INFO] [stdout] | [INFO] [stdout] 17 | SPECIAL_CHARS.replace_all(&*filename, r"\$0") [INFO] [stdout] | ^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `filename` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/misc.rs:34:45 [INFO] [stdout] | [INFO] [stdout] 34 | Some(String::from(SLASH.replace_all(&*path, r"\"))) [INFO] [stdout] | ^^^^^^ help: try: `&path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/nvim/client.rs:63:52 [INFO] [stdout] | [INFO] [stdout] 63 | NeovimRef::SingleThreaded(ref nvim) => &*nvim, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 63 - NeovimRef::SingleThreaded(ref nvim) => &*nvim, [INFO] [stdout] 63 + NeovimRef::SingleThreaded(ref nvim) => nvim, [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 63 | NeovimRef::SingleThreaded(ref nvim) => &**nvim, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/nvim/client.rs:64:51 [INFO] [stdout] | [INFO] [stdout] 64 | NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 64 - NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] 64 + NeovimRef::MultiThreaded(ref nvim) => nvim.as_ref().unwrap(), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 64 - NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] 64 + NeovimRef::MultiThreaded(ref nvim) => &**nvim.as_ref().unwrap(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/nvim/client.rs:64:51 [INFO] [stdout] | [INFO] [stdout] 64 | NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^ help: change this to: `(*nvim)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/nvim/client.rs:73:55 [INFO] [stdout] | [INFO] [stdout] 73 | NeovimRef::MultiThreaded(ref mut nvim) => (&mut *nvim).as_mut().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `(*nvim)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | &mut *comps_ref.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut comps_ref.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:209:43 [INFO] [stdout] | [INFO] [stdout] 209 | gtk_window_state_event(event, &mut *comps_ref.borrow_mut()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut comps_ref.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/ui.rs:246:35 [INFO] [stdout] | [INFO] [stdout] 246 | .strip_prefix(&dir) [INFO] [stdout] | ^^^^ help: change this to: `dir` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:252:21 [INFO] [stdout] | [INFO] [stdout] 252 | &file_path [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `file_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:260:60 [INFO] [stdout] | [INFO] [stdout] 260 | window.connect_delete_event(move |_, _| gtk_delete(&*comps_ref, &*shell_ref)); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `&comps_ref` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/ui.rs:260:73 [INFO] [stdout] | [INFO] [stdout] 260 | window.connect_delete_event(move |_, _| gtk_delete(&*comps_ref, &*shell_ref)); [INFO] [stdout] | ^^^^^^^^^^^ help: try: `&shell_ref` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:285:31 [INFO] [stdout] | [INFO] [stdout] 285 | state.run_now(&update_subtitle); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `update_subtitle` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/nvim/handler.rs:80:37 [INFO] [stdout] | [INFO] [stdout] 80 | / ... ev_name [INFO] [stdout] 81 | | ... .as_str() [INFO] [stdout] 82 | | ... .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 82 - .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] 82 + .ok_or("Event name does not exists")?, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:352:64 [INFO] [stdout] | [INFO] [stdout] 352 | header_bar.pack_end(&self.create_primary_menu_btn(app, &window)); [INFO] [stdout] | ^^^^^^^ help: change this to: `window` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/nvim/handler.rs:123:41 [INFO] [stdout] | [INFO] [stdout] 123 | / ... req_name [INFO] [stdout] 124 | | ... .as_str() [INFO] [stdout] 125 | | ... .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 125 - .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] 125 + .ok_or("Event name does not exists")?, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/nvim/handler.rs:182:74 [INFO] [stdout] | [INFO] [stdout] 182 | let call_reapint_mode = redraw_handler::call(ui, &ev_name, args)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `ev_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/ui.rs:508:24 [INFO] [stdout] | [INFO] [stdout] 508 | toml::from_str(&s).map_err(|e| format!("{}", e)) [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/nvim/redraw_handler.rs:167:45 [INFO] [stdout] | [INFO] [stdout] 167 | let prefer_dark_theme = match try_str!(args.get(1).cloned().unwrap_or(Value::from("off"))) { [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 168 | | "on" => true, [INFO] [stdout] 169 | | _ => false, [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 167 - let prefer_dark_theme = match try_str!(args.get(1).cloned().unwrap_or(Value::from("off"))) { [INFO] [stdout] 168 - "on" => true, [INFO] [stdout] 169 - _ => false, [INFO] [stdout] 170 - }; [INFO] [stdout] 167 + let prefer_dark_theme = matches!(try_str!(args.get(1).cloned().unwrap_or(Value::from("off"))), "on"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/cmd_line.rs:132:6 [INFO] [stdout] | [INFO] [stdout] 132 | ) -> (usize, Vec<(Option, Vec)>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/nvim/redraw_handler.rs:201:70 [INFO] [stdout] | [INFO] [stdout] 201 | let t = clipboard.wait_for_text().unwrap_or_else(|| String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `String::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/cmd_line.rs:209:9 [INFO] [stdout] | [INFO] [stdout] 209 | / self.levels [INFO] [stdout] 210 | | .get_mut(level - 1) [INFO] [stdout] 211 | | .map(|l| l.set_cursor(render_state, pos)); [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] = note: `#[warn(clippy::option_map_unit_fn)]` on by default [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 209 ~ if let Some(l) = self.levels [INFO] [stdout] 210 + .get_mut(level - 1) { l.set_cursor(render_state, pos) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/cmd_line.rs:215:21 [INFO] [stdout] | [INFO] [stdout] 215 | if let Some(ref level) = self.levels.last() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 215 - if let Some(ref level) = self.levels.last() { [INFO] [stdout] 215 + if let Some(level) = self.levels.last() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:336:61 [INFO] [stdout] | [INFO] [stdout] 336 | popup_menu::tree_button_press(tree, ev, &mut *nvim, ""); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:354:41 [INFO] [stdout] | [INFO] [stdout] 354 | level.replace_from_ctx(ctx, &*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:355:32 [INFO] [stdout] | [INFO] [stdout] 355 | level.update_cache(&*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:357:50 [INFO] [stdout] | [INFO] [stdout] 357 | let mut level = Level::from_ctx(ctx, &*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:358:32 [INFO] [stdout] | [INFO] [stdout] 358 | level.update_cache(&*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/cmd_line.rs:391:32 [INFO] [stdout] | [INFO] [stdout] 391 | level.update_cache(&*render_state); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:421:63 [INFO] [stdout] | [INFO] [stdout] 421 | Level::from_multiline_content(content, max_width, &*state.render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&state.render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:422:28 [INFO] [stdout] | [INFO] [stdout] 422 | block.update_cache(&*state.render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&state.render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:435:41 [INFO] [stdout] | [INFO] [stdout] 435 | block.update_preferred_size(&*render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/cmd_line.rs:436:32 [INFO] [stdout] | [INFO] [stdout] 436 | block.update_cache(&*render_state.borrow()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/cmd_line.rs:592:13 [INFO] [stdout] | [INFO] [stdout] 592 | / content [INFO] [stdout] 593 | | .last_mut() [INFO] [stdout] 594 | | .map(|line| line.extend(content_line.remove(0))); [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 592 ~ if let Some(line) = content [INFO] [stdout] 593 + .last_mut() { line.extend(content_line.remove(0)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/error.rs:24:60 [INFO] [stdout] | [INFO] [stdout] 24 | gtk::Image::new_from_icon_name("dialog-error", gtk_sys::GTK_ICON_SIZE_DIALOG as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `gtk_sys::GTK_ICON_SIZE_DIALOG` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/file_browser.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 84 | / let file_browser = FileBrowserWidget { [INFO] [stdout] 85 | | store, [INFO] [stdout] 86 | | tree, [INFO] [stdout] 87 | | widget, [INFO] [stdout] ... | [INFO] [stdout] 100 | | })), [INFO] [stdout] 101 | | }; [INFO] [stdout] | |__________- unnecessary `let` binding [INFO] [stdout] 102 | file_browser [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 84 ~ [INFO] [stdout] 85 ~ FileBrowserWidget { [INFO] [stdout] 86 + store, [INFO] [stdout] 87 + tree, [INFO] [stdout] 88 + widget, [INFO] [stdout] 89 + nvim: None, [INFO] [stdout] 90 + comps: Components { [INFO] [stdout] 91 + dir_list_model, [INFO] [stdout] 92 + dir_list, [INFO] [stdout] 93 + context_menu, [INFO] [stdout] 94 + show_hidden_checkbox, [INFO] [stdout] 95 + cd_action: gio::SimpleAction::new("cd", None), [INFO] [stdout] 96 + }, [INFO] [stdout] 97 + state: Rc::new(RefCell::new(State { [INFO] [stdout] 98 + current_dir: "".to_owned(), [INFO] [stdout] 99 + show_hidden: false, [INFO] [stdout] 100 + selected_path: None, [INFO] [stdout] 101 + })), [INFO] [stdout] 102 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:124:23 [INFO] [stdout] | [INFO] [stdout] 124 | store.set(&iter, &[Column::IconName as u32], &[&ICON_FOLDER_OPEN]); [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:133:53 [INFO] [stdout] | [INFO] [stdout] 133 | let dir_value = store.get_value(&iter, Column::Path as i32); [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:157:23 [INFO] [stdout] | [INFO] [stdout] 157 | store.set(&iter, &[Column::IconName as u32], &[&ICON_FOLDER_CLOSED]); [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/nvim/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | &mut *nvim, [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:183:44 [INFO] [stdout] | [INFO] [stdout] 183 | nvim.set_current_dir_async(&path) [INFO] [stdout] | ^^^^^ help: change this to: `path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/ui.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / add_plug_btn.get_style_context().map(|c| { [INFO] [stdout] 47 | | c.add_class("suggested-action") [INFO] [stdout] 48 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 46 - add_plug_btn.get_style_context().map(|c| { [INFO] [stdout] 47 - c.add_class("suggested-action") [INFO] [stdout] 48 - }); [INFO] [stdout] 46 + if let Some(c) = add_plug_btn.get_style_context() { c.add_class("suggested-action") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:77:36 [INFO] [stdout] | [INFO] [stdout] 77 | add_vimawesome_tab(&pages, &self.manager, &plugs_panel); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `self.manager` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/file_browser.rs:224:78 [INFO] [stdout] | [INFO] [stdout] 224 | if let Ok(rel_path) = Path::new(&file_path).strip_prefix(&Path::new(&dir)) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: change this to: `Path::new(&dir)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:225:60 [INFO] [stdout] | [INFO] [stdout] 225 | reveal_path_in_tree(&store, &tree, &rel_path) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `rel_path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/ui.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 135 - scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] 135 + if let Some(c) = scroll.get_style_context() { c.add_class("view") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the borrowed expression implements the required traits [INFO] [stdout] --> src/file_browser.rs:264:35 [INFO] [stdout] | [INFO] [stdout] 264 | .strip_prefix(&cwd) [INFO] [stdout] | ^^^^ help: change this to: `cwd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:139:55 [INFO] [stdout] | [INFO] [stdout] 139 | let row = create_plug_row(idx, plug_info, &self.manager); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `self.manager` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:148:48 [INFO] [stdout] | [INFO] [stdout] 148 | &create_up_down_btns(&plugs_panel, &self.manager), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `self.manager` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/plug_manager/ui.rs:164:59 [INFO] [stdout] | [INFO] [stdout] 164 | gtk::Button::new_from_icon_name("go-up-symbolic", gtk_sys::GTK_ICON_SIZE_BUTTON as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `gtk_sys::GTK_ICON_SIZE_BUTTON` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/plug_manager/ui.rs:166:61 [INFO] [stdout] | [INFO] [stdout] 166 | gtk::Button::new_from_icon_name("go-down-symbolic", gtk_sys::GTK_ICON_SIZE_BUTTON as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `gtk_sys::GTK_ICON_SIZE_BUTTON` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:311:44 [INFO] [stdout] | [INFO] [stdout] 311 | ... .get_value(&iter, Column::FileType as i32) [INFO] [stdout] | ^^^^^ help: change this to: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/plug_manager/ui.rs:219:42 [INFO] [stdout] | [INFO] [stdout] 219 | add_plugin(&manager, &*plugs_panel.borrow(), new_plug); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&plugs_panel.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/file_browser.rs:400:90 [INFO] [stdout] | [INFO] [stdout] 400 | if is_prefix && dir_list_model.get_value(¤t_iter, 0).get::<&str>() != Some(&dir_name) [INFO] [stdout] | ^^^^^^^^^ help: change this to: `dir_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/ui.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | categories.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 393 - categories.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] 393 + if let Some(c) = categories.get_style_context() { c.add_class("view") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/plug_manager/ui.rs:403:56 [INFO] [stdout] | [INFO] [stdout] 403 | clone!(stack, rows => move |_, row| if let &Some(ref row) = row { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 403 - clone!(stack, rows => move |_, row| if let &Some(ref row) = row { [INFO] [stdout] 403 + clone!(stack, rows => move |_, row| if let Some(row) = row { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:405:62 [INFO] [stdout] | [INFO] [stdout] 405 | if let Some(child) = stack.get_child_by_name(&r.1) { [INFO] [stdout] | ^^^^ help: change this to: `r.1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:407:34 [INFO] [stdout] | [INFO] [stdout] 407 | row_selected(&r.1); [INFO] [stdout] | ^^^^ help: change this to: `r.1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/plug_manager/ui.rs:404:25 [INFO] [stdout] | [INFO] [stdout] 404 | if let Some(ref r) = rows.borrow().iter().find(|r| r.0 == *row) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 404 - if let Some(ref r) = rows.borrow().iter().find(|r| r.0 == *row) { [INFO] [stdout] 404 + if let Some(r) = rows.borrow().iter().find(|r| r.0 == *row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/input.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | / if let Some(ch) = gdk::keyval_to_unicode(keyval) { [INFO] [stdout] 73 | | Some(keyval_to_input_string(&ch.to_string(), state)) [INFO] [stdout] 74 | | } else { [INFO] [stdout] 75 | | None [INFO] [stdout] 76 | | } [INFO] [stdout] | |_____^ help: try: `gdk::keyval_to_unicode(keyval).map(|ch| keyval_to_input_string(&ch.to_string(), state))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/plug_manager/vim_plug.rs:53:29 [INFO] [stdout] | [INFO] [stdout] 53 | / ... if let Some(uri) = uri { [INFO] [stdout] 54 | | ... Some(VimPlugInfo::new(name.to_owned(), uri.to_owned())) [INFO] [stdout] 55 | | ... } else { [INFO] [stdout] 56 | | ... None [INFO] [stdout] 57 | | ... } [INFO] [stdout] | |_______________________^ help: try: `uri.map(|uri| VimPlugInfo::new(name.to_owned(), uri.to_owned()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/plug_manager/vim_plug.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / loaded_plug [INFO] [stdout] 73 | | .ok_and_report() [INFO] [stdout] 74 | | .and_then(|loaded_plug| loaded_plug.as_i64()) [INFO] [stdout] 75 | | .map_or(false, |loaded_plug| if loaded_plug > 0 { [INFO] [stdout] ... | [INFO] [stdout] 78 | | false [INFO] [stdout] 79 | | }) [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 75 - .map_or(false, |loaded_plug| if loaded_plug > 0 { [INFO] [stdout] 75 + .is_some_and(|loaded_plug| if loaded_plug > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/plug_manager/vim_plug.rs:75:46 [INFO] [stdout] | [INFO] [stdout] 75 | .map_or(false, |loaded_plug| if loaded_plug > 0 { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 76 | | true [INFO] [stdout] 77 | | } else { [INFO] [stdout] 78 | | false [INFO] [stdout] 79 | | }) [INFO] [stdout] | |_________________^ help: you can reduce it to: `loaded_plug > 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/misc.rs:17:31 [INFO] [stdout] | [INFO] [stdout] 17 | SPECIAL_CHARS.replace_all(&*filename, r"\$0") [INFO] [stdout] | ^^^^^^^^^^ help: if you would like to reborrow, try removing `&*`: `filename` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/misc.rs:34:45 [INFO] [stdout] | [INFO] [stdout] 34 | Some(String::from(SLASH.replace_all(&*path, r"\"))) [INFO] [stdout] | ^^^^^^ help: try: `&path` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/nvim/client.rs:63:52 [INFO] [stdout] | [INFO] [stdout] 63 | NeovimRef::SingleThreaded(ref nvim) => &*nvim, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 63 - NeovimRef::SingleThreaded(ref nvim) => &*nvim, [INFO] [stdout] 63 + NeovimRef::SingleThreaded(ref nvim) => nvim, [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 63 | NeovimRef::SingleThreaded(ref nvim) => &**nvim, [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/nvim/client.rs:64:51 [INFO] [stdout] | [INFO] [stdout] 64 | NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrow_deref_ref [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 64 - NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] 64 + NeovimRef::MultiThreaded(ref nvim) => nvim.as_ref().unwrap(), [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 64 - NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] 64 + NeovimRef::MultiThreaded(ref nvim) => &**nvim.as_ref().unwrap(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/nvim/client.rs:64:51 [INFO] [stdout] | [INFO] [stdout] 64 | NeovimRef::MultiThreaded(ref nvim) => (&*nvim).as_ref().unwrap(), [INFO] [stdout] | ^^^^^^^^ help: change this to: `(*nvim)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/nvim/client.rs:73:55 [INFO] [stdout] | [INFO] [stdout] 73 | NeovimRef::MultiThreaded(ref mut nvim) => (&mut *nvim).as_mut().unwrap(), [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `(*nvim)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/plug_manager/store.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | / impl Default for Settings { [INFO] [stdout] 107 | | fn default() -> Self { [INFO] [stdout] 108 | | Settings { [INFO] [stdout] 109 | | plugs: vec![], [INFO] [stdout] ... | [INFO] [stdout] 113 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 92 + #[derive(Default)] [INFO] [stdout] 93 | struct Settings { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/store.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | toml::from_str(&s).map_err(|e| format!("{}", e)) [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/nvim/handler.rs:80:37 [INFO] [stdout] | [INFO] [stdout] 80 | / ... ev_name [INFO] [stdout] 81 | | ... .as_str() [INFO] [stdout] 82 | | ... .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 82 - .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] 82 + .ok_or("Event name does not exists")?, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> src/nvim/handler.rs:123:41 [INFO] [stdout] | [INFO] [stdout] 123 | / ... req_name [INFO] [stdout] 124 | | ... .as_str() [INFO] [stdout] 125 | | ... .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] | |______________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 125 - .ok_or_else(|| "Event name does not exists")?, [INFO] [stdout] 125 + .ok_or("Event name does not exists")?, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/nvim/handler.rs:182:74 [INFO] [stdout] | [INFO] [stdout] 182 | let call_reapint_mode = redraw_handler::call(ui, &ev_name, args)?; [INFO] [stdout] | ^^^^^^^^ help: change this to: `ev_name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this manual char comparison can be written more succinctly [INFO] [stdout] --> src/plug_manager/plugin_settings_dlg.rs:91:35 [INFO] [stdout] | [INFO] [stdout] 91 | if let Some(idx) = path.rfind(|c| c == '/' || c == '\\') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using an array of `char`: `['/', '\\']` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison [INFO] [stdout] = note: `#[warn(clippy::manual_pattern_char_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:47:21 [INFO] [stdout] | [INFO] [stdout] 47 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 47 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 47 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | Err(io::Error::new( [INFO] [stdout] | _____________^ [INFO] [stdout] 53 | | io::ErrorKind::Other, [INFO] [stdout] 54 | | format!( [INFO] [stdout] 55 | | "curl exit with error:\n{}", [INFO] [stdout] ... | [INFO] [stdout] 60 | | ), [INFO] [stdout] 61 | | )) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 52 ~ Err(io::Error::other( [INFO] [stdout] 53 ~ format!( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 70 - scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] 70 + if let Some(c) = scroll.get_style_context() { c.add_class("view") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/nvim/redraw_handler.rs:167:45 [INFO] [stdout] | [INFO] [stdout] 167 | let prefer_dark_theme = match try_str!(args.get(1).cloned().unwrap_or(Value::from("off"))) { [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 168 | | "on" => true, [INFO] [stdout] 169 | | _ => false, [INFO] [stdout] 170 | | }; [INFO] [stdout] | |_____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 167 - let prefer_dark_theme = match try_str!(args.get(1).cloned().unwrap_or(Value::from("off"))) { [INFO] [stdout] 168 - "on" => true, [INFO] [stdout] 169 - _ => false, [INFO] [stdout] 170 - }; [INFO] [stdout] 167 + let prefer_dark_theme = matches!(try_str!(args.get(1).cloned().unwrap_or(Value::from("off"))), "on"); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/nvim/redraw_handler.rs:201:70 [INFO] [stdout] | [INFO] [stdout] 201 | let t = clipboard.wait_for_text().unwrap_or_else(|| String::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `String::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/popup_menu.rs:101:58 [INFO] [stdout] | [INFO] [stdout] 101 | let kind_exists = ctx.menu_items.iter().find(|i| i.kind.len() > 0).is_some(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!i.kind.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/popup_menu.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if max_menu_line.menu.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!max_menu_line.menu.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/popup_menu.rs:190:42 [INFO] [stdout] | [INFO] [stdout] 190 | self.info_label.set_text(&info); [INFO] [stdout] | ^^^^^ help: change this to: `info` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/popup_menu.rs:239:49 [INFO] [stdout] | [INFO] [stdout] 239 | tree_button_press(tree, ev, &mut *nvim, ""); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/popup_menu.rs:249:38 [INFO] [stdout] | [INFO] [stdout] 249 | input::gtk_key_press(&mut *nvim, ev) [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/popup_menu.rs:377:5 [INFO] [stdout] | [INFO] [stdout] 377 | / match gtk::CssProviderExt::load_from_data( [INFO] [stdout] 378 | | css_provider, [INFO] [stdout] 379 | | &format!( [INFO] [stdout] 380 | | ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] ... | [INFO] [stdout] 388 | | Ok(_) => (), [INFO] [stdout] 389 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 377 ~ if let Err(e) = gtk::CssProviderExt::load_from_data( [INFO] [stdout] 378 + css_provider, [INFO] [stdout] 379 + &format!( [INFO] [stdout] 380 + ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] 381 + .view {{ background-color: {}; }}", [INFO] [stdout] 382 + fg.to_hex(), [INFO] [stdout] 383 + bg.to_hex(), [INFO] [stdout] 384 + color_model.pmenu_bg().to_hex(), [INFO] [stdout] 385 + ).as_bytes(), [INFO] [stdout] 386 ~ ) { error!("Can't update css {}", e) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/popup_menu.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | / &format!( [INFO] [stdout] 380 | | ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] 381 | | .view {{ background-color: {}; }}", [INFO] [stdout] 382 | | fg.to_hex(), [INFO] [stdout] 383 | | bg.to_hex(), [INFO] [stdout] 384 | | color_model.pmenu_bg().to_hex(), [INFO] [stdout] 385 | | ).as_bytes(), [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 379 ~ format!( [INFO] [stdout] 380 + ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] 381 + .view {{ background-color: {}; }}", [INFO] [stdout] 382 + fg.to_hex(), [INFO] [stdout] 383 + bg.to_hex(), [INFO] [stdout] 384 + color_model.pmenu_bg().to_hex(), [INFO] [stdout] 385 ~ ).as_bytes(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/project.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | self.store.take().map(|s| s.save()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 282 - self.store.take().map(|s| s.save()); [INFO] [stdout] 282 + if let Some(s) = self.store.take() { s.save() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/nvim/mod.rs:185:21 [INFO] [stdout] | [INFO] [stdout] 185 | &mut *nvim, [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/ui.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 46 | / add_plug_btn.get_style_context().map(|c| { [INFO] [stdout] 47 | | c.add_class("suggested-action") [INFO] [stdout] 48 | | }); [INFO] [stdout] | |__________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 46 - add_plug_btn.get_style_context().map(|c| { [INFO] [stdout] 47 - c.add_class("suggested-action") [INFO] [stdout] 48 - }); [INFO] [stdout] 46 + if let Some(c) = add_plug_btn.get_style_context() { c.add_class("suggested-action") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:77:36 [INFO] [stdout] | [INFO] [stdout] 77 | add_vimawesome_tab(&pages, &self.manager, &plugs_panel); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `self.manager` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/ui.rs:135:9 [INFO] [stdout] | [INFO] [stdout] 135 | scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 135 - scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] 135 + if let Some(c) = scroll.get_style_context() { c.add_class("view") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:139:55 [INFO] [stdout] | [INFO] [stdout] 139 | let row = create_plug_row(idx, plug_info, &self.manager); [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `self.manager` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:148:48 [INFO] [stdout] | [INFO] [stdout] 148 | &create_up_down_btns(&plugs_panel, &self.manager), [INFO] [stdout] | ^^^^^^^^^^^^^ help: change this to: `self.manager` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/plug_manager/ui.rs:164:59 [INFO] [stdout] | [INFO] [stdout] 164 | gtk::Button::new_from_icon_name("go-up-symbolic", gtk_sys::GTK_ICON_SIZE_BUTTON as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `gtk_sys::GTK_ICON_SIZE_BUTTON` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: casting to the same type is unnecessary (`i32` -> `i32`) [INFO] [stdout] --> src/plug_manager/ui.rs:166:61 [INFO] [stdout] | [INFO] [stdout] 166 | gtk::Button::new_from_icon_name("go-down-symbolic", gtk_sys::GTK_ICON_SIZE_BUTTON as i32); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `gtk_sys::GTK_ICON_SIZE_BUTTON` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/project.rs:611:24 [INFO] [stdout] | [INFO] [stdout] 611 | toml::from_str(&s).map_err(|e| format!("{}", e)) [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/plug_manager/ui.rs:219:42 [INFO] [stdout] | [INFO] [stdout] 219 | add_plugin(&manager, &*plugs_panel.borrow(), new_plug); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&plugs_panel.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/render/itemize.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / if let Some(start_index) = start_index { [INFO] [stdout] 39 | | Some((start_index, end_index - start_index)) [INFO] [stdout] 40 | | } else { [INFO] [stdout] 41 | | None [INFO] [stdout] 42 | | } [INFO] [stdout] | |_________^ help: try: `start_index.map(|start_index| (start_index, end_index - start_index))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/ui.rs:393:9 [INFO] [stdout] | [INFO] [stdout] 393 | categories.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 393 - categories.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] 393 + if let Some(c) = categories.get_style_context() { c.add_class("view") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/plug_manager/ui.rs:403:56 [INFO] [stdout] | [INFO] [stdout] 403 | clone!(stack, rows => move |_, row| if let &Some(ref row) = row { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 403 - clone!(stack, rows => move |_, row| if let &Some(ref row) = row { [INFO] [stdout] 403 + clone!(stack, rows => move |_, row| if let Some(row) = row { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:405:62 [INFO] [stdout] | [INFO] [stdout] 405 | if let Some(child) = stack.get_child_by_name(&r.1) { [INFO] [stdout] | ^^^^ help: change this to: `r.1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/ui.rs:407:34 [INFO] [stdout] | [INFO] [stdout] 407 | row_selected(&r.1); [INFO] [stdout] | ^^^^ help: change this to: `r.1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/plug_manager/ui.rs:404:25 [INFO] [stdout] | [INFO] [stdout] 404 | if let Some(ref r) = rows.borrow().iter().find(|r| r.0 == *row) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 404 - if let Some(ref r) = rows.borrow().iter().find(|r| r.0 == *row) { [INFO] [stdout] 404 + if let Some(r) = rows.borrow().iter().find(|r| r.0 == *row) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/render/mod.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | let double_width = cursor_line [INFO] [stdout] | ________________________________^ [INFO] [stdout] 74 | | .line [INFO] [stdout] 75 | | .get(cursor_col + 1) [INFO] [stdout] 76 | | .map_or(false, |c| c.attrs.double_width); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 76 - .map_or(false, |c| c.attrs.double_width); [INFO] [stdout] 76 + .is_some_and(|c| c.attrs.double_width); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/render/mod.rs:78:62 [INFO] [stdout] | [INFO] [stdout] 78 | cursor.draw(ctx, font_ctx, line_y, double_width, &color_model); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `color_model` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/plug_manager/vim_plug.rs:53:29 [INFO] [stdout] | [INFO] [stdout] 53 | / ... if let Some(uri) = uri { [INFO] [stdout] 54 | | ... Some(VimPlugInfo::new(name.to_owned(), uri.to_owned())) [INFO] [stdout] 55 | | ... } else { [INFO] [stdout] 56 | | ... None [INFO] [stdout] 57 | | ... } [INFO] [stdout] | |_______________________^ help: try: `uri.map(|uri| VimPlugInfo::new(name.to_owned(), uri.to_owned()))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/plug_manager/vim_plug.rs:72:13 [INFO] [stdout] | [INFO] [stdout] 72 | / loaded_plug [INFO] [stdout] 73 | | .ok_and_report() [INFO] [stdout] 74 | | .and_then(|loaded_plug| loaded_plug.as_i64()) [INFO] [stdout] 75 | | .map_or(false, |loaded_plug| if loaded_plug > 0 { [INFO] [stdout] ... | [INFO] [stdout] 78 | | false [INFO] [stdout] 79 | | }) [INFO] [stdout] | |__________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 75 - .map_or(false, |loaded_plug| if loaded_plug > 0 { [INFO] [stdout] 75 + .is_some_and(|loaded_plug| if loaded_plug > 0 { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this if-then-else expression returns a bool literal [INFO] [stdout] --> src/plug_manager/vim_plug.rs:75:46 [INFO] [stdout] | [INFO] [stdout] 75 | .map_or(false, |loaded_plug| if loaded_plug > 0 { [INFO] [stdout] | ______________________________________________^ [INFO] [stdout] 76 | | true [INFO] [stdout] 77 | | } else { [INFO] [stdout] 78 | | false [INFO] [stdout] 79 | | }) [INFO] [stdout] | |_________________^ help: you can reduce it to: `loaded_plug > 0` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_bool [INFO] [stdout] = note: `#[warn(clippy::needless_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/settings.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | &mut *shell.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut shell.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/settings.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | monospace_font_changed(&mut *shell.borrow_mut(), &mut *state.borrow_mut()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut shell.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/settings.rs:85:66 [INFO] [stdout] | [INFO] [stdout] 85 | monospace_font_changed(&mut *shell.borrow_mut(), &mut *state.borrow_mut()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/settings.rs:101:27 [INFO] [stdout] | [INFO] [stdout] 101 | state.update_font(&mut shell); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `shell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> src/plug_manager/store.rs:106:1 [INFO] [stdout] | [INFO] [stdout] 106 | / impl Default for Settings { [INFO] [stdout] 107 | | fn default() -> Self { [INFO] [stdout] 108 | | Settings { [INFO] [stdout] 109 | | plugs: vec![], [INFO] [stdout] ... | [INFO] [stdout] 113 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute [INFO] [stdout] | [INFO] [stdout] 92 + #[derive(Default)] [INFO] [stdout] 93 | struct Settings { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/plug_manager/store.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | toml::from_str(&s).map_err(|e| format!("{}", e)) [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/shell.rs:137:17 [INFO] [stdout] | [INFO] [stdout] 137 | command_cb: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cb` after checking its variant with `is_some` [INFO] [stdout] --> src/shell.rs:223:57 [INFO] [stdout] | [INFO] [stdout] 222 | if cb.is_some() { [INFO] [stdout] | --------------- help: try: `if let Some() = cb` [INFO] [stdout] 223 | self.detach_cb = Some(Box::new(RefCell::new(cb.unwrap()))); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cb` after checking its variant with `is_some` [INFO] [stdout] --> src/shell.rs:234:63 [INFO] [stdout] | [INFO] [stdout] 233 | if cb.is_some() { [INFO] [stdout] | --------------- help: try: `if let Some() = cb` [INFO] [stdout] 234 | self.nvim_started_cb = Some(Box::new(RefCell::new(cb.unwrap()))); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cb` after checking its variant with `is_some` [INFO] [stdout] --> src/shell.rs:245:45 [INFO] [stdout] | [INFO] [stdout] 244 | if cb.is_some() { [INFO] [stdout] | --------------- help: try: `if let Some() = cb` [INFO] [stdout] 245 | self.command_cb = Some(Box::new(cb.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this manual char comparison can be written more succinctly [INFO] [stdout] --> src/plug_manager/plugin_settings_dlg.rs:91:35 [INFO] [stdout] | [INFO] [stdout] 91 | if let Some(idx) = path.rfind(|c| c == '/' || c == '\\') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using an array of `char`: `['/', '\\']` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_pattern_char_comparison [INFO] [stdout] = note: `#[warn(clippy::manual_pattern_char_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:47:21 [INFO] [stdout] | [INFO] [stdout] 47 | io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] = note: `#[warn(clippy::io_other_error)]` on by default [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 47 - io::Error::new(io::ErrorKind::Other, e) [INFO] [stdout] 47 + io::Error::other(e) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this can be `std::io::Error::other(_)` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:52:13 [INFO] [stdout] | [INFO] [stdout] 52 | Err(io::Error::new( [INFO] [stdout] | _____________^ [INFO] [stdout] 53 | | io::ErrorKind::Other, [INFO] [stdout] 54 | | format!( [INFO] [stdout] 55 | | "curl exit with error:\n{}", [INFO] [stdout] ... | [INFO] [stdout] 60 | | ), [INFO] [stdout] 61 | | )) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error [INFO] [stdout] help: use `std::io::Error::other` [INFO] [stdout] | [INFO] [stdout] 52 ~ Err(io::Error::other( [INFO] [stdout] 53 ~ format!( [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/plug_manager/vimawesome.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 70 | scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 70 - scroll.get_style_context().map(|c| c.add_class("view")); [INFO] [stdout] 70 + if let Some(c) = scroll.get_style_context() { c.add_class("view") } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:683:30 [INFO] [stdout] | [INFO] [stdout] 683 | gtk_button_press(&mut *ref_state.borrow_mut(), &ref_ui_state, ev, &menu) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:692:21 [INFO] [stdout] | [INFO] [stdout] 692 | &mut *ref_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:693:21 [INFO] [stdout] | [INFO] [stdout] 693 | &mut *ref_ui_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_ui_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:704:21 [INFO] [stdout] | [INFO] [stdout] 704 | &mut *ref_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:705:21 [INFO] [stdout] | [INFO] [stdout] 705 | &mut *ref_ui_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_ui_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:750:17 [INFO] [stdout] | [INFO] [stdout] 750 | &mut *ref_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:751:17 [INFO] [stdout] | [INFO] [stdout] 751 | &mut *ref_ui_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_ui_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/popup_menu.rs:101:58 [INFO] [stdout] | [INFO] [stdout] 101 | let kind_exists = ctx.menu_items.iter().find(|i| i.kind.len() > 0).is_some(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!i.kind.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:759:62 [INFO] [stdout] | [INFO] [stdout] 759 | .connect_focus_in_event(move |_, _| gtk_focus_in(&mut *ref_state.borrow_mut())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/popup_menu.rs:128:12 [INFO] [stdout] | [INFO] [stdout] 128 | if max_menu_line.menu.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!max_menu_line.menu.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/popup_menu.rs:190:42 [INFO] [stdout] | [INFO] [stdout] 190 | self.info_label.set_text(&info); [INFO] [stdout] | ^^^^^ help: change this to: `info` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:764:64 [INFO] [stdout] | [INFO] [stdout] 764 | .connect_focus_out_event(move |_, _| gtk_focus_out(&mut *ref_state.borrow_mut())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1107:22 [INFO] [stdout] | [INFO] [stdout] 1107 | draw_content(&*state, ctx); [INFO] [stdout] | ^^^^^^^ help: try: `&state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/popup_menu.rs:239:49 [INFO] [stdout] | [INFO] [stdout] 239 | tree_button_press(tree, ev, &mut *nvim, ""); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1109:27 [INFO] [stdout] | [INFO] [stdout] 1109 | draw_initializing(&*state, ctx); [INFO] [stdout] | ^^^^^^^ help: try: `&state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/popup_menu.rs:249:38 [INFO] [stdout] | [INFO] [stdout] 249 | input::gtk_key_press(&mut *nvim, ev) [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/shell.rs:1174:17 [INFO] [stdout] | [INFO] [stdout] 1174 | (&mut *cb.borrow_mut())(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(*cb.borrow_mut())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/shell.rs:1203:13 [INFO] [stdout] | [INFO] [stdout] 1203 | let &(ref lock, ref cvar) = &*pair2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 1203 - let &(ref lock, ref cvar) = &*pair2; [INFO] [stdout] 1203 + let (lock, cvar) = &*pair2; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/popup_menu.rs:377:5 [INFO] [stdout] | [INFO] [stdout] 377 | / match gtk::CssProviderExt::load_from_data( [INFO] [stdout] 378 | | css_provider, [INFO] [stdout] 379 | | &format!( [INFO] [stdout] 380 | | ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] ... | [INFO] [stdout] 388 | | Ok(_) => (), [INFO] [stdout] 389 | | }; [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 377 ~ if let Err(e) = gtk::CssProviderExt::load_from_data( [INFO] [stdout] 378 + css_provider, [INFO] [stdout] 379 + &format!( [INFO] [stdout] 380 + ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] 381 + .view {{ background-color: {}; }}", [INFO] [stdout] 382 + fg.to_hex(), [INFO] [stdout] 383 + bg.to_hex(), [INFO] [stdout] 384 + color_model.pmenu_bg().to_hex(), [INFO] [stdout] 385 + ).as_bytes(), [INFO] [stdout] 386 ~ ) { error!("Can't update css {}", e) }; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/shell.rs:1212:9 [INFO] [stdout] | [INFO] [stdout] 1212 | let &(ref lock, ref cvar) = &*pair; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 1212 - let &(ref lock, ref cvar) = &*pair; [INFO] [stdout] 1212 + let (lock, cvar) = &*pair; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/popup_menu.rs:379:9 [INFO] [stdout] | [INFO] [stdout] 379 | / &format!( [INFO] [stdout] 380 | | ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] 381 | | .view {{ background-color: {}; }}", [INFO] [stdout] 382 | | fg.to_hex(), [INFO] [stdout] 383 | | bg.to_hex(), [INFO] [stdout] 384 | | color_model.pmenu_bg().to_hex(), [INFO] [stdout] 385 | | ).as_bytes(), [INFO] [stdout] | |____________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 379 ~ format!( [INFO] [stdout] 380 + ".view :selected {{ color: {}; background-color: {};}}\n [INFO] [stdout] 381 + .view {{ background-color: {}; }}", [INFO] [stdout] 382 + fg.to_hex(), [INFO] [stdout] 383 + bg.to_hex(), [INFO] [stdout] 384 + color_model.pmenu_bg().to_hex(), [INFO] [stdout] 385 ~ ).as_bytes(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shell.rs:1270:54 [INFO] [stdout] | [INFO] [stdout] 1270 | .draw(ctx, &render_state.font_ctx, y, false, &color_model); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `color_model` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `map(f)` on an `Option` value where `f` is a closure that returns the unit type `()` [INFO] [stdout] --> src/project.rs:282:9 [INFO] [stdout] | [INFO] [stdout] 282 | self.store.take().map(|s| s.save()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stdout] help: use `if let` instead [INFO] [stdout] | [INFO] [stdout] 282 - self.store.take().map(|s| s.save()); [INFO] [stdout] 282 + if let Some(s) = self.store.take() { s.save() } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1329:57 [INFO] [stdout] | [INFO] [stdout] 1329 | render_state.color_model.theme.queue_update(&mut *nvim); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shell.rs:1439:25 [INFO] [stdout] | [INFO] [stdout] 1439 | menu_items: &menu, [INFO] [stdout] | ^^^^^ help: change this to: `menu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/project.rs:611:24 [INFO] [stdout] | [INFO] [stdout] 611 | toml::from_str(&s).map_err(|e| format!("{}", e)) [INFO] [stdout] | ^^ help: change this to: `s` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/shell.rs:1480:18 [INFO] [stdout] | [INFO] [stdout] 1480 | .map(|mode_info_map| mode::ModeInfo::new(mode_info_map)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `mode::ModeInfo::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1561:27 [INFO] [stdout] | [INFO] [stdout] 1561 | self.cmd_line.pos(&*render_state, pos, level); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1567:36 [INFO] [stdout] | [INFO] [stdout] 1567 | self.cmd_line.special_char(&*render_state, c, shift, level); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1573:35 [INFO] [stdout] | [INFO] [stdout] 1573 | .show_wildmenu(items, &*self.render_state.borrow(), self.max_popup_width()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell_dlg.rs:12:31 [INFO] [stdout] | [INFO] [stdout] 12 | match get_changed_buffers(&*shell) { [INFO] [stdout] | ^^^^^^^ help: try: `&shell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell_dlg.rs:15:43 [INFO] [stdout] | [INFO] [stdout] 15 | show_not_saved_dlg(comps, &*shell, &vec) [INFO] [stdout] | ^^^^^^^ help: try: `&shell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard pattern covers any other pattern as it will match anyway [INFO] [stdout] --> src/shell_dlg.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | CANCEL_ID | _ => false, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider handling `_` separately [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_in_or_patterns [INFO] [stdout] = note: `#[warn(clippy::wildcard_in_or_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/subscriptions.rs:74:57 [INFO] [stdout] | [INFO] [stdout] 74 | let entry = self.0.entry(event_name.to_owned()).or_insert(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/subscriptions.rs:78:24 [INFO] [stdout] | [INFO] [stdout] 78 | args: args.into_iter().map(|&s| s.to_owned()).collect(), [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/subscriptions.rs:95:66 [INFO] [stdout] | [INFO] [stdout] 95 | .fold("".to_owned(), |acc, arg| acc + ", " + &arg); [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/main.rs:149:10 [INFO] [stdout] | [INFO] [stdout] 149 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:196:14 [INFO] [stdout] | [INFO] [stdout] 196 | .map(|timeout| Duration::from_secs(timeout)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Duration::from_secs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/cmd_line.rs:485:46 [INFO] [stdout] | [INFO] [stdout] 485 | let list_store = gtk::ListStore::new(&vec![gtk::Type::String; 1]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[gtk::Type::String; 1]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/popup_menu.rs:155:46 [INFO] [stdout] | [INFO] [stdout] 155 | let list_store = gtk::ListStore::new(&vec![gtk::Type::String; 4]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[gtk::Type::String; 4]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/theme.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn pmenu(&self) -> Ref { [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] 39 | pub fn pmenu(&self) -> Ref<'_, Pmenu> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/render/itemize.rs:38:9 [INFO] [stdout] | [INFO] [stdout] 38 | / if let Some(start_index) = start_index { [INFO] [stdout] 39 | | Some((start_index, end_index - start_index)) [INFO] [stdout] 40 | | } else { [INFO] [stdout] 41 | | None [INFO] [stdout] 42 | | } [INFO] [stdout] | |_________^ help: try: `start_index.map(|start_index| (start_index, end_index - start_index))` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/theme.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn cursor(&self) -> Ref { [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] 43 | pub fn cursor(&self) -> Ref<'_, Cursor> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/ui.rs:483:10 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `WindowState` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_WindowState` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/ui.rs:483:21 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `WindowState` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_WindowState` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui.rs:537:19 [INFO] [stdout] | [INFO] [stdout] 537 | pub fn borrow(&self) -> Ref { [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] 537 | pub fn borrow(&self) -> Ref<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui.rs:542:23 [INFO] [stdout] | [INFO] [stdout] 542 | pub fn borrow_mut(&self) -> RefMut { [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] 542 | pub fn borrow_mut(&self) -> RefMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/file_browser.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | fn nvim(&self) -> Option { [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] 105 | fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/render/mod.rs:73:32 [INFO] [stdout] | [INFO] [stdout] 73 | let double_width = cursor_line [INFO] [stdout] | ________________________________^ [INFO] [stdout] 74 | | .line [INFO] [stdout] 75 | | .get(cursor_col + 1) [INFO] [stdout] 76 | | .map_or(false, |c| c.attrs.double_width); [INFO] [stdout] | |________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 76 - .map_or(false, |c| c.attrs.double_width); [INFO] [stdout] 76 + .is_some_and(|c| c.attrs.double_width); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/render/mod.rs:78:62 [INFO] [stdout] | [INFO] [stdout] 78 | cursor.draw(ctx, font_ctx, line_y, double_width, &color_model); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `color_model` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn borrow(&self) -> Option { [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] 89 | pub fn borrow(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn try_borrow(&self) -> Option { [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] 93 | pub fn try_borrow(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn try_nvim(&self) -> Option { [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] 167 | pub fn try_nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn nvim(&self) -> Option { [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] 178 | pub fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/plug_manager/vim_plug.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | fn nvim(&self) -> Option { [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] 21 | fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Settings` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Settings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Settings` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Settings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:123:10 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PlugInfo` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PlugInfo` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PlugInfo` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PlugInfo` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/settings.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | &mut *shell.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut shell.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/vimawesome.rs:144:10 [INFO] [stdout] | [INFO] [stdout] 144 | #[derive(Deserialize, Debug)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `DescriptionList` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_DescriptionList` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/settings.rs:85:40 [INFO] [stdout] | [INFO] [stdout] 85 | monospace_font_changed(&mut *shell.borrow_mut(), &mut *state.borrow_mut()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut shell.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/settings.rs:85:66 [INFO] [stdout] | [INFO] [stdout] 85 | monospace_font_changed(&mut *shell.borrow_mut(), &mut *state.borrow_mut()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/vimawesome.rs:155:10 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Deserialize, Debug, Clone)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Description` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Description` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/settings.rs:101:27 [INFO] [stdout] | [INFO] [stdout] 101 | state.update_font(&mut shell); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `shell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:583:10 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectSettings` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ProjectSettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:583:21 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectSettings` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ProjectSettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:588:10 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectEntrySettings` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ProjectEntrySettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:588:21 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectEntrySettings` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ProjectEntrySettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/render/model_clip_iterator.rs:44:10 [INFO] [stdout] | [INFO] [stdout] 41 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 42 | ctx: &'a cairo::Context, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 43 | cell_metrics: &'a CellMetrics, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 44 | ) -> ModelClipIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ 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: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 44 | ) -> ModelClipIterator<'a>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shell.rs:193:29 [INFO] [stdout] | [INFO] [stdout] 193 | pub fn nvim_non_blocked(&self) -> Option { [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] 193 | pub fn nvim_non_blocked(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shell.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn nvim(&self) -> Option { [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] 197 | pub fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shell.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 201 | pub fn try_nvim(&self) -> Option { [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] 201 | pub fn try_nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/shell.rs:137:17 [INFO] [stdout] | [INFO] [stdout] 137 | command_cb: Option>, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cb` after checking its variant with `is_some` [INFO] [stdout] --> src/shell.rs:223:57 [INFO] [stdout] | [INFO] [stdout] 222 | if cb.is_some() { [INFO] [stdout] | --------------- help: try: `if let Some() = cb` [INFO] [stdout] 223 | self.detach_cb = Some(Box::new(RefCell::new(cb.unwrap()))); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cb` after checking its variant with `is_some` [INFO] [stdout] --> src/shell.rs:234:63 [INFO] [stdout] | [INFO] [stdout] 233 | if cb.is_some() { [INFO] [stdout] | --------------- help: try: `if let Some() = cb` [INFO] [stdout] 234 | self.nvim_started_cb = Some(Box::new(RefCell::new(cb.unwrap()))); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `cb` after checking its variant with `is_some` [INFO] [stdout] --> src/shell.rs:245:45 [INFO] [stdout] | [INFO] [stdout] 244 | if cb.is_some() { [INFO] [stdout] | --------------- help: try: `if let Some() = cb` [INFO] [stdout] 245 | self.command_cb = Some(Box::new(cb.unwrap())); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:683:30 [INFO] [stdout] | [INFO] [stdout] 683 | gtk_button_press(&mut *ref_state.borrow_mut(), &ref_ui_state, ev, &menu) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:692:21 [INFO] [stdout] | [INFO] [stdout] 692 | &mut *ref_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:693:21 [INFO] [stdout] | [INFO] [stdout] 693 | &mut *ref_ui_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_ui_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:704:21 [INFO] [stdout] | [INFO] [stdout] 704 | &mut *ref_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:705:21 [INFO] [stdout] | [INFO] [stdout] 705 | &mut *ref_ui_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_ui_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:750:17 [INFO] [stdout] | [INFO] [stdout] 750 | &mut *ref_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:751:17 [INFO] [stdout] | [INFO] [stdout] 751 | &mut *ref_ui_state.borrow_mut(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_ui_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:759:62 [INFO] [stdout] | [INFO] [stdout] 759 | .connect_focus_in_event(move |_, _| gtk_focus_in(&mut *ref_state.borrow_mut())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:764:64 [INFO] [stdout] | [INFO] [stdout] 764 | .connect_focus_out_event(move |_, _| gtk_focus_out(&mut *ref_state.borrow_mut())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&mut ref_state.borrow_mut()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1107:22 [INFO] [stdout] | [INFO] [stdout] 1107 | draw_content(&*state, ctx); [INFO] [stdout] | ^^^^^^^ help: try: `&state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1109:27 [INFO] [stdout] | [INFO] [stdout] 1109 | draw_initializing(&*state, ctx); [INFO] [stdout] | ^^^^^^^ help: try: `&state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression borrows a value the compiler would automatically borrow [INFO] [stdout] --> src/shell.rs:1174:17 [INFO] [stdout] | [INFO] [stdout] 1174 | (&mut *cb.borrow_mut())(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `(*cb.borrow_mut())` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/shell.rs:1203:13 [INFO] [stdout] | [INFO] [stdout] 1203 | let &(ref lock, ref cvar) = &*pair2; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 1203 - let &(ref lock, ref cvar) = &*pair2; [INFO] [stdout] 1203 + let (lock, cvar) = &*pair2; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: dereferencing a tuple pattern where every element takes a reference [INFO] [stdout] --> src/shell.rs:1212:9 [INFO] [stdout] | [INFO] [stdout] 1212 | let &(ref lock, ref cvar) = &*pair; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference [INFO] [stdout] help: try removing the `&` and `ref` parts [INFO] [stdout] | [INFO] [stdout] 1212 - let &(ref lock, ref cvar) = &*pair; [INFO] [stdout] 1212 + let (lock, cvar) = &*pair; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shell.rs:1270:54 [INFO] [stdout] | [INFO] [stdout] 1270 | .draw(ctx, &render_state.font_ctx, y, false, &color_model); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `color_model` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1329:57 [INFO] [stdout] | [INFO] [stdout] 1329 | render_state.color_model.theme.queue_update(&mut *nvim); [INFO] [stdout] | ^^^^^^^^^^ help: try: `&mut nvim` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/shell.rs:1439:25 [INFO] [stdout] | [INFO] [stdout] 1439 | menu_items: &menu, [INFO] [stdout] | ^^^^^ help: change this to: `menu` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/shell.rs:1480:18 [INFO] [stdout] | [INFO] [stdout] 1480 | .map(|mode_info_map| mode::ModeInfo::new(mode_info_map)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `mode::ModeInfo::new` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1561:27 [INFO] [stdout] | [INFO] [stdout] 1561 | self.cmd_line.pos(&*render_state, pos, level); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1567:36 [INFO] [stdout] | [INFO] [stdout] 1567 | self.cmd_line.special_char(&*render_state, c, shift, level); [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `&render_state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell.rs:1573:35 [INFO] [stdout] | [INFO] [stdout] 1573 | .show_wildmenu(items, &*self.render_state.borrow(), self.max_popup_width()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&self.render_state.borrow()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell_dlg.rs:12:31 [INFO] [stdout] | [INFO] [stdout] 12 | match get_changed_buffers(&*shell) { [INFO] [stdout] | ^^^^^^^ help: try: `&shell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/shell_dlg.rs:15:43 [INFO] [stdout] | [INFO] [stdout] 15 | show_not_saved_dlg(comps, &*shell, &vec) [INFO] [stdout] | ^^^^^^^ help: try: `&shell` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: wildcard pattern covers any other pattern as it will match anyway [INFO] [stdout] --> src/shell_dlg.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | CANCEL_ID | _ => false, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: consider handling `_` separately [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wildcard_in_or_patterns [INFO] [stdout] = note: `#[warn(clippy::wildcard_in_or_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `or_insert` to construct default value [INFO] [stdout] --> src/subscriptions.rs:74:57 [INFO] [stdout] | [INFO] [stdout] 74 | let entry = self.0.entry(event_name.to_owned()).or_insert(Vec::new()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `or_default()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unwrap_or_default [INFO] [stdout] = note: `#[warn(clippy::unwrap_or_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/subscriptions.rs:78:24 [INFO] [stdout] | [INFO] [stdout] 78 | args: args.into_iter().map(|&s| s.to_owned()).collect(), [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/subscriptions.rs:95:66 [INFO] [stdout] | [INFO] [stdout] 95 | .fold("".to_owned(), |acc, arg| acc + ", " + &arg); [INFO] [stdout] | ^^^^ help: change this to: `arg` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> src/main.rs:149:10 [INFO] [stdout] | [INFO] [stdout] 149 | .into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/main.rs:196:14 [INFO] [stdout] | [INFO] [stdout] 196 | .map(|timeout| Duration::from_secs(timeout)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Duration::from_secs` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/main.rs:233:17 [INFO] [stdout] | [INFO] [stdout] 233 | vec!["neovim-gtk", "--nvim-bin-path=/test_path"] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["neovim-gtk", "--nvim-bin-path=/test_path"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/main.rs:245:17 [INFO] [stdout] | [INFO] [stdout] 245 | vec!["neovim-gtk", "--timeout=100"] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `["neovim-gtk", "--timeout=100"]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/cmd_line.rs:485:46 [INFO] [stdout] | [INFO] [stdout] 485 | let list_store = gtk::ListStore::new(&vec![gtk::Type::String; 1]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[gtk::Type::String; 1]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/popup_menu.rs:155:46 [INFO] [stdout] | [INFO] [stdout] 155 | let list_store = gtk::ListStore::new(&vec![gtk::Type::String; 4]); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[gtk::Type::String; 4]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/theme.rs:39:18 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn pmenu(&self) -> Ref { [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] 39 | pub fn pmenu(&self) -> Ref<'_, Pmenu> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/theme.rs:43:19 [INFO] [stdout] | [INFO] [stdout] 43 | pub fn cursor(&self) -> Ref { [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] 43 | pub fn cursor(&self) -> Ref<'_, Cursor> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/ui.rs:483:10 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `WindowState` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_WindowState` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/ui.rs:483:21 [INFO] [stdout] | [INFO] [stdout] 483 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `WindowState` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_WindowState` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui.rs:537:19 [INFO] [stdout] | [INFO] [stdout] 537 | pub fn borrow(&self) -> Ref { [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] 537 | pub fn borrow(&self) -> Ref<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ui.rs:542:23 [INFO] [stdout] | [INFO] [stdout] 542 | pub fn borrow_mut(&self) -> RefMut { [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] 542 | pub fn borrow_mut(&self) -> RefMut<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/file_browser.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | fn nvim(&self) -> Option { [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] 105 | fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:89:19 [INFO] [stdout] | [INFO] [stdout] 89 | pub fn borrow(&self) -> Option { [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] 89 | pub fn borrow(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:93:23 [INFO] [stdout] | [INFO] [stdout] 93 | pub fn try_borrow(&self) -> Option { [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] 93 | pub fn try_borrow(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:167:21 [INFO] [stdout] | [INFO] [stdout] 167 | pub fn try_nvim(&self) -> Option { [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] 167 | pub fn try_nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/nvim/client.rs:178:17 [INFO] [stdout] | [INFO] [stdout] 178 | pub fn nvim(&self) -> Option { [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] 178 | pub fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/plug_manager/vim_plug.rs:21:13 [INFO] [stdout] | [INFO] [stdout] 21 | fn nvim(&self) -> Option { [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] 21 | fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:91:10 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Settings` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Settings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:91:21 [INFO] [stdout] | [INFO] [stdout] 91 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Settings` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Settings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:123:10 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PlugInfo` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_PlugInfo` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/store.rs:123:21 [INFO] [stdout] | [INFO] [stdout] 123 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `PlugInfo` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_PlugInfo` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/vimawesome.rs:144:10 [INFO] [stdout] | [INFO] [stdout] 144 | #[derive(Deserialize, Debug)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `DescriptionList` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_DescriptionList` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/plug_manager/vimawesome.rs:155:10 [INFO] [stdout] | [INFO] [stdout] 155 | #[derive(Deserialize, Debug, Clone)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `Description` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Description` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:583:10 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectSettings` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ProjectSettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:583:21 [INFO] [stdout] | [INFO] [stdout] 583 | #[derive(Serialize, Deserialize, Default)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectSettings` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ProjectSettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:588:10 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectEntrySettings` is not local [INFO] [stdout] | `Serialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_ProjectEntrySettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/project.rs:588:21 [INFO] [stdout] | [INFO] [stdout] 588 | #[derive(Serialize, Deserialize)] [INFO] [stdout] | -^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | `ProjectEntrySettings` is not local [INFO] [stdout] | `Deserialize` is not local [INFO] [stdout] | move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_ProjectEntrySettings` [INFO] [stdout] | [INFO] [stdout] = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed [INFO] [stdout] = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive` [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint [INFO] [stdout] = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/render/model_clip_iterator.rs:44:10 [INFO] [stdout] | [INFO] [stdout] 41 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 42 | ctx: &'a cairo::Context, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 43 | cell_metrics: &'a CellMetrics, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 44 | ) -> ModelClipIterator; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ 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: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 44 | ) -> ModelClipIterator<'a>; [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shell.rs:193:29 [INFO] [stdout] | [INFO] [stdout] 193 | pub fn nvim_non_blocked(&self) -> Option { [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] 193 | pub fn nvim_non_blocked(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shell.rs:197:17 [INFO] [stdout] | [INFO] [stdout] 197 | pub fn nvim(&self) -> Option { [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] 197 | pub fn nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/shell.rs:201:21 [INFO] [stdout] | [INFO] [stdout] 201 | pub fn try_nvim(&self) -> Option { [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] 201 | pub fn try_nvim(&self) -> Option> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 41.71s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: syn v0.14.7 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1` [INFO] running `Command { std: "docker" "inspect" "ee8b0a4cb7c40e00ab678329d995411830d65edecf0ef91aec02abf00578b1b9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ee8b0a4cb7c40e00ab678329d995411830d65edecf0ef91aec02abf00578b1b9", kill_on_drop: false }` [INFO] [stdout] ee8b0a4cb7c40e00ab678329d995411830d65edecf0ef91aec02abf00578b1b9