[INFO] cloning repository https://github.com/krobelus/neofish [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/krobelus/neofish" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrobelus%2Fneofish", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrobelus%2Fneofish'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] fe20434386bc915487b9bcdbed86f8bcac41e6f1 [INFO] linting krobelus/neofish against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkrobelus%2Fneofish" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-3-tc1/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/krobelus/neofish [INFO] finished tweaking git repo https://github.com/krobelus/neofish [INFO] tweaked toml for git repo https://github.com/krobelus/neofish written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/krobelus/neofish 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/krobelus/neofish already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating git repository `https://github.com/fish-shell/rust-pcre2` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded sdd v3.0.5 [INFO] [stderr] Downloaded rsconf v0.2.2 [INFO] [stderr] Downloaded scc v2.3.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] c8cb6a55b71d7b5976a2cf002f30eb76867a1e21159fa53fe73ca20ac17267fe [INFO] running `Command { std: "docker" "start" "-a" "c8cb6a55b71d7b5976a2cf002f30eb76867a1e21159fa53fe73ca20ac17267fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c8cb6a55b71d7b5976a2cf002f30eb76867a1e21159fa53fe73ca20ac17267fe", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c8cb6a55b71d7b5976a2cf002f30eb76867a1e21159fa53fe73ca20ac17267fe", kill_on_drop: false }` [INFO] [stdout] c8cb6a55b71d7b5976a2cf002f30eb76867a1e21159fa53fe73ca20ac17267fe [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 17a8a4cdff6dc0f369e1e6b4c7eb3502566b32e8170e58800efa9c1daf808639 [INFO] running `Command { std: "docker" "start" "-a" "17a8a4cdff6dc0f369e1e6b4c7eb3502566b32e8170e58800efa9c1daf808639", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.169 [INFO] [stderr] Compiling rsconf v0.2.2 [INFO] [stderr] Compiling cpufeatures v0.2.16 [INFO] [stderr] Checking phf_shared v0.11.3 [INFO] [stderr] Compiling nix v0.29.0 [INFO] [stderr] Checking widestring v1.1.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Checking nom v7.1.3 [INFO] [stderr] Checking hashbrown v0.15.2 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Compiling syn v2.0.95 [INFO] [stderr] Compiling terminfo v0.9.0 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking errno v0.3.10 [INFO] [stderr] Checking parking_lot_core v0.9.10 [INFO] [stderr] Checking sdd v3.0.5 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking parking_lot v0.12.3 [INFO] [stderr] Checking sha2 v0.10.8 [INFO] [stderr] Checking phf v0.11.3 [INFO] [stderr] Checking scc v2.3.0 [INFO] [stderr] Compiling rust-embed-utils v8.5.0 [INFO] [stderr] Checking lru v0.12.5 [INFO] [stderr] Compiling jobserver v0.1.32 [INFO] [stderr] Compiling cc v1.2.7 [INFO] [stderr] Checking fish-printf v0.2.1 (/opt/rustwide/workdir/printf) [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> printf/src/fmt_fp/mod.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | while d % 10 == 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: replace with: `d.is_multiple_of(10)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> printf/src/fmt_fp/mod.rs:282:40 [INFO] [stdout] | [INFO] [stdout] 282 | const MANTISSA_HEX_DIGITS: usize = (MANTISSA_BITS - 1 + 3) / 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `(MANTISSA_BITS - 1).div_ceil(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `.is_multiple_of()` [INFO] [stdout] --> printf/src/fmt_fp/mod.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | while d % 10 == 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: replace with: `d.is_multiple_of(10)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_multiple_of [INFO] [stdout] = note: `#[warn(clippy::manual_is_multiple_of)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually reimplementing `div_ceil` [INFO] [stdout] --> printf/src/fmt_fp/mod.rs:282:40 [INFO] [stdout] | [INFO] [stdout] 282 | const MANTISSA_HEX_DIGITS: usize = (MANTISSA_BITS - 1 + 3) / 4; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `(MANTISSA_BITS - 1).div_ceil(4)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil [INFO] [stdout] = note: `#[warn(clippy::manual_div_ceil)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling pcre2-sys v0.2.9 (https://github.com/fish-shell/rust-pcre2?tag=0.2.9-utf32#85b7afba) [INFO] [stderr] Compiling fish v4.1.0-alpha0 (/opt/rustwide/workdir) [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> printf/src/tests.rs:846:17 [INFO] [stdout] | [INFO] [stdout] 846 | let c_fmt = b"%.*a\0".as_ptr() as *const c_char; [INFO] [stdout] | ^^^^^^^^^ help: use a `c""` literal: `c"%.*a"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] = note: `#[warn(clippy::manual_c_str_literals)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> printf/src/tests.rs:919:29 [INFO] [stdout] | [INFO] [stdout] 919 | test_exhaustive("%.*g", b"%.*g\0".as_ptr() as *const c_char); [INFO] [stdout] | ^^^^^^^^^ help: use a `c""` literal: `c"%.*g"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> printf/src/tests.rs:926:29 [INFO] [stdout] | [INFO] [stdout] 926 | test_exhaustive("%.*e", b"%.*e\0".as_ptr() as *const c_char); [INFO] [stdout] | ^^^^^^^^^ help: use a `c""` literal: `c"%.*e"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manually constructing a nul-terminated string [INFO] [stdout] --> printf/src/tests.rs:933:29 [INFO] [stdout] | [INFO] [stdout] 933 | test_exhaustive("%.*f", b"%.*f\0".as_ptr() as *const c_char); [INFO] [stdout] | ^^^^^^^^^ help: use a `c""` literal: `c"%.*f"` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_c_str_literals [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking pcre2 v0.2.9 (https://github.com/fish-shell/rust-pcre2?tag=0.2.9-utf32#85b7afba) [INFO] [stderr] Compiling rust-embed-impl v8.5.0 [INFO] [stderr] Compiling serial_test_derive v3.2.0 [INFO] [stderr] Checking serial_test v3.2.0 [INFO] [stderr] Checking rust-embed v8.5.0 [INFO] [stdout] warning: unused import: `sprintf` [INFO] [stdout] --> src/builtins/jobs.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 18 | wutil::{fish_wcstoi, sprintf, wgettext_fmt}, [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: `wutil::sprintf` [INFO] [stdout] --> src/complete.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | wutil::sprintf, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sprintf` [INFO] [stdout] --> src/function.rs:16:39 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::wutil::{dir_iter::DirIter, sprintf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sprintf` [INFO] [stdout] --> src/proc.rs:27:28 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::wutil::{perror, sprintf, wbasename, wgettext, wperror}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/wutil/printf.rs:54:9 [INFO] [stdout] | [INFO] [stdout] 54 | use super::*; [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: `crate::wutil::sprintf` [INFO] [stdout] --> src/autoload.rs:325:9 [INFO] [stdout] | [INFO] [stdout] 325 | use crate::wutil::sprintf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sprintf` [INFO] [stdout] --> src/builtins/jobs.rs:18:26 [INFO] [stdout] | [INFO] [stdout] 18 | wutil::{fish_wcstoi, sprintf, wgettext_fmt}, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `wutil::sprintf` [INFO] [stdout] --> src/complete.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | wutil::sprintf, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sprintf` [INFO] [stdout] --> src/function.rs:16:39 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::wutil::{dir_iter::DirIter, sprintf}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sprintf` [INFO] [stdout] --> src/proc.rs:27:28 [INFO] [stdout] | [INFO] [stdout] 27 | use crate::wutil::{perror, sprintf, wbasename, wgettext, wperror}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:526:21 [INFO] [stdout] | [INFO] [stdout] 526 | / if !ignore_backslashes { [INFO] [stdout] 527 | | // Backslashes (escapes) are complicated and may result in errors, or [INFO] [stdout] 528 | | // appending INTERNAL_SEPARATORs, so we have to handle them specially. [INFO] [stdout] 529 | | if let Some(escape_chars) = read_unquoted_escape( [INFO] [stdout] ... | [INFO] [stdout] 544 | | to_append_or_none = None; [INFO] [stdout] 545 | | } [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] 525 ~ '\\' [INFO] [stdout] 526 ~ if !ignore_backslashes => { [INFO] [stdout] 527 | // Backslashes (escapes) are complicated and may result in errors, or [INFO] [stdout] ... [INFO] [stdout] 544 | to_append_or_none = None; [INFO] [stdout] 545 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:548:21 [INFO] [stdout] | [INFO] [stdout] 548 | / if unescape_special [INFO] [stdout] 549 | | && (input_position == 0 || Some(input_position) == potential_word_start) [INFO] [stdout] 550 | | { [INFO] [stdout] 551 | | to_append_or_none = Some(HOME_DIRECTORY); [INFO] [stdout] 552 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 547 ~ '~' [INFO] [stdout] 548 | if unescape_special [INFO] [stdout] 549 | && (input_position == 0 || Some(input_position) == potential_word_start) [INFO] [stdout] 550 ~ => { [INFO] [stdout] 551 | to_append_or_none = Some(HOME_DIRECTORY); [INFO] [stdout] 552 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:557:21 [INFO] [stdout] | [INFO] [stdout] 557 | / if allow_percent_self [INFO] [stdout] 558 | | && unescape_special [INFO] [stdout] 559 | | && input_position == 0 [INFO] [stdout] 560 | | && input == PROCESS_EXPAND_SELF_STR [INFO] [stdout] ... | [INFO] [stdout] 563 | | input_position += PROCESS_EXPAND_SELF_STR.len() - 1; // skip over 'self's [INFO] [stdout] 564 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 554 ~ '%' [INFO] [stdout] 555 | // Note that this only recognizes %self if the string is literally %self. [INFO] [stdout] ... [INFO] [stdout] 560 | && input == PROCESS_EXPAND_SELF_STR [INFO] [stdout] 561 ~ => { [INFO] [stdout] 562 | to_append_or_none = Some(PROCESS_EXPAND_SELF); [INFO] [stdout] 563 | input_position += PROCESS_EXPAND_SELF_STR.len() - 1; // skip over 'self's [INFO] [stdout] 564 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:567:21 [INFO] [stdout] | [INFO] [stdout] 567 | / if unescape_special { [INFO] [stdout] ... | [INFO] [stdout] 578 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 566 ~ '*' [INFO] [stdout] 567 ~ if unescape_special => { [INFO] [stdout] 568 | // In general, this is ANY_STRING. But as a hack, if the last appended char [INFO] [stdout] ... [INFO] [stdout] 577 | } [INFO] [stdout] 578 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:581:21 [INFO] [stdout] | [INFO] [stdout] 581 | / if unescape_special && !feature_test(FeatureFlag::qmark_noglob) { [INFO] [stdout] 582 | | to_append_or_none = Some(ANY_CHAR); [INFO] [stdout] 583 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 580 ~ '?' [INFO] [stdout] 581 ~ if unescape_special && !feature_test(FeatureFlag::qmark_noglob) => { [INFO] [stdout] 582 | to_append_or_none = Some(ANY_CHAR); [INFO] [stdout] 583 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:586:21 [INFO] [stdout] | [INFO] [stdout] 586 | / if unescape_special { [INFO] [stdout] 587 | | let next = input.char_at(input_position + 1); [INFO] [stdout] 588 | | let is_cmdsub = input_position + 1 < input.len() && next == '('; [INFO] [stdout] 589 | | let is_pid = !valid_var_name_char(next) [INFO] [stdout] ... | [INFO] [stdout] 601 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 585 ~ '$' [INFO] [stdout] 586 ~ if unescape_special => { [INFO] [stdout] 587 | let next = input.char_at(input_position + 1); [INFO] [stdout] ... [INFO] [stdout] 600 | } [INFO] [stdout] 601 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:604:21 [INFO] [stdout] | [INFO] [stdout] 604 | / if unescape_special { [INFO] [stdout] 605 | | brace_count += 1; [INFO] [stdout] 606 | | to_append_or_none = Some(BRACE_BEGIN); [INFO] [stdout] ... | [INFO] [stdout] 609 | | potential_word_start = Some(input_position + 1); [INFO] [stdout] 610 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 603 ~ '{' [INFO] [stdout] 604 ~ if unescape_special => { [INFO] [stdout] 605 | brace_count += 1; [INFO] [stdout] ... [INFO] [stdout] 609 | potential_word_start = Some(input_position + 1); [INFO] [stdout] 610 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:613:21 [INFO] [stdout] | [INFO] [stdout] 613 | / if unescape_special { [INFO] [stdout] ... | [INFO] [stdout] 644 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 612 ~ '}' [INFO] [stdout] 613 ~ if unescape_special => { [INFO] [stdout] 614 | // HACK: The completion machinery sometimes hands us partial tokens. [INFO] [stdout] ... [INFO] [stdout] 643 | } [INFO] [stdout] 644 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:647:21 [INFO] [stdout] | [INFO] [stdout] 647 | / if unescape_special && brace_count > 0 { [INFO] [stdout] 648 | | to_append_or_none = Some(BRACE_SEP); [INFO] [stdout] 649 | | vars_or_seps.push(input_position); [INFO] [stdout] 650 | | potential_word_start = Some(input_position + 1); [INFO] [stdout] 651 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 646 ~ ',' [INFO] [stdout] 647 ~ if unescape_special && brace_count > 0 => { [INFO] [stdout] 648 | to_append_or_none = Some(BRACE_SEP); [INFO] [stdout] 649 | vars_or_seps.push(input_position); [INFO] [stdout] 650 | potential_word_start = Some(input_position + 1); [INFO] [stdout] 651 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:654:21 [INFO] [stdout] | [INFO] [stdout] 654 | / if unescape_special && brace_count > 0 { [INFO] [stdout] 655 | | to_append_or_none = Some(BRACE_SPACE); [INFO] [stdout] 656 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 653 ~ ' ' [INFO] [stdout] 654 ~ if unescape_special && brace_count > 0 => { [INFO] [stdout] 655 | to_append_or_none = Some(BRACE_SPACE); [INFO] [stdout] 656 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/common.rs:743:21 [INFO] [stdout] | [INFO] [stdout] 743 | / if unescape_special { [INFO] [stdout] 744 | | to_append_or_none = Some(VARIABLE_EXPAND_SINGLE); [INFO] [stdout] 745 | | vars_or_seps.push(input_position); [INFO] [stdout] 746 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 742 ~ '$' [INFO] [stdout] 743 ~ if unescape_special => { [INFO] [stdout] 744 | to_append_or_none = Some(VARIABLE_EXPAND_SINGLE); [INFO] [stdout] 745 | vars_or_seps.push(input_position); [INFO] [stdout] 746 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: large size difference between variants [INFO] [stdout] --> src/ast.rs:2377:1 [INFO] [stdout] | [INFO] [stdout] 2377 | / pub enum BlockStatementHeaderVariant { [INFO] [stdout] 2378 | | None, [INFO] [stdout] 2379 | | ForHeader(ForHeader), [INFO] [stdout] | | -------------------- the second-largest variant contains at least 216 bytes [INFO] [stdout] 2380 | | WhileHeader(WhileHeader), [INFO] [stdout] | | ------------------------ the largest variant contains at least 576 bytes [INFO] [stdout] 2381 | | FunctionHeader(FunctionHeader), [INFO] [stdout] 2382 | | BeginHeader(BeginHeader), [INFO] [stdout] 2383 | | } [INFO] [stdout] | |_^ the entire enum is at least 576 bytes [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stdout] = note: `#[warn(clippy::large_enum_variant)]` on by default [INFO] [stdout] help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum [INFO] [stdout] | [INFO] [stdout] 2380 - WhileHeader(WhileHeader), [INFO] [stdout] 2380 + WhileHeader(Box), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a new box [INFO] [stdout] --> src/autoload.rs:139:13 [INFO] [stdout] | [INFO] [stdout] 139 | self.cache = Box::new(AutoloadFileCache::with_dirs(paths.to_owned())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace existing content with inner value instead: `*self.cache = AutoloadFileCache::with_dirs(paths.to_owned())` [INFO] [stdout] | [INFO] [stdout] = note: this creates a needless allocation [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#replace_box [INFO] [stdout] = note: `#[warn(clippy::replace_box)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `bgcolor` after checking its variant with `is_some` [INFO] [stdout] --> src/builtins/set_color.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 176 | if bgcolor.is_some() && bg.is_none() { [INFO] [stdout] | ----------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 180 | bgcolor.unwrap() [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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: this method chain can be written more clearly with `if .. else ..` [INFO] [stdout] --> src/builtins/string/trim.rs:76:30 [INFO] [stdout] | [INFO] [stdout] 76 | let trim_start = self.left.then(|| to_trim_start(&arg)).unwrap_or(0); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `if self.left { to_trim_start(&arg) } else { 0 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#obfuscated_if_else [INFO] [stdout] = note: `#[warn(clippy::obfuscated_if_else)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this method chain can be written more clearly with `if .. else ..` [INFO] [stdout] --> src/builtins/string/trim.rs:78:28 [INFO] [stdout] | [INFO] [stdout] 78 | let trim_end = (self.right && trim_start != arg.len()) [INFO] [stdout] | ____________________________^ [INFO] [stdout] 79 | | .then(|| to_trim_end(&arg)) [INFO] [stdout] 80 | | .unwrap_or(0); [INFO] [stdout] | |_____________________________^ help: try: `if self.right && trim_start != arg.len() { to_trim_end(&arg) } else { 0 }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#obfuscated_if_else [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/complete.rs:917:9 [INFO] [stdout] | [INFO] [stdout] 917 | /// been unescaped, i.e. '*' should be used for any string, not the `ANY_STRING` character. [INFO] [stdout] | ^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/complete.rs:919:9 [INFO] [stdout] | [INFO] [stdout] 919 | /// embedded description [INFO] [stdout] | ^^^ help: try using ` ` (2 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/complete.rs:1750:21 [INFO] [stdout] | [INFO] [stdout] 1750 | / if mode == Unquoted || mode == DoubleQuoted { [INFO] [stdout] 1751 | | variable_start = Some(in_pos); [INFO] [stdout] 1752 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1749 ~ '$' [INFO] [stdout] 1750 ~ if (mode == Unquoted || mode == DoubleQuoted) => { [INFO] [stdout] 1751 | variable_start = Some(in_pos); [INFO] [stdout] 1752 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: consider using `sort_by_key` [INFO] [stdout] --> src/env_universal_common.rs:335:9 [INFO] [stdout] | [INFO] [stdout] 335 | cloned.sort_by(|(lkey, _), (rkey, _)| lkey.cmp(rkey)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_sort_by [INFO] [stdout] = note: `#[warn(clippy::unnecessary_sort_by)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 335 - cloned.sort_by(|(lkey, _), (rkey, _)| lkey.cmp(rkey)); [INFO] [stdout] 335 + cloned.sort_by_key(|(lkey, _)| *lkey); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/expand.rs:863:17 [INFO] [stdout] | [INFO] [stdout] 863 | / if brace_count == 1 { [INFO] [stdout] 864 | | last_sep = Some(pos); [INFO] [stdout] 865 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 862 ~ BRACE_SEP [INFO] [stdout] 863 ~ if brace_count == 1 => { [INFO] [stdout] 864 | last_sep = Some(pos); [INFO] [stdout] 865 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `md` after checking its variant with `is_err` [INFO] [stdout] --> src/fork_exec/postfork.rs:372:27 [INFO] [stdout] | [INFO] [stdout] 352 | if md.is_err() || unsafe { libc::access(interpreter.as_ptr(), libc::X_OK) } != 0 { [INFO] [stdout] | ----------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 372 | } else if md.unwrap().mode() & u32::from(libc::S_IFMT) == u32::from(libc::S_IFDIR) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/highlight/highlight.rs:552:29 [INFO] [stdout] | [INFO] [stdout] 552 | / ... if in_pos == 0 { [INFO] [stdout] 553 | | ... colors[in_pos] = HighlightSpec::with_fg(HighlightRole::operat); [INFO] [stdout] 554 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 551 ~ '~' [INFO] [stdout] 552 ~ if in_pos == 0 => { [INFO] [stdout] 553 | colors[in_pos] = HighlightSpec::with_fg(HighlightRole::operat); [INFO] [stdout] 554 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/highlight/highlight.rs:563:29 [INFO] [stdout] | [INFO] [stdout] 563 | / ... if !feature_test(FeatureFlag::qmark_noglob) { [INFO] [stdout] 564 | | ... colors[in_pos] = HighlightSpec::with_fg(HighlightRole::operat); [INFO] [stdout] 565 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 562 ~ '?' [INFO] [stdout] 563 ~ if !feature_test(FeatureFlag::qmark_noglob) => { [INFO] [stdout] 564 | colors[in_pos] = HighlightSpec::with_fg(HighlightRole::operat); [INFO] [stdout] 565 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/highlight/highlight.rs:579:29 [INFO] [stdout] | [INFO] [stdout] 579 | / ... if bracket_count > 0 { [INFO] [stdout] 580 | | ... colors[in_pos] = HighlightSpec::with_fg(HighlightRole::operat); [INFO] [stdout] 581 | | ... } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 578 ~ ',' [INFO] [stdout] 579 ~ if bracket_count > 0 => { [INFO] [stdout] 580 | colors[in_pos] = HighlightSpec::with_fg(HighlightRole::operat); [INFO] [stdout] 581 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/highlight/highlight.rs:627:25 [INFO] [stdout] | [INFO] [stdout] 627 | / if in_pos + 1 < buff_len { [INFO] [stdout] 628 | | let escaped_char = buffstr.as_char_slice()[in_pos + 1]; [INFO] [stdout] 629 | | if matches!(escaped_char, '\\' | '"' | '\n' | '$') { [INFO] [stdout] 630 | | colors[in_pos] = HighlightSpec::with_fg(HighlightRole::escape); // backslash [INFO] [stdout] ... | [INFO] [stdout] 634 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 625 ~ '\\' [INFO] [stdout] 626 | // Backslash [INFO] [stdout] 627 ~ if in_pos + 1 < buff_len => { [INFO] [stdout] 628 | let escaped_char = buffstr.as_char_slice()[in_pos + 1]; [INFO] [stdout] ... [INFO] [stdout] 633 | } [INFO] [stdout] 634 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `while let` loop [INFO] [stdout] --> src/history/file.rs:540:13 [INFO] [stdout] | [INFO] [stdout] 540 | / loop { [INFO] [stdout] 541 | | let Some(interior_line) = lines.next_if(|l| l.starts_with(b" ")) else { [INFO] [stdout] 542 | | // If the first character is not a space, it's not an interior line, so we're done. [INFO] [stdout] 543 | | break; [INFO] [stdout] ... | [INFO] [stdout] 551 | | } [INFO] [stdout] | |_____________^ help: try: `while let Some(interior_line) = lines.next_if(|l| l.starts_with(b" ")) { .. }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stdout] = note: `#[warn(clippy::while_let_loop)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parse_util.rs:991:17 [INFO] [stdout] | [INFO] [stdout] 991 | / if [Type::while_header, Type::if_clause].contains(&node.parent().unwrap().typ()) { [INFO] [stdout] 992 | | inc = 1; [INFO] [stdout] 993 | | dec = 1; [INFO] [stdout] 994 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 990 ~ Type::job_conjunction [INFO] [stdout] 991 ~ if [Type::while_header, Type::if_clause].contains(&node.parent().unwrap().typ()) => { [INFO] [stdout] 992 | inc = 1; [INFO] [stdout] 993 | dec = 1; [INFO] [stdout] 994 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parse_util.rs:1007:17 [INFO] [stdout] | [INFO] [stdout] 1007 | / if self.has_newline(&node.as_job_continuation().unwrap().newlines) { [INFO] [stdout] 1008 | | inc = 1; [INFO] [stdout] 1009 | | dec = 1; [INFO] [stdout] 1010 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1006 ~ Type::job_continuation [INFO] [stdout] 1007 ~ if self.has_newline(&node.as_job_continuation().unwrap().newlines) => { [INFO] [stdout] 1008 | inc = 1; [INFO] [stdout] 1009 | dec = 1; [INFO] [stdout] 1010 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/parse_util.rs:1015:17 [INFO] [stdout] | [INFO] [stdout] 1015 | / if self.has_newline(&node.as_job_conjunction_continuation().unwrap().newlines) { [INFO] [stdout] 1016 | | inc = 1; [INFO] [stdout] 1017 | | dec = 1; [INFO] [stdout] 1018 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 1014 ~ Type::job_conjunction_continuation [INFO] [stdout] 1015 ~ if self.has_newline(&node.as_job_conjunction_continuation().unwrap().newlines) => { [INFO] [stdout] 1016 | inc = 1; [INFO] [stdout] 1017 | dec = 1; [INFO] [stdout] 1018 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `data.history_search_range` after checking its variant with `is_some` [INFO] [stdout] --> src/reader.rs:1652:29 [INFO] [stdout] | [INFO] [stdout] 1651 | if !self.conf.in_silent_mode && data.history_search_range.is_some() { [INFO] [stdout] | ----------------------------------- the check is happening here [INFO] [stdout] 1652 | let mut range = data.history_search_range.unwrap().as_usize(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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 `quote` after checking its variant with `is_some` [INFO] [stdout] --> src/reader.rs:6242:43 [INFO] [stdout] | [INFO] [stdout] 6238 | && quote.is_some() [INFO] [stdout] | --------------- the check is happening here [INFO] [stdout] ... [INFO] [stdout] 6242 | result.insert(new_cursor_pos, quote.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: try using `match` [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 `if` can be collapsed into the outer `match` [INFO] [stdout] --> src/signal.rs:91:13 [INFO] [stdout] | [INFO] [stdout] 91 | / if !observed { [INFO] [stdout] 92 | | if let Some(at_exit) = AT_EXIT.get() { [INFO] [stdout] 93 | | (at_exit)(true); [INFO] [stdout] ... | [INFO] [stdout] 100 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 89 ~ libc::SIGTERM [INFO] [stdout] 90 | // Handle sigterm. The only thing we do is restore the front process ID, then die. [INFO] [stdout] 91 ~ if !observed => { [INFO] [stdout] 92 | if let Some(at_exit) = AT_EXIT.get() { [INFO] [stdout] ... [INFO] [stdout] 99 | } [INFO] [stdout] 100 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `contains()` instead of `iter().any()` is more efficient [INFO] [stdout] --> src/wchar_ext.rs:275:9 [INFO] [stdout] | [INFO] [stdout] 275 | self.as_char_slice().iter().any(|&x| x == c) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.as_char_slice().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: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/ast.rs:467:13 [INFO] [stdout] | [INFO] [stdout] 467 | fn iter(&self) -> std::slice::Iter> { [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] 467 | fn iter(&self) -> std::slice::Iter<'_, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1136:1 [INFO] [stdout] | [INFO] [stdout] 1136 | implement_acceptor_for_branch!(Redirection, (oper: TokenRedirection), (target: String_)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [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] 1136 | let _ = implement_acceptor_for_branch!(Redirection, (oper: TokenRedirection), (target: String_)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1153:1 [INFO] [stdout] | [INFO] [stdout] 1153 | / define_list_node!( [INFO] [stdout] 1154 | | VariableAssignmentList, [INFO] [stdout] 1155 | | variable_assignment_list, [INFO] [stdout] 1156 | | VariableAssignment [INFO] [stdout] 1157 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1153 | let _ = define_list_node!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1176:1 [INFO] [stdout] | [INFO] [stdout] 1176 | / implement_acceptor_for_branch!( [INFO] [stdout] 1177 | | ArgumentOrRedirection, [INFO] [stdout] 1178 | | (contents: (variant)) [INFO] [stdout] 1179 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1176 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1197:1 [INFO] [stdout] | [INFO] [stdout] 1197 | / define_list_node!( [INFO] [stdout] 1198 | | ArgumentOrRedirectionList, [INFO] [stdout] 1199 | | argument_or_redirection_list, [INFO] [stdout] 1200 | | ArgumentOrRedirection [INFO] [stdout] 1201 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1197 | let _ = define_list_node!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1219:1 [INFO] [stdout] | [INFO] [stdout] 1219 | / implement_acceptor_for_branch!( [INFO] [stdout] 1220 | | CommandToken, [INFO] [stdout] 1221 | | (contents: (variant)) [INFO] [stdout] 1222 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1219 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1254:1 [INFO] [stdout] | [INFO] [stdout] 1254 | / implement_acceptor_for_branch!( [INFO] [stdout] 1255 | | VariableStatement, [INFO] [stdout] 1256 | | (variables: (VariableAssignmentList)), [INFO] [stdout] 1257 | | (statement: (Option)), [INFO] [stdout] 1258 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1254 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1277:1 [INFO] [stdout] | [INFO] [stdout] 1277 | implement_acceptor_for_branch!(Statement, (contents: (variant))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1277 | let _ = implement_acceptor_for_branch!(Statement, (contents: (variant))); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1313:1 [INFO] [stdout] | [INFO] [stdout] 1313 | / implement_acceptor_for_branch!( [INFO] [stdout] 1314 | | JobPipeline, [INFO] [stdout] 1315 | | (time: (Option)), [INFO] [stdout] 1316 | | (statement2: (VariableStatement)), [INFO] [stdout] 1317 | | (continuation: (JobContinuationList)), [INFO] [stdout] 1318 | | (bg: (Option)), [INFO] [stdout] 1319 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1313 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1352:1 [INFO] [stdout] | [INFO] [stdout] 1352 | / implement_acceptor_for_branch!( [INFO] [stdout] 1353 | | JobConjunction, [INFO] [stdout] 1354 | | (decorator: (Option)), [INFO] [stdout] 1355 | | (job: (JobPipeline)), [INFO] [stdout] 1356 | | (continuations: (JobConjunctionContinuationList)), [INFO] [stdout] 1357 | | (semi_nl: (Option)), [INFO] [stdout] 1358 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1352 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1403:1 [INFO] [stdout] | [INFO] [stdout] 1403 | / implement_acceptor_for_branch!( [INFO] [stdout] 1404 | | ForHeader, [INFO] [stdout] 1405 | | (kw_for: (KeywordFor)), [INFO] [stdout] 1406 | | (var_name: (String_)), [INFO] [stdout] ... | [INFO] [stdout] 1410 | | (kw_do: (Option)), [INFO] [stdout] 1411 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1403 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1434:1 [INFO] [stdout] | [INFO] [stdout] 1434 | / implement_acceptor_for_branch!( [INFO] [stdout] 1435 | | WhileHeader, [INFO] [stdout] 1436 | | (kw_while: (KeywordWhile)), [INFO] [stdout] 1437 | | (condition: (JobConjunction)), [INFO] [stdout] 1438 | | (andor_tail: (AndorJobList)), [INFO] [stdout] 1439 | | (kw_do: (Option)), [INFO] [stdout] 1440 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1434 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1462:1 [INFO] [stdout] | [INFO] [stdout] 1462 | / implement_acceptor_for_branch!( [INFO] [stdout] 1463 | | FunctionHeader, [INFO] [stdout] 1464 | | (kw_function: (KeywordFunction)), [INFO] [stdout] 1465 | | (first_arg: (Argument)), [INFO] [stdout] 1466 | | (args: (ArgumentList)), [INFO] [stdout] 1467 | | (semi_nl: (SemiNl)), [INFO] [stdout] 1468 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1462 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1489:1 [INFO] [stdout] | [INFO] [stdout] 1489 | / implement_acceptor_for_branch!( [INFO] [stdout] 1490 | | BeginHeader, [INFO] [stdout] 1491 | | (kw_begin: (KeywordBegin)), [INFO] [stdout] 1492 | | (semi_nl: (Option)) [INFO] [stdout] 1493 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1489 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1518:1 [INFO] [stdout] | [INFO] [stdout] 1518 | / implement_acceptor_for_branch!( [INFO] [stdout] 1519 | | BlockStatement, [INFO] [stdout] 1520 | | (header: (variant)), [INFO] [stdout] 1521 | | (jobs: (JobList)), [INFO] [stdout] 1522 | | (end: (KeywordEndOrDone)), [INFO] [stdout] 1523 | | (args_or_redirs: (ArgumentOrRedirectionList)), [INFO] [stdout] 1524 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1518 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1549:1 [INFO] [stdout] | [INFO] [stdout] 1549 | / implement_acceptor_for_branch!( [INFO] [stdout] 1550 | | BraceStatement, [INFO] [stdout] 1551 | | (left_brace: (TokenLeftBrace)), [INFO] [stdout] 1552 | | (jobs: (JobList)), [INFO] [stdout] 1553 | | (right_brace: (TokenRightBrace)), [INFO] [stdout] 1554 | | (args_or_redirs: (ArgumentOrRedirectionList)), [INFO] [stdout] 1555 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1549 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1584:1 [INFO] [stdout] | [INFO] [stdout] 1584 | / implement_acceptor_for_branch!( [INFO] [stdout] 1585 | | IfClause, [INFO] [stdout] 1586 | | (kw_if: (KeywordIf)), [INFO] [stdout] 1587 | | (condition: (JobConjunction)), [INFO] [stdout] ... | [INFO] [stdout] 1590 | | (body: (JobList)), [INFO] [stdout] 1591 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1584 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1612:1 [INFO] [stdout] | [INFO] [stdout] 1612 | / implement_acceptor_for_branch!( [INFO] [stdout] 1613 | | ElseifClause, [INFO] [stdout] 1614 | | (kw_else: (KeywordElse)), [INFO] [stdout] 1615 | | (if_clause: (IfClause)), [INFO] [stdout] 1616 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1612 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1634:1 [INFO] [stdout] | [INFO] [stdout] 1634 | define_list_node!(ElseifClauseList, elseif_clause_list, ElseifClause); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1634 | let _ = define_list_node!(ElseifClauseList, elseif_clause_list, ElseifClause); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1655:1 [INFO] [stdout] | [INFO] [stdout] 1655 | / implement_acceptor_for_branch!( [INFO] [stdout] 1656 | | ElseClause, [INFO] [stdout] 1657 | | (kw_else: (KeywordElse)), [INFO] [stdout] 1658 | | (semi_nl: (Option)), [INFO] [stdout] 1659 | | (body: (JobList)), [INFO] [stdout] 1660 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1655 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1692:1 [INFO] [stdout] | [INFO] [stdout] 1692 | / implement_acceptor_for_branch!( [INFO] [stdout] 1693 | | IfStatement, [INFO] [stdout] 1694 | | (if_clause: (IfClause)), [INFO] [stdout] 1695 | | (elseif_clauses: (ElseifClauseList)), [INFO] [stdout] ... | [INFO] [stdout] 1698 | | (args_or_redirs: (ArgumentOrRedirectionList)), [INFO] [stdout] 1699 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1692 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1721:1 [INFO] [stdout] | [INFO] [stdout] 1721 | / implement_acceptor_for_branch!( [INFO] [stdout] 1722 | | CaseItem, [INFO] [stdout] 1723 | | (kw_case: (KeywordCase)), [INFO] [stdout] 1724 | | (arguments: (ArgumentList)), [INFO] [stdout] 1725 | | (semi_nl: (SemiNl)), [INFO] [stdout] 1726 | | (body: (JobList)), [INFO] [stdout] 1727 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1721 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1756:1 [INFO] [stdout] | [INFO] [stdout] 1756 | / implement_acceptor_for_branch!( [INFO] [stdout] 1757 | | SwitchStatement, [INFO] [stdout] 1758 | | (kw_switch: (KeywordSwitch)), [INFO] [stdout] 1759 | | (argument: (Argument)), [INFO] [stdout] ... | [INFO] [stdout] 1763 | | (args_or_redirs: (ArgumentOrRedirectionList)), [INFO] [stdout] 1764 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1756 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1789:1 [INFO] [stdout] | [INFO] [stdout] 1789 | / implement_acceptor_for_branch!( [INFO] [stdout] 1790 | | DecoratedStatement, [INFO] [stdout] 1791 | | (opt_decoration: (Option)), [INFO] [stdout] 1792 | | (command: (CommandToken)), [INFO] [stdout] 1793 | | (args_or_redirs: (ArgumentOrRedirectionList)), [INFO] [stdout] 1794 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1789 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1816:1 [INFO] [stdout] | [INFO] [stdout] 1816 | / implement_acceptor_for_branch!( [INFO] [stdout] 1817 | | NotStatement, [INFO] [stdout] 1818 | | (kw: (KeywordNot)), [INFO] [stdout] 1819 | | (time: (Option)), [INFO] [stdout] 1820 | | (negated_statement: (VariableStatement)), [INFO] [stdout] 1821 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1816 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1841:1 [INFO] [stdout] | [INFO] [stdout] 1841 | / implement_acceptor_for_branch!( [INFO] [stdout] 1842 | | JobContinuation, [INFO] [stdout] 1843 | | (pipe: (TokenPipe)), [INFO] [stdout] 1844 | | (newlines: (MaybeNewlines)), [INFO] [stdout] 1845 | | (statement2: (VariableStatement)), [INFO] [stdout] 1846 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1841 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1868:1 [INFO] [stdout] | [INFO] [stdout] 1868 | define_list_node!(JobContinuationList, job_continuation_list, JobContinuation); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1868 | let _ = define_list_node!(JobContinuationList, job_continuation_list, JobContinuation); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1894:1 [INFO] [stdout] | [INFO] [stdout] 1894 | / implement_acceptor_for_branch!( [INFO] [stdout] 1895 | | JobConjunctionContinuation, [INFO] [stdout] 1896 | | (conjunction: (TokenConjunction)), [INFO] [stdout] 1897 | | (newlines: (MaybeNewlines)), [INFO] [stdout] 1898 | | (job: (JobPipeline)), [INFO] [stdout] 1899 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1894 | let _ = implement_acceptor_for_branch!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1926:1 [INFO] [stdout] | [INFO] [stdout] 1926 | implement_acceptor_for_branch!(AndorJob, (job: (JobConjunction))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1926 | let _ = implement_acceptor_for_branch!(AndorJob, (job: (JobConjunction))); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1953:1 [INFO] [stdout] | [INFO] [stdout] 1953 | define_list_node!(AndorJobList, andor_job_list, AndorJob); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1953 | let _ = define_list_node!(AndorJobList, andor_job_list, AndorJob); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1974:1 [INFO] [stdout] | [INFO] [stdout] 1974 | implement_acceptor_for_branch!(FreestandingArgumentList, (arguments: (ArgumentList))); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1974 | let _ = implement_acceptor_for_branch!(FreestandingArgumentList, (arguments: (ArgumentList))); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:1986:1 [INFO] [stdout] | [INFO] [stdout] 1986 | / define_list_node!( [INFO] [stdout] 1987 | | JobConjunctionContinuationList, [INFO] [stdout] 1988 | | job_conjunction_continuation_list, [INFO] [stdout] 1989 | | JobConjunctionContinuation [INFO] [stdout] 1990 | | ); [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1986 | let _ = define_list_node!( [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:2004:1 [INFO] [stdout] | [INFO] [stdout] 2004 | define_list_node!(ArgumentList, argument_list, Argument); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 2004 | let _ = define_list_node!(ArgumentList, argument_list, Argument); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:2017:1 [INFO] [stdout] | [INFO] [stdout] 2017 | define_list_node!(JobList, job_list, JobConjunction); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 2017 | let _ = define_list_node!(JobList, job_list, JobConjunction); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:2029:1 [INFO] [stdout] | [INFO] [stdout] 2029 | define_list_node!(CaseItemList, case_item_list, CaseItem); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 2029 | let _ = define_list_node!(CaseItemList, case_item_list, CaseItem); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/ast.rs:4121:9 [INFO] [stdout] | [INFO] [stdout] 4121 | self.visit_mut(&mut *result); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 4121 | let _ = self.visit_mut(&mut *result); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/env/environment.rs:167:13 [INFO] [stdout] | [INFO] [stdout] 167 | fn lock(&self) -> EnvMutexGuard { [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 | fn lock(&self) -> EnvMutexGuard<'_, EnvScopedImpl> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/env/environment.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | fn lock(&self) -> EnvMutexGuard { [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] 202 | fn lock(&self) -> EnvMutexGuard<'_, EnvStackImpl> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/env/environment_impl.rs:1142:17 [INFO] [stdout] | [INFO] [stdout] 1142 | pub fn lock(&self) -> EnvMutexGuard { [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] 1142 | pub fn lock(&self) -> EnvMutexGuard<'_, T> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/history.rs:1291:22 [INFO] [stdout] | [INFO] [stdout] 1291 | fn item_at_index(&mut self, mut idx: usize) -> 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] 1291 | fn item_at_index(&mut self, mut idx: usize) -> Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/history.rs:1513:12 [INFO] [stdout] | [INFO] [stdout] 1513 | fn imp(&self) -> MutexGuard { [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] 1513 | fn imp(&self) -> MutexGuard<'_, HistoryImpl> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/history/file.rs:267:36 [INFO] [stdout] | [INFO] [stdout] 267 | fn maybe_unescape_yaml_fish_2_0(s: &[u8]) -> Cow<[u8]> { [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] 267 | fn maybe_unescape_yaml_fish_2_0(s: &[u8]) -> Cow<'_, [u8]> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/history/file.rs:353:43 [INFO] [stdout] | [INFO] [stdout] 353 | fn extract_prefix_and_unescape_yaml(line: &[u8]) -> Option<(Cow<[u8]>, Cow<[u8]>)> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^ ^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is hidden here [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] 353 | fn extract_prefix_and_unescape_yaml(line: &[u8]) -> Option<(Cow<'_, [u8]>, Cow<'_, [u8]>)> { [INFO] [stdout] | +++ +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/input.rs:468:22 [INFO] [stdout] | [INFO] [stdout] 468 | fn blocking_wait(&self) -> MutexGuard> { [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] 468 | fn blocking_wait(&self) -> MutexGuard<'_, Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/input_common.rs:1577:22 [INFO] [stdout] | [INFO] [stdout] 1577 | fn blocking_wait(&self) -> MutexGuard> { [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] 1577 | fn blocking_wait(&self) -> MutexGuard<'_, Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/operation_context.rs:122:42 [INFO] [stdout] | [INFO] [stdout] 122 | pub fn background_interruptible(env: &dyn Environment) -> OperationContext { [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] 122 | pub fn background_interruptible(env: &dyn Environment) -> OperationContext<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/operation_context.rs:156:28 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn get_bg_context(env: &EnvDyn, generation_count: u32) -> OperationContext { [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] 156 | pub fn get_bg_context(env: &EnvDyn, generation_count: u32) -> OperationContext<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/proc.rs:937:18 [INFO] [stdout] | [INFO] [stdout] 937 | pub fn flags(&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] 937 | pub fn flags(&self) -> Ref<'_, JobFlags> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/proc.rs:942:22 [INFO] [stdout] | [INFO] [stdout] 942 | pub fn mut_flags(&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] 942 | pub fn mut_flags(&self) -> RefMut<'_, JobFlags> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used [INFO] [stdout] --> src/reader.rs:1013:9 [INFO] [stdout] | [INFO] [stdout] 1013 | data.handle_char_event(Some(ch)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 1013 | let _ = data.handle_char_event(Some(ch)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/reader.rs:1231:33 [INFO] [stdout] | [INFO] [stdout] 1231 | pub(crate) fn blocking_wait(&self) -> MutexGuard> { [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] 1231 | pub(crate) fn blocking_wait(&self) -> MutexGuard<'_, Option> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/signal.rs:153:53 [INFO] [stdout] | [INFO] [stdout] 153 | let signal_handler: usize = fish_signal_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(function_casts_as_integer)]` on by default [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 153 | let signal_handler: usize = fish_signal_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/signal.rs:217:44 [INFO] [stdout] | [INFO] [stdout] 217 | act.sa_sigaction = fish_signal_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 217 | act.sa_sigaction = fish_signal_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/signal.rs:222:44 [INFO] [stdout] | [INFO] [stdout] 222 | act.sa_sigaction = fish_signal_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 222 | act.sa_sigaction = fish_signal_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct cast of function item into an integer [INFO] [stdout] --> src/signal.rs:275:44 [INFO] [stdout] | [INFO] [stdout] 275 | act.sa_sigaction = fish_signal_handler as usize; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: first cast to a pointer `as *const ()` [INFO] [stdout] | [INFO] [stdout] 275 | act.sa_sigaction = fish_signal_handler as *const () as usize; [INFO] [stdout] | ++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/wchar_ext.rs:240:14 [INFO] [stdout] | [INFO] [stdout] 240 | fn split(&self, c: char) -> WStrCharSplitIter { [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] 240 | fn split(&self, c: char) -> WStrCharSplitIter<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `fish` (lib test); 6 warnings emitted [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `/opt/rustwide/rustup-home/toolchains/nightly-x86_64-unknown-linux-gnu/bin/clippy-driver /opt/rustwide/rustup-home/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc --crate-name fish --edition=2021 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --emit=dep-info,metadata -C embed-bitcode=no -C debuginfo=2 --allow=unstable_name_collisions --allow=unknown_lints --allow=non_upper_case_globals --allow=non_camel_case_types '--allow=clippy::needless_return' '--allow=clippy::needless_lifetimes' '--allow=clippy::manual_range_contains' --test --cfg 'feature="default"' --cfg 'feature="installable"' --check-cfg 'cfg(docsrs,test)' --check-cfg 'cfg(feature, values("asan", "benchmark", "default", "installable", "tsan"))' -C metadata=0f5b39b27f8aeef3 -C extra-filename=-4d2e45e4eecf807c --out-dir /opt/rustwide/target/debug/deps -L dependency=/opt/rustwide/target/debug/deps --extern bitflags=/opt/rustwide/target/debug/deps/libbitflags-47961c4266c0c36c.rmeta --extern errno=/opt/rustwide/target/debug/deps/liberrno-8e3b434925a45b44.rmeta --extern fish_printf=/opt/rustwide/target/debug/deps/libfish_printf-03dfc8e64a6410e7.rmeta --extern libc=/opt/rustwide/target/debug/deps/liblibc-a129349dcefe6671.rmeta --extern lru=/opt/rustwide/target/debug/deps/liblru-374d0ec5b83db5e0.rmeta --extern nix=/opt/rustwide/target/debug/deps/libnix-ee6d36a2fc403b02.rmeta --extern num_traits=/opt/rustwide/target/debug/deps/libnum_traits-9732d322288c1e6a.rmeta --extern once_cell=/opt/rustwide/target/debug/deps/libonce_cell-154929b6ac9493b9.rmeta --extern pcre2=/opt/rustwide/target/debug/deps/libpcre2-fa6b077a6be70464.rmeta --extern rand=/opt/rustwide/target/debug/deps/librand-36b60f6a6230a956.rmeta --extern rust_embed=/opt/rustwide/target/debug/deps/librust_embed-2afd645f4ebf461f.rmeta --extern serial_test=/opt/rustwide/target/debug/deps/libserial_test-512a60c1cfeab5e6.rmeta --extern terminfo=/opt/rustwide/target/debug/deps/libterminfo-74e18d5eaf57743a.rmeta --extern widestring=/opt/rustwide/target/debug/deps/libwidestring-52fc3082587dd4c3.rmeta --cap-lints=forbid -L native=/opt/rustwide/target/debug/build/fish-151d055a5ace2d99/out -L /usr/local/lib -L native=/usr/lib/x86_64-linux-gnu -L native=/usr/lib/x86_64-linux-gnu -l static=flibc.a --cfg gettext --cfg FISH_USE_POSIX_SPAWN --cfg HAVE_PIPE2 --cfg HAVE_EVENTFD --check-cfg 'cfg()' --check-cfg 'cfg(bsd)' --check-cfg 'cfg(gettext)' --check-cfg 'cfg(small_main_stack)' --check-cfg 'cfg(localeconv_l)' --check-cfg 'cfg(FISH_USE_POSIX_SPAWN)' --check-cfg 'cfg(HAVE_PIPE2)' --check-cfg 'cfg(HAVE_EVENTFD)' --check-cfg 'cfg(HAVE_WAITSTATUS_SIGNAL_RET)'` (signal: 9, SIGKILL: kill) [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] running `Command { std: "docker" "inspect" "17a8a4cdff6dc0f369e1e6b4c7eb3502566b32e8170e58800efa9c1daf808639", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "17a8a4cdff6dc0f369e1e6b4c7eb3502566b32e8170e58800efa9c1daf808639", kill_on_drop: false }` [INFO] [stdout] 17a8a4cdff6dc0f369e1e6b4c7eb3502566b32e8170e58800efa9c1daf808639