[INFO] crate skim 0.5.2 is already in cache [INFO] extracting crate skim 0.5.2 into work/ex/clippy-test-run/sources/stable/reg/skim/0.5.2 [INFO] extracting crate skim 0.5.2 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/skim/0.5.2 [INFO] validating manifest of skim-0.5.2 on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of skim-0.5.2 on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing skim-0.5.2 [INFO] finished frobbing skim-0.5.2 [INFO] frobbed toml for skim-0.5.2 written to work/ex/clippy-test-run/sources/stable/reg/skim/0.5.2/Cargo.toml [INFO] started frobbing skim-0.5.2 [INFO] finished frobbing skim-0.5.2 [INFO] frobbed toml for skim-0.5.2 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/skim/0.5.2/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting skim-0.5.2 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/skim/0.5.2:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 4553bf7a7e2e380aec8edc86fb5673c4c6f1243459d5a0ab7ae23174c1e511b5 [INFO] running `"docker" "start" "-a" "4553bf7a7e2e380aec8edc86fb5673c4c6f1243459d5a0ab7ae23174c1e511b5"` [INFO] [stderr] Checking nix v0.11.0 [INFO] [stderr] Checking termion v1.5.1 [INFO] [stderr] Checking skim v0.5.2 (/opt/crater/workdir) [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:197:5 [INFO] [stderr] | [INFO] [stderr] 197 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deprecated_cfg_attr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/curses.rs:581:13 [INFO] [stderr] | [INFO] [stderr] 581 | let x = t[1].parse::().expect("curses:get_cursor_pos: invalid position x"); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:659:5 [INFO] [stderr] | [INFO] [stderr] 659 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:807:1 [INFO] [stderr] | [INFO] [stderr] 807 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:826:1 [INFO] [stderr] | [INFO] [stderr] 826 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/event.rs:82:1 [INFO] [stderr] | [INFO] [stderr] 82 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/input.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | tx_input: tx_input, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `tx_input` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/input.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | keyboard: keyboard, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `keyboard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/input.rs:385:1 [INFO] [stderr] | [INFO] [stderr] 385 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/input.rs:417:1 [INFO] [stderr] | [INFO] [stderr] 417 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | text: text, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | ansi_enabled: ansi_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ansi_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | item: item, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/matcher.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | tx_result: tx_result, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tx_result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/matcher.rs:542:21 [INFO] [stderr] | [INFO] [stderr] 542 | AndEngine { engines: engines } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `engines` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | rx_cmd: rx_cmd, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `rx_cmd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | rx_cmd: rx_cmd, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `rx_cmd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | tx_item: tx_item, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `tx_item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:92:25 [INFO] [stderr] | [INFO] [stderr] 92 | idx: idx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `idx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:93:25 [INFO] [stderr] | [INFO] [stderr] 93 | score: score, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `score` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | adj_num: adj_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `adj_num` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:152:21 [INFO] [stderr] | [INFO] [stderr] 152 | back_ref: back_ref, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `back_ref` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:153:21 [INFO] [stderr] | [INFO] [stderr] 153 | adj_num: adj_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `adj_num` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sender.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | rx_sender: rx_sender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rx_sender` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sender.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | tx_item: tx_item, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `tx_item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:197:5 [INFO] [stderr] | [INFO] [stderr] 197 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::deprecated_cfg_attr)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/curses.rs:581:13 [INFO] [stderr] | [INFO] [stderr] 581 | let x = t[1].parse::().expect("curses:get_cursor_pos: invalid position x"); [INFO] [stderr] | ^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::many_single_char_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#many_single_char_names [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:659:5 [INFO] [stderr] | [INFO] [stderr] 659 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:807:1 [INFO] [stderr] | [INFO] [stderr] 807 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/curses.rs:826:1 [INFO] [stderr] | [INFO] [stderr] 826 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/event.rs:82:1 [INFO] [stderr] | [INFO] [stderr] 82 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/input.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | tx_input: tx_input, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `tx_input` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/input.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | keyboard: keyboard, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `keyboard` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/input.rs:385:1 [INFO] [stderr] | [INFO] [stderr] 385 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: `cfg_attr` is deprecated for rustfmt and got replaced by tool_attributes [INFO] [stderr] --> src/input.rs:417:1 [INFO] [stderr] | [INFO] [stderr] 417 | #[cfg_attr(rustfmt, rustfmt_skip)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `#[rustfmt::skip]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#deprecated_cfg_attr [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:85:13 [INFO] [stderr] | [INFO] [stderr] 85 | index: index, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `index` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:87:13 [INFO] [stderr] | [INFO] [stderr] 87 | text: text, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `text` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:92:13 [INFO] [stderr] | [INFO] [stderr] 92 | ansi_enabled: ansi_enabled, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `ansi_enabled` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/item.rs:191:13 [INFO] [stderr] | [INFO] [stderr] 191 | item: item, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/matcher.rs:48:13 [INFO] [stderr] | [INFO] [stderr] 48 | tx_result: tx_result, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tx_result` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/matcher.rs:542:21 [INFO] [stderr] | [INFO] [stderr] 542 | AndEngine { engines: engines } [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `engines` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/model.rs:69:13 [INFO] [stderr] | [INFO] [stderr] 69 | rx_cmd: rx_cmd, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `rx_cmd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader.rs:88:13 [INFO] [stderr] | [INFO] [stderr] 88 | rx_cmd: rx_cmd, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `rx_cmd` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/reader.rs:89:13 [INFO] [stderr] | [INFO] [stderr] 89 | tx_item: tx_item, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `tx_item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:92:25 [INFO] [stderr] | [INFO] [stderr] 92 | idx: idx, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `idx` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:93:25 [INFO] [stderr] | [INFO] [stderr] 93 | score: score, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `score` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:146:21 [INFO] [stderr] | [INFO] [stderr] 146 | adj_num: adj_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `adj_num` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:152:21 [INFO] [stderr] | [INFO] [stderr] 152 | back_ref: back_ref, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `back_ref` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/score.rs:153:21 [INFO] [stderr] | [INFO] [stderr] 153 | adj_num: adj_num, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `adj_num` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sender.rs:18:13 [INFO] [stderr] | [INFO] [stderr] 18 | rx_sender: rx_sender, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `rx_sender` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/sender.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | tx_item: tx_item, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `tx_item` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/reader.rs:299:17 [INFO] [stderr] | [INFO] [stderr] 299 | / if index.trailing_zeros() > 5 { [INFO] [stderr] 300 | | if stopped.load(Ordering::SeqCst) { [INFO] [stderr] 301 | | break; [INFO] [stderr] 302 | | } [INFO] [stderr] 303 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 299 | if index.trailing_zeros() > 5 && stopped.load(Ordering::SeqCst) { [INFO] [stderr] 300 | break; [INFO] [stderr] 301 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/reader.rs:299:17 [INFO] [stderr] | [INFO] [stderr] 299 | / if index.trailing_zeros() > 5 { [INFO] [stderr] 300 | | if stopped.load(Ordering::SeqCst) { [INFO] [stderr] 301 | | break; [INFO] [stderr] 302 | | } [INFO] [stderr] 303 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 299 | if index.trailing_zeros() > 5 && stopped.load(Ordering::SeqCst) { [INFO] [stderr] 300 | break; [INFO] [stderr] 301 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/ansi.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | self.last_attr.map(|attr| { [INFO] [stderr] | _________________^ [INFO] [stderr] | |_________________| [INFO] [stderr] | || [INFO] [stderr] 38 | || colors.push((0, attr)); [INFO] [stderr] 39 | || }); [INFO] [stderr] | ||__________________^- help: try this: `if let Some(attr) = self.last_attr { colors.push((0, attr)); }` [INFO] [stderr] | |___________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/ansi.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | attr.map(|attr| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 54 | || colors.push((num_chars, attr)); [INFO] [stderr] 55 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(attr) = attr { colors.push((num_chars, attr)); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: type `attr_t` should have a camel case name such as `AttrT` [INFO] [stderr] --> src/curses.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | pub type attr_t = u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/curses.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | .expect(format!("curses:register_ansi: failed to get ansi: {}", &ansi).as_str()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("curses:register_ansi: failed to get ansi: {}", &ansi))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/curses.rs:349:9 [INFO] [stderr] | [INFO] [stderr] 349 | resource_map.get(&key).map(|s| self.stdout_buffer.push_str(s)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(s) = resource_map.get(&key) { self.stdout_buffer.push_str(s) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/field.rs:90:51 [INFO] [stderr] | [INFO] [stderr] 90 | if length == 0 || left > right || right <= 0 || left > length { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using right == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/input.rs:246:26 [INFO] [stderr] | [INFO] [stderr] 246 | .expect(format!("input:get_escaped_key: failed to parse row: {}", row).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("input:get_escaped_key: failed to parse row: {}", row))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/input.rs:248:26 [INFO] [stderr] | [INFO] [stderr] 248 | .expect(format!("input:get_escaped_key: failed to parse col: {}", col).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("input:get_escaped_key: failed to parse col: {}", col))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/matcher.rs:161:21 [INFO] [stderr] | [INFO] [stderr] 161 | matcher_engine.as_ref().map(|mat| { [INFO] [stderr] | _____________________^ [INFO] [stderr] | |_____________________| [INFO] [stderr] | || [INFO] [stderr] 162 | || let matched_items: MatchedItemGroup = [INFO] [stderr] 163 | || items.into_iter().filter_map(|item| mat.match_item(item)).collect(); [INFO] [stderr] 164 | || let _ = self.tx_result.send((Event::EvModelNewItem, Box::new(matched_items))); [INFO] [stderr] 165 | || }); [INFO] [stderr] | ||______________________^- help: try this: `if let Some(mat) = matcher_engine.as_ref() { ... }` [INFO] [stderr] | |_______________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/matcher.rs:271:9 [INFO] [stderr] | [INFO] [stderr] 271 | / if matched_result.is_none() { [INFO] [stderr] 272 | | return None; [INFO] [stderr] 273 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `matched_result?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/matcher.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | / if result_range.is_none() { [INFO] [stderr] 407 | | return None; [INFO] [stderr] 408 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `result_range?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/matcher.rs:557:35 [INFO] [stderr] | [INFO] [stderr] 557 | ranges.extend((start..end).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(start..end)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/matcher.rs:581:13 [INFO] [stderr] | [INFO] [stderr] 581 | / if result.is_none() { [INFO] [stderr] 582 | | return None; [INFO] [stderr] 583 | | } else { [INFO] [stderr] 584 | | results.push(result.unwrap()); [INFO] [stderr] 585 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `result?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:385:22 [INFO] [stderr] | [INFO] [stderr] 385 | .expect(format!("model:draw_items: failed to get item at {}", i).as_str()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:draw_items: failed to get item at {}", i))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/model.rs:416:58 [INFO] [stderr] | [INFO] [stderr] 416 | let mills = (time.as_secs() * 1000) as u32 + time.subsec_nanos() / 1000 / 1000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `time.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:596:18 [INFO] [stderr] | [INFO] [stderr] 596 | .expect(format!("model:draw_items: failed to get item at {}", current_idx).as_str()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:draw_items: failed to get item at {}", current_idx))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:714:14 [INFO] [stderr] | [INFO] [stderr] 714 | .expect(format!("model:act_toggle: failed to get item {}", cursor).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:act_toggle: failed to get item {}", cursor))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/model.rs:716:9 [INFO] [stderr] | [INFO] [stderr] 716 | / if !self.selected.contains_key(&index) { [INFO] [stderr] 717 | | self.selected.insert(index, Arc::clone(current_item)); [INFO] [stderr] 718 | | } else { [INFO] [stderr] 719 | | self.selected.remove(&index); [INFO] [stderr] 720 | | } [INFO] [stderr] | |_________^ help: consider using: `self.selected.entry(index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/model.rs:726:13 [INFO] [stderr] | [INFO] [stderr] 726 | / if !self.selected.contains_key(&index) { [INFO] [stderr] 727 | | self.selected.insert(index, Arc::clone(current_item)); [INFO] [stderr] 728 | | } else { [INFO] [stderr] 729 | | self.selected.remove(&index); [INFO] [stderr] 730 | | } [INFO] [stderr] | |_____________^ help: consider using: `self.selected.entry(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:751:18 [INFO] [stderr] | [INFO] [stderr] 751 | .expect(format!("model:act_output: failed to get item {}", cursor).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:act_output: failed to get item {}", cursor))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/model.rs:790:35 [INFO] [stderr] | [INFO] [stderr] 790 | let shell = env::var("SHELL").unwrap_or("sh".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "sh".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | before.pop().map(|ch| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 208 | || after.push(ch); [INFO] [stderr] 209 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | after.pop().map(|ch| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 215 | || before.push(ch); [INFO] [stderr] 216 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:279:13 [INFO] [stderr] | [INFO] [stderr] 279 | before.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 280 | || after.push(ch); [INFO] [stderr] 281 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:286:13 [INFO] [stderr] | [INFO] [stderr] 286 | before.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 287 | || after.push(ch); [INFO] [stderr] 288 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:297:13 [INFO] [stderr] | [INFO] [stderr] 297 | after.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 298 | || before.push(ch); [INFO] [stderr] 299 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:303:13 [INFO] [stderr] | [INFO] [stderr] 303 | after.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 304 | || before.push(ch); [INFO] [stderr] 305 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | before.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 313 | || after.push(ch); [INFO] [stderr] 314 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | after.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 322 | || before.push(ch); [INFO] [stderr] 323 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/reader.rs:183:37 [INFO] [stderr] | [INFO] [stderr] 183 | fn get_command_output(cmd: &str) -> Result<(Option, Box), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/reader.rs:184:35 [INFO] [stderr] | [INFO] [stderr] 184 | let shell = env::var("SHELL").unwrap_or("sh".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "sh".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/reader.rs:228:15 [INFO] [stderr] | [INFO] [stderr] 228 | while !command.is_none() && !stopped_clone.load(Ordering::Relaxed) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `command.is_some() && !stopped_clone.load(Ordering::Relaxed)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/reader.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | command.map(|mut x| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 234 | || let _ = x.kill(); [INFO] [stderr] 235 | || let _ = x.wait(); [INFO] [stderr] 236 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(mut x) = command { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/score.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | / if ret.is_none() { [INFO] [stderr] 182 | | return None; [INFO] [stderr] 183 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `ret?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/score.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | / if start_pos.is_none() { [INFO] [stderr] 200 | | return None; [INFO] [stderr] 201 | | }; [INFO] [stderr] | |_____^ help: replace_it_with: `start_pos?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/score.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | / if last_pos.is_none() { [INFO] [stderr] 214 | | return None; [INFO] [stderr] 215 | | }; [INFO] [stderr] | |_____^ help: replace_it_with: `last_pos?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/lib.rs:73:24 [INFO] [stderr] | [INFO] [stderr] 73 | if let Err(_) = tx_input_clone.send((EvActRedraw, Box::new(true))) { [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 74 | | break; [INFO] [stderr] 75 | | } [INFO] [stderr] | |_________________- help: try this: `if tx_input_clone.send((EvActRedraw, Box::new(true))).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:296:35 [INFO] [stderr] | [INFO] [stderr] 296 | let (tx, rx): (Sender>>, Receiver>>) = channel(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `skim`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/ansi.rs:37:17 [INFO] [stderr] | [INFO] [stderr] 37 | self.last_attr.map(|attr| { [INFO] [stderr] | _________________^ [INFO] [stderr] | |_________________| [INFO] [stderr] | || [INFO] [stderr] 38 | || colors.push((0, attr)); [INFO] [stderr] 39 | || }); [INFO] [stderr] | ||__________________^- help: try this: `if let Some(attr) = self.last_attr { colors.push((0, attr)); }` [INFO] [stderr] | |___________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/ansi.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | attr.map(|attr| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 54 | || colors.push((num_chars, attr)); [INFO] [stderr] 55 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(attr) = attr { colors.push((num_chars, attr)); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: type `attr_t` should have a camel case name such as `AttrT` [INFO] [stderr] --> src/curses.rs:34:1 [INFO] [stderr] | [INFO] [stderr] 34 | pub type attr_t = u16; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(non_camel_case_types)] on by default [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/curses.rs:63:14 [INFO] [stderr] | [INFO] [stderr] 63 | .expect(format!("curses:register_ansi: failed to get ansi: {}", &ansi).as_str()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("curses:register_ansi: failed to get ansi: {}", &ansi))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/curses.rs:349:9 [INFO] [stderr] | [INFO] [stderr] 349 | resource_map.get(&key).map(|s| self.stdout_buffer.push_str(s)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(s) = resource_map.get(&key) { self.stdout_buffer.push_str(s) }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] error: this comparison involving the minimum or maximum element for this type contains a case that is always true or always false [INFO] [stderr] --> src/field.rs:90:51 [INFO] [stderr] | [INFO] [stderr] 90 | if length == 0 || left > right || right <= 0 || left > length { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::absurd_extreme_comparisons)] on by default [INFO] [stderr] = help: because 0 is the minimum value for this type, the case where the two sides are not equal never occurs, consider using right == 0 instead [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#absurd_extreme_comparisons [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 44 [INFO] [stderr] --> src/field.rs:202:5 [INFO] [stderr] | [INFO] [stderr] 202 | / fn test_parse_field_range() { [INFO] [stderr] 203 | | assert_eq!(Single(0).to_index_pair(10), None); [INFO] [stderr] 204 | | assert_eq!(Single(1).to_index_pair(10), Some((0, 1))); [INFO] [stderr] 205 | | assert_eq!(Single(10).to_index_pair(10), Some((9, 10))); [INFO] [stderr] ... | [INFO] [stderr] 248 | | assert_eq!(Both(-11, -11).to_index_pair(10), None); [INFO] [stderr] 249 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:257:64 [INFO] [stderr] | [INFO] [stderr] 257 | super::parse_transform_fields(&re, &"A,B,C,D,E,F", &vec![Single(2), Single(4), Single(-1), Single(-7)]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Single(2), Single(4), Single(-1), Single(-7)]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_vec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:262:64 [INFO] [stderr] | [INFO] [stderr] 262 | super::parse_transform_fields(&re, &"A,B,C,D,E,F", &vec![LeftInf(3), LeftInf(-6), LeftInf(-7)]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[LeftInf(3), LeftInf(-6), LeftInf(-7)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:270:17 [INFO] [stderr] | [INFO] [stderr] 270 | &vec![RightInf(5), RightInf(-2), RightInf(-1), RightInf(8)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[RightInf(5), RightInf(-2), RightInf(-1), RightInf(8)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:279:17 [INFO] [stderr] | [INFO] [stderr] 279 | &vec![Both(3, 3), Both(-9, 2), Both(6, 10), Both(-9, -5)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Both(3, 3), Both(-9, 2), Both(6, 10), Both(-9, -5)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:294:17 [INFO] [stderr] | [INFO] [stderr] 294 | &vec![Single(2), Single(4), Single(-1), Single(-7)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Single(2), Single(4), Single(-1), Single(-7)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:300:63 [INFO] [stderr] | [INFO] [stderr] 300 | super::parse_matching_fields(&re, &"中,华,人,民,E,F", &vec![LeftInf(3), LeftInf(-6), LeftInf(-7)]), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[LeftInf(3), LeftInf(-6), LeftInf(-7)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:308:17 [INFO] [stderr] | [INFO] [stderr] 308 | &vec![RightInf(5), RightInf(-2), RightInf(-1), RightInf(7)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[RightInf(5), RightInf(-2), RightInf(-1), RightInf(7)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: useless use of `vec!` [INFO] [stderr] --> src/field.rs:317:17 [INFO] [stderr] | [INFO] [stderr] 317 | &vec![Both(3, 3), Both(-8, 2), Both(6, 10), Both(-8, -5)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use a slice directly: `&[Both(3, 3), Both(-8, 2), Both(6, 10), Both(-8, -5)]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 55 [INFO] [stderr] --> src/field.rs:325:5 [INFO] [stderr] | [INFO] [stderr] 325 | / fn test_get_string_by_field() { [INFO] [stderr] 326 | | // delimiter is "," [INFO] [stderr] 327 | | let re = Regex::new(",").unwrap(); [INFO] [stderr] 328 | | let text = "a,b,c,"; [INFO] [stderr] ... | [INFO] [stderr] 385 | | assert_eq!(get_string_by_field(&re, &text, &Both(4, 3)), None); [INFO] [stderr] 386 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: trivial regex [INFO] [stderr] --> src/field.rs:327:29 [INFO] [stderr] | [INFO] [stderr] 327 | let re = Regex::new(",").unwrap(); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivial_regex)] on by default [INFO] [stderr] = help: consider using `str::contains` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivial_regex [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/input.rs:246:26 [INFO] [stderr] | [INFO] [stderr] 246 | .expect(format!("input:get_escaped_key: failed to parse row: {}", row).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("input:get_escaped_key: failed to parse row: {}", row))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/input.rs:248:26 [INFO] [stderr] | [INFO] [stderr] 248 | .expect(format!("input:get_escaped_key: failed to parse col: {}", col).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("input:get_escaped_key: failed to parse col: {}", col))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/matcher.rs:161:21 [INFO] [stderr] | [INFO] [stderr] 161 | matcher_engine.as_ref().map(|mat| { [INFO] [stderr] | _____________________^ [INFO] [stderr] | |_____________________| [INFO] [stderr] | || [INFO] [stderr] 162 | || let matched_items: MatchedItemGroup = [INFO] [stderr] 163 | || items.into_iter().filter_map(|item| mat.match_item(item)).collect(); [INFO] [stderr] 164 | || let _ = self.tx_result.send((Event::EvModelNewItem, Box::new(matched_items))); [INFO] [stderr] 165 | || }); [INFO] [stderr] | ||______________________^- help: try this: `if let Some(mat) = matcher_engine.as_ref() { ... }` [INFO] [stderr] | |_______________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/matcher.rs:271:9 [INFO] [stderr] | [INFO] [stderr] 271 | / if matched_result.is_none() { [INFO] [stderr] 272 | | return None; [INFO] [stderr] 273 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `matched_result?;` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::question_mark)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/matcher.rs:406:9 [INFO] [stderr] | [INFO] [stderr] 406 | / if result_range.is_none() { [INFO] [stderr] 407 | | return None; [INFO] [stderr] 408 | | } [INFO] [stderr] | |_________^ help: replace_it_with: `result_range?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/matcher.rs:557:35 [INFO] [stderr] | [INFO] [stderr] 557 | ranges.extend((start..end).into_iter()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `(start..end)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/matcher.rs:581:13 [INFO] [stderr] | [INFO] [stderr] 581 | / if result.is_none() { [INFO] [stderr] 582 | | return None; [INFO] [stderr] 583 | | } else { [INFO] [stderr] 584 | | results.push(result.unwrap()); [INFO] [stderr] 585 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `result?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:385:22 [INFO] [stderr] | [INFO] [stderr] 385 | .expect(format!("model:draw_items: failed to get item at {}", i).as_str()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:draw_items: failed to get item at {}", i))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: Calling `subsec_micros()` is more concise than this calculation [INFO] [stderr] --> src/model.rs:416:58 [INFO] [stderr] | [INFO] [stderr] 416 | let mills = (time.as_secs() * 1000) as u32 + time.subsec_nanos() / 1000 / 1000; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `time.subsec_micros()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::duration_subsec)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#duration_subsec [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:596:18 [INFO] [stderr] | [INFO] [stderr] 596 | .expect(format!("model:draw_items: failed to get item at {}", current_idx).as_str()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:draw_items: failed to get item at {}", current_idx))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:714:14 [INFO] [stderr] | [INFO] [stderr] 714 | .expect(format!("model:act_toggle: failed to get item {}", cursor).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:act_toggle: failed to get item {}", cursor))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/model.rs:716:9 [INFO] [stderr] | [INFO] [stderr] 716 | / if !self.selected.contains_key(&index) { [INFO] [stderr] 717 | | self.selected.insert(index, Arc::clone(current_item)); [INFO] [stderr] 718 | | } else { [INFO] [stderr] 719 | | self.selected.remove(&index); [INFO] [stderr] 720 | | } [INFO] [stderr] | |_________^ help: consider using: `self.selected.entry(index)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_entry)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: usage of `contains_key` followed by `insert` on a `HashMap` [INFO] [stderr] --> src/model.rs:726:13 [INFO] [stderr] | [INFO] [stderr] 726 | / if !self.selected.contains_key(&index) { [INFO] [stderr] 727 | | self.selected.insert(index, Arc::clone(current_item)); [INFO] [stderr] 728 | | } else { [INFO] [stderr] 729 | | self.selected.remove(&index); [INFO] [stderr] 730 | | } [INFO] [stderr] | |_____________^ help: consider using: `self.selected.entry(index)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_entry [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> src/model.rs:751:18 [INFO] [stderr] | [INFO] [stderr] 751 | .expect(format!("model:act_output: failed to get item {}", cursor).as_str()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| panic!("model:act_output: failed to get item {}", cursor))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/model.rs:790:35 [INFO] [stderr] | [INFO] [stderr] 790 | let shell = env::var("SHELL").unwrap_or("sh".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "sh".to_string())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:207:9 [INFO] [stderr] | [INFO] [stderr] 207 | before.pop().map(|ch| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 208 | || after.push(ch); [INFO] [stderr] 209 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:214:9 [INFO] [stderr] | [INFO] [stderr] 214 | after.pop().map(|ch| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 215 | || before.push(ch); [INFO] [stderr] 216 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:279:13 [INFO] [stderr] | [INFO] [stderr] 279 | before.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 280 | || after.push(ch); [INFO] [stderr] 281 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:286:13 [INFO] [stderr] | [INFO] [stderr] 286 | before.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 287 | || after.push(ch); [INFO] [stderr] 288 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:297:13 [INFO] [stderr] | [INFO] [stderr] 297 | after.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 298 | || before.push(ch); [INFO] [stderr] 299 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:303:13 [INFO] [stderr] | [INFO] [stderr] 303 | after.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 304 | || before.push(ch); [INFO] [stderr] 305 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:312:13 [INFO] [stderr] | [INFO] [stderr] 312 | before.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 313 | || after.push(ch); [INFO] [stderr] 314 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = before.pop() { after.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/query.rs:321:13 [INFO] [stderr] | [INFO] [stderr] 321 | after.pop().map(|ch| { [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 322 | || before.push(ch); [INFO] [stderr] 323 | || }); [INFO] [stderr] | ||______________^- help: try this: `if let Some(ch) = after.pop() { before.push(ch); }` [INFO] [stderr] | |_______________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/reader.rs:183:37 [INFO] [stderr] | [INFO] [stderr] 183 | fn get_command_output(cmd: &str) -> Result<(Option, Box), Box> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/reader.rs:184:35 [INFO] [stderr] | [INFO] [stderr] 184 | let shell = env::var("SHELL").unwrap_or("sh".to_string()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| "sh".to_string())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/reader.rs:228:15 [INFO] [stderr] | [INFO] [stderr] 228 | while !command.is_none() && !stopped_clone.load(Ordering::Relaxed) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `command.is_some() && !stopped_clone.load(Ordering::Relaxed)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> src/reader.rs:233:9 [INFO] [stderr] | [INFO] [stderr] 233 | command.map(|mut x| { [INFO] [stderr] | _________^ [INFO] [stderr] | |_________| [INFO] [stderr] | || [INFO] [stderr] 234 | || let _ = x.kill(); [INFO] [stderr] 235 | || let _ = x.wait(); [INFO] [stderr] 236 | || }); [INFO] [stderr] | ||__________^- help: try this: `if let Some(mut x) = command { ... }` [INFO] [stderr] | |___________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/score.rs:181:13 [INFO] [stderr] | [INFO] [stderr] 181 | / if ret.is_none() { [INFO] [stderr] 182 | | return None; [INFO] [stderr] 183 | | } [INFO] [stderr] | |_____________^ help: replace_it_with: `ret?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/score.rs:199:5 [INFO] [stderr] | [INFO] [stderr] 199 | / if start_pos.is_none() { [INFO] [stderr] 200 | | return None; [INFO] [stderr] 201 | | }; [INFO] [stderr] | |_____^ help: replace_it_with: `start_pos?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: this block may be rewritten with the `?` operator [INFO] [stderr] --> src/score.rs:213:5 [INFO] [stderr] | [INFO] [stderr] 213 | / if last_pos.is_none() { [INFO] [stderr] 214 | | return None; [INFO] [stderr] 215 | | }; [INFO] [stderr] | |_____^ help: replace_it_with: `last_pos?;` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/lib.rs:73:24 [INFO] [stderr] | [INFO] [stderr] 73 | if let Err(_) = tx_input_clone.send((EvActRedraw, Box::new(true))) { [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 74 | | break; [INFO] [stderr] 75 | | } [INFO] [stderr] | |_________________- help: try this: `if tx_input_clone.send((EvActRedraw, Box::new(true))).is_err()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_pattern_matching)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/lib.rs:296:35 [INFO] [stderr] | [INFO] [stderr] 296 | let (tx, rx): (Sender>>, Receiver>>) = channel(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `skim`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "4553bf7a7e2e380aec8edc86fb5673c4c6f1243459d5a0ab7ae23174c1e511b5"` [INFO] running `"docker" "rm" "-f" "4553bf7a7e2e380aec8edc86fb5673c4c6f1243459d5a0ab7ae23174c1e511b5"` [INFO] [stdout] 4553bf7a7e2e380aec8edc86fb5673c4c6f1243459d5a0ab7ae23174c1e511b5