[INFO] crate nixterm 0.1.1 is already in cache [INFO] extracting crate nixterm 0.1.1 into work/ex/clippy-test-run/sources/stable/reg/nixterm/0.1.1 [INFO] extracting crate nixterm 0.1.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nixterm/0.1.1 [INFO] validating manifest of nixterm-0.1.1 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 nixterm-0.1.1 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 nixterm-0.1.1 [INFO] removed 0 missing examples [INFO] finished frobbing nixterm-0.1.1 [INFO] frobbed toml for nixterm-0.1.1 written to work/ex/clippy-test-run/sources/stable/reg/nixterm/0.1.1/Cargo.toml [INFO] started frobbing nixterm-0.1.1 [INFO] removed 0 missing examples [INFO] finished frobbing nixterm-0.1.1 [INFO] frobbed toml for nixterm-0.1.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/nixterm/0.1.1/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 nixterm-0.1.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/nixterm/0.1.1:/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] 372390f555c977d85b419d95d408b2e899922a92c3a48cbc856600ffd502edc9 [INFO] running `"docker" "start" "-a" "372390f555c977d85b419d95d408b2e899922a92c3a48cbc856600ffd502edc9"` [INFO] [stderr] Checking nixterm v0.1.1 (/opt/crater/workdir) [INFO] [stderr] warning: 5th binding whose name is just one char [INFO] [stderr] --> src/ansi.rs:214:26 [INFO] [stderr] | [INFO] [stderr] 214 | Color::Rgb(r, g, b) => write!(w, "\x1b[38;2;{};{};{}m", r, g, b), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/ansi.rs:223:26 [INFO] [stderr] | [INFO] [stderr] 223 | Color::Rgb(r, g, b) => write!(w, "\x1b[98;2;{};{};{}m", r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: redundant field names in struct initialization [INFO] [stderr] --> src/errors.rs:123:17 [INFO] [stderr] | [INFO] [stderr] 123 | Error { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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/terminfo/errors.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | Error { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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/terminfo/lang/executor.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | src: src, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `src` [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/terminfo/terminfo.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [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/terminfo/terminfo.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | bools: bools, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bools` [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/terminfo/terminfo.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | numbers: numbers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `numbers` [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/terminfo/terminfo.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [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/terminfo/terminfo.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | ext: ext, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ext` [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/terminfo/terminfo.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | bools: bools, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bools` [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/terminfo/terminfo.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | numbers: numbers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `numbers` [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/terminfo/terminfo.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [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/terminfo/terminfo.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [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/terminfo/terminfobuf.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | strtab: strtab, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `strtab` [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/terminfo/terminfobuf.rs:61:17 [INFO] [stderr] | [INFO] [stderr] 61 | nametab: nametab, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `nametab` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/xterm.rs:48:28 [INFO] [stderr] | [INFO] [stderr] 48 | XColor::Rgbi(r, g, b) => write!(w, "\x1b[4;{};rgbi:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/xterm.rs:49:27 [INFO] [stderr] | [INFO] [stderr] 49 | XColor::Rgb(r, g, b) => write!(w, "\x1b[4;{};rgb:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/xterm.rs:122:36 [INFO] [stderr] | [INFO] [stderr] 122 | ansi::Color::Rgb(r, g, b) => write!(w, "\x1b]58;2;{};{};{}m", r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/ansi.rs:214:26 [INFO] [stderr] | [INFO] [stderr] 214 | Color::Rgb(r, g, b) => write!(w, "\x1b[38;2;{};{};{}m", r, g, b), [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: 5th binding whose name is just one char [INFO] [stderr] --> src/ansi.rs:223:26 [INFO] [stderr] | [INFO] [stderr] 223 | Color::Rgb(r, g, b) => write!(w, "\x1b[98;2;{};{};{}m", r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: redundant field names in struct initialization [INFO] [stderr] --> src/errors.rs:123:17 [INFO] [stderr] | [INFO] [stderr] 123 | Error { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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/terminfo/errors.rs:125:17 [INFO] [stderr] | [INFO] [stderr] 125 | Error { inner: inner } [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `inner` [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/terminfo/lang/executor.rs:22:13 [INFO] [stderr] | [INFO] [stderr] 22 | src: src, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `src` [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/terminfo/terminfo.rs:119:9 [INFO] [stderr] | [INFO] [stderr] 119 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [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/terminfo/terminfo.rs:120:9 [INFO] [stderr] | [INFO] [stderr] 120 | bools: bools, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bools` [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/terminfo/terminfo.rs:121:9 [INFO] [stderr] | [INFO] [stderr] 121 | numbers: numbers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `numbers` [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/terminfo/terminfo.rs:122:9 [INFO] [stderr] | [INFO] [stderr] 122 | strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [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/terminfo/terminfo.rs:124:9 [INFO] [stderr] | [INFO] [stderr] 124 | ext: ext, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ext` [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/terminfo/terminfo.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | bools: bools, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `bools` [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/terminfo/terminfo.rs:192:9 [INFO] [stderr] | [INFO] [stderr] 192 | numbers: numbers, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `numbers` [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/terminfo/terminfo.rs:193:9 [INFO] [stderr] | [INFO] [stderr] 193 | strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [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/terminfo/terminfo.rs:196:9 [INFO] [stderr] | [INFO] [stderr] 196 | names: names, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `names` [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/terminfo/terminfobuf.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | strtab: strtab, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `strtab` [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/terminfo/terminfobuf.rs:61:17 [INFO] [stderr] | [INFO] [stderr] 61 | nametab: nametab, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `nametab` [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: 5th binding whose name is just one char [INFO] [stderr] --> src/xterm.rs:48:28 [INFO] [stderr] | [INFO] [stderr] 48 | XColor::Rgbi(r, g, b) => write!(w, "\x1b[4;{};rgbi:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/xterm.rs:49:27 [INFO] [stderr] | [INFO] [stderr] 49 | XColor::Rgb(r, g, b) => write!(w, "\x1b[4;{};rgb:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: 5th binding whose name is just one char [INFO] [stderr] --> src/xterm.rs:122:36 [INFO] [stderr] | [INFO] [stderr] 122 | ansi::Color::Rgb(r, g, b) => write!(w, "\x1b]58;2;{};{};{}m", r, g, b), [INFO] [stderr] | ^ [INFO] [stderr] | [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: long literal lacking separators [INFO] [stderr] --> src/term.rs:401:54 [INFO] [stderr] | [INFO] [stderr] 401 | ansi::Color::Index(x) => (x as f64 * 0.3451171875) as u8, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `0.345_117_187_5` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/terminfo/lang/parser.rs:249:27 [INFO] [stderr] | [INFO] [stderr] 249 | Err(e) => return Some(Err(e)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(Err(e))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/lang/printf.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | const NULL: &'static [u8] = &[b'(', b'n', b'u', b'l', b'l', b')']; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/terminfo/mod.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | mod terminfo; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/terminfo/mod.rs:31:25 [INFO] [stderr] | [INFO] [stderr] 31 | if let Some(home) = env::home_dir() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/term.rs:401:54 [INFO] [stderr] | [INFO] [stderr] 401 | ansi::Color::Index(x) => (x as f64 * 0.3451171875) as u8, [INFO] [stderr] | ^^^^^^^^^^^^ help: consider: `0.345_117_187_5` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/term.rs:919:22 [INFO] [stderr] | [INFO] [stderr] 919 | const TERMINFO: &'static [u8] = include_bytes!("../test-data/rxvt"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/terminfo/lang/parser.rs:249:27 [INFO] [stderr] | [INFO] [stderr] 249 | Err(e) => return Some(Err(e)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Some(Err(e))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/lang/printf.rs:6:14 [INFO] [stderr] | [INFO] [stderr] 6 | const NULL: &'static [u8] = &[b'(', b'n', b'u', b'l', b'l', b')']; [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/terminfo/mod.rs:5:1 [INFO] [stderr] | [INFO] [stderr] 5 | mod terminfo; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/terminfo.rs:424:23 [INFO] [stderr] | [INFO] [stderr] 424 | const RXVT_INFO: &'static [u8] = include_bytes!("../../test-data/rxvt"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/terminfo.rs:425:24 [INFO] [stderr] | [INFO] [stderr] 425 | const XTERM_INFO: &'static [u8] = include_bytes!("../../test-data/xterm"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/terminfo.rs:426:32 [INFO] [stderr] | [INFO] [stderr] 426 | const LINUX_16COLOR_INFO: &'static [u8] = include_bytes!("../../test-data/linux-16color"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/terminfobuf.rs:364:23 [INFO] [stderr] | [INFO] [stderr] 364 | const RXVT_INFO: &'static [u8] = include_bytes!("../../test-data/rxvt"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/terminfobuf.rs:365:24 [INFO] [stderr] | [INFO] [stderr] 365 | const XTERM_INFO: &'static [u8] = include_bytes!("../../test-data/xterm"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/terminfo/terminfobuf.rs:366:32 [INFO] [stderr] | [INFO] [stderr] 366 | const LINUX_16COLOR_INFO: &'static [u8] = include_bytes!("../../test-data/linux-16color"); [INFO] [stderr] | -^^^^^^^----- help: consider removing `'static`: `&[u8]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:123:40 [INFO] [stderr] | [INFO] [stderr] 123 | assert_eq!(util::has_null_byte(0xFF00FFFFFFFFFFFF), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFF00_FFFF_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:124:40 [INFO] [stderr] | [INFO] [stderr] 124 | assert_eq!(util::has_null_byte(0xFFFFFFFFFFFFFF00), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_FFFF_FF00` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:125:40 [INFO] [stderr] | [INFO] [stderr] 125 | assert_eq!(util::has_null_byte(0xFFFFFFFF00FFFFFF), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFFFF_FFFF_00FF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:126:40 [INFO] [stderr] | [INFO] [stderr] 126 | assert_eq!(util::has_null_byte(0xFF00FFFFFFFFFFFF), true); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: consider: `0xFF00_FFFF_FFFF_FFFF` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | 0b01010101010101010101010101010101010101010101010101010101010101010 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | 0b01010101010101000000101010101010101010101010101010101010101010101 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0_1010_1010_1010_1000_0001_0101_0101_0101_0101_0101_0101_0101_0101_0101_0101_0101` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:142:17 [INFO] [stderr] | [INFO] [stderr] 142 | 0b01010101010101000001010101010101010101010101010101010101010101010 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b0_1010_1010_1010_1000_0010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/util.rs:147:33 [INFO] [stderr] | [INFO] [stderr] 147 | util::has_null_byte(0b010101010101010000000001110101010101010101010101010101010101010), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider: `0b010_1010_1010_1010_0000_0000_1110_1010_1010_1010_1010_1010_1010_1010_1010_1010` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using the home_dir function from https://crates.io/crates/dirs instead. [INFO] [stderr] --> src/terminfo/mod.rs:31:25 [INFO] [stderr] | [INFO] [stderr] 31 | if let Some(home) = env::home_dir() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(deprecated)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/term.rs:662:31 [INFO] [stderr] | [INFO] [stderr] 662 | pub fn default_background(mut self) -> Self { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/term.rs:666:31 [INFO] [stderr] | [INFO] [stderr] 666 | pub fn default_foreground(mut self) -> Self { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: method is never used: `write_u8` [INFO] [stderr] --> src/term.rs:412:5 [INFO] [stderr] | [INFO] [stderr] 412 | fn write_u8(mut self, x: u8) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ansi.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / fn from_hex<'a>(iter: Chars<'a>) -> Result { [INFO] [stderr] 82 | | let s = iter.as_str(); [INFO] [stderr] 83 | | let char_count = s.len(); [INFO] [stderr] 84 | | match char_count { [INFO] [stderr] ... | [INFO] [stderr] 96 | | } [INFO] [stderr] 97 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ansi.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | / fn from_rgb<'a>(srciter: Chars<'a>) -> Result { [INFO] [stderr] 122 | | let s = srciter.clone().as_str(); [INFO] [stderr] 123 | | let iter = srciter.enumerate(); [INFO] [stderr] 124 | | [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `rgb`. [INFO] [stderr] --> src/ansi.rs:129:18 [INFO] [stderr] | [INFO] [stderr] 129 | for x in 0..3 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 129 | for in &mut rgb { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:210:8 [INFO] [stderr] | [INFO] [stderr] 210 | Ok(match c { [INFO] [stderr] | ________^ [INFO] [stderr] 211 | | Color::Index(x @ 0...7) => write!(w, "\x1b[{}m", x + 30), [INFO] [stderr] 212 | | Color::Index(x @ 8...15) => write!(w, "\x1b[{}m", x + 82), [INFO] [stderr] 213 | | Color::Index(x) => write!(w, "\x1b[38;5;{}m", x), [INFO] [stderr] 214 | | Color::Rgb(r, g, b) => write!(w, "\x1b[38;2;{};{};{}m", r, g, b), [INFO] [stderr] 215 | | }.context(ErrorKind::CsiFailed)?) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 210 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:219:8 [INFO] [stderr] | [INFO] [stderr] 219 | Ok(match c { [INFO] [stderr] | ________^ [INFO] [stderr] 220 | | Color::Index(x @ 0...7) => write!(w, "\x1b[{}m", x + 40), [INFO] [stderr] 221 | | Color::Index(x @ 8...15) => write!(w, "\x1b[{}m", x + 92), [INFO] [stderr] 222 | | Color::Index(x) => write!(w, "\x1b[48;5;{}m", x), [INFO] [stderr] 223 | | Color::Rgb(r, g, b) => write!(w, "\x1b[98;2;{};{};{}m", r, g, b), [INFO] [stderr] 224 | | }.context(ErrorKind::CsiFailed)?) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 219 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:229:12 [INFO] [stderr] | [INFO] [stderr] 229 | Ok(write!(w, "\x1b[{}B", -shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 229 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:231:12 [INFO] [stderr] | [INFO] [stderr] 231 | Ok(write!(w, "\x1b[{}A", shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 231 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:239:12 [INFO] [stderr] | [INFO] [stderr] 239 | Ok(write!(w, "\x1b[{}D", -shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 239 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:241:12 [INFO] [stderr] | [INFO] [stderr] 241 | Ok(write!(w, "\x1b[{}C", shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 241 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:248:8 [INFO] [stderr] | [INFO] [stderr] 248 | Ok(write!(w, "\x1b[{};{}m", x, y).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 248 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:252:8 [INFO] [stderr] | [INFO] [stderr] 252 | Ok(write!(w, "\x1b[{}G", x).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 252 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/events.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match self.buffer.pop_front() { [INFO] [stderr] 133 | | Some(v) => return Some(Ok(v)), [INFO] [stderr] 134 | | None => (), [INFO] [stderr] 135 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(v) = self.buffer.pop_front() { return Some(Ok(v)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/events.rs:210:15 [INFO] [stderr] | [INFO] [stderr] 210 | while possible_keys.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_keys.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/term.rs:399:31 [INFO] [stderr] | [INFO] [stderr] 399 | 88..=255 => match color.into() { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `color` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/term.rs:401:43 [INFO] [stderr] | [INFO] [stderr] 401 | ansi::Color::Index(x) => (x as f64 * 0.3451171875) as u8, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/term.rs:404:26 [INFO] [stderr] | [INFO] [stderr] 404 | 256 => match color.into() { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/term.rs:602:18 [INFO] [stderr] | [INFO] [stderr] 602 | let bg = self.background.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.background` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/term.rs:603:18 [INFO] [stderr] | [INFO] [stderr] 603 | let fg = self.foreground.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.foreground` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/term.rs:676:16 [INFO] [stderr] | [INFO] [stderr] 676 | if let Some(_) = self.err() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 677 | | return Ok(0); [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________- help: try this: `if self.err().is_some()` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/term.rs:726:5 [INFO] [stderr] | [INFO] [stderr] 726 | / pub fn writer<'a>(&'a self) -> TermWriter<'a, O> { [INFO] [stderr] 727 | | TermWriter { [INFO] [stderr] 728 | | info: &self.info, [INFO] [stderr] 729 | | stdout: self.stdout.lock().unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 744 | | } [INFO] [stderr] 745 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/term.rs:875:5 [INFO] [stderr] | [INFO] [stderr] 875 | / pub fn read_keys<'a>(&'a self) -> Keys<'a, I, O> { [INFO] [stderr] 876 | | Keys::new(self) [INFO] [stderr] 877 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/lang/argument.rs:28:27 [INFO] [stderr] | [INFO] [stderr] 28 | Argument::Integer(s as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(s)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/lang/argument.rs:46:27 [INFO] [stderr] | [INFO] [stderr] 46 | Argument::Integer(s as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(s)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `terminfo::lang::executor::ExecutionEnvironment` [INFO] [stderr] --> src/terminfo/lang/executor.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> ExecutionEnvironment { [INFO] [stderr] 63 | | ExecutionEnvironment { [INFO] [stderr] 64 | | stack: VecDeque::new(), [INFO] [stderr] 65 | | arguments: [None, None, None, None, None, None, None, None, None], [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 13 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/terminfo/lang/executor.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | / 'exe: loop { [INFO] [stderr] 147 | | let op = match parser.next() { [INFO] [stderr] 148 | | Some(v) => v?, [INFO] [stderr] 149 | | None => break, [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(v) = parser.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/terminfo/lang/executor.rs:198:21 [INFO] [stderr] | [INFO] [stderr] 198 | / match self.arguments[0] { [INFO] [stderr] 199 | | Some(Argument::Integer(ref mut x)) => *x += 1, [INFO] [stderr] 200 | | _ => (), [INFO] [stderr] 201 | | }; [INFO] [stderr] | |_____________________^ help: try this: `if let Some(Argument::Integer(ref mut x)) = self.arguments[0] { *x += 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/terminfo/lang/executor.rs:202:21 [INFO] [stderr] | [INFO] [stderr] 202 | / match self.arguments[1] { [INFO] [stderr] 203 | | Some(Argument::Integer(ref mut x)) => *x += 1, [INFO] [stderr] 204 | | _ => (), [INFO] [stderr] 205 | | }; [INFO] [stderr] | |_____________________^ help: try this: `if let Some(Argument::Integer(ref mut x)) = self.arguments[1] { *x += 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/terminfo/lang/parser.rs:68:15 [INFO] [stderr] | [INFO] [stderr] 68 | while self.slice.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.slice.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/terminfo/lang/parser.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 108 | if self.slice.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.slice.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/terminfo/lang/parser.rs:131:23 [INFO] [stderr] | [INFO] [stderr] 131 | match self.slice.iter().skip(2).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/terminfo/lang/printf.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 30 | if src.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `src.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.iter().nth()` on a slice. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/lang/printf.rs:181:15 [INFO] [stderr] | [INFO] [stderr] 181 | match src.iter().nth(0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_nth)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/terminfo/strtab.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | Ok(unsafe { transmute(&slice[..strlen(slice)]) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(&slice[..strlen(slice)]).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_bytes_to_str)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/terminfo/strtab.rs:98:21 [INFO] [stderr] | [INFO] [stderr] 98 | Ok(unsafe { transmute(&slice[..strlen(slice)]) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(&slice[..strlen(slice)]).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:211:26 [INFO] [stderr] | [INFO] [stderr] 211 | .map(|n| read_le_u16(n, 0) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(n, 0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/terminfo/terminfo.rs:264:35 [INFO] [stderr] | [INFO] [stderr] 264 | .map(|slice| unsafe { mem::transmute::<&[u8], &str>(slice) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(slice).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:277:26 [INFO] [stderr] | [INFO] [stderr] 277 | .map(|n| read_le_u16(n, 0) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(n, 0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:320:17 [INFO] [stderr] | [INFO] [stderr] 320 | read_le_u16(self.numbers, i) as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(self.numbers, i))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:390:25 [INFO] [stderr] | [INFO] [stderr] 390 | read_le_u16(self.numbers, idx) as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(self.numbers, idx))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/terminfo.rs:412:34 [INFO] [stderr] | [INFO] [stderr] 412 | .map(|x| Some(x)) [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `terminfo::terminfobuf::TermInfoBuf` [INFO] [stderr] --> src/terminfo/terminfobuf.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn new() -> TermInfoBuf { [INFO] [stderr] 69 | | TermInfoBuf { [INFO] [stderr] 70 | | names: Vec::new(), [INFO] [stderr] 71 | | bools: Vec::with_capacity(PREDEFINED_BOOLEANS_COUNT), [INFO] [stderr] ... | [INFO] [stderr] 76 | | } [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 42 | impl Default for terminfo::terminfobuf::TermInfoBuf { [INFO] [stderr] 43 | fn default() -> Self { [INFO] [stderr] 44 | Self::new() [INFO] [stderr] 45 | } [INFO] [stderr] 46 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/terminfobuf.rs:45:35 [INFO] [stderr] | [INFO] [stderr] 45 | names: ti.names().map(|n| String::from(n)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/terminfo/terminfobuf.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | / self.bools [INFO] [stderr] 85 | | .iter() [INFO] [stderr] 86 | | .nth(field as usize) [INFO] [stderr] 87 | | .map(|x| *x) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 84 | self.bools [INFO] [stderr] 85 | .iter() [INFO] [stderr] 86 | .nth(field as usize).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | / self.bools [INFO] [stderr] 85 | | .iter() [INFO] [stderr] 86 | | .nth(field as usize) [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/terminfo/terminfobuf.rs:96:14 [INFO] [stderr] | [INFO] [stderr] 96 | .unwrap_or(invalid()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(invalid)` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/terminfo/terminfobuf.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | let x = self.numbers [INFO] [stderr] | _________________^ [INFO] [stderr] 93 | | .iter() [INFO] [stderr] 94 | | .nth(field as usize) [INFO] [stderr] 95 | | .map(|x| *x) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 92 | let x = self.numbers [INFO] [stderr] 93 | .iter() [INFO] [stderr] 94 | .nth(field as usize).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | let x = self.numbers [INFO] [stderr] | _________________^ [INFO] [stderr] 93 | | .iter() [INFO] [stderr] 94 | | .nth(field as usize) [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/terminfo/terminfobuf.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | .unwrap_or(invalid()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(invalid)` [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: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | / self.strings [INFO] [stderr] 108 | | .iter() [INFO] [stderr] 109 | | .nth(field as usize) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/terminfo/terminfobuf.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | / pub fn exec<'a>(&'a self, field: StringField) -> Option> { [INFO] [stderr] 121 | | if let Ok(s) = self.strtab.get_slice( [INFO] [stderr] 122 | | self.strings [INFO] [stderr] 123 | | .iter() [INFO] [stderr] ... | [INFO] [stderr] 131 | | } [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/terminfo/terminfobuf.rs:126:18 [INFO] [stderr] | [INFO] [stderr] 126 | .unwrap_or(invalid()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(invalid)` [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: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | / self.strings [INFO] [stderr] 123 | | .iter() [INFO] [stderr] 124 | | .nth(field as usize) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/term.rs:662:31 [INFO] [stderr] | [INFO] [stderr] 662 | pub fn default_background(mut self) -> Self { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/term.rs:666:31 [INFO] [stderr] | [INFO] [stderr] 666 | pub fn default_foreground(mut self) -> Self { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/terminfobuf.rs:179:30 [INFO] [stderr] | [INFO] [stderr] 179 | .map(|x| Some(x)) [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/mod.rs:39:22 [INFO] [stderr] | [INFO] [stderr] 39 | .map(|p| PathBuf::from(p)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PathBuf::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/terminfo/mod.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | dirs.split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8]` to a more-strictly-aligned pointer (`*const [u16]`) [INFO] [stderr] --> src/util.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | u16::from_le(unsafe { (&*(b as *const [u8] as *const [u16]))[i] }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8]` to a more-strictly-aligned pointer (`*const [u32]`) [INFO] [stderr] --> src/util.rs:33:30 [INFO] [stderr] | [INFO] [stderr] 33 | u32::from_le(unsafe { (&*(b as *const [u8] as *const [u32]))[i] }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const usize`) [INFO] [stderr] --> src/util.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | (s as *const [u8] as *const u8) as *const usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | Ok(write!(w, "\x1b[0;{}\x1b\\", s.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 18 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | Ok(write!(w, "\x1b[1;{}\x1b\\", s.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 22 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | Ok(write!(w, "\x1b[2;{}\x1b\\", s.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 26 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | Ok(write!(w, "\x1b[2;\x1b\\").context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 30 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:34:8 [INFO] [stderr] | [INFO] [stderr] 34 | Ok(write!(w, "\x1b[3;{}={}\x1b\\", k.as_ref(), v.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 34 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:38:8 [INFO] [stderr] | [INFO] [stderr] 38 | Ok(write!(w, "\x1b[3;{}\x1b\\", k.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 38 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:42:8 [INFO] [stderr] | [INFO] [stderr] 42 | Ok(write!(w, "\x1b[3;?{}\x1b\\", k.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 42 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:46:8 [INFO] [stderr] | [INFO] [stderr] 46 | Ok(match new_color { [INFO] [stderr] | ________^ [INFO] [stderr] 47 | | XColor::Index(x) => write!(w, "\x1b[4;{};{}\x1b\\", c, x), [INFO] [stderr] 48 | | XColor::Rgbi(r, g, b) => write!(w, "\x1b[4;{};rgbi:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] 49 | | XColor::Rgb(r, g, b) => write!(w, "\x1b[4;{};rgb:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] 50 | | XColor::Raw(s) => write!(w, "\x1b[4;{};{}\x1b\\", c, s), [INFO] [stderr] 51 | | }.context(ErrorKind::OscFailed)?) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 46 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:55:8 [INFO] [stderr] | [INFO] [stderr] 55 | Ok(write!(w, "\x1b[4;{};?\x1b\\", c).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 55 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/xterm.rs:61:54 [INFO] [stderr] | [INFO] [stderr] 61 | ansi::Color::Rgb(r, g, b) => XColor::Rgb(r as u16, g as u16, b as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/xterm.rs:61:64 [INFO] [stderr] | [INFO] [stderr] 61 | ansi::Color::Rgb(r, g, b) => XColor::Rgb(r as u16, g as u16, b as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/xterm.rs:61:74 [INFO] [stderr] | [INFO] [stderr] 61 | ansi::Color::Rgb(r, g, b) => XColor::Rgb(r as u16, g as u16, b as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:109:12 [INFO] [stderr] | [INFO] [stderr] 109 | Ok(match u { [INFO] [stderr] | ____________^ [INFO] [stderr] 110 | | Underline::None => write!(w, "\x1b]4:0m"), [INFO] [stderr] 111 | | Underline::Straight => write!(w, "\x1b]4:1m"), [INFO] [stderr] 112 | | Underline::Double => write!(w, "\x1b]4:2m"), [INFO] [stderr] ... | [INFO] [stderr] 115 | | Underline::Dashed => write!(w, "\x1b]4:5m"), [INFO] [stderr] 116 | | }.context(ErrorKind::OscFailed)?) [INFO] [stderr] | |________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 109 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:120:12 [INFO] [stderr] | [INFO] [stderr] 120 | Ok(match x.into() { [INFO] [stderr] | ____________^ [INFO] [stderr] 121 | | ansi::Color::Index(i) => write!(w, "\x1b]58;5;{}m", i), [INFO] [stderr] 122 | | ansi::Color::Rgb(r, g, b) => write!(w, "\x1b]58;2;{};{};{}m", r, g, b), [INFO] [stderr] 123 | | }.context(ErrorKind::OscFailed)?) [INFO] [stderr] | |________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 120 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:127:12 [INFO] [stderr] | [INFO] [stderr] 127 | Ok(write!(w, "\x1b]59m").context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 127 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `nixterm`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: method is never used: `write_u8` [INFO] [stderr] --> src/term.rs:412:5 [INFO] [stderr] | [INFO] [stderr] 412 | fn write_u8(mut self, x: u8) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ansi.rs:81:5 [INFO] [stderr] | [INFO] [stderr] 81 | / fn from_hex<'a>(iter: Chars<'a>) -> Result { [INFO] [stderr] 82 | | let s = iter.as_str(); [INFO] [stderr] 83 | | let char_count = s.len(); [INFO] [stderr] 84 | | match char_count { [INFO] [stderr] ... | [INFO] [stderr] 96 | | } [INFO] [stderr] 97 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ansi.rs:121:5 [INFO] [stderr] | [INFO] [stderr] 121 | / fn from_rgb<'a>(srciter: Chars<'a>) -> Result { [INFO] [stderr] 122 | | let s = srciter.clone().as_str(); [INFO] [stderr] 123 | | let iter = srciter.enumerate(); [INFO] [stderr] 124 | | [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: the loop variable `x` is only used to index `rgb`. [INFO] [stderr] --> src/ansi.rs:129:18 [INFO] [stderr] | [INFO] [stderr] 129 | for x in 0..3 { [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_range_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stderr] help: consider using an iterator [INFO] [stderr] | [INFO] [stderr] 129 | for in &mut rgb { [INFO] [stderr] | ^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:210:8 [INFO] [stderr] | [INFO] [stderr] 210 | Ok(match c { [INFO] [stderr] | ________^ [INFO] [stderr] 211 | | Color::Index(x @ 0...7) => write!(w, "\x1b[{}m", x + 30), [INFO] [stderr] 212 | | Color::Index(x @ 8...15) => write!(w, "\x1b[{}m", x + 82), [INFO] [stderr] 213 | | Color::Index(x) => write!(w, "\x1b[38;5;{}m", x), [INFO] [stderr] 214 | | Color::Rgb(r, g, b) => write!(w, "\x1b[38;2;{};{};{}m", r, g, b), [INFO] [stderr] 215 | | }.context(ErrorKind::CsiFailed)?) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unit_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 210 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:219:8 [INFO] [stderr] | [INFO] [stderr] 219 | Ok(match c { [INFO] [stderr] | ________^ [INFO] [stderr] 220 | | Color::Index(x @ 0...7) => write!(w, "\x1b[{}m", x + 40), [INFO] [stderr] 221 | | Color::Index(x @ 8...15) => write!(w, "\x1b[{}m", x + 92), [INFO] [stderr] 222 | | Color::Index(x) => write!(w, "\x1b[48;5;{}m", x), [INFO] [stderr] 223 | | Color::Rgb(r, g, b) => write!(w, "\x1b[98;2;{};{};{}m", r, g, b), [INFO] [stderr] 224 | | }.context(ErrorKind::CsiFailed)?) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 219 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:229:12 [INFO] [stderr] | [INFO] [stderr] 229 | Ok(write!(w, "\x1b[{}B", -shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 229 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:231:12 [INFO] [stderr] | [INFO] [stderr] 231 | Ok(write!(w, "\x1b[{}A", shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 231 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:239:12 [INFO] [stderr] | [INFO] [stderr] 239 | Ok(write!(w, "\x1b[{}D", -shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 239 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:241:12 [INFO] [stderr] | [INFO] [stderr] 241 | Ok(write!(w, "\x1b[{}C", shift).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 241 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:248:8 [INFO] [stderr] | [INFO] [stderr] 248 | Ok(write!(w, "\x1b[{};{}m", x, y).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 248 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/ansi.rs:252:8 [INFO] [stderr] | [INFO] [stderr] 252 | Ok(write!(w, "\x1b[{}G", x).context(ErrorKind::CsiFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 252 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/events.rs:132:9 [INFO] [stderr] | [INFO] [stderr] 132 | / match self.buffer.pop_front() { [INFO] [stderr] 133 | | Some(v) => return Some(Ok(v)), [INFO] [stderr] 134 | | None => (), [INFO] [stderr] 135 | | }; [INFO] [stderr] | |_________^ help: try this: `if let Some(v) = self.buffer.pop_front() { return Some(Ok(v)) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/events.rs:210:15 [INFO] [stderr] | [INFO] [stderr] 210 | while possible_keys.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!possible_keys.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/term.rs:399:31 [INFO] [stderr] | [INFO] [stderr] 399 | 88..=255 => match color.into() { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `color` [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: casting u8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/term.rs:401:43 [INFO] [stderr] | [INFO] [stderr] 401 | ansi::Color::Index(x) => (x as f64 * 0.3451171875) as u8, [INFO] [stderr] | ^^^^^^^^ help: try: `f64::from(x)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/term.rs:404:26 [INFO] [stderr] | [INFO] [stderr] 404 | 256 => match color.into() { [INFO] [stderr] | ^^^^^^^^^^^^ help: consider removing `.into()`: `color` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/term.rs:602:18 [INFO] [stderr] | [INFO] [stderr] 602 | let bg = self.background.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.background` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/term.rs:603:18 [INFO] [stderr] | [INFO] [stderr] 603 | let fg = self.foreground.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.foreground` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_some()` [INFO] [stderr] --> src/term.rs:676:16 [INFO] [stderr] | [INFO] [stderr] 676 | if let Some(_) = self.err() { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 677 | | return Ok(0); [INFO] [stderr] 678 | | } [INFO] [stderr] | |_________- help: try this: `if self.err().is_some()` [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/term.rs:726:5 [INFO] [stderr] | [INFO] [stderr] 726 | / pub fn writer<'a>(&'a self) -> TermWriter<'a, O> { [INFO] [stderr] 727 | | TermWriter { [INFO] [stderr] 728 | | info: &self.info, [INFO] [stderr] 729 | | stdout: self.stdout.lock().unwrap(), [INFO] [stderr] ... | [INFO] [stderr] 744 | | } [INFO] [stderr] 745 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/term.rs:875:5 [INFO] [stderr] | [INFO] [stderr] 875 | / pub fn read_keys<'a>(&'a self) -> Keys<'a, I, O> { [INFO] [stderr] 876 | | Keys::new(self) [INFO] [stderr] 877 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: casting i32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/lang/argument.rs:28:27 [INFO] [stderr] | [INFO] [stderr] 28 | Argument::Integer(s as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(s)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to i64 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/lang/argument.rs:46:27 [INFO] [stderr] | [INFO] [stderr] 46 | Argument::Integer(s as i64) [INFO] [stderr] | ^^^^^^^^ help: try: `i64::from(s)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `terminfo::lang::executor::ExecutionEnvironment` [INFO] [stderr] --> src/terminfo/lang/executor.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 62 | / pub fn new() -> ExecutionEnvironment { [INFO] [stderr] 63 | | ExecutionEnvironment { [INFO] [stderr] 64 | | stack: VecDeque::new(), [INFO] [stderr] 65 | | arguments: [None, None, None, None, None, None, None, None, None], [INFO] [stderr] 66 | | } [INFO] [stderr] 67 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 13 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `while let` loop [INFO] [stderr] --> src/terminfo/lang/executor.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | / 'exe: loop { [INFO] [stderr] 147 | | let op = match parser.next() { [INFO] [stderr] 148 | | Some(v) => v?, [INFO] [stderr] 149 | | None => break, [INFO] [stderr] ... | [INFO] [stderr] 217 | | } [INFO] [stderr] 218 | | } [INFO] [stderr] | |_________^ help: try: `while let Some(v) = parser.next() { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_loop [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/terminfo/lang/executor.rs:198:21 [INFO] [stderr] | [INFO] [stderr] 198 | / match self.arguments[0] { [INFO] [stderr] 199 | | Some(Argument::Integer(ref mut x)) => *x += 1, [INFO] [stderr] 200 | | _ => (), [INFO] [stderr] 201 | | }; [INFO] [stderr] | |_____________________^ help: try this: `if let Some(Argument::Integer(ref mut x)) = self.arguments[0] { *x += 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/terminfo/lang/executor.rs:202:21 [INFO] [stderr] | [INFO] [stderr] 202 | / match self.arguments[1] { [INFO] [stderr] 203 | | Some(Argument::Integer(ref mut x)) => *x += 1, [INFO] [stderr] 204 | | _ => (), [INFO] [stderr] 205 | | }; [INFO] [stderr] | |_____________________^ help: try this: `if let Some(Argument::Integer(ref mut x)) = self.arguments[1] { *x += 1 }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/terminfo/lang/parser.rs:68:15 [INFO] [stderr] | [INFO] [stderr] 68 | while self.slice.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!self.slice.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/terminfo/lang/parser.rs:108:12 [INFO] [stderr] | [INFO] [stderr] 108 | if self.slice.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.slice.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `skip(x).next()` on an iterator. This is more succinctly expressed by calling `nth(x)` [INFO] [stderr] --> src/terminfo/lang/parser.rs:131:23 [INFO] [stderr] | [INFO] [stderr] 131 | match self.slice.iter().skip(2).next() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_skip_next)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_skip_next [INFO] [stderr] [INFO] [stderr] warning: length comparison to one [INFO] [stderr] --> src/terminfo/lang/printf.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 30 | if src.len() < 1 { [INFO] [stderr] | ^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `src.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.iter().nth()` on a slice. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/lang/printf.rs:181:15 [INFO] [stderr] | [INFO] [stderr] 181 | match src.iter().nth(0) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::iter_nth)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/terminfo/lang/mod.rs:126:13 [INFO] [stderr] | [INFO] [stderr] 126 | / b"\"Hello World\" is 11 characters long!" [INFO] [stderr] 127 | | .iter() [INFO] [stderr] 128 | | .map(|&c| c) [INFO] [stderr] | |____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 126 | b"\"Hello World\" is 11 characters long!" [INFO] [stderr] 127 | .iter().cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/terminfo/strtab.rs:44:21 [INFO] [stderr] | [INFO] [stderr] 44 | Ok(unsafe { transmute(&slice[..strlen(slice)]) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(&slice[..strlen(slice)]).unwrap()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::transmute_bytes_to_str)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/terminfo/strtab.rs:98:21 [INFO] [stderr] | [INFO] [stderr] 98 | Ok(unsafe { transmute(&slice[..strlen(slice)]) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(&slice[..strlen(slice)]).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:211:26 [INFO] [stderr] | [INFO] [stderr] 211 | .map(|n| read_le_u16(n, 0) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(n, 0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: transmute from a `&[u8]` to a `&str` [INFO] [stderr] --> src/terminfo/terminfo.rs:264:35 [INFO] [stderr] | [INFO] [stderr] 264 | .map(|slice| unsafe { mem::transmute::<&[u8], &str>(slice) }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::str::from_utf8(slice).unwrap()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#transmute_bytes_to_str [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:277:26 [INFO] [stderr] | [INFO] [stderr] 277 | .map(|n| read_le_u16(n, 0) as u32) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(n, 0))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:320:17 [INFO] [stderr] | [INFO] [stderr] 320 | read_le_u16(self.numbers, i) as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(self.numbers, i))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u16 to u32 may become silently lossy if types change [INFO] [stderr] --> src/terminfo/terminfo.rs:390:25 [INFO] [stderr] | [INFO] [stderr] 390 | read_le_u16(self.numbers, idx) as u32 [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u32::from(read_le_u16(self.numbers, idx))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/terminfo.rs:412:34 [INFO] [stderr] | [INFO] [stderr] 412 | .map(|x| Some(x)) [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `terminfo::terminfobuf::TermInfoBuf` [INFO] [stderr] --> src/terminfo/terminfobuf.rs:68:5 [INFO] [stderr] | [INFO] [stderr] 68 | / pub fn new() -> TermInfoBuf { [INFO] [stderr] 69 | | TermInfoBuf { [INFO] [stderr] 70 | | names: Vec::new(), [INFO] [stderr] 71 | | bools: Vec::with_capacity(PREDEFINED_BOOLEANS_COUNT), [INFO] [stderr] ... | [INFO] [stderr] 76 | | } [INFO] [stderr] 77 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 42 | impl Default for terminfo::terminfobuf::TermInfoBuf { [INFO] [stderr] 43 | fn default() -> Self { [INFO] [stderr] 44 | Self::new() [INFO] [stderr] 45 | } [INFO] [stderr] 46 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/terminfobuf.rs:45:35 [INFO] [stderr] | [INFO] [stderr] 45 | names: ti.names().map(|n| String::from(n)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/terminfo/terminfobuf.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | / self.bools [INFO] [stderr] 85 | | .iter() [INFO] [stderr] 86 | | .nth(field as usize) [INFO] [stderr] 87 | | .map(|x| *x) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 84 | self.bools [INFO] [stderr] 85 | .iter() [INFO] [stderr] 86 | .nth(field as usize).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:84:9 [INFO] [stderr] | [INFO] [stderr] 84 | / self.bools [INFO] [stderr] 85 | | .iter() [INFO] [stderr] 86 | | .nth(field as usize) [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/terminfo/terminfobuf.rs:96:14 [INFO] [stderr] | [INFO] [stderr] 96 | .unwrap_or(invalid()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(invalid)` [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: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/terminfo/terminfobuf.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | let x = self.numbers [INFO] [stderr] | _________________^ [INFO] [stderr] 93 | | .iter() [INFO] [stderr] 94 | | .nth(field as usize) [INFO] [stderr] 95 | | .map(|x| *x) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] help: Consider calling the dedicated `cloned` method [INFO] [stderr] | [INFO] [stderr] 92 | let x = self.numbers [INFO] [stderr] 93 | .iter() [INFO] [stderr] 94 | .nth(field as usize).cloned() [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:92:17 [INFO] [stderr] | [INFO] [stderr] 92 | let x = self.numbers [INFO] [stderr] | _________________^ [INFO] [stderr] 93 | | .iter() [INFO] [stderr] 94 | | .nth(field as usize) [INFO] [stderr] | |________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/terminfo/terminfobuf.rs:111:18 [INFO] [stderr] | [INFO] [stderr] 111 | .unwrap_or(invalid()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(invalid)` [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: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:107:13 [INFO] [stderr] | [INFO] [stderr] 107 | / self.strings [INFO] [stderr] 108 | | .iter() [INFO] [stderr] 109 | | .nth(field as usize) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/terminfo/terminfobuf.rs:120:5 [INFO] [stderr] | [INFO] [stderr] 120 | / pub fn exec<'a>(&'a self, field: StringField) -> Option> { [INFO] [stderr] 121 | | if let Ok(s) = self.strtab.get_slice( [INFO] [stderr] 122 | | self.strings [INFO] [stderr] 123 | | .iter() [INFO] [stderr] ... | [INFO] [stderr] 131 | | } [INFO] [stderr] 132 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/terminfo/terminfobuf.rs:126:18 [INFO] [stderr] | [INFO] [stderr] 126 | .unwrap_or(invalid()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(invalid)` [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: called `.iter().nth()` on a Vec. Calling `.get()` is both faster and more readable [INFO] [stderr] --> src/terminfo/terminfobuf.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | / self.strings [INFO] [stderr] 123 | | .iter() [INFO] [stderr] 124 | | .nth(field as usize) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#iter_nth [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/terminfobuf.rs:179:30 [INFO] [stderr] | [INFO] [stderr] 179 | .map(|x| Some(x)) [INFO] [stderr] | ^^^^^^^^^^^ help: remove closure as shown: `Some` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/terminfo/mod.rs:39:22 [INFO] [stderr] | [INFO] [stderr] 39 | .map(|p| PathBuf::from(p)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PathBuf::from` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: single-character string constant used as pattern [INFO] [stderr] --> src/terminfo/mod.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | dirs.split(":") [INFO] [stderr] | ^^^ help: try using a char instead: `':'` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_char_pattern)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_pattern [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8]` to a more-strictly-aligned pointer (`*const [u16]`) [INFO] [stderr] --> src/util.rs:20:30 [INFO] [stderr] | [INFO] [stderr] 20 | u16::from_le(unsafe { (&*(b as *const [u8] as *const [u16]))[i] }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::cast_ptr_alignment)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const [u8]` to a more-strictly-aligned pointer (`*const [u32]`) [INFO] [stderr] --> src/util.rs:33:30 [INFO] [stderr] | [INFO] [stderr] 33 | u32::from_le(unsafe { (&*(b as *const [u8] as *const [u32]))[i] }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] error: casting from `*const u8` to a more-strictly-aligned pointer (`*const usize`) [INFO] [stderr] --> src/util.rs:74:17 [INFO] [stderr] | [INFO] [stderr] 74 | (s as *const [u8] as *const u8) as *const usize, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_ptr_alignment [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:18:8 [INFO] [stderr] | [INFO] [stderr] 18 | Ok(write!(w, "\x1b[0;{}\x1b\\", s.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 18 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:22:8 [INFO] [stderr] | [INFO] [stderr] 22 | Ok(write!(w, "\x1b[1;{}\x1b\\", s.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 22 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:26:8 [INFO] [stderr] | [INFO] [stderr] 26 | Ok(write!(w, "\x1b[2;{}\x1b\\", s.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 26 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:30:8 [INFO] [stderr] | [INFO] [stderr] 30 | Ok(write!(w, "\x1b[2;\x1b\\").context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 30 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:34:8 [INFO] [stderr] | [INFO] [stderr] 34 | Ok(write!(w, "\x1b[3;{}={}\x1b\\", k.as_ref(), v.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 34 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:38:8 [INFO] [stderr] | [INFO] [stderr] 38 | Ok(write!(w, "\x1b[3;{}\x1b\\", k.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 38 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:42:8 [INFO] [stderr] | [INFO] [stderr] 42 | Ok(write!(w, "\x1b[3;?{}\x1b\\", k.as_ref()).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 42 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:46:8 [INFO] [stderr] | [INFO] [stderr] 46 | Ok(match new_color { [INFO] [stderr] | ________^ [INFO] [stderr] 47 | | XColor::Index(x) => write!(w, "\x1b[4;{};{}\x1b\\", c, x), [INFO] [stderr] 48 | | XColor::Rgbi(r, g, b) => write!(w, "\x1b[4;{};rgbi:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] 49 | | XColor::Rgb(r, g, b) => write!(w, "\x1b[4;{};rgb:{}/{}/{}\x1b\\", c, r, g, b), [INFO] [stderr] 50 | | XColor::Raw(s) => write!(w, "\x1b[4;{};{}\x1b\\", c, s), [INFO] [stderr] 51 | | }.context(ErrorKind::OscFailed)?) [INFO] [stderr] | |____________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 46 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:55:8 [INFO] [stderr] | [INFO] [stderr] 55 | Ok(write!(w, "\x1b[4;{};?\x1b\\", c).context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 55 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/xterm.rs:61:54 [INFO] [stderr] | [INFO] [stderr] 61 | ansi::Color::Rgb(r, g, b) => XColor::Rgb(r as u16, g as u16, b as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(r)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/xterm.rs:61:64 [INFO] [stderr] | [INFO] [stderr] 61 | ansi::Color::Rgb(r, g, b) => XColor::Rgb(r as u16, g as u16, b as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(g)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/xterm.rs:61:74 [INFO] [stderr] | [INFO] [stderr] 61 | ansi::Color::Rgb(r, g, b) => XColor::Rgb(r as u16, g as u16, b as u16), [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(b)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:109:12 [INFO] [stderr] | [INFO] [stderr] 109 | Ok(match u { [INFO] [stderr] | ____________^ [INFO] [stderr] 110 | | Underline::None => write!(w, "\x1b]4:0m"), [INFO] [stderr] 111 | | Underline::Straight => write!(w, "\x1b]4:1m"), [INFO] [stderr] 112 | | Underline::Double => write!(w, "\x1b]4:2m"), [INFO] [stderr] ... | [INFO] [stderr] 115 | | Underline::Dashed => write!(w, "\x1b]4:5m"), [INFO] [stderr] 116 | | }.context(ErrorKind::OscFailed)?) [INFO] [stderr] | |________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 109 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:120:12 [INFO] [stderr] | [INFO] [stderr] 120 | Ok(match x.into() { [INFO] [stderr] | ____________^ [INFO] [stderr] 121 | | ansi::Color::Index(i) => write!(w, "\x1b]58;5;{}m", i), [INFO] [stderr] 122 | | ansi::Color::Rgb(r, g, b) => write!(w, "\x1b]58;2;{};{};{}m", r, g, b), [INFO] [stderr] 123 | | }.context(ErrorKind::OscFailed)?) [INFO] [stderr] | |________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 120 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: passing a unit value to a function [INFO] [stderr] --> src/xterm.rs:127:12 [INFO] [stderr] | [INFO] [stderr] 127 | Ok(write!(w, "\x1b]59m").context(ErrorKind::OscFailed)?) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unit_arg [INFO] [stderr] help: if you intended to pass a unit value, use a unit literal instead [INFO] [stderr] | [INFO] [stderr] 127 | Ok(()) [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `nixterm`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "372390f555c977d85b419d95d408b2e899922a92c3a48cbc856600ffd502edc9"` [INFO] running `"docker" "rm" "-f" "372390f555c977d85b419d95d408b2e899922a92c3a48cbc856600ffd502edc9"` [INFO] [stdout] 372390f555c977d85b419d95d408b2e899922a92c3a48cbc856600ffd502edc9