[INFO] cloning repository https://github.com/ayrapetovai/binc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ayrapetovai/binc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fayrapetovai%2Fbinc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fayrapetovai%2Fbinc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cefea7e0065855b0f14f205cdff2d87b03549181 [INFO] linting ayrapetovai/binc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fayrapetovai%2Fbinc" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ayrapetovai/binc [INFO] finished tweaking git repo https://github.com/ayrapetovai/binc [INFO] tweaked toml for git repo https://github.com/ayrapetovai/binc written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ayrapetovai/binc on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ayrapetovai/binc already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded stderrlog v0.4.3 [INFO] [stderr] Downloaded clipboard-win v4.4.1 [INFO] [stderr] Downloaded thread_local v0.3.4 [INFO] [stderr] Downloaded fd-lock v2.0.0 [INFO] [stderr] Downloaded redox_users v0.4.2 [INFO] [stderr] Downloaded crossterm_screen v0.3.2 [INFO] [stderr] Downloaded crossterm_input v0.5.0 [INFO] [stderr] Downloaded crossterm_cursor v0.4.0 [INFO] [stderr] Downloaded quote v1.0.17 [INFO] [stderr] Downloaded rustyline v8.2.0 [INFO] [stderr] Downloaded crossterm_utils v0.4.0 [INFO] [stderr] Downloaded crossterm_winapi v0.3.0 [INFO] [stderr] Downloaded str-buf v1.0.5 [INFO] [stderr] Downloaded syn v1.0.90 [INFO] [stderr] Downloaded clap v3.1.8 [INFO] [stderr] Downloaded nix v0.20.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 62e13537e9c93b9c2c5bf613770fd103f11d82d8efa7a11d1bc4992ed453f5da [INFO] running `Command { std: "docker" "start" "-a" "62e13537e9c93b9c2c5bf613770fd103f11d82d8efa7a11d1bc4992ed453f5da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "62e13537e9c93b9c2c5bf613770fd103f11d82d8efa7a11d1bc4992ed453f5da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "62e13537e9c93b9c2c5bf613770fd103f11d82d8efa7a11d1bc4992ed453f5da", kill_on_drop: false }` [INFO] [stdout] 62e13537e9c93b9c2c5bf613770fd103f11d82d8efa7a11d1bc4992ed453f5da [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 0ce24eaf259bf2108baf8fa995c359117ce575126ec17fc284c0945110c29ca3 [INFO] running `Command { std: "docker" "start" "-a" "0ce24eaf259bf2108baf8fa995c359117ce575126ec17fc284c0945110c29ca3", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling log v0.4.16 [INFO] [stderr] Compiling num-traits v0.2.14 [INFO] [stderr] Compiling memchr v2.4.1 [INFO] [stderr] Compiling num-integer v0.1.44 [INFO] [stderr] Checking smallvec v1.8.0 [INFO] [stderr] Checking ppv-lite86 v0.2.16 [INFO] [stderr] Checking lazy_static v0.2.11 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking utf8parse v0.2.0 [INFO] [stderr] Checking unicode-width v0.1.9 [INFO] [stderr] Checking unicode-segmentation v1.9.0 [INFO] [stderr] Checking thread_local v0.3.4 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking os_str_bytes v6.0.0 [INFO] [stderr] Checking net2 v0.2.39 [INFO] [stderr] Checking atty v0.2.11 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking crossterm_utils v0.4.0 [INFO] [stderr] Checking getrandom v0.2.6 [INFO] [stderr] Checking time v0.1.43 [INFO] [stderr] Checking dirs-sys-next v0.1.2 [INFO] [stderr] Checking nix v0.20.2 [INFO] [stderr] Checking fd-lock v2.0.0 [INFO] [stderr] Checking colored v2.0.0 [INFO] [stderr] Checking clap v3.1.8 [INFO] [stderr] Checking rand_core v0.6.3 [INFO] [stderr] Checking mio v0.6.23 [INFO] [stderr] Checking dirs-next v2.0.0 [INFO] [stderr] Checking crossterm_screen v0.3.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking chrono v0.4.19 [INFO] [stderr] Checking crossterm_input v0.5.0 [INFO] [stderr] Checking crossterm_cursor v0.4.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking stderrlog v0.4.3 [INFO] [stderr] Checking rustyline v8.2.0 [INFO] [stderr] Checking binc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/buffer.rs:70:1 [INFO] [stdout] | [INFO] [stdout] 70 | / /// implementation for Booth's algorithm [INFO] [stdout] ... | [INFO] [stdout] 105 | | [INFO] [stdout] | |_^ [INFO] [stdout] 106 | impl BincBuffer { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 70 | // /// implementation for Booth's algorithm [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:161:8 [INFO] [stdout] | [INFO] [stdout] 161 | if (command_list.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 161 - if (command_list.is_empty()) { [INFO] [stdout] 161 + if command_list.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty lines after doc comment [INFO] [stdout] --> src/buffer.rs:70:1 [INFO] [stdout] | [INFO] [stdout] 70 | / /// implementation for Booth's algorithm [INFO] [stdout] ... | [INFO] [stdout] 105 | | [INFO] [stdout] | |_^ [INFO] [stdout] 106 | impl BincBuffer { [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty lines are unintentional, remove them [INFO] [stdout] help: if the doc comment should not document the following item then comment it out [INFO] [stdout] | [INFO] [stdout] 70 | // /// implementation for Booth's algorithm [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: digits of hex, binary or octal literal not in groups of equal size [INFO] [stdout] --> src/buffer.rs:702:16 [INFO] [stdout] | [INFO] [stdout] 702 | assert_eq!(0x00_0000_00, n.to_usize()); [INFO] [stdout] | ^^^^^^^^^^^^ help: consider: `0x0000_0000` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unusual_byte_groupings [INFO] [stdout] = note: `#[warn(clippy::unusual_byte_groupings)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around `if` condition [INFO] [stdout] --> src/main.rs:161:8 [INFO] [stdout] | [INFO] [stdout] 161 | if (command_list.is_empty()) { [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 161 - if (command_list.is_empty()) { [INFO] [stdout] 161 + if command_list.is_empty() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lines_printed` is never read [INFO] [stdout] --> src/main.rs:82:29 [INFO] [stdout] | [INFO] [stdout] 82 | let mut lines_printed = 0u16; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Exponent`, `Fraction`, `Carry`, and `None` are never constructed [INFO] [stdout] --> src/syntax.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum NamedAccess { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 56 | Exponent, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 57 | Fraction, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 58 | Carry, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 59 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NamedAccess` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NamedAccessSource` is never constructed [INFO] [stdout] --> src/syntax.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum LeftOperandSource { [INFO] [stdout] | ----------------- variant in this enum [INFO] [stdout] 64 | RangeSource(BitsIndexRange), [INFO] [stdout] 65 | NamedAccessSource(NamedAccess), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeftOperandSource` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NamedAccessSource` is never constructed [INFO] [stdout] --> src/syntax.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub enum RightOperandSource { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 70 | RangeSource(BitsIndexRange), [INFO] [stdout] 71 | NamedAccessSource(NamedAccess), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RightOperandSource` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Fixed` is never constructed [INFO] [stdout] --> src/buffer.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum BincBufferType { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 37 | Fixed, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BincBufferType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `bytes` [INFO] [stdout] --> src/syntax.rs:103:18 [INFO] [stdout] | [INFO] [stdout] 103 | for i in 0..sequence.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 103 - for i in 0..sequence.len() { [INFO] [stdout] 103 + for (i, ) in bytes.iter().enumerate().take(sequence.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual check for common ascii range [INFO] [stdout] --> src/syntax.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | if !('0'..='9').contains(&c) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] = note: `#[warn(clippy::manual_is_ascii_check)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 149 - if !('0'..='9').contains(&c) { [INFO] [stdout] 149 + if !c.is_ascii_digit() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/syntax.rs:191:20 [INFO] [stdout] | [INFO] [stdout] 191 | Some(c) => match c { [INFO] [stdout] | ____________________^ [INFO] [stdout] 192 | | '[' => { [INFO] [stdout] 193 | | let (current_it, range) = syntax_range(it.rewind_n(1)); [INFO] [stdout] 194 | | if let Some(c) = current_it.current() { [INFO] [stdout] ... | [INFO] [stdout] 205 | | _ => Ok((it, None)) [INFO] [stdout] 206 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/syntax.rs:191:14 [INFO] [stdout] | [INFO] [stdout] 191 | Some(c) => match c { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 192 | '[' => { [INFO] [stdout] | ^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syntax.rs:365:37 [INFO] [stdout] | [INFO] [stdout] 365 | match ParsingIterator::from(&cmd) { [INFO] [stdout] | ^^^^ help: change this to: `cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/syntax.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | if it_after_second_operand.current() != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `it_after_second_operand.current().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Bit` [INFO] [stdout] --> src/buffer.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / pub enum BitIndex { [INFO] [stdout] 25 | | HighestBit, [INFO] [stdout] 26 | | LowestBit, [INFO] [stdout] 27 | | IndexedBit(usize) [INFO] [stdout] 28 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/buffer.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | while let Some(c) = it.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for c in it` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `size_of::()` to obtain the size of `T` in bits [INFO] [stdout] --> src/buffer.rs:163:29 [INFO] [stdout] | [INFO] [stdout] 163 | let buffer_length = size_of::() * 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `BufferType::BITS as usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits [INFO] [stdout] = note: `#[warn(clippy::manual_bits)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/buffer.rs:164:30 [INFO] [stdout] | [INFO] [stdout] 164 | let length_in_bits = match next_power_of_two_rounded_up(buffer_length - buffer.leading_zeros() as usize) { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 165 | | Ok(s) => s, [INFO] [stdout] 166 | | Err(m) => return Err(m) [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ help: try instead: `next_power_of_two_rounded_up(buffer_length - buffer.leading_zeros() as usize)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | self.buffer = self.buffer & !mask_from_bit_to_bit(high_order_bit_index, low_order_bit_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= !mask_from_bit_to_bit(high_order_bit_index, low_order_bit_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | ... self.buffer = self.buffer | ((mul & mask_n_ones_from_right(high_order_bit_index - low_order_bit_index + 1)) << low_order_bit_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer |= ((mul & mask_n_ones_from_right(high_order_bit_index - low_order_bit_index + 1)) << low_order_bit_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | self.buffer = self.buffer & mask_n_ones_from_right(self.effective_bits); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= mask_n_ones_from_right(self.effective_bits)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | self.buffer = self.buffer & !(mask_n_ones_from_right(high_index - low_index + 1) << low_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= !(mask_n_ones_from_right(high_index - low_index + 1) << low_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | ... self.buffer = self.buffer | ((left_bits | (bits_to_shift >> count) & mask_n_ones_from_right(high_index - low_index + 1)) << low_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer |= ((left_bits | (bits_to_shift >> count) & mask_n_ones_from_right(high_index - low_index + 1)) << low_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/buffer.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | / return match one_or_zero { [INFO] [stdout] 286 | | 0 => (bits | mask_from_bit_to_bit(127, high_index + 1 - low_index)).count_zeros() as usize, [INFO] [stdout] 287 | | 1 => (bits & mask_n_ones_from_right(high_index + 1 - low_index)).count_ones() as usize, [INFO] [stdout] 288 | | _ => usize::MAX [INFO] [stdout] 289 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 ~ match one_or_zero { [INFO] [stdout] 286 + 0 => (bits | mask_from_bit_to_bit(127, high_index + 1 - low_index)).count_zeros() as usize, [INFO] [stdout] 287 + 1 => (bits & mask_n_ones_from_right(high_index + 1 - low_index)).count_ones() as usize, [INFO] [stdout] 288 + _ => usize::MAX [INFO] [stdout] 289 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `size_of::()` to obtain the size of `T` in bits [INFO] [stdout] --> src/buffer.rs:295:92 [INFO] [stdout] | [INFO] [stdout] 295 | ...128| a.reverse_bits() >> (size_of::()*8 - (high_index + 1 - low_index)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `BufferType::BITS as usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:312:21 [INFO] [stdout] | [INFO] [stdout] 312 | result = result | (1u128 << i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `result |= (1u128 << i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:324:9 [INFO] [stdout] | [INFO] [stdout] 324 | self.buffer = self.buffer & mask_n_ones_from_right(self.effective_bits); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= mask_n_ones_from_right(self.effective_bits)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `size_of::()` to obtain the size of `T` in bits [INFO] [stdout] --> src/buffer.rs:356:107 [INFO] [stdout] | [INFO] [stdout] 356 | ...ing_zeros() as usize) << (size_of::()*8 - self.buffer.leading_zeros() as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `BufferType::BITS as usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:366:9 [INFO] [stdout] | [INFO] [stdout] 366 | self.buffer = self.buffer & mask_n_ones_from_right(size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= mask_n_ones_from_right(size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `insert_str()` using a single-character string literal [INFO] [stdout] --> src/buffer.rs:410:17 [INFO] [stdout] | [INFO] [stdout] 410 | formatted.insert_str(0, "0"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `insert` with a character literal: `formatted.insert(0, '0')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `lines_printed` is never read [INFO] [stdout] --> src/main.rs:82:29 [INFO] [stdout] | [INFO] [stdout] 82 | let mut lines_printed = 0u16; [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/buffer.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | write!(f, "{}", format!("{:<3}{:>6} ", first_index_line, first_index_line - 7))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `writeln!` [INFO] [stdout] --> src/buffer.rs:492:9 [INFO] [stdout] | [INFO] [stdout] 492 | writeln!(f, "")?; [INFO] [stdout] | ^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stdout] = note: `#[warn(clippy::writeln_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/buffer.rs:508:17 [INFO] [stdout] | [INFO] [stdout] 508 | buffer.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `buffer.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/buffer.rs:511:17 [INFO] [stdout] | [INFO] [stdout] 511 | buffer.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `buffer.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/buffer.rs:523:13 [INFO] [stdout] | [INFO] [stdout] 523 | write!(f, "{}", format!("{:>4} {:<4} ", second_index_line, second_index_line - 1))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Exponent`, `Fraction`, `Carry`, and `None` are never constructed [INFO] [stdout] --> src/syntax.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 55 | pub enum NamedAccess { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] 56 | Exponent, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 57 | Fraction, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 58 | Carry, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 59 | None, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NamedAccess` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NamedAccessSource` is never constructed [INFO] [stdout] --> src/syntax.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum LeftOperandSource { [INFO] [stdout] | ----------------- variant in this enum [INFO] [stdout] 64 | RangeSource(BitsIndexRange), [INFO] [stdout] 65 | NamedAccessSource(NamedAccess), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LeftOperandSource` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NamedAccessSource` is never constructed [INFO] [stdout] --> src/syntax.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 69 | pub enum RightOperandSource { [INFO] [stdout] | ------------------ variant in this enum [INFO] [stdout] 70 | RangeSource(BitsIndexRange), [INFO] [stdout] 71 | NamedAccessSource(NamedAccess), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RightOperandSource` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Fixed` is never constructed [INFO] [stdout] --> src/buffer.rs:37:5 [INFO] [stdout] | [INFO] [stdout] 34 | pub enum BincBufferType { [INFO] [stdout] | -------------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 37 | Fixed, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BincBufferType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `bytes` [INFO] [stdout] --> src/syntax.rs:103:18 [INFO] [stdout] | [INFO] [stdout] 103 | for i in 0..sequence.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 103 - for i in 0..sequence.len() { [INFO] [stdout] 103 + for (i, ) in bytes.iter().enumerate().take(sequence.len()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual check for common ascii range [INFO] [stdout] --> src/syntax.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | if !('0'..='9').contains(&c) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] = note: `#[warn(clippy::manual_is_ascii_check)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 149 - if !('0'..='9').contains(&c) { [INFO] [stdout] 149 + if !c.is_ascii_digit() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` can be collapsed into the outer `match` [INFO] [stdout] --> src/syntax.rs:191:20 [INFO] [stdout] | [INFO] [stdout] 191 | Some(c) => match c { [INFO] [stdout] | ____________________^ [INFO] [stdout] 192 | | '[' => { [INFO] [stdout] 193 | | let (current_it, range) = syntax_range(it.rewind_n(1)); [INFO] [stdout] 194 | | if let Some(c) = current_it.current() { [INFO] [stdout] ... | [INFO] [stdout] 205 | | _ => Ok((it, None)) [INFO] [stdout] 206 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] help: the outer pattern can be modified to include the inner pattern [INFO] [stdout] --> src/syntax.rs:191:14 [INFO] [stdout] | [INFO] [stdout] 191 | Some(c) => match c { [INFO] [stdout] | ^ replace this binding [INFO] [stdout] 192 | '[' => { [INFO] [stdout] | ^^^ with this pattern [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [INFO] [stdout] = note: `#[warn(clippy::collapsible_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/operators.rs:631:14 [INFO] [stdout] | [INFO] [stdout] 631 | _ => return Err("Bit width is a necessary argument".to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 631 - _ => return Err("Bit width is a necessary argument".to_owned()) [INFO] [stdout] 631 + _ => Err("Bit width is a necessary argument".to_owned()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/syntax.rs:365:37 [INFO] [stdout] | [INFO] [stdout] 365 | match ParsingIterator::from(&cmd) { [INFO] [stdout] | ^^^^ help: change this to: `cmd` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/history.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | if self.forward_list.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.forward_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/syntax.rs:383:8 [INFO] [stdout] | [INFO] [stdout] 383 | if it_after_second_operand.current() != None { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_some()` instead: `it_after_second_operand.current().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] = note: `#[warn(clippy::partialeq_to_none)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/main.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 200 | / let output = match format { [INFO] [stdout] 201 | | "0x" | "0h" => main_buffer.to_string(16, true, prepend0), [INFO] [stdout] 202 | | "x" | "h" => main_buffer.to_string(16, false, prepend0), [INFO] [stdout] 203 | | "0d" => main_buffer.to_string(10, true, prepend0), [INFO] [stdout] ... | [INFO] [stdout] 209 | | _ => "".to_owned() [INFO] [stdout] 210 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 211 | output [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 200 ~ [INFO] [stdout] 201 ~ match format { [INFO] [stdout] 202 + "0x" | "0h" => main_buffer.to_string(16, true, prepend0), [INFO] [stdout] 203 + "x" | "h" => main_buffer.to_string(16, false, prepend0), [INFO] [stdout] 204 + "0d" => main_buffer.to_string(10, true, prepend0), [INFO] [stdout] 205 + "d" => main_buffer.to_string(10, false, prepend0), [INFO] [stdout] 206 + "0o" => main_buffer.to_string(8, true, prepend0), [INFO] [stdout] 207 + "o" => main_buffer.to_string(8, false, prepend0), [INFO] [stdout] 208 + "0b" => main_buffer.to_string(2, true, prepend0), [INFO] [stdout] 209 + "b" => main_buffer.to_string(2, false, prepend0), [INFO] [stdout] 210 + _ => "".to_owned() [INFO] [stdout] 211 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `pat` [INFO] [stdout] --> src/syntax.rs:487:14 [INFO] [stdout] | [INFO] [stdout] 487 | for i in 1..pat.len() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator [INFO] [stdout] | [INFO] [stdout] 487 - for i in 1..pat.len() { [INFO] [stdout] 487 + for in pat.iter().skip(1) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/syntax.rs:497:23 [INFO] [stdout] | [INFO] [stdout] 497 | (it, None) if it.current() == None => (), // success [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `it.current().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/syntax.rs:501:31 [INFO] [stdout] | [INFO] [stdout] 501 | (it, Some(parsed)) if it.current() == None => assert_eq!(0, parsed), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `it.current().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: binary comparison to literal `Option::None` [INFO] [stdout] --> src/syntax.rs:506:31 [INFO] [stdout] | [INFO] [stdout] 506 | (it, Some(parsed)) if it.current() == None => assert_eq!(usize::MAX, parsed), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: use `Option::is_none()` instead: `it.current().is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#partialeq_to_none [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/syntax.rs:515:23 [INFO] [stdout] | [INFO] [stdout] 515 | while let Some(_) = it.next() { [INFO] [stdout] | ----------^^^^^^^------------ help: try: `while it.next().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/syntax.rs:526:23 [INFO] [stdout] | [INFO] [stdout] 526 | while let Some(_) = it.next() { [INFO] [stdout] | ----------^^^^^^^------------ help: try: `while it.next().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/syntax.rs:539:20 [INFO] [stdout] | [INFO] [stdout] 539 | if let Some(_) = it.current() { [INFO] [stdout] | -------^^^^^^^--------------- help: try: `if it.current().is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/syntax.rs:552:5 [INFO] [stdout] | [INFO] [stdout] 552 | / match syntax_letter(ParsingIterator::from("'aa'").unwrap()) { [INFO] [stdout] 553 | | Ok((_, _)) => { [INFO] [stdout] 554 | | panic!("syntax_letter() failed to detect that there are several chars") [INFO] [stdout] ... | [INFO] [stdout] 557 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 552 ~ if let Ok((_, _)) = syntax_letter(ParsingIterator::from("'aa'").unwrap()) { [INFO] [stdout] 553 + panic!("syntax_letter() failed to detect that there are several chars") [INFO] [stdout] 554 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/syntax.rs:559:5 [INFO] [stdout] | [INFO] [stdout] 559 | / match syntax_letter(ParsingIterator::from("''").unwrap()) { [INFO] [stdout] 560 | | Ok((_, _)) => { [INFO] [stdout] 561 | | panic!("syntax_letter() failed to detect that there are no chars") [INFO] [stdout] ... | [INFO] [stdout] 564 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = note: you might want to preserve the comments from inside the `match` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 559 ~ if let Ok((_, _)) = syntax_letter(ParsingIterator::from("''").unwrap()) { [INFO] [stdout] 560 + panic!("syntax_letter() failed to detect that there are no chars") [INFO] [stdout] 561 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/syntax.rs:625:16 [INFO] [stdout] | [INFO] [stdout] 625 | if !(left == 3) { [INFO] [stdout] | ^^^^^^^^^^^^ help: try: `(left != 3)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/syntax.rs:635:16 [INFO] [stdout] | [INFO] [stdout] 635 | if !(right == 5) { [INFO] [stdout] | ^^^^^^^^^^^^^ help: try: `(right != 5)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Bit` [INFO] [stdout] --> src/buffer.rs:24:1 [INFO] [stdout] | [INFO] [stdout] 24 | / pub enum BitIndex { [INFO] [stdout] 25 | | HighestBit, [INFO] [stdout] 26 | | LowestBit, [INFO] [stdout] 27 | | IndexedBit(usize) [INFO] [stdout] 28 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this loop could be written as a `for` loop [INFO] [stdout] --> src/buffer.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 147 | while let Some(c) = it.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `for c in it` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stdout] = note: `#[warn(clippy::while_let_on_iterator)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `size_of::()` to obtain the size of `T` in bits [INFO] [stdout] --> src/buffer.rs:163:29 [INFO] [stdout] | [INFO] [stdout] 163 | let buffer_length = size_of::() * 8; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `BufferType::BITS as usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits [INFO] [stdout] = note: `#[warn(clippy::manual_bits)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/buffer.rs:164:30 [INFO] [stdout] | [INFO] [stdout] 164 | let length_in_bits = match next_power_of_two_rounded_up(buffer_length - buffer.leading_zeros() as usize) { [INFO] [stdout] | ______________________________^ [INFO] [stdout] 165 | | Ok(s) => s, [INFO] [stdout] 166 | | Err(m) => return Err(m) [INFO] [stdout] 167 | | }; [INFO] [stdout] | |_________^ help: try instead: `next_power_of_two_rounded_up(buffer_length - buffer.leading_zeros() as usize)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | self.buffer = self.buffer & !mask_from_bit_to_bit(high_order_bit_index, low_order_bit_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= !mask_from_bit_to_bit(high_order_bit_index, low_order_bit_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 192 | ... self.buffer = self.buffer | ((mul & mask_n_ones_from_right(high_order_bit_index - low_order_bit_index + 1)) << low_order_bit_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer |= ((mul & mask_n_ones_from_right(high_order_bit_index - low_order_bit_index + 1)) << low_order_bit_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:193:9 [INFO] [stdout] | [INFO] [stdout] 193 | self.buffer = self.buffer & mask_n_ones_from_right(self.effective_bits); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= mask_n_ones_from_right(self.effective_bits)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:255:9 [INFO] [stdout] | [INFO] [stdout] 255 | self.buffer = self.buffer & !(mask_n_ones_from_right(high_index - low_index + 1) << low_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= !(mask_n_ones_from_right(high_index - low_index + 1) << low_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:261:9 [INFO] [stdout] | [INFO] [stdout] 261 | ... self.buffer = self.buffer | ((left_bits | (bits_to_shift >> count) & mask_n_ones_from_right(high_index - low_index + 1)) << low_index); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer |= ((left_bits | (bits_to_shift >> count) & mask_n_ones_from_right(high_index - low_index + 1)) << low_index)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/buffer.rs:285:9 [INFO] [stdout] | [INFO] [stdout] 285 | / return match one_or_zero { [INFO] [stdout] 286 | | 0 => (bits | mask_from_bit_to_bit(127, high_index + 1 - low_index)).count_zeros() as usize, [INFO] [stdout] 287 | | 1 => (bits & mask_n_ones_from_right(high_index + 1 - low_index)).count_ones() as usize, [INFO] [stdout] 288 | | _ => usize::MAX [INFO] [stdout] 289 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 285 ~ match one_or_zero { [INFO] [stdout] 286 + 0 => (bits | mask_from_bit_to_bit(127, high_index + 1 - low_index)).count_zeros() as usize, [INFO] [stdout] 287 + 1 => (bits & mask_n_ones_from_right(high_index + 1 - low_index)).count_ones() as usize, [INFO] [stdout] 288 + _ => usize::MAX [INFO] [stdout] 289 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `size_of::()` to obtain the size of `T` in bits [INFO] [stdout] --> src/buffer.rs:295:92 [INFO] [stdout] | [INFO] [stdout] 295 | ...128| a.reverse_bits() >> (size_of::()*8 - (high_index + 1 - low_index)))) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `BufferType::BITS as usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:312:21 [INFO] [stdout] | [INFO] [stdout] 312 | result = result | (1u128 << i); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `result |= (1u128 << i)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:324:9 [INFO] [stdout] | [INFO] [stdout] 324 | self.buffer = self.buffer & mask_n_ones_from_right(self.effective_bits); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= mask_n_ones_from_right(self.effective_bits)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: usage of `size_of::()` to obtain the size of `T` in bits [INFO] [stdout] --> src/buffer.rs:356:107 [INFO] [stdout] | [INFO] [stdout] 356 | ...ing_zeros() as usize) << (size_of::()*8 - self.buffer.leading_zeros() as usize)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `BufferType::BITS as usize` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_bits [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/buffer.rs:366:9 [INFO] [stdout] | [INFO] [stdout] 366 | self.buffer = self.buffer & mask_n_ones_from_right(size); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `self.buffer &= mask_n_ones_from_right(size)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `insert_str()` using a single-character string literal [INFO] [stdout] --> src/buffer.rs:410:17 [INFO] [stdout] | [INFO] [stdout] 410 | formatted.insert_str(0, "0"); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `insert` with a character literal: `formatted.insert(0, '0')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] = note: `#[warn(clippy::single_char_add_str)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/buffer.rs:489:13 [INFO] [stdout] | [INFO] [stdout] 489 | write!(f, "{}", format!("{:<3}{:>6} ", first_index_line, first_index_line - 7))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] = note: `#[warn(clippy::format_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty string literal in `writeln!` [INFO] [stdout] --> src/buffer.rs:492:9 [INFO] [stdout] | [INFO] [stdout] 492 | writeln!(f, "")?; [INFO] [stdout] | ^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | help: remove the empty string [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#writeln_empty_string [INFO] [stdout] = note: `#[warn(clippy::writeln_empty_string)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/buffer.rs:508:17 [INFO] [stdout] | [INFO] [stdout] 508 | buffer.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `buffer.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calling `push_str()` using a single-character string literal [INFO] [stdout] --> src/buffer.rs:511:17 [INFO] [stdout] | [INFO] [stdout] 511 | buffer.push_str(" "); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: consider using `push` with a character literal: `buffer.push(' ')` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_char_add_str [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `format!` in `write!` args [INFO] [stdout] --> src/buffer.rs:523:13 [INFO] [stdout] | [INFO] [stdout] 523 | write!(f, "{}", format!("{:>4} {:<4} ", second_index_line, second_index_line - 1))?; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: combine the `format!(..)` arguments with the outer `write!(..)` call [INFO] [stdout] = help: or consider changing `format!` to `format_args!` [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#format_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/buffer.rs:601:34 [INFO] [stdout] | [INFO] [stdout] 601 | let n = BincBuffer::from_str(&*u8::MAX.to_string(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `&u8::MAX.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] = note: `#[warn(clippy::explicit_auto_deref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: deref which would be done by auto-deref [INFO] [stdout] --> src/buffer.rs:604:34 [INFO] [stdout] | [INFO] [stdout] 604 | let n = BincBuffer::from_str(&*u32::MAX.to_string(), 10).unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `&u32::MAX.to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#explicit_auto_deref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/operators.rs:631:14 [INFO] [stdout] | [INFO] [stdout] 631 | _ => return Err("Bit width is a necessary argument".to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 631 - _ => return Err("Bit width is a necessary argument".to_owned()) [INFO] [stdout] 631 + _ => Err("Bit width is a necessary argument".to_owned()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/history.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | if self.forward_list.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.forward_list.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: returning the result of a `let` binding from a block [INFO] [stdout] --> src/main.rs:211:5 [INFO] [stdout] | [INFO] [stdout] 200 | / let output = match format { [INFO] [stdout] 201 | | "0x" | "0h" => main_buffer.to_string(16, true, prepend0), [INFO] [stdout] 202 | | "x" | "h" => main_buffer.to_string(16, false, prepend0), [INFO] [stdout] 203 | | "0d" => main_buffer.to_string(10, true, prepend0), [INFO] [stdout] ... | [INFO] [stdout] 209 | | _ => "".to_owned() [INFO] [stdout] 210 | | }; [INFO] [stdout] | |______- unnecessary `let` binding [INFO] [stdout] 211 | output [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stdout] = note: `#[warn(clippy::let_and_return)]` on by default [INFO] [stdout] help: return the expression directly [INFO] [stdout] | [INFO] [stdout] 200 ~ [INFO] [stdout] 201 ~ match format { [INFO] [stdout] 202 + "0x" | "0h" => main_buffer.to_string(16, true, prepend0), [INFO] [stdout] 203 + "x" | "h" => main_buffer.to_string(16, false, prepend0), [INFO] [stdout] 204 + "0d" => main_buffer.to_string(10, true, prepend0), [INFO] [stdout] 205 + "d" => main_buffer.to_string(10, false, prepend0), [INFO] [stdout] 206 + "0o" => main_buffer.to_string(8, true, prepend0), [INFO] [stdout] 207 + "o" => main_buffer.to_string(8, false, prepend0), [INFO] [stdout] 208 + "0b" => main_buffer.to_string(2, true, prepend0), [INFO] [stdout] 209 + "b" => main_buffer.to_string(2, false, prepend0), [INFO] [stdout] 210 + _ => "".to_owned() [INFO] [stdout] 211 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.85s [INFO] running `Command { std: "docker" "inspect" "0ce24eaf259bf2108baf8fa995c359117ce575126ec17fc284c0945110c29ca3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0ce24eaf259bf2108baf8fa995c359117ce575126ec17fc284c0945110c29ca3", kill_on_drop: false }` [INFO] [stdout] 0ce24eaf259bf2108baf8fa995c359117ce575126ec17fc284c0945110c29ca3