[INFO] crate shellharden 4.1.0 is already in cache [INFO] extracting crate shellharden 4.1.0 into work/ex/clippy-test-run/sources/stable/reg/shellharden/4.1.0 [INFO] extracting crate shellharden 4.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/shellharden/4.1.0 [INFO] validating manifest of shellharden-4.1.0 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 shellharden-4.1.0 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 shellharden-4.1.0 [INFO] finished frobbing shellharden-4.1.0 [INFO] frobbed toml for shellharden-4.1.0 written to work/ex/clippy-test-run/sources/stable/reg/shellharden/4.1.0/Cargo.toml [INFO] started frobbing shellharden-4.1.0 [INFO] finished frobbing shellharden-4.1.0 [INFO] frobbed toml for shellharden-4.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/shellharden/4.1.0/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 shellharden-4.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/shellharden/4.1.0:/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] 541ab0b3c0d1fa3943dd4de5b12dd8846def89d6476a8ab5ab581e094d7cef7d [INFO] running `"docker" "start" "-a" "541ab0b3c0d1fa3943dd4de5b12dd8846def89d6476a8ab5ab581e094d7cef7d"` [INFO] [stderr] Checking shellharden v4.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/commonargcmd.rs:60:46 [INFO] [stderr] | [INFO] [stderr] 60 | tri: Transition::Push(Box::new(SitRvalue{end_trigger: end_trigger})), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_trigger` [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/commonargcmd.rs:75:12 [INFO] [stderr] | [INFO] [stderr] 75 | pre: i, len: len, alt: None [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/commonargcmd.rs:79:12 [INFO] [stderr] | [INFO] [stderr] 79 | pre: i, len: len, alt: None [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/commonargcmd.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | len: len, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/commonargcmd.rs:102:42 [INFO] [stderr] | [INFO] [stderr] 102 | tri: Transition::Push(Box::new(SitCmd{end_trigger: end_trigger})), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_trigger` [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/commonargcmd.rs:60:46 [INFO] [stderr] | [INFO] [stderr] 60 | tri: Transition::Push(Box::new(SitRvalue{end_trigger: end_trigger})), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_trigger` [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/commonargcmd.rs:75:12 [INFO] [stderr] | [INFO] [stderr] 75 | pre: i, len: len, alt: None [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/commonargcmd.rs:79:12 [INFO] [stderr] | [INFO] [stderr] 79 | pre: i, len: len, alt: None [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/commonargcmd.rs:96:5 [INFO] [stderr] | [INFO] [stderr] 96 | len: len, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `len` [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/commonargcmd.rs:102:42 [INFO] [stderr] | [INFO] [stderr] 102 | tri: Transition::Push(Box::new(SitCmd{end_trigger: end_trigger})), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_trigger` [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: long literal lacking separators [INFO] [stderr] --> src/machine.rs:229:16 [INFO] [stderr] | [INFO] [stderr] 229 | let color_a = 0x10800000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1080_0000` [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: long literal lacking separators [INFO] [stderr] --> src/machine.rs:230:16 [INFO] [stderr] | [INFO] [stderr] 230 | let color_b = 0x10008000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1000_8000` [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/machine.rs:286:12 [INFO] [stderr] | [INFO] [stderr] 286 | if code & 0x00ffffff == 0 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_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/situation.rs:41:31 [INFO] [stderr] | [INFO] [stderr] 41 | pub const COLOR_NORMAL: u32 = 0x00000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0000` [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/situation.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | const COLOR_BOLD : u32 = 0x01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0100_0000` [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/situation.rs:43:26 [INFO] [stderr] | [INFO] [stderr] 43 | const COLOR_ITAL : u32 = 0x02000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0200_0000` [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/situation.rs:46:31 [INFO] [stderr] | [INFO] [stderr] 46 | pub const COLOR_CMD : u32 = 0xc00080; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00c0_0080` [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/situation.rs:47:31 [INFO] [stderr] | [INFO] [stderr] 47 | pub const COLOR_MAGIC : u32 = 0xc000c0; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00c0_00c0` [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/situation.rs:48:31 [INFO] [stderr] | [INFO] [stderr] 48 | pub const COLOR_VAR : u32 = 0x007fff; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_7fff` [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/situation.rs:49:31 [INFO] [stderr] | [INFO] [stderr] 49 | pub const COLOR_HERE : u32 = 0x802000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0080_2000` [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/situation.rs:50:31 [INFO] [stderr] | [INFO] [stderr] 50 | pub const COLOR_CMT : u32 = 0x283020 | COLOR_BOLD | COLOR_ITAL; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0028_3020` [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/commonargcmd.rs:230:26 [INFO] [stderr] | [INFO] [stderr] 230 | until: b'\'', color: 0x00ffff00, end_replace: None [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_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: unneeded return statement [INFO] [stderr] --> src/commonargcmd.rs:315:2 [INFO] [stderr] | [INFO] [stderr] 315 | return (ate, found); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(ate, found)` [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: unneeded return statement [INFO] [stderr] --> src/commonstrcmd.rs:213:2 [INFO] [stderr] | [INFO] [stderr] 213 | return CommonStrCmdResult::Ok(flush(i+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `CommonStrCmdResult::Ok(flush(i+1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/commonstrcmd.rs:52:47 [INFO] [stderr] | [INFO] [stderr] 52 | let esc = Box::new(SitExtent{len: 1, color: 0x01ff0080, end_insert: None}); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x01ff_0080` [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: unneeded return statement [INFO] [stderr] --> src/commonstrcmd.rs:231:2 [INFO] [stderr] | [INFO] [stderr] 231 | return (idlen, pos); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(idlen, pos)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/commonstrcmd.rs:223:2 [INFO] [stderr] | [INFO] [stderr] 223 | if idlen < horizon.len() { [INFO] [stderr] | _____^ [INFO] [stderr] 224 | | if horizon[pos] == end { [INFO] [stderr] 225 | | pos += 1; [INFO] [stderr] 226 | | if pos < horizon.len() { [INFO] [stderr] ... | [INFO] [stderr] 229 | | } [INFO] [stderr] 230 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 223 | if idlen < horizon.len() && horizon[pos] == end { [INFO] [stderr] 224 | pos += 1; [INFO] [stderr] 225 | if pos < horizon.len() { [INFO] [stderr] 226 | pos += predlen(&|x| x == b'\"', &horizon[pos ..]); [INFO] [stderr] 227 | } [INFO] [stderr] 228 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/microparsers.rs:39:2 [INFO] [stderr] | [INFO] [stderr] 39 | return if horizon.len() > 0 && is_identifierhead(horizon[0]) { [INFO] [stderr] | _____^ [INFO] [stderr] 40 | | 1 + predlen(&is_identifiertail, &horizon[1 ..]) [INFO] [stderr] 41 | | } else { [INFO] [stderr] 42 | | 0 [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 39 | if horizon.len() > 0 && is_identifierhead(horizon[0]) { [INFO] [stderr] 40 | 1 + predlen(&is_identifiertail, &horizon[1 ..]) [INFO] [stderr] 41 | } else { [INFO] [stderr] 42 | 0 [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sitstrsqesc.rs:23:49 [INFO] [stderr] | [INFO] [stderr] 23 | let esc = Box::new(SitExtent{len: 1, color: 0x01ff0080, end_insert: None}); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x01ff_0080` [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/sitstrsqesc.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | 0x00ff8000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_8000` [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: unneeded return statement [INFO] [stderr] --> src/situntilbyte.rs:26:3 [INFO] [stderr] | [INFO] [stderr] 26 | return Ok(if len < horizon.len() { [INFO] [stderr] | _________^ [INFO] [stderr] 27 | | WhatNow{tri: Transition::Pop, pre: len, len: 1, alt: self.end_replace} [INFO] [stderr] 28 | | } else { [INFO] [stderr] 29 | | flush(len) [INFO] [stderr] 30 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 26 | Ok(if len < horizon.len() { [INFO] [stderr] 27 | WhatNow{tri: Transition::Pop, pre: len, len: 1, alt: self.end_replace} [INFO] [stderr] 28 | } else { [INFO] [stderr] 29 | flush(len) [INFO] [stderr] 30 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sitextent.rs:27:3 [INFO] [stderr] | [INFO] [stderr] 27 | return Ok(flush(horizon.len())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(flush(horizon.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sitstrdq.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | 0x00ff0000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_0000` [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: unneeded return statement [INFO] [stderr] --> src/sitstrphantom.rs:68:3 [INFO] [stderr] | [INFO] [stderr] 68 | return Ok(WhatNow{ [INFO] [stderr] | _________^ [INFO] [stderr] 69 | | tri: Transition::Pop, pre: 0, len: 0, alt: Some(b"\"") [INFO] [stderr] 70 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 68 | Ok(WhatNow{ [INFO] [stderr] 69 | tri: Transition::Pop, pre: 0, len: 0, alt: Some(b"\"") [INFO] [stderr] 70 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sitstrphantom.rs:73:3 [INFO] [stderr] | [INFO] [stderr] 73 | 0x00ff0000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_0000` [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/machine.rs:229:16 [INFO] [stderr] | [INFO] [stderr] 229 | let color_a = 0x10800000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1080_0000` [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: long literal lacking separators [INFO] [stderr] --> src/machine.rs:230:16 [INFO] [stderr] | [INFO] [stderr] 230 | let color_b = 0x10008000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x1000_8000` [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/machine.rs:286:12 [INFO] [stderr] | [INFO] [stderr] 286 | if code & 0x00ffffff == 0 { [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_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/situation.rs:41:31 [INFO] [stderr] | [INFO] [stderr] 41 | pub const COLOR_NORMAL: u32 = 0x00000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0000_0000` [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/situation.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | const COLOR_BOLD : u32 = 0x01000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0100_0000` [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/situation.rs:43:26 [INFO] [stderr] | [INFO] [stderr] 43 | const COLOR_ITAL : u32 = 0x02000000; [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x0200_0000` [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/situation.rs:46:31 [INFO] [stderr] | [INFO] [stderr] 46 | pub const COLOR_CMD : u32 = 0xc00080; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00c0_0080` [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/situation.rs:47:31 [INFO] [stderr] | [INFO] [stderr] 47 | pub const COLOR_MAGIC : u32 = 0xc000c0; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x00c0_00c0` [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/situation.rs:48:31 [INFO] [stderr] | [INFO] [stderr] 48 | pub const COLOR_VAR : u32 = 0x007fff; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0000_7fff` [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/situation.rs:49:31 [INFO] [stderr] | [INFO] [stderr] 49 | pub const COLOR_HERE : u32 = 0x802000; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0080_2000` [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/situation.rs:50:31 [INFO] [stderr] | [INFO] [stderr] 50 | pub const COLOR_CMT : u32 = 0x283020 | COLOR_BOLD | COLOR_ITAL; [INFO] [stderr] | ^^^^^^^^ help: consider: `0x0028_3020` [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/commonargcmd.rs:230:26 [INFO] [stderr] | [INFO] [stderr] 230 | until: b'\'', color: 0x00ffff00, end_replace: None [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_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: unneeded return statement [INFO] [stderr] --> src/commonargcmd.rs:315:2 [INFO] [stderr] | [INFO] [stderr] 315 | return (ate, found); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(ate, found)` [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: unneeded return statement [INFO] [stderr] --> src/commonstrcmd.rs:213:2 [INFO] [stderr] | [INFO] [stderr] 213 | return CommonStrCmdResult::Ok(flush(i+1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `CommonStrCmdResult::Ok(flush(i+1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/commonstrcmd.rs:52:47 [INFO] [stderr] | [INFO] [stderr] 52 | let esc = Box::new(SitExtent{len: 1, color: 0x01ff0080, end_insert: None}); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x01ff_0080` [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: unneeded return statement [INFO] [stderr] --> src/commonstrcmd.rs:231:2 [INFO] [stderr] | [INFO] [stderr] 231 | return (idlen, pos); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `(idlen, pos)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/commonstrcmd.rs:223:2 [INFO] [stderr] | [INFO] [stderr] 223 | if idlen < horizon.len() { [INFO] [stderr] | _____^ [INFO] [stderr] 224 | | if horizon[pos] == end { [INFO] [stderr] 225 | | pos += 1; [INFO] [stderr] 226 | | if pos < horizon.len() { [INFO] [stderr] ... | [INFO] [stderr] 229 | | } [INFO] [stderr] 230 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 223 | if idlen < horizon.len() && horizon[pos] == end { [INFO] [stderr] 224 | pos += 1; [INFO] [stderr] 225 | if pos < horizon.len() { [INFO] [stderr] 226 | pos += predlen(&|x| x == b'\"', &horizon[pos ..]); [INFO] [stderr] 227 | } [INFO] [stderr] 228 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/microparsers.rs:39:2 [INFO] [stderr] | [INFO] [stderr] 39 | return if horizon.len() > 0 && is_identifierhead(horizon[0]) { [INFO] [stderr] | _____^ [INFO] [stderr] 40 | | 1 + predlen(&is_identifiertail, &horizon[1 ..]) [INFO] [stderr] 41 | | } else { [INFO] [stderr] 42 | | 0 [INFO] [stderr] 43 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 39 | if horizon.len() > 0 && is_identifierhead(horizon[0]) { [INFO] [stderr] 40 | 1 + predlen(&is_identifiertail, &horizon[1 ..]) [INFO] [stderr] 41 | } else { [INFO] [stderr] 42 | 0 [INFO] [stderr] 43 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sitstrsqesc.rs:23:49 [INFO] [stderr] | [INFO] [stderr] 23 | let esc = Box::new(SitExtent{len: 1, color: 0x01ff0080, end_insert: None}); [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x01ff_0080` [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/sitstrsqesc.rs:33:3 [INFO] [stderr] | [INFO] [stderr] 33 | 0x00ff8000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_8000` [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: unneeded return statement [INFO] [stderr] --> src/situntilbyte.rs:26:3 [INFO] [stderr] | [INFO] [stderr] 26 | return Ok(if len < horizon.len() { [INFO] [stderr] | _________^ [INFO] [stderr] 27 | | WhatNow{tri: Transition::Pop, pre: len, len: 1, alt: self.end_replace} [INFO] [stderr] 28 | | } else { [INFO] [stderr] 29 | | flush(len) [INFO] [stderr] 30 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 26 | Ok(if len < horizon.len() { [INFO] [stderr] 27 | WhatNow{tri: Transition::Pop, pre: len, len: 1, alt: self.end_replace} [INFO] [stderr] 28 | } else { [INFO] [stderr] 29 | flush(len) [INFO] [stderr] 30 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/sitextent.rs:27:3 [INFO] [stderr] | [INFO] [stderr] 27 | return Ok(flush(horizon.len())); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(flush(horizon.len()))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sitstrdq.rs:39:3 [INFO] [stderr] | [INFO] [stderr] 39 | 0x00ff0000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_0000` [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: unneeded return statement [INFO] [stderr] --> src/sitstrphantom.rs:68:3 [INFO] [stderr] | [INFO] [stderr] 68 | return Ok(WhatNow{ [INFO] [stderr] | _________^ [INFO] [stderr] 69 | | tri: Transition::Pop, pre: 0, len: 0, alt: Some(b"\"") [INFO] [stderr] 70 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 68 | Ok(WhatNow{ [INFO] [stderr] 69 | tri: Transition::Pop, pre: 0, len: 0, alt: Some(b"\"") [INFO] [stderr] 70 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/sitstrphantom.rs:73:3 [INFO] [stderr] | [INFO] [stderr] 73 | 0x00ff0000 [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0x00ff_0000` [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: redundant closure found [INFO] [stderr] --> src/machine.rs:54:46 [INFO] [stderr] | [INFO] [stderr] 54 | try!(InputSource::open_file(path).map_err(|e| Error::Stdio(e))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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: redundant closure found [INFO] [stderr] --> src/machine.rs:60:46 [INFO] [stderr] | [INFO] [stderr] 60 | FileOut::open_soak(try!(fi.size().map_err(|e| Error::Stdio(e))) * 9 / 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:74:56 [INFO] [stderr] | [INFO] [stderr] 74 | let bytes = try!(fi.read(&mut buf[fill ..]).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:101:26 [INFO] [stderr] | [INFO] [stderr] 101 | fo.commit(path).map_err(|e| Error::Stdio(e)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | ).map_err(|e| Error::Syntax(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Syntax` [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 pattern matching, consider using `is_some()` [INFO] [stderr] --> src/machine.rs:119:10 [INFO] [stderr] | [INFO] [stderr] 119 | if let Some(_) = whatnow.alt { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 120 | | out.change = true; [INFO] [stderr] 121 | | if sett.osel == OutputSelector::CHECK { [INFO] [stderr] 122 | | break; [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [INFO] [stderr] | |_________- help: try this: `if whatnow.alt.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: redundant closure found [INFO] [stderr] --> src/machine.rs:126:56 [INFO] [stderr] | [INFO] [stderr] 126 | try!(out.write_all(&horizon[.. whatnow.pre]).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:153:15 [INFO] [stderr] | [INFO] [stderr] 153 | ).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:170:15 [INFO] [stderr] | [INFO] [stderr] 170 | ).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | ).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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: an inclusive range would be more readable [INFO] [stderr] --> src/machine.rs:243:71 [INFO] [stderr] | [INFO] [stderr] 243 | try!(write_colored_slice(out, &mut color_cur, color_next, &remain_a[i .. i+1])); [INFO] [stderr] | ^^^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/machine.rs:254:5 [INFO] [stderr] | [INFO] [stderr] 254 | if slice.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `slice.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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/machine.rs:284:3 [INFO] [stderr] | [INFO] [stderr] 284 | Err(_) => panic!(), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: bit mask could be simplified with a call to `trailing_zeros` [INFO] [stderr] --> src/machine.rs:286:5 [INFO] [stderr] | [INFO] [stderr] 286 | if code & 0x00ffffff == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `code.trailing_zeros() >= 24` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::verbose_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/filestream.rs:26:3 [INFO] [stderr] | [INFO] [stderr] 26 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 27 | | &mut InputSource::Stdin(ref mut fh) => fh.read(&mut buf), [INFO] [stderr] 28 | | &mut InputSource::File (ref mut fh) => fh.read(&mut buf), [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 26 | match *self { [INFO] [stderr] 27 | InputSource::Stdin(ref mut fh) => fh.read(&mut buf), [INFO] [stderr] 28 | InputSource::File (ref mut fh) => fh.read(&mut buf), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/filestream.rs:32:3 [INFO] [stderr] | [INFO] [stderr] 32 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 33 | | &mut InputSource::Stdin(_) => panic!("filesize of stdin"), [INFO] [stderr] 34 | | &mut InputSource::File (ref mut fh) => { [INFO] [stderr] 35 | | let off :u64 = try!(fh.seek(std::io::SeekFrom::End(0))); [INFO] [stderr] ... | [INFO] [stderr] 38 | | }, [INFO] [stderr] 39 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *self { [INFO] [stderr] 33 | InputSource::Stdin(_) => panic!("filesize of stdin"), [INFO] [stderr] 34 | InputSource::File (ref mut fh) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/filestream.rs:65:3 [INFO] [stderr] | [INFO] [stderr] 65 | match &mut self.sink { [INFO] [stderr] | _________^ [INFO] [stderr] 66 | | &mut OutputSink::Stdout(ref mut fh) => try!(fh.write_all(&buf)), [INFO] [stderr] 67 | | &mut OutputSink::Soak(ref mut vec) => vec.extend_from_slice(buf), [INFO] [stderr] 68 | | &mut OutputSink::None => {}, [INFO] [stderr] 69 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 65 | match *(&mut self.sink) { [INFO] [stderr] 66 | OutputSink::Stdout(ref mut fh) => try!(fh.write_all(&buf)), [INFO] [stderr] 67 | OutputSink::Soak(ref mut vec) => vec.extend_from_slice(buf), [INFO] [stderr] 68 | OutputSink::None => {}, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/filestream.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | if let Err(_) = s.write_fmt(args) { [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 79 | | panic!("fmt::Error"); [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________________- help: try this: `if s.write_fmt(args).is_err()` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/filestream.rs:89:4 [INFO] [stderr] | [INFO] [stderr] 89 | match &self.sink { [INFO] [stderr] | _____________^ [INFO] [stderr] 90 | | &OutputSink::Soak(ref vec) => { [INFO] [stderr] 91 | | let mut overwrite = try!( [INFO] [stderr] 92 | | std::fs::OpenOptions::new() [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {}, [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 89 | if let &OutputSink::Soak(ref vec) = &self.sink { [INFO] [stderr] 90 | let mut overwrite = try!( [INFO] [stderr] 91 | std::fs::OpenOptions::new() [INFO] [stderr] 92 | .write(true) [INFO] [stderr] 93 | .truncate(true) [INFO] [stderr] 94 | .create(false) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/filestream.rs:89:4 [INFO] [stderr] | [INFO] [stderr] 89 | match &self.sink { [INFO] [stderr] | _____________^ [INFO] [stderr] 90 | | &OutputSink::Soak(ref vec) => { [INFO] [stderr] 91 | | let mut overwrite = try!( [INFO] [stderr] 92 | | std::fs::OpenOptions::new() [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {}, [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | match self.sink { [INFO] [stderr] 90 | OutputSink::Soak(ref vec) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/main.rs:70:24 [INFO] [stderr] | [INFO] [stderr] 70 | while let Some(arg) = args.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for arg in args { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/main.rs:133:4 [INFO] [stderr] | [INFO] [stderr] 133 | match &e { [INFO] [stderr] | _____________^ [INFO] [stderr] 134 | | &machine::Error::Stdio(ref fail) => { [INFO] [stderr] 135 | | errfmt::blame_path_io(&arg, &fail); [INFO] [stderr] 136 | | }, [INFO] [stderr] ... | [INFO] [stderr] 143 | | }, [INFO] [stderr] 144 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 133 | match e { [INFO] [stderr] 134 | machine::Error::Stdio(ref fail) => { [INFO] [stderr] 135 | errfmt::blame_path_io(&arg, &fail); [INFO] [stderr] 136 | }, [INFO] [stderr] 137 | machine::Error::Syntax(ref fail) => { [INFO] [stderr] 138 | errfmt::blame_syntax(&arg, &fail); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonargcmd.rs:46:18 [INFO] [stderr] | [INFO] [stderr] 46 | end_trigger: b')' as u16, end_replace: None [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b')')` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonargcmd.rs:177:20 [INFO] [stderr] | [INFO] [stderr] 177 | end_trigger: b'`' as u16, end_replace: None [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonargcmd.rs:216:5 [INFO] [stderr] | [INFO] [stderr] 216 | if a as u16 == end_trigger { [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(a)` [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: length comparison to zero [INFO] [stderr] --> src/commonargcmd.rs:246:12 [INFO] [stderr] | [INFO] [stderr] 246 | } else if delimiter.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!delimiter.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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonstrcmd.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | end_trigger: b'`' as u16, end_replace: Some(b")"), [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: length comparison to one [INFO] [stderr] --> src/commonstrcmd.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | } else if cand.len() >= 1 && cand[0] == b'(' { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!cand.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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonstrcmd.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | end_trigger: b')' as u16, end_replace: None, [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: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/commonstrcmd.rs:137:24 [INFO] [stderr] | [INFO] [stderr] 137 | } else if predlen(&|c|{c >= b'0' && c <= b'9'}, &horizon[i+1 ..]) > 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/microparsers.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 39 | return if horizon.len() > 0 && is_identifierhead(horizon[0]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!horizon.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sitcase.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | match word { [INFO] [stderr] | _____________^ [INFO] [stderr] 38 | | b"in" => { [INFO] [stderr] 39 | | return Ok(WhatNow{ [INFO] [stderr] 40 | | tri: Transition::Replace(Box::new(SitCase{})), [INFO] [stderr] ... | [INFO] [stderr] 44 | | _ => {} [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 37 | if let b"in" = word { [INFO] [stderr] 38 | return Ok(WhatNow{ [INFO] [stderr] 39 | tri: Transition::Replace(Box::new(SitCase{})), [INFO] [stderr] 40 | pre: i + len, len: 0, alt: None [INFO] [stderr] 41 | }); [INFO] [stderr] 42 | } [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/sitcase.rs:78:4 [INFO] [stderr] | [INFO] [stderr] 78 | match word { [INFO] [stderr] | _____________^ [INFO] [stderr] 79 | | b"esac" => { [INFO] [stderr] 80 | | return Ok(WhatNow{ [INFO] [stderr] 81 | | tri: Transition::Pop, pre: i, len: 0, alt: None [INFO] [stderr] ... | [INFO] [stderr] 84 | | _ => {} [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | if let b"esac" = word { [INFO] [stderr] 79 | return Ok(WhatNow{ [INFO] [stderr] 80 | tri: Transition::Pop, pre: i, len: 0, alt: None [INFO] [stderr] 81 | }); [INFO] [stderr] 82 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `horizon` [INFO] [stderr] --> src/sitcomment.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 0 .. horizon.len() { [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] 21 | for (i, ) in horizon.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/sitcmd.rs:35:7 [INFO] [stderr] | [INFO] [stderr] 35 | if a as u16 == self.end_trigger { [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(a)` [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/sitrvalue.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | if let Some(res) = common_no_cmd(b')' as u16, horizon, i, is_horizon_lengthenable) { [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: needlessly taken reference of both operands [INFO] [stderr] --> src/sitvec.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | else if &horizon[0 .. self.terminator.len()] == &self.terminator[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 29 | else if horizon[0 .. self.terminator.len()] == self.terminator[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `horizon` [INFO] [stderr] --> src/sitstrsqesc.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 0 .. horizon.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 21 | for (i, ) in horizon.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/sitstrphantom.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | } else if horizon[mouthful] as u16 != self.cmd_end_trigger { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(horizon[mouthful])` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/sitstrphantom.rs:48:8 [INFO] [stderr] | [INFO] [stderr] 48 | match &consult.tri { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 49 | | &Transition::Flush | &Transition::FlushPopOnEof => { [INFO] [stderr] 50 | | return Ok(WhatNow{ [INFO] [stderr] 51 | | tri: Transition::FlushPopOnEof, [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 48 | match consult.tri { [INFO] [stderr] 49 | Transition::Flush | Transition::FlushPopOnEof => { [INFO] [stderr] 50 | return Ok(WhatNow{ [INFO] [stderr] 51 | tri: Transition::FlushPopOnEof, [INFO] [stderr] 52 | pre: 0, len: 0, alt: Some(b"\"") [INFO] [stderr] 53 | }); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> tests/moduletest.rs:24:2 [INFO] [stderr] | [INFO] [stderr] 24 | match &child.wait() { [INFO] [stderr] | _____^ [INFO] [stderr] 25 | | &Ok(status) => assert!(status.success()), [INFO] [stderr] 26 | | &Err(_) => assert!(false), [INFO] [stderr] 27 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 24 | match child.wait() { [INFO] [stderr] 25 | Ok(status) => assert!(status.success()), [INFO] [stderr] 26 | Err(_) => assert!(false), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/machine.rs:54:46 [INFO] [stderr] | [INFO] [stderr] 54 | try!(InputSource::open_file(path).map_err(|e| Error::Stdio(e))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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: redundant closure found [INFO] [stderr] --> src/machine.rs:60:46 [INFO] [stderr] | [INFO] [stderr] 60 | FileOut::open_soak(try!(fi.size().map_err(|e| Error::Stdio(e))) * 9 / 8) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:74:56 [INFO] [stderr] | [INFO] [stderr] 74 | let bytes = try!(fi.read(&mut buf[fill ..]).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:101:26 [INFO] [stderr] | [INFO] [stderr] 101 | fo.commit(path).map_err(|e| Error::Stdio(e)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:117:13 [INFO] [stderr] | [INFO] [stderr] 117 | ).map_err(|e| Error::Syntax(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Syntax` [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 pattern matching, consider using `is_some()` [INFO] [stderr] --> src/machine.rs:119:10 [INFO] [stderr] | [INFO] [stderr] 119 | if let Some(_) = whatnow.alt { [INFO] [stderr] | _________- ^^^^^^^ [INFO] [stderr] 120 | | out.change = true; [INFO] [stderr] 121 | | if sett.osel == OutputSelector::CHECK { [INFO] [stderr] 122 | | break; [INFO] [stderr] 123 | | } [INFO] [stderr] 124 | | } [INFO] [stderr] | |_________- help: try this: `if whatnow.alt.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: redundant closure found [INFO] [stderr] --> src/machine.rs:126:56 [INFO] [stderr] | [INFO] [stderr] 126 | try!(out.write_all(&horizon[.. whatnow.pre]).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:153:15 [INFO] [stderr] | [INFO] [stderr] 153 | ).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:170:15 [INFO] [stderr] | [INFO] [stderr] 170 | ).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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/machine.rs:186:15 [INFO] [stderr] | [INFO] [stderr] 186 | ).map_err(|e| Error::Stdio(e))); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Error::Stdio` [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: an inclusive range would be more readable [INFO] [stderr] --> src/machine.rs:243:71 [INFO] [stderr] | [INFO] [stderr] 243 | try!(write_colored_slice(out, &mut color_cur, color_next, &remain_a[i .. i+1])); [INFO] [stderr] | ^^^^^^^^ help: use: `i..=i` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::range_plus_one)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#range_plus_one [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/machine.rs:254:5 [INFO] [stderr] | [INFO] [stderr] 254 | if slice.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `slice.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: Err(_) will match all errors, maybe not a good idea [INFO] [stderr] --> src/machine.rs:284:3 [INFO] [stderr] | [INFO] [stderr] 284 | Err(_) => panic!(), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_wild_err_arm)] on by default [INFO] [stderr] = note: to remove this warning, match each error separately or use unreachable macro [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_wild_err_arm [INFO] [stderr] [INFO] [stderr] warning: bit mask could be simplified with a call to `trailing_zeros` [INFO] [stderr] --> src/machine.rs:286:5 [INFO] [stderr] | [INFO] [stderr] 286 | if code & 0x00ffffff == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `code.trailing_zeros() >= 24` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::verbose_bit_mask)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#verbose_bit_mask [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/filestream.rs:26:3 [INFO] [stderr] | [INFO] [stderr] 26 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 27 | | &mut InputSource::Stdin(ref mut fh) => fh.read(&mut buf), [INFO] [stderr] 28 | | &mut InputSource::File (ref mut fh) => fh.read(&mut buf), [INFO] [stderr] 29 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 26 | match *self { [INFO] [stderr] 27 | InputSource::Stdin(ref mut fh) => fh.read(&mut buf), [INFO] [stderr] 28 | InputSource::File (ref mut fh) => fh.read(&mut buf), [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/filestream.rs:32:3 [INFO] [stderr] | [INFO] [stderr] 32 | match self { [INFO] [stderr] | _________^ [INFO] [stderr] 33 | | &mut InputSource::Stdin(_) => panic!("filesize of stdin"), [INFO] [stderr] 34 | | &mut InputSource::File (ref mut fh) => { [INFO] [stderr] 35 | | let off :u64 = try!(fh.seek(std::io::SeekFrom::End(0))); [INFO] [stderr] ... | [INFO] [stderr] 38 | | }, [INFO] [stderr] 39 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 32 | match *self { [INFO] [stderr] 33 | InputSource::Stdin(_) => panic!("filesize of stdin"), [INFO] [stderr] 34 | InputSource::File (ref mut fh) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/filestream.rs:65:3 [INFO] [stderr] | [INFO] [stderr] 65 | match &mut self.sink { [INFO] [stderr] | _________^ [INFO] [stderr] 66 | | &mut OutputSink::Stdout(ref mut fh) => try!(fh.write_all(&buf)), [INFO] [stderr] 67 | | &mut OutputSink::Soak(ref mut vec) => vec.extend_from_slice(buf), [INFO] [stderr] 68 | | &mut OutputSink::None => {}, [INFO] [stderr] 69 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 65 | match *(&mut self.sink) { [INFO] [stderr] 66 | OutputSink::Stdout(ref mut fh) => try!(fh.write_all(&buf)), [INFO] [stderr] 67 | OutputSink::Soak(ref mut vec) => vec.extend_from_slice(buf), [INFO] [stderr] 68 | OutputSink::None => {}, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant pattern matching, consider using `is_err()` [INFO] [stderr] --> src/filestream.rs:78:12 [INFO] [stderr] | [INFO] [stderr] 78 | if let Err(_) = s.write_fmt(args) { [INFO] [stderr] | _________________- ^^^^^^ [INFO] [stderr] 79 | | panic!("fmt::Error"); [INFO] [stderr] 80 | | } [INFO] [stderr] | |_________________- help: try this: `if s.write_fmt(args).is_err()` [INFO] [stderr] | [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/filestream.rs:89:4 [INFO] [stderr] | [INFO] [stderr] 89 | match &self.sink { [INFO] [stderr] | _____________^ [INFO] [stderr] 90 | | &OutputSink::Soak(ref vec) => { [INFO] [stderr] 91 | | let mut overwrite = try!( [INFO] [stderr] 92 | | std::fs::OpenOptions::new() [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {}, [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 89 | if let &OutputSink::Soak(ref vec) = &self.sink { [INFO] [stderr] 90 | let mut overwrite = try!( [INFO] [stderr] 91 | std::fs::OpenOptions::new() [INFO] [stderr] 92 | .write(true) [INFO] [stderr] 93 | .truncate(true) [INFO] [stderr] 94 | .create(false) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/filestream.rs:89:4 [INFO] [stderr] | [INFO] [stderr] 89 | match &self.sink { [INFO] [stderr] | _____________^ [INFO] [stderr] 90 | | &OutputSink::Soak(ref vec) => { [INFO] [stderr] 91 | | let mut overwrite = try!( [INFO] [stderr] 92 | | std::fs::OpenOptions::new() [INFO] [stderr] ... | [INFO] [stderr] 100 | | _ => {}, [INFO] [stderr] 101 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 89 | match self.sink { [INFO] [stderr] 90 | OutputSink::Soak(ref vec) => { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/main.rs:70:24 [INFO] [stderr] | [INFO] [stderr] 70 | while let Some(arg) = args.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for arg in args { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/main.rs:133:4 [INFO] [stderr] | [INFO] [stderr] 133 | match &e { [INFO] [stderr] | _____________^ [INFO] [stderr] 134 | | &machine::Error::Stdio(ref fail) => { [INFO] [stderr] 135 | | errfmt::blame_path_io(&arg, &fail); [INFO] [stderr] 136 | | }, [INFO] [stderr] ... | [INFO] [stderr] 143 | | }, [INFO] [stderr] 144 | | }; [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 133 | match e { [INFO] [stderr] 134 | machine::Error::Stdio(ref fail) => { [INFO] [stderr] 135 | errfmt::blame_path_io(&arg, &fail); [INFO] [stderr] 136 | }, [INFO] [stderr] 137 | machine::Error::Syntax(ref fail) => { [INFO] [stderr] 138 | errfmt::blame_syntax(&arg, &fail); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonargcmd.rs:46:18 [INFO] [stderr] | [INFO] [stderr] 46 | end_trigger: b')' as u16, end_replace: None [INFO] [stderr] | ^^^^^^^^^^^ help: try: `u16::from(b')')` [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonargcmd.rs:177:20 [INFO] [stderr] | [INFO] [stderr] 177 | end_trigger: b'`' as u16, end_replace: None [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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonargcmd.rs:216:5 [INFO] [stderr] | [INFO] [stderr] 216 | if a as u16 == end_trigger { [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(a)` [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: length comparison to zero [INFO] [stderr] --> src/commonargcmd.rs:246:12 [INFO] [stderr] | [INFO] [stderr] 246 | } else if delimiter.len() > 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!delimiter.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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonstrcmd.rs:45:17 [INFO] [stderr] | [INFO] [stderr] 45 | end_trigger: b'`' as u16, end_replace: Some(b")"), [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: length comparison to one [INFO] [stderr] --> src/commonstrcmd.rs:98:13 [INFO] [stderr] | [INFO] [stderr] 98 | } else if cand.len() >= 1 && cand[0] == b'(' { [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!cand.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: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/commonstrcmd.rs:111:17 [INFO] [stderr] | [INFO] [stderr] 111 | end_trigger: b')' as u16, end_replace: None, [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: in an 'if' condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a 'let' [INFO] [stderr] --> src/commonstrcmd.rs:137:24 [INFO] [stderr] | [INFO] [stderr] 137 | } else if predlen(&|c|{c >= b'0' && c <= b'9'}, &horizon[i+1 ..]) > 1 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::block_in_if_condition_stmt)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#block_in_if_condition_stmt [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/microparsers.rs:39:12 [INFO] [stderr] | [INFO] [stderr] 39 | return if horizon.len() > 0 && is_identifierhead(horizon[0]) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `!horizon.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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/sitcase.rs:37:4 [INFO] [stderr] | [INFO] [stderr] 37 | match word { [INFO] [stderr] | _____________^ [INFO] [stderr] 38 | | b"in" => { [INFO] [stderr] 39 | | return Ok(WhatNow{ [INFO] [stderr] 40 | | tri: Transition::Replace(Box::new(SitCase{})), [INFO] [stderr] ... | [INFO] [stderr] 44 | | _ => {} [INFO] [stderr] 45 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 37 | if let b"in" = word { [INFO] [stderr] 38 | return Ok(WhatNow{ [INFO] [stderr] 39 | tri: Transition::Replace(Box::new(SitCase{})), [INFO] [stderr] 40 | pre: i + len, len: 0, alt: None [INFO] [stderr] 41 | }); [INFO] [stderr] 42 | } [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/sitcase.rs:78:4 [INFO] [stderr] | [INFO] [stderr] 78 | match word { [INFO] [stderr] | _____________^ [INFO] [stderr] 79 | | b"esac" => { [INFO] [stderr] 80 | | return Ok(WhatNow{ [INFO] [stderr] 81 | | tri: Transition::Pop, pre: i, len: 0, alt: None [INFO] [stderr] ... | [INFO] [stderr] 84 | | _ => {} [INFO] [stderr] 85 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | if let b"esac" = word { [INFO] [stderr] 79 | return Ok(WhatNow{ [INFO] [stderr] 80 | tri: Transition::Pop, pre: i, len: 0, alt: None [INFO] [stderr] 81 | }); [INFO] [stderr] 82 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `horizon` [INFO] [stderr] --> src/sitcomment.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 0 .. horizon.len() { [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] 21 | for (i, ) in horizon.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/sitcmd.rs:35:7 [INFO] [stderr] | [INFO] [stderr] 35 | if a as u16 == self.end_trigger { [INFO] [stderr] | ^^^^^^^^ help: try: `u16::from(a)` [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/sitrvalue.rs:55:37 [INFO] [stderr] | [INFO] [stderr] 55 | if let Some(res) = common_no_cmd(b')' as u16, horizon, i, is_horizon_lengthenable) { [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: needlessly taken reference of both operands [INFO] [stderr] --> src/sitvec.rs:29:11 [INFO] [stderr] | [INFO] [stderr] 29 | else if &horizon[0 .. self.terminator.len()] == &self.terminator[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 29 | else if horizon[0 .. self.terminator.len()] == self.terminator[..] { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: the loop variable `i` is used to index `horizon` [INFO] [stderr] --> src/sitstrsqesc.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 21 | for i in 0 .. horizon.len() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [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] 21 | for (i, ) in horizon.iter().enumerate() { [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u16 may become silently lossy if types change [INFO] [stderr] --> src/sitstrphantom.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | } else if horizon[mouthful] as u16 != self.cmd_end_trigger { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `u16::from(horizon[mouthful])` [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 don't need to add `&` to both the expression and the patterns [INFO] [stderr] --> src/sitstrphantom.rs:48:8 [INFO] [stderr] | [INFO] [stderr] 48 | match &consult.tri { [INFO] [stderr] | _____________________________^ [INFO] [stderr] 49 | | &Transition::Flush | &Transition::FlushPopOnEof => { [INFO] [stderr] 50 | | return Ok(WhatNow{ [INFO] [stderr] 51 | | tri: Transition::FlushPopOnEof, [INFO] [stderr] ... | [INFO] [stderr] 58 | | } [INFO] [stderr] 59 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 48 | match consult.tri { [INFO] [stderr] 49 | Transition::Flush | Transition::FlushPopOnEof => { [INFO] [stderr] 50 | return Ok(WhatNow{ [INFO] [stderr] 51 | tri: Transition::FlushPopOnEof, [INFO] [stderr] 52 | pre: 0, len: 0, alt: Some(b"\"") [INFO] [stderr] 53 | }); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.39s [INFO] running `"docker" "inspect" "541ab0b3c0d1fa3943dd4de5b12dd8846def89d6476a8ab5ab581e094d7cef7d"` [INFO] running `"docker" "rm" "-f" "541ab0b3c0d1fa3943dd4de5b12dd8846def89d6476a8ab5ab581e094d7cef7d"` [INFO] [stdout] 541ab0b3c0d1fa3943dd4de5b12dd8846def89d6476a8ab5ab581e094d7cef7d