[INFO] cloning repository https://github.com/jsrobson10/asm-compiler [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/jsrobson10/asm-compiler" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsrobson10%2Fasm-compiler", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsrobson10%2Fasm-compiler'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 562c1621d89ceeff38fbf09944511083902daa71 [INFO] linting jsrobson10/asm-compiler against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fjsrobson10%2Fasm-compiler" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/jsrobson10/asm-compiler [INFO] finished tweaking git repo https://github.com/jsrobson10/asm-compiler [INFO] tweaked toml for git repo https://github.com/jsrobson10/asm-compiler written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/jsrobson10/asm-compiler 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/jsrobson10/asm-compiler 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] a8c3f12651152ab0b7bd0b2adba5ec22211ca0e8c6ca09ebb5ca1ea5995ce2c7 [INFO] running `Command { std: "docker" "start" "-a" "a8c3f12651152ab0b7bd0b2adba5ec22211ca0e8c6ca09ebb5ca1ea5995ce2c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a8c3f12651152ab0b7bd0b2adba5ec22211ca0e8c6ca09ebb5ca1ea5995ce2c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a8c3f12651152ab0b7bd0b2adba5ec22211ca0e8c6ca09ebb5ca1ea5995ce2c7", kill_on_drop: false }` [INFO] [stdout] a8c3f12651152ab0b7bd0b2adba5ec22211ca0e8c6ca09ebb5ca1ea5995ce2c7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] e49c0593d23b16a041b0856b0d6e920e9fafd4ad3b6a2f2920358408f3708f56 [INFO] running `Command { std: "docker" "start" "-a" "e49c0593d23b16a041b0856b0d6e920e9fafd4ad3b6a2f2920358408f3708f56", kill_on_drop: false }` [INFO] [stderr] Checking asm-compiler v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:3:2 [INFO] [stdout] | [INFO] [stdout] 3 | return c == b'\t' || c == b' ' || c == b'\r'; [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] 3 - return c == b'\t' || c == b' ' || c == b'\r'; [INFO] [stdout] 3 + c == b'\t' || c == b' ' || c == b'\r' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:7:2 [INFO] [stdout] | [INFO] [stdout] 7 | return c == b':' || c == b',' || c == b';' || c == b'.' || c == b'=' || c == b'\n' || is_whitespace(c); [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] 7 - return c == b':' || c == b',' || c == b';' || c == b'.' || c == b'=' || c == b'\n' || is_whitespace(c); [INFO] [stdout] 7 + c == b':' || c == b',' || c == b';' || c == b'.' || c == b'=' || c == b'\n' || is_whitespace(c) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:11:2 [INFO] [stdout] | [INFO] [stdout] 11 | return c >= b'0' && c <= b'9'; [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] 11 - return c >= b'0' && c <= b'9'; [INFO] [stdout] 11 + c >= b'0' && c <= b'9' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/text.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | return c >= b'0' && c <= b'9'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'0'..=b'9').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:15:2 [INFO] [stdout] | [INFO] [stdout] 15 | return String::from_utf8(bytes.to_vec()).unwrap(); [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] 15 - return String::from_utf8(bytes.to_vec()).unwrap(); [INFO] [stdout] 15 + String::from_utf8(bytes.to_vec()).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:35:2 [INFO] [stdout] | [INFO] [stdout] 35 | return (y, x); [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] 35 - return (y, x); [INFO] [stdout] 35 + (y, x) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `bytes` [INFO] [stdout] --> src/text.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | for i in 0..pos { [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 [INFO] [stdout] | [INFO] [stdout] 21 - for i in 0..pos { [INFO] [stdout] 21 + for in bytes.iter().take(pos) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:46:2 [INFO] [stdout] | [INFO] [stdout] 46 | return out; [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] 46 - return out; [INFO] [stdout] 46 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Compiler` [INFO] [stdout] --> src/compiler.rs:14:2 [INFO] [stdout] | [INFO] [stdout] 14 | / pub fn new() -> Compiler { [INFO] [stdout] 15 | | Compiler { [INFO] [stdout] 16 | | symbols: HashMap::new(), [INFO] [stdout] 17 | | data: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 12 + impl Default for Compiler { [INFO] [stdout] 13 + fn default() -> Self { [INFO] [stdout] 14 + Self::new() [INFO] [stdout] 15 + } [INFO] [stdout] 16 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | return Ok(()); [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] 40 - return Ok(()); [INFO] [stdout] 40 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:51:3 [INFO] [stdout] | [INFO] [stdout] 51 | return index; [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] 51 - return index; [INFO] [stdout] 51 + index [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/compiler.rs:55:3 [INFO] [stdout] | [INFO] [stdout] 55 | / match self.symbols.get(name) { [INFO] [stdout] 56 | | Some(v) => Some(*v), [INFO] [stdout] 57 | | None => None, [INFO] [stdout] 58 | | } [INFO] [stdout] | |_________^ help: try: `self.symbols.get(name).map(|v| *v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:78:3 [INFO] [stdout] | [INFO] [stdout] 78 | return self.get_symbol(data); [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] 78 - return self.get_symbol(data); [INFO] [stdout] 78 + self.get_symbol(data) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/compiler.rs:72:6 [INFO] [stdout] | [INFO] [stdout] 72 | if data.len() > 0 && text::is_numeric(data[0]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!data.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: length comparison to zero [INFO] [stdout] --> src/compiler.rs:75:6 [INFO] [stdout] | [INFO] [stdout] 75 | if data.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:82:3 [INFO] [stdout] | [INFO] [stdout] 82 | return &self.data; [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] 82 - return &self.data; [INFO] [stdout] 82 + &self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | / return match self { [INFO] [stdout] 41 | | InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 | | _ => false, [INFO] [stdout] 43 | | } [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] 40 ~ match self { [INFO] [stdout] 41 ~ InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 ~ _ => false, [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/instruction.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 40 | return match self { [INFO] [stdout] | ________________^ [INFO] [stdout] 41 | | InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 | | _ => false, [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 40 - return match self { [INFO] [stdout] 41 - InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 - _ => false, [INFO] [stdout] 43 - } [INFO] [stdout] 40 + return matches!(self, InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:46:3 [INFO] [stdout] | [INFO] [stdout] 46 | / return match self { [INFO] [stdout] 47 | | InstType::Stop => 0, [INFO] [stdout] 48 | | InstType::Math => 3, [INFO] [stdout] 49 | | InstType::MathS => 3, [INFO] [stdout] ... | [INFO] [stdout] 59 | | InstType::Nop => 0, [INFO] [stdout] 60 | | } [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] 46 ~ match self { [INFO] [stdout] 47 ~ InstType::Stop => 0, [INFO] [stdout] 48 ~ InstType::Math => 3, [INFO] [stdout] 49 ~ InstType::MathS => 3, [INFO] [stdout] 50 ~ InstType::CopyV => 2, [INFO] [stdout] 51 ~ InstType::CopyP => 2, [INFO] [stdout] 52 ~ InstType::StoreV => 2, [INFO] [stdout] 53 ~ InstType::StoreP => 2, [INFO] [stdout] 54 ~ InstType::Load => 2, [INFO] [stdout] 55 ~ InstType::JumpV => 1, [INFO] [stdout] 56 ~ InstType::JumpP => 1, [INFO] [stdout] 57 ~ InstType::JumpIf => 3, [INFO] [stdout] 58 ~ InstType::JumpIfNot => 3, [INFO] [stdout] 59 ~ InstType::Nop => 0, [INFO] [stdout] 60 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:65:2 [INFO] [stdout] | [INFO] [stdout] 65 | / return match mname { [INFO] [stdout] 66 | | b"zero" => Some(MathType::Zero), [INFO] [stdout] 67 | | b"xor" => Some(MathType::Xor), [INFO] [stdout] 68 | | b"and" => Some(MathType::And), [INFO] [stdout] ... | [INFO] [stdout] 81 | | _ => None, [INFO] [stdout] 82 | | } [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] 65 ~ match mname { [INFO] [stdout] 66 ~ b"zero" => Some(MathType::Zero), [INFO] [stdout] 67 ~ b"xor" => Some(MathType::Xor), [INFO] [stdout] 68 ~ b"and" => Some(MathType::And), [INFO] [stdout] 69 ~ b"or" => Some(MathType::Or), [INFO] [stdout] 70 ~ b"nand" => Some(MathType::Nand), [INFO] [stdout] 71 ~ b"nor" => Some(MathType::Nor), [INFO] [stdout] 72 ~ b"mul" => Some(MathType::Mul), [INFO] [stdout] 73 ~ b"gthan" => Some(MathType::Gthan), [INFO] [stdout] 74 ~ b"lthan" => Some(MathType::Lthan), [INFO] [stdout] 75 ~ b"equal" => Some(MathType::Equal), [INFO] [stdout] 76 ~ b"nequal" => Some(MathType::Nequal), [INFO] [stdout] 77 ~ b"add" => Some(MathType::Add), [INFO] [stdout] 78 ~ b"sub" => Some(MathType::Sub), [INFO] [stdout] 79 ~ b"addc" => Some(MathType::Addc), [INFO] [stdout] 80 ~ b"subc" => Some(MathType::Subc), [INFO] [stdout] 81 ~ _ => None, [INFO] [stdout] 82 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:86:2 [INFO] [stdout] | [INFO] [stdout] 86 | / return match iname { [INFO] [stdout] 87 | | b"stop" => Some(InstType::Stop), [INFO] [stdout] 88 | | b"copy_v" => Some(InstType::CopyV), [INFO] [stdout] 89 | | b"copy_p" => Some(InstType::CopyP), [INFO] [stdout] ... | [INFO] [stdout] 100 | | _ => None, [INFO] [stdout] 101 | | } [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] 86 ~ match iname { [INFO] [stdout] 87 ~ b"stop" => Some(InstType::Stop), [INFO] [stdout] 88 ~ b"copy_v" => Some(InstType::CopyV), [INFO] [stdout] 89 ~ b"copy_p" => Some(InstType::CopyP), [INFO] [stdout] 90 ~ b"store_v" => Some(InstType::StoreV), [INFO] [stdout] 91 ~ b"store_p" => Some(InstType::StoreP), [INFO] [stdout] 92 ~ b"load" => Some(InstType::Load), [INFO] [stdout] 93 ~ b"math" => Some(InstType::Math), [INFO] [stdout] 94 ~ b"math_s" => Some(InstType::MathS), [INFO] [stdout] 95 ~ b"jump_v" => Some(InstType::JumpV), [INFO] [stdout] 96 ~ b"jump_p" => Some(InstType::JumpP), [INFO] [stdout] 97 ~ b"jump_if" => Some(InstType::JumpIf), [INFO] [stdout] 98 ~ b"jump_if_not" => Some(InstType::JumpIfNot), [INFO] [stdout] 99 ~ b"nop" => Some(InstType::Nop), [INFO] [stdout] 100 ~ _ => None, [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:15:2 [INFO] [stdout] | [INFO] [stdout] 15 | return parser.parse(compiler); [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] 15 - return parser.parse(compiler); [INFO] [stdout] 15 + parser.parse(compiler) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:23:2 [INFO] [stdout] | [INFO] [stdout] 23 | return parser.parse(compiler); [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] 23 - return parser.parse(compiler); [INFO] [stdout] 23 + parser.parse(compiler) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | return Some(self.src[state.at]); [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] 30 - return Some(self.src[state.at]); [INFO] [stdout] 30 + Some(self.src[state.at]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | return None; [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] 32 - return None; [INFO] [stdout] 32 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:95:3 [INFO] [stdout] | [INFO] [stdout] 95 | return &self.src[start..state.at]; [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] 95 - return &self.src[start..state.at]; [INFO] [stdout] 95 + &self.src[start..state.at] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:126:7 [INFO] [stdout] | [INFO] [stdout] 126 | if !c.is_some_and(|x| x == b',') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_none_or(|x| x != b',')` [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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:133:3 [INFO] [stdout] | [INFO] [stdout] 133 | return Ok(token); [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] 133 - return Ok(token); [INFO] [stdout] 133 + Ok(token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:100:30 [INFO] [stdout] | [INFO] [stdout] 100 | match get_named_inst_type(&iname) { [INFO] [stdout] | ^^^^^^ help: change this to: `iname` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:105:42 [INFO] [stdout] | [INFO] [stdout] 105 | Some(v) => match get_named_math_type(&v) { [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:117:7 [INFO] [stdout] | [INFO] [stdout] 117 | if word.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `word.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | return Ok(v); [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] 145 - return Ok(v); [INFO] [stdout] 145 + Ok(v) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:152:6 [INFO] [stdout] | [INFO] [stdout] 152 | return Ok(compiler.new_variable(&name)); [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] 152 ~ Ok(compiler.new_variable(&name)) [INFO] [stdout] 153 | } [INFO] [stdout] 154 | Some(v) => return Err(format!("Expected '.', Received '{}'", v as char)), [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [INFO] [stdout] 156 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:154:16 [INFO] [stdout] | [INFO] [stdout] 154 | Some(v) => return Err(format!("Expected '.', Received '{}'", v as char)), [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] 154 ~ Some(v) => Err(format!("Expected '.', Received '{}'", v as char)), [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [INFO] [stdout] 156 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:155:13 [INFO] [stdout] | [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [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] 155 ~ None => Err(format!("Expected '.', Received none")), [INFO] [stdout] 156 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:139:6 [INFO] [stdout] | [INFO] [stdout] 139 | if word.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!word.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | compiler.new_symbol(&name, v); [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:152:38 [INFO] [stdout] | [INFO] [stdout] 152 | return Ok(compiler.new_variable(&name)); [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parser.rs:155:24 [INFO] [stdout] | [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected '.', Received none".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:162:3 [INFO] [stdout] | [INFO] [stdout] 162 | return format!("Compilation error at {}:{}. {}", x, y, err); [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] 162 - return format!("Compilation error at {}:{}. {}", x, y, err); [INFO] [stdout] 162 + format!("Compilation error at {}:{}. {}", x, y, err) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:224:3 [INFO] [stdout] | [INFO] [stdout] 224 | return Ok(()); [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] 224 - return Ok(()); [INFO] [stdout] 224 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:175:7 [INFO] [stdout] | [INFO] [stdout] 175 | if name.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:181:26 [INFO] [stdout] | [INFO] [stdout] 181 | compiler.new_symbol(&name, token_at); [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:196:6 [INFO] [stdout] | [INFO] [stdout] 196 | let mname; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `mname` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 196 ~ [INFO] [stdout] 197 ~ let mname = match c { [INFO] [stdout] 198 | b'.' => { [INFO] [stdout] 199 | state.at += 1; [INFO] [stdout] 200 ~ Some(self.get_word(&mut state)) [INFO] [stdout] 201 | } [INFO] [stdout] 202 | _ => { [INFO] [stdout] 203 ~ None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/number.rs:23:2 [INFO] [stdout] | [INFO] [stdout] 23 | return Some(num); [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] 23 - return Some(num); [INFO] [stdout] 23 + Some(num) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/number.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | if c >= b'0' && c <= b'9' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'0'..=b'9').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/number.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | else if c >= b'a' && c <= b'z' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'a'..=b'z').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/number.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | else if c >= b'A' && c <= b'z' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'A'..=b'z').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:25:3 [INFO] [stdout] | [INFO] [stdout] 25 | return compiler.add(self.itype, self.mtype, &data); [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] 25 - return compiler.add(self.itype, self.mtype, &data); [INFO] [stdout] 25 + compiler.add(self.itype, self.mtype, &data) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:29:3 [INFO] [stdout] | [INFO] [stdout] 29 | return self.itype.arg_count() + 1; [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] 29 - return self.itype.arg_count() + 1; [INFO] [stdout] 29 + self.itype.arg_count() + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/parser.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | fn parse_instruction(&self, state: &mut State, iname: &[u8], mname: Option<&[u8]>) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 98 | fn parse_instruction(&self, state: &mut State, iname: &[u8], mname: Option<&[u8]>) -> Result, String> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:3:2 [INFO] [stdout] | [INFO] [stdout] 3 | return c == b'\t' || c == b' ' || c == b'\r'; [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] 3 - return c == b'\t' || c == b' ' || c == b'\r'; [INFO] [stdout] 3 + c == b'\t' || c == b' ' || c == b'\r' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:7:2 [INFO] [stdout] | [INFO] [stdout] 7 | return c == b':' || c == b',' || c == b';' || c == b'.' || c == b'=' || c == b'\n' || is_whitespace(c); [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] 7 - return c == b':' || c == b',' || c == b';' || c == b'.' || c == b'=' || c == b'\n' || is_whitespace(c); [INFO] [stdout] 7 + c == b':' || c == b',' || c == b';' || c == b'.' || c == b'=' || c == b'\n' || is_whitespace(c) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:11:2 [INFO] [stdout] | [INFO] [stdout] 11 | return c >= b'0' && c <= b'9'; [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] 11 - return c >= b'0' && c <= b'9'; [INFO] [stdout] 11 + c >= b'0' && c <= b'9' [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/text.rs:11:9 [INFO] [stdout] | [INFO] [stdout] 11 | return c >= b'0' && c <= b'9'; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'0'..=b'9').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] = note: `#[warn(clippy::manual_range_contains)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:15:2 [INFO] [stdout] | [INFO] [stdout] 15 | return String::from_utf8(bytes.to_vec()).unwrap(); [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] 15 - return String::from_utf8(bytes.to_vec()).unwrap(); [INFO] [stdout] 15 + String::from_utf8(bytes.to_vec()).unwrap() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:35:2 [INFO] [stdout] | [INFO] [stdout] 35 | return (y, x); [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] 35 - return (y, x); [INFO] [stdout] 35 + (y, x) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is only used to index `bytes` [INFO] [stdout] --> src/text.rs:21:11 [INFO] [stdout] | [INFO] [stdout] 21 | for i in 0..pos { [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 [INFO] [stdout] | [INFO] [stdout] 21 - for i in 0..pos { [INFO] [stdout] 21 + for in bytes.iter().take(pos) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/text.rs:46:2 [INFO] [stdout] | [INFO] [stdout] 46 | return out; [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] 46 - return out; [INFO] [stdout] 46 + out [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you should consider adding a `Default` implementation for `Compiler` [INFO] [stdout] --> src/compiler.rs:14:2 [INFO] [stdout] | [INFO] [stdout] 14 | / pub fn new() -> Compiler { [INFO] [stdout] 15 | | Compiler { [INFO] [stdout] 16 | | symbols: HashMap::new(), [INFO] [stdout] 17 | | data: Vec::new(), [INFO] [stdout] ... | [INFO] [stdout] 20 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stdout] = note: `#[warn(clippy::new_without_default)]` on by default [INFO] [stdout] help: try adding this [INFO] [stdout] | [INFO] [stdout] 12 + impl Default for Compiler { [INFO] [stdout] 13 + fn default() -> Self { [INFO] [stdout] 14 + Self::new() [INFO] [stdout] 15 + } [INFO] [stdout] 16 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | return Ok(()); [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] 40 - return Ok(()); [INFO] [stdout] 40 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:51:3 [INFO] [stdout] | [INFO] [stdout] 51 | return index; [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] 51 - return index; [INFO] [stdout] 51 + index [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Option::map` [INFO] [stdout] --> src/compiler.rs:55:3 [INFO] [stdout] | [INFO] [stdout] 55 | / match self.symbols.get(name) { [INFO] [stdout] 56 | | Some(v) => Some(*v), [INFO] [stdout] 57 | | None => None, [INFO] [stdout] 58 | | } [INFO] [stdout] | |_________^ help: try: `self.symbols.get(name).map(|v| *v)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_map [INFO] [stdout] = note: `#[warn(clippy::manual_map)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:78:3 [INFO] [stdout] | [INFO] [stdout] 78 | return self.get_symbol(data); [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] 78 - return self.get_symbol(data); [INFO] [stdout] 78 + self.get_symbol(data) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/compiler.rs:72:6 [INFO] [stdout] | [INFO] [stdout] 72 | if data.len() > 0 && text::is_numeric(data[0]) { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!data.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: length comparison to zero [INFO] [stdout] --> src/compiler.rs:75:6 [INFO] [stdout] | [INFO] [stdout] 75 | if data.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `data.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/compiler.rs:82:3 [INFO] [stdout] | [INFO] [stdout] 82 | return &self.data; [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] 82 - return &self.data; [INFO] [stdout] 82 + &self.data [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:40:3 [INFO] [stdout] | [INFO] [stdout] 40 | / return match self { [INFO] [stdout] 41 | | InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 | | _ => false, [INFO] [stdout] 43 | | } [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] 40 ~ match self { [INFO] [stdout] 41 ~ InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 ~ _ => false, [INFO] [stdout] 43 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/instruction.rs:40:10 [INFO] [stdout] | [INFO] [stdout] 40 | return match self { [INFO] [stdout] | ________________^ [INFO] [stdout] 41 | | InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 | | _ => false, [INFO] [stdout] 43 | | } [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 40 - return match self { [INFO] [stdout] 41 - InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot => true, [INFO] [stdout] 42 - _ => false, [INFO] [stdout] 43 - } [INFO] [stdout] 40 + return matches!(self, InstType::Math | InstType::MathS | InstType::JumpIf | InstType::JumpIfNot) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:46:3 [INFO] [stdout] | [INFO] [stdout] 46 | / return match self { [INFO] [stdout] 47 | | InstType::Stop => 0, [INFO] [stdout] 48 | | InstType::Math => 3, [INFO] [stdout] 49 | | InstType::MathS => 3, [INFO] [stdout] ... | [INFO] [stdout] 59 | | InstType::Nop => 0, [INFO] [stdout] 60 | | } [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] 46 ~ match self { [INFO] [stdout] 47 ~ InstType::Stop => 0, [INFO] [stdout] 48 ~ InstType::Math => 3, [INFO] [stdout] 49 ~ InstType::MathS => 3, [INFO] [stdout] 50 ~ InstType::CopyV => 2, [INFO] [stdout] 51 ~ InstType::CopyP => 2, [INFO] [stdout] 52 ~ InstType::StoreV => 2, [INFO] [stdout] 53 ~ InstType::StoreP => 2, [INFO] [stdout] 54 ~ InstType::Load => 2, [INFO] [stdout] 55 ~ InstType::JumpV => 1, [INFO] [stdout] 56 ~ InstType::JumpP => 1, [INFO] [stdout] 57 ~ InstType::JumpIf => 3, [INFO] [stdout] 58 ~ InstType::JumpIfNot => 3, [INFO] [stdout] 59 ~ InstType::Nop => 0, [INFO] [stdout] 60 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:65:2 [INFO] [stdout] | [INFO] [stdout] 65 | / return match mname { [INFO] [stdout] 66 | | b"zero" => Some(MathType::Zero), [INFO] [stdout] 67 | | b"xor" => Some(MathType::Xor), [INFO] [stdout] 68 | | b"and" => Some(MathType::And), [INFO] [stdout] ... | [INFO] [stdout] 81 | | _ => None, [INFO] [stdout] 82 | | } [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] 65 ~ match mname { [INFO] [stdout] 66 ~ b"zero" => Some(MathType::Zero), [INFO] [stdout] 67 ~ b"xor" => Some(MathType::Xor), [INFO] [stdout] 68 ~ b"and" => Some(MathType::And), [INFO] [stdout] 69 ~ b"or" => Some(MathType::Or), [INFO] [stdout] 70 ~ b"nand" => Some(MathType::Nand), [INFO] [stdout] 71 ~ b"nor" => Some(MathType::Nor), [INFO] [stdout] 72 ~ b"mul" => Some(MathType::Mul), [INFO] [stdout] 73 ~ b"gthan" => Some(MathType::Gthan), [INFO] [stdout] 74 ~ b"lthan" => Some(MathType::Lthan), [INFO] [stdout] 75 ~ b"equal" => Some(MathType::Equal), [INFO] [stdout] 76 ~ b"nequal" => Some(MathType::Nequal), [INFO] [stdout] 77 ~ b"add" => Some(MathType::Add), [INFO] [stdout] 78 ~ b"sub" => Some(MathType::Sub), [INFO] [stdout] 79 ~ b"addc" => Some(MathType::Addc), [INFO] [stdout] 80 ~ b"subc" => Some(MathType::Subc), [INFO] [stdout] 81 ~ _ => None, [INFO] [stdout] 82 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/instruction.rs:86:2 [INFO] [stdout] | [INFO] [stdout] 86 | / return match iname { [INFO] [stdout] 87 | | b"stop" => Some(InstType::Stop), [INFO] [stdout] 88 | | b"copy_v" => Some(InstType::CopyV), [INFO] [stdout] 89 | | b"copy_p" => Some(InstType::CopyP), [INFO] [stdout] ... | [INFO] [stdout] 100 | | _ => None, [INFO] [stdout] 101 | | } [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] 86 ~ match iname { [INFO] [stdout] 87 ~ b"stop" => Some(InstType::Stop), [INFO] [stdout] 88 ~ b"copy_v" => Some(InstType::CopyV), [INFO] [stdout] 89 ~ b"copy_p" => Some(InstType::CopyP), [INFO] [stdout] 90 ~ b"store_v" => Some(InstType::StoreV), [INFO] [stdout] 91 ~ b"store_p" => Some(InstType::StoreP), [INFO] [stdout] 92 ~ b"load" => Some(InstType::Load), [INFO] [stdout] 93 ~ b"math" => Some(InstType::Math), [INFO] [stdout] 94 ~ b"math_s" => Some(InstType::MathS), [INFO] [stdout] 95 ~ b"jump_v" => Some(InstType::JumpV), [INFO] [stdout] 96 ~ b"jump_p" => Some(InstType::JumpP), [INFO] [stdout] 97 ~ b"jump_if" => Some(InstType::JumpIf), [INFO] [stdout] 98 ~ b"jump_if_not" => Some(InstType::JumpIfNot), [INFO] [stdout] 99 ~ b"nop" => Some(InstType::Nop), [INFO] [stdout] 100 ~ _ => None, [INFO] [stdout] 101 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:15:2 [INFO] [stdout] | [INFO] [stdout] 15 | return parser.parse(compiler); [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] 15 - return parser.parse(compiler); [INFO] [stdout] 15 + parser.parse(compiler) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:23:2 [INFO] [stdout] | [INFO] [stdout] 23 | return parser.parse(compiler); [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] 23 - return parser.parse(compiler); [INFO] [stdout] 23 + parser.parse(compiler) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:30:4 [INFO] [stdout] | [INFO] [stdout] 30 | return Some(self.src[state.at]); [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] 30 - return Some(self.src[state.at]); [INFO] [stdout] 30 + Some(self.src[state.at]) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:32:4 [INFO] [stdout] | [INFO] [stdout] 32 | return None; [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] 32 - return None; [INFO] [stdout] 32 + None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:95:3 [INFO] [stdout] | [INFO] [stdout] 95 | return &self.src[start..state.at]; [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] 95 - return &self.src[start..state.at]; [INFO] [stdout] 95 + &self.src[start..state.at] [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:126:7 [INFO] [stdout] | [INFO] [stdout] 126 | if !c.is_some_and(|x| x == b',') { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c.is_none_or(|x| x != b',')` [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: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:133:3 [INFO] [stdout] | [INFO] [stdout] 133 | return Ok(token); [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] 133 - return Ok(token); [INFO] [stdout] 133 + Ok(token) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:100:30 [INFO] [stdout] | [INFO] [stdout] 100 | match get_named_inst_type(&iname) { [INFO] [stdout] | ^^^^^^ help: change this to: `iname` [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: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:105:42 [INFO] [stdout] | [INFO] [stdout] 105 | Some(v) => match get_named_math_type(&v) { [INFO] [stdout] | ^^ help: change this to: `v` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:117:7 [INFO] [stdout] | [INFO] [stdout] 117 | if word.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `word.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] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:145:4 [INFO] [stdout] | [INFO] [stdout] 145 | return Ok(v); [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] 145 - return Ok(v); [INFO] [stdout] 145 + Ok(v) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:152:6 [INFO] [stdout] | [INFO] [stdout] 152 | return Ok(compiler.new_variable(&name)); [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] 152 ~ Ok(compiler.new_variable(&name)) [INFO] [stdout] 153 | } [INFO] [stdout] 154 | Some(v) => return Err(format!("Expected '.', Received '{}'", v as char)), [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [INFO] [stdout] 156 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:154:16 [INFO] [stdout] | [INFO] [stdout] 154 | Some(v) => return Err(format!("Expected '.', Received '{}'", v as char)), [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] 154 ~ Some(v) => Err(format!("Expected '.', Received '{}'", v as char)), [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [INFO] [stdout] 156 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:155:13 [INFO] [stdout] | [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [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] 155 ~ None => Err(format!("Expected '.', Received none")), [INFO] [stdout] 156 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:139:6 [INFO] [stdout] | [INFO] [stdout] 139 | if word.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!word.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | compiler.new_symbol(&name, v); [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:152:38 [INFO] [stdout] | [INFO] [stdout] 152 | return Ok(compiler.new_variable(&name)); [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/parser.rs:155:24 [INFO] [stdout] | [INFO] [stdout] 155 | None => return Err(format!("Expected '.', Received none")), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Expected '.', Received none".to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:162:3 [INFO] [stdout] | [INFO] [stdout] 162 | return format!("Compilation error at {}:{}. {}", x, y, err); [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] 162 - return format!("Compilation error at {}:{}. {}", x, y, err); [INFO] [stdout] 162 + format!("Compilation error at {}:{}. {}", x, y, err) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:224:3 [INFO] [stdout] | [INFO] [stdout] 224 | return Ok(()); [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] 224 - return Ok(()); [INFO] [stdout] 224 + Ok(()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/parser.rs:175:7 [INFO] [stdout] | [INFO] [stdout] 175 | if name.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `name.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] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:181:26 [INFO] [stdout] | [INFO] [stdout] 181 | compiler.new_symbol(&name, token_at); [INFO] [stdout] | ^^^^^ help: change this to: `name` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded late initialization [INFO] [stdout] --> src/parser.rs:196:6 [INFO] [stdout] | [INFO] [stdout] 196 | let mname; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_late_init [INFO] [stdout] = note: `#[warn(clippy::needless_late_init)]` on by default [INFO] [stdout] help: move the declaration `mname` here and remove the assignments from the `match` arms [INFO] [stdout] | [INFO] [stdout] 196 ~ [INFO] [stdout] 197 ~ let mname = match c { [INFO] [stdout] 198 | b'.' => { [INFO] [stdout] 199 | state.at += 1; [INFO] [stdout] 200 ~ Some(self.get_word(&mut state)) [INFO] [stdout] 201 | } [INFO] [stdout] 202 | _ => { [INFO] [stdout] 203 ~ None [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/number.rs:23:2 [INFO] [stdout] | [INFO] [stdout] 23 | return Some(num); [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] 23 - return Some(num); [INFO] [stdout] 23 + Some(num) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/number.rs:6:6 [INFO] [stdout] | [INFO] [stdout] 6 | if c >= b'0' && c <= b'9' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'0'..=b'9').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/number.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | else if c >= b'a' && c <= b'z' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'a'..=b'z').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual `RangeInclusive::contains` implementation [INFO] [stdout] --> src/number.rs:12:11 [INFO] [stdout] | [INFO] [stdout] 12 | else if c >= b'A' && c <= b'z' { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ help: use: `(b'A'..=b'z').contains(&c)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_range_contains [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:25:3 [INFO] [stdout] | [INFO] [stdout] 25 | return compiler.add(self.itype, self.mtype, &data); [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] 25 - return compiler.add(self.itype, self.mtype, &data); [INFO] [stdout] 25 + compiler.add(self.itype, self.mtype, &data) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:29:3 [INFO] [stdout] | [INFO] [stdout] 29 | return self.itype.arg_count() + 1; [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] 29 - return self.itype.arg_count() + 1; [INFO] [stdout] 29 + self.itype.arg_count() + 1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/parser.rs:98:23 [INFO] [stdout] | [INFO] [stdout] 98 | fn parse_instruction(&self, state: &mut State, iname: &[u8], mname: Option<&[u8]>) -> Result { [INFO] [stdout] | ^^^^^ the lifetime is elided here ^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 98 | fn parse_instruction(&self, state: &mut State, iname: &[u8], mname: Option<&[u8]>) -> Result, String> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.33s [INFO] running `Command { std: "docker" "inspect" "e49c0593d23b16a041b0856b0d6e920e9fafd4ad3b6a2f2920358408f3708f56", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e49c0593d23b16a041b0856b0d6e920e9fafd4ad3b6a2f2920358408f3708f56", kill_on_drop: false }` [INFO] [stdout] e49c0593d23b16a041b0856b0d6e920e9fafd4ad3b6a2f2920358408f3708f56