[INFO] cloning repository https://github.com/kngwyu/fugu-shell [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/kngwyu/fugu-shell" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkngwyu%2Ffugu-shell", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkngwyu%2Ffugu-shell'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 716142a7c4f7c9b29a8a46bd6f51d05efc30cf9b [INFO] linting kngwyu/fugu-shell against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkngwyu%2Ffugu-shell" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/kngwyu/fugu-shell [INFO] finished tweaking git repo https://github.com/kngwyu/fugu-shell [INFO] tweaked toml for git repo https://github.com/kngwyu/fugu-shell written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/kngwyu/fugu-shell 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/kngwyu/fugu-shell 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] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded num v0.1.40 [INFO] [stderr] Downloaded walkdir v2.0.1 [INFO] [stderr] Downloaded trackable v0.2.8 [INFO] [stderr] Downloaded term v0.4.6 [INFO] [stderr] Downloaded slog v2.0.12 [INFO] [stderr] Downloaded if_chain v0.1.2 [INFO] [stderr] Downloaded quine-mc_cluskey v0.2.4 [INFO] [stderr] Downloaded slog-term v2.3.0 [INFO] [stderr] Downloaded ascii v0.8.6 [INFO] [stderr] Downloaded crossbeam v0.2.10 [INFO] [stderr] Downloaded cargo_metadata v0.2.3 [INFO] [stderr] Downloaded take_mut v0.1.3 [INFO] [stderr] Downloaded itertools v0.6.5 [INFO] [stderr] Downloaded clippy v0.0.177 [INFO] [stderr] Downloaded pulldown-cmark v0.0.15 [INFO] [stderr] Downloaded slog-async v2.1.0 [INFO] [stderr] Downloaded slog-scope v4.0.1 [INFO] [stderr] Downloaded slog-stdlog v3.0.2 [INFO] [stderr] Downloaded sloggers v0.2.4 [INFO] [stderr] Downloaded lazy_static v0.2.10 [INFO] [stderr] Downloaded clippy_lints v0.0.177 [INFO] [stderr] Downloaded same-file v1.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 398ce87bccd2362661994b807eb9e3e1d2e126be99f9331d6477b7eb08ac072e [INFO] running `Command { std: "docker" "start" "-a" "398ce87bccd2362661994b807eb9e3e1d2e126be99f9331d6477b7eb08ac072e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "398ce87bccd2362661994b807eb9e3e1d2e126be99f9331d6477b7eb08ac072e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "398ce87bccd2362661994b807eb9e3e1d2e126be99f9331d6477b7eb08ac072e", kill_on_drop: false }` [INFO] [stdout] 398ce87bccd2362661994b807eb9e3e1d2e126be99f9331d6477b7eb08ac072e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 78fbe32a59c1900f28c23442470398932ce2fbb88fec617daca8a1c4d0540ddd [INFO] running `Command { std: "docker" "start" "-a" "78fbe32a59c1900f28c23442470398932ce2fbb88fec617daca8a1c4d0540ddd", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Checking libc v0.2.33 [INFO] [stderr] Checking lazy_static v0.2.10 [INFO] [stderr] Checking num-traits v0.1.40 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking slog v2.0.12 [INFO] [stderr] Checking crossbeam v0.2.10 [INFO] [stderr] Checking log v0.3.8 [INFO] [stderr] Checking term v0.4.6 [INFO] [stderr] Checking take_mut v0.1.3 [INFO] [stderr] Checking strsim v0.6.0 [INFO] [stderr] Checking same-file v1.0.0 [INFO] [stderr] Checking utf8-ranges v1.0.0 [INFO] [stderr] Checking serde v1.0.21 [INFO] [stderr] Checking regex-syntax v0.4.1 [INFO] [stderr] Checking lazy_static v1.0.0 [INFO] [stderr] Compiling serde_derive_internals v0.17.0 [INFO] [stderr] Checking ascii v0.8.6 [INFO] [stderr] Checking unreachable v1.0.0 [INFO] [stderr] Checking walkdir v2.0.1 [INFO] [stderr] Checking thread_local v0.3.4 [INFO] [stderr] Checking time v0.1.38 [INFO] [stderr] Checking rand v0.3.18 [INFO] [stderr] Checking memchr v1.0.2 [INFO] [stderr] Checking isatty v0.1.6 [INFO] [stderr] Checking atty v0.2.3 [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking termion v1.5.1 [INFO] [stderr] Checking clap v2.29.0 [INFO] [stderr] Checking aho-corasick v0.6.3 [INFO] [stderr] Checking slog-scope v4.0.1 [INFO] [stderr] Checking slog-async v2.1.0 [INFO] [stderr] Checking slog-stdlog v3.0.2 [INFO] [stderr] Compiling serde_derive v1.0.21 [INFO] [stderr] Checking num-integer v0.1.35 [INFO] [stderr] Checking trackable v0.2.8 [INFO] [stderr] Checking regex v0.2.3 [INFO] [stderr] Checking num-iter v0.1.34 [INFO] [stderr] Checking num v0.1.40 [INFO] [stderr] Checking chrono v0.4.0 [INFO] [stderr] Checking slog-term v2.3.0 [INFO] [stderr] Checking sloggers v0.2.4 [INFO] [stderr] Checking fugu-shell v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/settings.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/settings.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/settings.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/builtin/mod.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | pub const BUILTIN_CMD: [&'static str; 2] = ["cd", "exit"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/editor.rs:182:17 [INFO] [stdout] | [INFO] [stdout] 182 | Point { x: x, y: y } [INFO] [stdout] | ^^^^ help: replace it with: `x` [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/editor.rs:182:23 [INFO] [stdout] | [INFO] [stdout] 182 | Point { x: x, y: y } [INFO] [stdout] | ^^^^ help: replace it with: `y` [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/fugu_env.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | path_cmds: path_cmds, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `path_cmds` [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/fugu_env.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | builtin_cmds: builtin_cmds, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `builtin_cmds` [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: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/fugu_screen.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | fn reset_scr(&mut self, u16, &PromptSetting) -> Result; [INFO] [stdout] | ^^^ help: try naming the parameter or explicitly ignoring it: `_: u16` [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/fugu_screen.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | fn reset_scr(&mut self, u16, &PromptSetting) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &PromptSetting` [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/fugu_screen.rs:44:28 [INFO] [stdout] | [INFO] [stdout] 44 | fn move_csr(&mut self, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Editor` [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/fugu_screen.rs:45:32 [INFO] [stdout] | [INFO] [stdout] 45 | fn print_editor(&mut self, &Editor, Range) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Editor` [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/fugu_screen.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | fn print_editor(&mut self, &Editor, Range) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Range` [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/fugu_screen.rs:46:34 [INFO] [stdout] | [INFO] [stdout] 46 | fn print_selector(&mut self, &Selector, &FuguEnv, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Selector` [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/fugu_screen.rs:46:45 [INFO] [stdout] | [INFO] [stdout] 46 | fn print_selector(&mut self, &Selector, &FuguEnv, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &FuguEnv` [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/fugu_screen.rs:46:55 [INFO] [stdout] | [INFO] [stdout] 46 | fn print_selector(&mut self, &Selector, &FuguEnv, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Editor` [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: unused import: `ScreenError` [INFO] [stdout] --> src/main.rs:27:31 [INFO] [stdout] | [INFO] [stdout] 27 | use fugu_screen::{FuguScreen, ScreenError}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ascii::AsciiChar` [INFO] [stdout] --> src/main.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | use ascii::AsciiChar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/settings.rs:1:15 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io::{self, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::str::FromStr` [INFO] [stdout] --> src/settings.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use std::str::FromStr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/settings.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> src/builtin/mod.rs:5:26 [INFO] [stdout] | [INFO] [stdout] 5 | pub const BUILTIN_CMD: [&'static str; 2] = ["cd", "exit"]; [INFO] [stdout] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/editor.rs:182:17 [INFO] [stdout] | [INFO] [stdout] 182 | Point { x: x, y: y } [INFO] [stdout] | ^^^^ help: replace it with: `x` [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/editor.rs:182:23 [INFO] [stdout] | [INFO] [stdout] 182 | Point { x: x, y: y } [INFO] [stdout] | ^^^^ help: replace it with: `y` [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/fugu_env.rs:39:13 [INFO] [stdout] | [INFO] [stdout] 39 | path_cmds: path_cmds, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `path_cmds` [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/fugu_env.rs:40:13 [INFO] [stdout] | [INFO] [stdout] 40 | builtin_cmds: builtin_cmds, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `builtin_cmds` [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: anonymous parameters are deprecated and will be removed in the next edition [INFO] [stdout] --> src/fugu_screen.rs:43:29 [INFO] [stdout] | [INFO] [stdout] 43 | fn reset_scr(&mut self, u16, &PromptSetting) -> Result; [INFO] [stdout] | ^^^ help: try naming the parameter or explicitly ignoring it: `_: u16` [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/fugu_screen.rs:43:34 [INFO] [stdout] | [INFO] [stdout] 43 | fn reset_scr(&mut self, u16, &PromptSetting) -> Result; [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &PromptSetting` [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/fugu_screen.rs:44:28 [INFO] [stdout] | [INFO] [stdout] 44 | fn move_csr(&mut self, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Editor` [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/fugu_screen.rs:45:32 [INFO] [stdout] | [INFO] [stdout] 45 | fn print_editor(&mut self, &Editor, Range) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Editor` [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/fugu_screen.rs:45:41 [INFO] [stdout] | [INFO] [stdout] 45 | fn print_editor(&mut self, &Editor, Range) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: Range` [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/fugu_screen.rs:46:34 [INFO] [stdout] | [INFO] [stdout] 46 | fn print_selector(&mut self, &Selector, &FuguEnv, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Selector` [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/fugu_screen.rs:46:45 [INFO] [stdout] | [INFO] [stdout] 46 | fn print_selector(&mut self, &Selector, &FuguEnv, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &FuguEnv` [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/fugu_screen.rs:46:55 [INFO] [stdout] | [INFO] [stdout] 46 | fn print_selector(&mut self, &Selector, &FuguEnv, &Editor) -> Result<(), ScreenError>; [INFO] [stdout] | ^^^^^^^ help: try naming the parameter or explicitly ignoring it: `_: &Editor` [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: unused import: `ScreenError` [INFO] [stdout] --> src/main.rs:27:31 [INFO] [stdout] | [INFO] [stdout] 27 | use fugu_screen::{FuguScreen, ScreenError}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ascii::AsciiChar` [INFO] [stdout] --> src/main.rs:40:5 [INFO] [stdout] | [INFO] [stdout] 40 | use ascii::AsciiChar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/common.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / lazy_static!{ [INFO] [stdout] 11 | | pub static ref MATCHES: ArgMatches<'static> = [INFO] [stdout] 12 | | clap_app!(fugu_shell => [INFO] [stdout] 13 | | (version: "0.0.1") [INFO] [stdout] ... | [INFO] [stdout] 40 | | }.ok().unwrap(); [INFO] [stdout] 41 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/common.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / lazy_static!{ [INFO] [stdout] 11 | | pub static ref MATCHES: ArgMatches<'static> = [INFO] [stdout] 12 | | clap_app!(fugu_shell => [INFO] [stdout] 13 | | (version: "0.0.1") [INFO] [stdout] ... | [INFO] [stdout] 40 | | }.ok().unwrap(); [INFO] [stdout] 41 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/common.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / lazy_static!{ [INFO] [stdout] 11 | | pub static ref MATCHES: ArgMatches<'static> = [INFO] [stdout] 12 | | clap_app!(fugu_shell => [INFO] [stdout] 13 | | (version: "0.0.1") [INFO] [stdout] ... | [INFO] [stdout] 40 | | }.ok().unwrap(); [INFO] [stdout] 41 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `Once::new()` function is now preferred [INFO] [stdout] --> src/common.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | / lazy_static!{ [INFO] [stdout] 11 | | pub static ref MATCHES: ArgMatches<'static> = [INFO] [stdout] 12 | | clap_app!(fugu_shell => [INFO] [stdout] 13 | | (version: "0.0.1") [INFO] [stdout] ... | [INFO] [stdout] 40 | | }.ok().unwrap(); [INFO] [stdout] 41 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/fugu_env.rs:56:65 [INFO] [stdout] | [INFO] [stdout] 56 | info!(LOGGER, "Regex Compile Failed, {:?}", why.description()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/fugu_screen.rs:33:33 [INFO] [stdout] | [INFO] [stdout] 33 | ScreenError(why.description().to_owned()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | impl_from_error!(io::Error); [INFO] [stdout] | --------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_from_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/main.rs:58:52 [INFO] [stdout] | [INFO] [stdout] 58 | Err(why) => panic!("Init Error, {:?}", why.description()), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/fugu_env.rs:56:65 [INFO] [stdout] | [INFO] [stdout] 56 | info!(LOGGER, "Regex Compile Failed, {:?}", why.description()); [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settings.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | mut stdout: &mut W, [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: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/fugu_screen.rs:33:33 [INFO] [stdout] | [INFO] [stdout] 33 | ScreenError(why.description().to_owned()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 39 | impl_from_error!(io::Error); [INFO] [stdout] | --------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_from_error` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s` [INFO] [stdout] --> src/exec.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let s = ""; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/main.rs:58:52 [INFO] [stdout] | [INFO] [stdout] 58 | Err(why) => panic!("Init Error, {:?}", why.description()), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cmd` [INFO] [stdout] --> src/builtin/mod.rs:32:17 [INFO] [stdout] | [INFO] [stdout] 32 | fn builtin_exit(cmd: &CommandStore) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_len` [INFO] [stdout] --> src/editor.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | let current_len = self.buffer[self.cursor_buf.y].len(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_len` [INFO] [stdout] --> src/editor.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | let current_len = self.buffer[self.cursor_buf.y].len(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_len` [INFO] [stdout] --> src/editor.rs:127:25 [INFO] [stdout] | [INFO] [stdout] 127 | let current_len = self.buffer[self.cursor_buf.y].len(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/settings.rs:24:9 [INFO] [stdout] | [INFO] [stdout] 24 | mut stdout: &mut W, [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: unused variable: `s` [INFO] [stdout] --> src/exec.rs:60:13 [INFO] [stdout] | [INFO] [stdout] 60 | let s = ""; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_s` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `cmd` [INFO] [stdout] --> src/builtin/mod.rs:32:17 [INFO] [stdout] | [INFO] [stdout] 32 | fn builtin_exit(cmd: &CommandStore) {} [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_cmd` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_len` [INFO] [stdout] --> src/editor.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | let current_len = self.buffer[self.cursor_buf.y].len(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_len` [INFO] [stdout] --> src/editor.rs:104:25 [INFO] [stdout] | [INFO] [stdout] 104 | let current_len = self.buffer[self.cursor_buf.y].len(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `current_len` [INFO] [stdout] --> src/editor.rs:127:25 [INFO] [stdout] | [INFO] [stdout] 127 | let current_len = self.buffer[self.cursor_buf.y].len(); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_current_len` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let mut cmd_list = CommandList::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stderr` is never read [INFO] [stdout] --> src/exec.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CommandStore { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 14 | pub stderr: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandStore` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_stderr` is never used [INFO] [stdout] --> src/exec.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl CommandStore { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn add_stderr(&mut self, s: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `upd_wd_commands` is never used [INFO] [stdout] --> src/exec.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl<'a> CommandList<'a> { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn upd_wd_commands(&mut self, wd: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `debug` is never used [INFO] [stdout] --> src/editor.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Editor { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn debug(&self, stdout: &mut W) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parse_result` is never read [INFO] [stdout] --> src/parser.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | parse_result: ParseResult, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `fugu_vars` and `env_vars` are never read [INFO] [stdout] --> src/fugu_env.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct FuguEnv<'a> { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | fugu_vars: Vec, // Fugu変数 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | env_vars: Vec, // 環境変数 [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `User` is never constructed [INFO] [stdout] --> src/fugu_env.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub enum CommandType { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 104 | User, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [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/exec.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / match env::var_os("PATH") { [INFO] [stdout] 62 | | Some(paths) => for path in env::split_paths(&paths) { [INFO] [stdout] 63 | | let dirname = path.to_str().unwrap().to_owned(); [INFO] [stdout] 64 | | for entry in WalkDir::new(&dirname).min_depth(1).max_depth(1) { [INFO] [stdout] ... | [INFO] [stdout] 76 | | None => {} [INFO] [stdout] 77 | | } [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] 61 ~ if let Some(paths) = env::var_os("PATH") { for path in env::split_paths(&paths) { [INFO] [stdout] 62 + let dirname = path.to_str().unwrap().to_owned(); [INFO] [stdout] 63 + for entry in WalkDir::new(&dirname).min_depth(1).max_depth(1) { [INFO] [stdout] 64 + let e = ok_or_continue!(entry); [INFO] [stdout] 65 + let fname = match e.file_name().to_os_string().into_string() { [INFO] [stdout] 66 + Ok(s) => s, [INFO] [stdout] 67 + Err(_) => panic!("Error in into_string"), [INFO] [stdout] 68 + }; [INFO] [stdout] 69 + let fdata = ok_or_continue!(e.metadata()); [INFO] [stdout] 70 + if fdata.is_file() { [INFO] [stdout] 71 + path_cmds.insert(fname); [INFO] [stdout] 72 + } [INFO] [stdout] 73 + } [INFO] [stdout] 74 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: spawned process is never `wait()`ed on [INFO] [stdout] --> src/exec.rs:117:17 [INFO] [stdout] | [INFO] [stdout] 117 | cmd.spawn().expect("failed to execute process"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- help: try: `.wait()` [INFO] [stdout] | [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/builtin/mod.rs:46:24 [INFO] [stdout] | [INFO] [stdout] 46 | if !env::set_current_dir(&cmd.args[0]).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::set_current_dir(&cmd.args[0]).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/builtin/mod.rs:58:20 [INFO] [stdout] | [INFO] [stdout] 58 | if !env::set_current_dir(&dir_str).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::set_current_dir(&dir_str).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant guard [INFO] [stdout] --> src/builtin/mod.rs:37:16 [INFO] [stdout] | [INFO] [stdout] 37 | val if val == 1 => { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_guards [INFO] [stdout] = note: `#[warn(clippy::redundant_guards)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 37 - val if val == 1 => { [INFO] [stdout] 37 + 1 => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/main.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 64 | let mut cmd_list = CommandList::new(); [INFO] [stdout] | ----^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stderr` is never read [INFO] [stdout] --> src/exec.rs:14:9 [INFO] [stdout] | [INFO] [stdout] 9 | pub struct CommandStore { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 14 | pub stderr: Option, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandStore` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/editor.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / let mut v = Vec::new(); [INFO] [stdout] 23 | | v.push(String::new()); [INFO] [stdout] | |______________________________^ help: consider using the `vec![]` macro: `let v = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `add_stderr` is never used [INFO] [stdout] --> src/exec.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl CommandStore { [INFO] [stdout] | ----------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 44 | pub fn add_stderr(&mut self, s: &str) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `upd_wd_commands` is never used [INFO] [stdout] --> src/exec.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl<'a> CommandList<'a> { [INFO] [stdout] | ------------------------ method in this implementation [INFO] [stdout] ... [INFO] [stdout] 85 | pub fn upd_wd_commands(&mut self, wd: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `debug` is never used [INFO] [stdout] --> src/editor.rs:33:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Editor { [INFO] [stdout] | ----------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn debug(&self, stdout: &mut W) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `parse_result` is never read [INFO] [stdout] --> src/parser.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct Parser { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] ... [INFO] [stdout] 25 | parse_result: ParseResult, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Parser` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `fugu_vars` and `env_vars` are never read [INFO] [stdout] --> src/fugu_env.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct FuguEnv<'a> { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 10 | fugu_vars: Vec, // Fugu変数 [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 11 | env_vars: Vec, // 環境変数 [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `User` is never constructed [INFO] [stdout] --> src/fugu_env.rs:104:5 [INFO] [stdout] | [INFO] [stdout] 101 | pub enum CommandType { [INFO] [stdout] | ----------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 104 | User, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CommandType` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/editor.rs:140:23 [INFO] [stdout] | [INFO] [stdout] 140 | let has = untill_char.iter().any(|&u| u == c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `untill_char.contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/editor.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | acc + &*s [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] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 164 - acc + &*s [INFO] [stdout] 164 + acc + s [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 164 | acc + &**s [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/editor.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | acc + &*s [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] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/editor.rs:167:23 [INFO] [stdout] | [INFO] [stdout] 167 | acc + &*s [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] 167 - acc + &*s [INFO] [stdout] 167 + acc + s [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 167 | acc + &**s [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/editor.rs:167:23 [INFO] [stdout] | [INFO] [stdout] 167 | acc + &*s [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: this pattern creates a reference to a reference [INFO] [stdout] --> src/editor.rs:157:54 [INFO] [stdout] | [INFO] [stdout] 157 | self.buffer.iter().fold(String::new(), |acc, ref s| { [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] 157 ~ self.buffer.iter().fold(String::new(), |acc, s| { [INFO] [stdout] 158 | if let Some(&c) = s.as_bytes().last() { [INFO] [stdout] ... [INFO] [stdout] 163 | } else { [INFO] [stdout] 164 ~ acc + &s [INFO] [stdout] 165 | } [INFO] [stdout] 166 | } else { [INFO] [stdout] 167 ~ acc + &s [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Wait` [INFO] [stdout] --> src/parser.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub enum ParseStatus { [INFO] [stdout] 6 | | WaitCommand, [INFO] [stdout] 7 | | WaitArgs, [INFO] [stdout] 8 | | WaitInFile, [INFO] [stdout] 9 | | WaitOutFile, [INFO] [stdout] 10 | | WaitErrFile, [INFO] [stdout] 11 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [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/exec.rs:61:9 [INFO] [stdout] | [INFO] [stdout] 61 | / match env::var_os("PATH") { [INFO] [stdout] 62 | | Some(paths) => for path in env::split_paths(&paths) { [INFO] [stdout] 63 | | let dirname = path.to_str().unwrap().to_owned(); [INFO] [stdout] 64 | | for entry in WalkDir::new(&dirname).min_depth(1).max_depth(1) { [INFO] [stdout] ... | [INFO] [stdout] 76 | | None => {} [INFO] [stdout] 77 | | } [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] 61 ~ if let Some(paths) = env::var_os("PATH") { for path in env::split_paths(&paths) { [INFO] [stdout] 62 + let dirname = path.to_str().unwrap().to_owned(); [INFO] [stdout] 63 + for entry in WalkDir::new(&dirname).min_depth(1).max_depth(1) { [INFO] [stdout] 64 + let e = ok_or_continue!(entry); [INFO] [stdout] 65 + let fname = match e.file_name().to_os_string().into_string() { [INFO] [stdout] 66 + Ok(s) => s, [INFO] [stdout] 67 + Err(_) => panic!("Error in into_string"), [INFO] [stdout] 68 + }; [INFO] [stdout] 69 + let fdata = ok_or_continue!(e.metadata()); [INFO] [stdout] 70 + if fdata.is_file() { [INFO] [stdout] 71 + path_cmds.insert(fname); [INFO] [stdout] 72 + } [INFO] [stdout] 73 + } [INFO] [stdout] 74 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parser.rs:66:17 [INFO] [stdout] | [INFO] [stdout] 66 | / if self.current_token.is_empty() { [INFO] [stdout] 67 | | ParseStatus::WaitErrFile [INFO] [stdout] 68 | | } else { [INFO] [stdout] 69 | | self.current_token.push(ch); [INFO] [stdout] 70 | | self.parse_status [INFO] [stdout] 71 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 65 ~ '^' [INFO] [stdout] 66 ~ if self.current_token.is_empty() => { [INFO] [stdout] 67 | ParseStatus::WaitErrFile [INFO] [stdout] 68 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | if self.current_token.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.current_token.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: spawned process is never `wait()`ed on [INFO] [stdout] --> src/exec.rs:117:17 [INFO] [stdout] | [INFO] [stdout] 117 | cmd.spawn().expect("failed to execute process"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- help: try: `.wait()` [INFO] [stdout] | [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/builtin/mod.rs:46:24 [INFO] [stdout] | [INFO] [stdout] 46 | if !env::set_current_dir(&cmd.args[0]).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::set_current_dir(&cmd.args[0]).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/fugu_env.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | let builtin_cmds: Vec<&'a str> = BUILTIN_CMD.iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/builtin/mod.rs:58:20 [INFO] [stdout] | [INFO] [stdout] 58 | if !env::set_current_dir(&dir_str).is_ok() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `env::set_current_dir(&dir_str).is_err()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant guard [INFO] [stdout] --> src/builtin/mod.rs:37:16 [INFO] [stdout] | [INFO] [stdout] 37 | val if val == 1 => { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_guards [INFO] [stdout] = note: `#[warn(clippy::redundant_guards)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 37 - val if val == 1 => { [INFO] [stdout] 37 + 1 => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fugu_env.rs:53:35 [INFO] [stdout] | [INFO] [stdout] 53 | let re = match Regex::new(&search_str) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `search_str` [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: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/fugu_env.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | if self.path_cache[i] == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.path_cache[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/fugu_env.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 69 | if self.builtin_cache[i] == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.builtin_cache[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/editor.rs:22:9 [INFO] [stdout] | [INFO] [stdout] 22 | / let mut v = Vec::new(); [INFO] [stdout] 23 | | v.push(String::new()); [INFO] [stdout] | |______________________________^ help: consider using the `vec![]` macro: `let v = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/fugu_screen.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | Ok(prompt.print_face(¤t_dir, self)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 66 - Ok(prompt.print_face(¤t_dir, self)?) [INFO] [stdout] 66 + prompt.print_face(¤t_dir, self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/fugu_screen.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | let _ = write!(self, "{}", cursor::Goto(1, cur_y))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 65 - let _ = write!(self, "{}", cursor::Goto(1, cur_y))?; [INFO] [stdout] 65 + write!(self, "{}", cursor::Goto(1, cur_y))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/editor.rs:140:23 [INFO] [stdout] | [INFO] [stdout] 140 | let has = untill_char.iter().any(|&u| u == c); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `untill_char.contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_contains [INFO] [stdout] = note: `#[warn(clippy::manual_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/editor.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | acc + &*s [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] = note: `#[warn(clippy::borrow_deref_ref)]` on by default [INFO] [stdout] help: if you would like to reborrow, try removing `&*` [INFO] [stdout] | [INFO] [stdout] 164 - acc + &*s [INFO] [stdout] 164 + acc + s [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 164 | acc + &**s [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/editor.rs:164:27 [INFO] [stdout] | [INFO] [stdout] 164 | acc + &*s [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] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref on an immutable reference [INFO] [stdout] --> src/editor.rs:167:23 [INFO] [stdout] | [INFO] [stdout] 167 | acc + &*s [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] 167 - acc + &*s [INFO] [stdout] 167 + acc + s [INFO] [stdout] | [INFO] [stdout] help: if you would like to deref, try using `&**` [INFO] [stdout] | [INFO] [stdout] 167 | acc + &**s [INFO] [stdout] | + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/editor.rs:167:23 [INFO] [stdout] | [INFO] [stdout] 167 | acc + &*s [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: this pattern creates a reference to a reference [INFO] [stdout] --> src/editor.rs:157:54 [INFO] [stdout] | [INFO] [stdout] 157 | self.buffer.iter().fold(String::new(), |acc, ref s| { [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] 157 ~ self.buffer.iter().fold(String::new(), |acc, s| { [INFO] [stdout] 158 | if let Some(&c) = s.as_bytes().last() { [INFO] [stdout] ... [INFO] [stdout] 163 | } else { [INFO] [stdout] 164 ~ acc + &s [INFO] [stdout] 165 | } [INFO] [stdout] 166 | } else { [INFO] [stdout] 167 ~ acc + &s [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Wait` [INFO] [stdout] --> src/parser.rs:5:1 [INFO] [stdout] | [INFO] [stdout] 5 | / pub enum ParseStatus { [INFO] [stdout] 6 | | WaitCommand, [INFO] [stdout] 7 | | WaitArgs, [INFO] [stdout] 8 | | WaitInFile, [INFO] [stdout] 9 | | WaitOutFile, [INFO] [stdout] 10 | | WaitErrFile, [INFO] [stdout] 11 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` 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/fugu_screen.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | self.move_csr(&edit); [INFO] [stdout] | ^^^^^ help: change this to: `edit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parser.rs:66:17 [INFO] [stdout] | [INFO] [stdout] 66 | / if self.current_token.is_empty() { [INFO] [stdout] 67 | | ParseStatus::WaitErrFile [INFO] [stdout] 68 | | } else { [INFO] [stdout] 69 | | self.current_token.push(ch); [INFO] [stdout] 70 | | self.parse_status [INFO] [stdout] 71 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 65 ~ '^' [INFO] [stdout] 66 ~ if self.current_token.is_empty() => { [INFO] [stdout] 67 | ParseStatus::WaitErrFile [INFO] [stdout] 68 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | if self.current_token.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.current_token.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: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | / match evt { [INFO] [stdout] 69 | | Event::Key(key) => match key { [INFO] [stdout] 70 | | Key::Ctrl('p') | Key::Up => { [INFO] [stdout] 71 | | selector.csr_up(); [INFO] [stdout] ... | [INFO] [stdout] 130 | | _ => {} [INFO] [stdout] 131 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 68 ~ if let Event::Key(key) = evt { match key { [INFO] [stdout] 69 + Key::Ctrl('p') | Key::Up => { [INFO] [stdout] 70 + selector.csr_up(); [INFO] [stdout] 71 + screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] 72 + } [INFO] [stdout] 73 + Key::Ctrl('n') | Key::Down => { [INFO] [stdout] 74 + selector.csr_down(); [INFO] [stdout] 75 + screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] 76 + } [INFO] [stdout] 77 + Key::Char('\n') => { [INFO] [stdout] 78 + if let Some(id) = selector.get_idx() { [INFO] [stdout] 79 + editor.delete_untill(&DELIMITERS); [INFO] [stdout] 80 + let cmd = some_or_continue!(fuguenv.get_cmd_str(id)); [INFO] [stdout] 81 + editor.insert_str(cmd); [INFO] [stdout] 82 + parser.remove_cur_token(); [INFO] [stdout] 83 + parser.add_str(&editor.to_str()); [INFO] [stdout] 84 + screen.print_editor(&editor, 0..1); [INFO] [stdout] 85 + } [INFO] [stdout] 86 + let parsed = parser.enter(); [INFO] [stdout] 87 + trace!(LOGGER, "{}", parsed.len()); [INFO] [stdout] 88 + cmd_list.execute_command(parsed); [INFO] [stdout] 89 + } [INFO] [stdout] 90 + _ => { [INFO] [stdout] 91 + let res = editor.handle_key(&key); [INFO] [stdout] 92 + let res2 = match res { [INFO] [stdout] 93 + EditResult::JustTailAdd(c) => { [INFO] [stdout] 94 + parser.read1(c); [INFO] [stdout] 95 + screen.print_editor(&editor, 0..1) [INFO] [stdout] 96 + } [INFO] [stdout] 97 + EditResult::JustAdd => { [INFO] [stdout] 98 + parser = Parser::new(); [INFO] [stdout] 99 + parser.add_str(&editor.to_str()); [INFO] [stdout] 100 + screen.print_editor(&editor, 0..1) [INFO] [stdout] 101 + } [INFO] [stdout] 102 + EditResult::Edited => { [INFO] [stdout] 103 + parser = Parser::new(); [INFO] [stdout] 104 + parser.add_str(&editor.to_str()); [INFO] [stdout] 105 + screen.print_editor(&editor, 0..1) [INFO] [stdout] 106 + } [INFO] [stdout] 107 + EditResult::Moved => screen.move_csr(&editor), [INFO] [stdout] 108 + EditResult::None => Ok(()), [INFO] [stdout] 109 + }; [INFO] [stdout] 110 + handle_scr_err!(res2); [INFO] [stdout] 111 + let res2 = match res { [INFO] [stdout] 112 + EditResult::JustTailAdd(_) | EditResult::JustAdd | EditResult::Edited => { [INFO] [stdout] 113 + match parser.parse_status { [INFO] [stdout] 114 + ParseStatus::WaitCommand => { [INFO] [stdout] 115 + fuguenv.reset_search(); [INFO] [stdout] 116 + fuguenv.search_cmd(parser.get_cur_token()); [INFO] [stdout] 117 + let v = fuguenv.search_to_vec(); [INFO] [stdout] 118 + selector = Selector::new(v); [INFO] [stdout] 119 + screen.print_selector(&selector, &fuguenv, &editor) [INFO] [stdout] 120 + } [INFO] [stdout] 121 + _ => Ok(()), [INFO] [stdout] 122 + } [INFO] [stdout] 123 + } [INFO] [stdout] 124 + _ => Ok(()), [INFO] [stdout] 125 + }; [INFO] [stdout] 126 + handle_scr_err!(res2); [INFO] [stdout] 127 + } [INFO] [stdout] 128 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `iter().cloned().collect()` on a slice to create a `Vec`. Calling `to_vec()` is both faster and more readable [INFO] [stdout] --> src/fugu_env.rs:35:53 [INFO] [stdout] | [INFO] [stdout] 35 | let builtin_cmds: Vec<&'a str> = BUILTIN_CMD.iter().cloned().collect(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `.to_vec()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_cloned_collect [INFO] [stdout] = note: `#[warn(clippy::iter_cloned_collect)]` 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/fugu_env.rs:53:35 [INFO] [stdout] | [INFO] [stdout] 53 | let re = match Regex::new(&search_str) { [INFO] [stdout] | ^^^^^^^^^^^ help: change this to: `search_str` [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: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/fugu_env.rs:61:16 [INFO] [stdout] | [INFO] [stdout] 61 | if self.path_cache[i] == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.path_cache[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] = note: `#[warn(clippy::bool_comparison)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: equality checks against false can be replaced by a negation [INFO] [stdout] --> src/fugu_env.rs:69:16 [INFO] [stdout] | [INFO] [stdout] 69 | if self.builtin_cache[i] == false { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!self.builtin_cache[i]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_comparison [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | screen.init_msg(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 54 | let _ = screen.init_msg(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:72:21 [INFO] [stdout] | [INFO] [stdout] 72 | screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 72 | let _ = screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 76 | let _ = screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:85:25 [INFO] [stdout] | [INFO] [stdout] 85 | screen.print_editor(&editor, 0..1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 85 | let _ = screen.print_editor(&editor, 0..1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/fugu_screen.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | self.move_csr(e); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 80 | let _ = self.move_csr(e); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enclosing `Ok` and `?` operator are unneeded [INFO] [stdout] --> src/fugu_screen.rs:66:9 [INFO] [stdout] | [INFO] [stdout] 66 | Ok(prompt.print_face(¤t_dir, self)?) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_question_mark [INFO] [stdout] = note: `#[warn(clippy::needless_question_mark)]` on by default [INFO] [stdout] help: remove the enclosing `Ok` and `?` operator [INFO] [stdout] | [INFO] [stdout] 66 - Ok(prompt.print_face(¤t_dir, self)?) [INFO] [stdout] 66 + prompt.print_face(¤t_dir, self) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this let-binding has unit value [INFO] [stdout] --> src/fugu_screen.rs:65:9 [INFO] [stdout] | [INFO] [stdout] 65 | let _ = write!(self, "{}", cursor::Goto(1, cur_y))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stdout] = note: `#[warn(clippy::let_unit_value)]` on by default [INFO] [stdout] help: omit the `let` binding [INFO] [stdout] | [INFO] [stdout] 65 - let _ = write!(self, "{}", cursor::Goto(1, cur_y))?; [INFO] [stdout] 65 + write!(self, "{}", cursor::Goto(1, cur_y))?; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/fugu_screen.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | self.move_csr(&edit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 125 | let _ = self.move_csr(&edit); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/fugu_screen.rs:125:23 [INFO] [stdout] | [INFO] [stdout] 125 | self.move_csr(&edit); [INFO] [stdout] | ^^^^^ help: change this to: `edit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/main.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 68 | / match evt { [INFO] [stdout] 69 | | Event::Key(key) => match key { [INFO] [stdout] 70 | | Key::Ctrl('p') | Key::Up => { [INFO] [stdout] 71 | | selector.csr_up(); [INFO] [stdout] ... | [INFO] [stdout] 130 | | _ => {} [INFO] [stdout] 131 | | } [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] help: try [INFO] [stdout] | [INFO] [stdout] 68 ~ if let Event::Key(key) = evt { match key { [INFO] [stdout] 69 + Key::Ctrl('p') | Key::Up => { [INFO] [stdout] 70 + selector.csr_up(); [INFO] [stdout] 71 + screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] 72 + } [INFO] [stdout] 73 + Key::Ctrl('n') | Key::Down => { [INFO] [stdout] 74 + selector.csr_down(); [INFO] [stdout] 75 + screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] 76 + } [INFO] [stdout] 77 + Key::Char('\n') => { [INFO] [stdout] 78 + if let Some(id) = selector.get_idx() { [INFO] [stdout] 79 + editor.delete_untill(&DELIMITERS); [INFO] [stdout] 80 + let cmd = some_or_continue!(fuguenv.get_cmd_str(id)); [INFO] [stdout] 81 + editor.insert_str(cmd); [INFO] [stdout] 82 + parser.remove_cur_token(); [INFO] [stdout] 83 + parser.add_str(&editor.to_str()); [INFO] [stdout] 84 + screen.print_editor(&editor, 0..1); [INFO] [stdout] 85 + } [INFO] [stdout] 86 + let parsed = parser.enter(); [INFO] [stdout] 87 + trace!(LOGGER, "{}", parsed.len()); [INFO] [stdout] 88 + cmd_list.execute_command(parsed); [INFO] [stdout] 89 + } [INFO] [stdout] 90 + _ => { [INFO] [stdout] 91 + let res = editor.handle_key(&key); [INFO] [stdout] 92 + let res2 = match res { [INFO] [stdout] 93 + EditResult::JustTailAdd(c) => { [INFO] [stdout] 94 + parser.read1(c); [INFO] [stdout] 95 + screen.print_editor(&editor, 0..1) [INFO] [stdout] 96 + } [INFO] [stdout] 97 + EditResult::JustAdd => { [INFO] [stdout] 98 + parser = Parser::new(); [INFO] [stdout] 99 + parser.add_str(&editor.to_str()); [INFO] [stdout] 100 + screen.print_editor(&editor, 0..1) [INFO] [stdout] 101 + } [INFO] [stdout] 102 + EditResult::Edited => { [INFO] [stdout] 103 + parser = Parser::new(); [INFO] [stdout] 104 + parser.add_str(&editor.to_str()); [INFO] [stdout] 105 + screen.print_editor(&editor, 0..1) [INFO] [stdout] 106 + } [INFO] [stdout] 107 + EditResult::Moved => screen.move_csr(&editor), [INFO] [stdout] 108 + EditResult::None => Ok(()), [INFO] [stdout] 109 + }; [INFO] [stdout] 110 + handle_scr_err!(res2); [INFO] [stdout] 111 + let res2 = match res { [INFO] [stdout] 112 + EditResult::JustTailAdd(_) | EditResult::JustAdd | EditResult::Edited => { [INFO] [stdout] 113 + match parser.parse_status { [INFO] [stdout] 114 + ParseStatus::WaitCommand => { [INFO] [stdout] 115 + fuguenv.reset_search(); [INFO] [stdout] 116 + fuguenv.search_cmd(parser.get_cur_token()); [INFO] [stdout] 117 + let v = fuguenv.search_to_vec(); [INFO] [stdout] 118 + selector = Selector::new(v); [INFO] [stdout] 119 + screen.print_selector(&selector, &fuguenv, &editor) [INFO] [stdout] 120 + } [INFO] [stdout] 121 + _ => Ok(()), [INFO] [stdout] 122 + } [INFO] [stdout] 123 + } [INFO] [stdout] 124 + _ => Ok(()), [INFO] [stdout] 125 + }; [INFO] [stdout] 126 + handle_scr_err!(res2); [INFO] [stdout] 127 + } [INFO] [stdout] 128 + } } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | screen.init_msg(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 54 | let _ = screen.init_msg(); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:72:21 [INFO] [stdout] | [INFO] [stdout] 72 | screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 72 | let _ = screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:76:21 [INFO] [stdout] | [INFO] [stdout] 76 | screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 76 | let _ = screen.print_selector(&selector, &fuguenv, &editor); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/main.rs:85:25 [INFO] [stdout] | [INFO] [stdout] 85 | screen.print_editor(&editor, 0..1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 85 | let _ = screen.print_editor(&editor, 0..1); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/fugu_screen.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | self.move_csr(e); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 80 | let _ = self.move_csr(e); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::result::Result` that must be used [INFO] [stdout] --> src/fugu_screen.rs:125:9 [INFO] [stdout] | [INFO] [stdout] 125 | self.move_csr(&edit); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 125 | let _ = self.move_csr(&edit); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.74s [INFO] running `Command { std: "docker" "inspect" "78fbe32a59c1900f28c23442470398932ce2fbb88fec617daca8a1c4d0540ddd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "78fbe32a59c1900f28c23442470398932ce2fbb88fec617daca8a1c4d0540ddd", kill_on_drop: false }` [INFO] [stdout] 78fbe32a59c1900f28c23442470398932ce2fbb88fec617daca8a1c4d0540ddd