[INFO] cloning repository https://github.com/ezntek/beanforth [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ezntek/beanforth" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fezntek%2Fbeanforth", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fezntek%2Fbeanforth'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ebd83059cef6973d0ee3a348855d0d39b2809cef [INFO] linting ezntek/beanforth against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fezntek%2Fbeanforth" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ezntek/beanforth [INFO] finished tweaking git repo https://github.com/ezntek/beanforth [INFO] tweaked toml for git repo https://github.com/ezntek/beanforth written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ezntek/beanforth 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/ezntek/beanforth 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-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] d7434df6c6abf1b7619deb9d4da985e53658895a1f6f6032c6b53fe5287890e7 [INFO] running `Command { std: "docker" "start" "-a" "d7434df6c6abf1b7619deb9d4da985e53658895a1f6f6032c6b53fe5287890e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d7434df6c6abf1b7619deb9d4da985e53658895a1f6f6032c6b53fe5287890e7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d7434df6c6abf1b7619deb9d4da985e53658895a1f6f6032c6b53fe5287890e7", kill_on_drop: false }` [INFO] [stdout] d7434df6c6abf1b7619deb9d4da985e53658895a1f6f6032c6b53fe5287890e7 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 45f220c6f268dbdc3f56603c376ff53ecb4d96fa2e235545e83f4f361e4603c8 [INFO] running `Command { std: "docker" "start" "-a" "45f220c6f268dbdc3f56603c376ff53ecb4d96fa2e235545e83f4f361e4603c8", kill_on_drop: false }` [INFO] [stderr] Checking beanforth v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `eof` [INFO] [stdout] --> src/lexer/macrodefs.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub(super) use eof; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token` [INFO] [stdout] --> src/lexer/macrodefs.rs:22:16 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) use token; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `v_unexpected_char` [INFO] [stdout] --> src/parser/mod.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | error::{err_with_note, loc, v_unexpected_char}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `eof` [INFO] [stdout] --> src/lexer/macrodefs.rs:21:16 [INFO] [stdout] | [INFO] [stdout] 21 | pub(super) use eof; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `token` [INFO] [stdout] --> src/lexer/macrodefs.rs:22:16 [INFO] [stdout] | [INFO] [stdout] 22 | pub(crate) use token; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `v_unexpected_char` [INFO] [stdout] --> src/parser/mod.rs:7:33 [INFO] [stdout] | [INFO] [stdout] 7 | error::{err_with_note, loc, v_unexpected_char}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tok` is never read [INFO] [stdout] --> src/parser/mod.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | let mut tok = &tokens[self.peek]; [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: associated items `with_location` and `get_location` are never used [INFO] [stdout] --> src/lexer/types.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl Token { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn with_location(variant: TokenVariant, location: Location) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn get_location(&self) -> Location { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `offset_peek` and `set_data` are never used [INFO] [stdout] --> src/parser/mod.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn offset_peek(&self, offset: usize) -> &Token { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub(super) fn set_data(&mut self, data: impl Into>) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | Push(Literal), [INFO] [stdout] | ---- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 17 - Push(Literal), [INFO] [stdout] 17 + Push(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | Math(MathOp), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 - Math(MathOp), [INFO] [stdout] 18 + Math(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:19:14 [INFO] [stdout] | [INFO] [stdout] 19 | WordCall(String), [INFO] [stdout] | -------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 - WordCall(String), [INFO] [stdout] 19 + WordCall(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `code` are never read [INFO] [stdout] --> src/parser/types.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 20 | WordDef { [INFO] [stdout] | ------- fields in this variant [INFO] [stdout] 21 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | code: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 29 | Toplevel(Vec), [INFO] [stdout] | -------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 29 - Toplevel(Vec), [INFO] [stdout] 29 + Toplevel(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Loop` and `Conditional` are never constructed [INFO] [stdout] --> src/parser/types.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Node { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 24 | Loop(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 25 | Conditional { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/error/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | mod error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lexer/mod.rs:201:33 [INFO] [stdout] | [INFO] [stdout] 201 | if is_not_whitespace && !tok.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `tok.is_some()` [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/lexer/mod.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | / return Some(Err(err!( [INFO] [stdout] 203 | | self.get_err_pos(self.ptr), [INFO] [stdout] 204 | | v_unexpected_char!(peek_res) [INFO] [stdout] 205 | | ))); [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] 202 ~ Some(Err(err!( [INFO] [stdout] 203 + self.get_err_pos(self.ptr), [INFO] [stdout] 204 + v_unexpected_char!(peek_res) [INFO] [stdout] 205 ~ ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | return ret!(tok); [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] 207 - return ret!(tok); [INFO] [stdout] 207 + ret!(tok) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:321:21 [INFO] [stdout] | [INFO] [stdout] 321 | return Some(Ok(token!(TokenVariant::ReservedWord(rw)))); [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] 321 - return Some(Ok(token!(TokenVariant::ReservedWord(rw)))); [INFO] [stdout] 321 + Some(Ok(token!(TokenVariant::ReservedWord(rw)))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `tok` is never read [INFO] [stdout] --> src/parser/mod.rs:57:23 [INFO] [stdout] | [INFO] [stdout] 57 | let mut tok = &tokens[self.peek]; [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: using `clone` on type `Math` which implements the `Copy` trait [INFO] [stdout] --> src/parser/mod.rs:89:68 [INFO] [stdout] | [INFO] [stdout] 89 | TokenVariant::Math(math) => Ok(Node::Math(MathOp::from(math.clone()))), [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*math` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/parser/mod.rs:90:55 [INFO] [stdout] | [INFO] [stdout] 90 | TokenVariant::Literal(n) => Ok(Node::Push(n.clone())), [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `with_location` and `get_location` are never used [INFO] [stdout] --> src/lexer/types.rs:81:12 [INFO] [stdout] | [INFO] [stdout] 73 | impl Token { [INFO] [stdout] | ---------- associated items in this implementation [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn with_location(variant: TokenVariant, location: Location) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 88 | pub fn get_location(&self) -> Location { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `offset_peek` and `set_data` are never used [INFO] [stdout] --> src/parser/mod.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Parser { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn offset_peek(&self, offset: usize) -> &Token { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub(super) fn set_data(&mut self, data: impl Into>) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:17:10 [INFO] [stdout] | [INFO] [stdout] 17 | Push(Literal), [INFO] [stdout] | ---- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 17 - Push(Literal), [INFO] [stdout] 17 + Push(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:18:10 [INFO] [stdout] | [INFO] [stdout] 18 | Math(MathOp), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 18 - Math(MathOp), [INFO] [stdout] 18 + Math(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:19:14 [INFO] [stdout] | [INFO] [stdout] 19 | WordCall(String), [INFO] [stdout] | -------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 19 - WordCall(String), [INFO] [stdout] 19 + WordCall(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `code` are never read [INFO] [stdout] --> src/parser/types.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 20 | WordDef { [INFO] [stdout] | ------- fields in this variant [INFO] [stdout] 21 | name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 22 | code: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/parser/types.rs:29:14 [INFO] [stdout] | [INFO] [stdout] 29 | Toplevel(Vec), [INFO] [stdout] | -------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 29 - Toplevel(Vec), [INFO] [stdout] 29 + Toplevel(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: in an `if` condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a `let` [INFO] [stdout] --> src/parser/mod.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | / if { [INFO] [stdout] 118 | | let v = &self.tokens[self.ptr].variant; [INFO] [stdout] 119 | | v != &TokenVariant::Begin && v != &TokenVariant::End [INFO] [stdout] 120 | | } { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blocks_in_conditions [INFO] [stdout] = note: `#[warn(clippy::blocks_in_conditions)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 117 ~ let res = { [INFO] [stdout] 118 + let v = &self.tokens[self.ptr].variant; [INFO] [stdout] 119 + v != &TokenVariant::Begin && v != &TokenVariant::End [INFO] [stdout] 120 ~ }; if res { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Loop` and `Conditional` are never constructed [INFO] [stdout] --> src/parser/types.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 16 | pub enum Node { [INFO] [stdout] | ---- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 24 | Loop(Vec), [INFO] [stdout] | ^^^^ [INFO] [stdout] 25 | Conditional { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Node` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: module has the same name as its containing module [INFO] [stdout] --> src/error/mod.rs:3:1 [INFO] [stdout] | [INFO] [stdout] 3 | mod error; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stdout] = note: `#[warn(clippy::module_inception)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lexer/mod.rs:201:33 [INFO] [stdout] | [INFO] [stdout] 201 | if is_not_whitespace && !tok.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^ help: try: `tok.is_some()` [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/lexer/mod.rs:202:13 [INFO] [stdout] | [INFO] [stdout] 202 | / return Some(Err(err!( [INFO] [stdout] 203 | | self.get_err_pos(self.ptr), [INFO] [stdout] 204 | | v_unexpected_char!(peek_res) [INFO] [stdout] 205 | | ))); [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] 202 ~ Some(Err(err!( [INFO] [stdout] 203 + self.get_err_pos(self.ptr), [INFO] [stdout] 204 + v_unexpected_char!(peek_res) [INFO] [stdout] 205 ~ ))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:207:13 [INFO] [stdout] | [INFO] [stdout] 207 | return ret!(tok); [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] 207 - return ret!(tok); [INFO] [stdout] 207 + ret!(tok) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lexer/mod.rs:321:21 [INFO] [stdout] | [INFO] [stdout] 321 | return Some(Ok(token!(TokenVariant::ReservedWord(rw)))); [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] 321 - return Some(Ok(token!(TokenVariant::ReservedWord(rw)))); [INFO] [stdout] 321 + Some(Ok(token!(TokenVariant::ReservedWord(rw)))) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `Math` which implements the `Copy` trait [INFO] [stdout] --> src/parser/mod.rs:89:68 [INFO] [stdout] | [INFO] [stdout] 89 | TokenVariant::Math(math) => Ok(Node::Math(MathOp::from(math.clone()))), [INFO] [stdout] | ^^^^^^^^^^^^ help: try dereferencing it: `*math` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] = note: `#[warn(clippy::clone_on_copy)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `clone` on type `i32` which implements the `Copy` trait [INFO] [stdout] --> src/parser/mod.rs:90:55 [INFO] [stdout] | [INFO] [stdout] 90 | TokenVariant::Literal(n) => Ok(Node::Push(n.clone())), [INFO] [stdout] | ^^^^^^^^^ help: try dereferencing it: `*n` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: in an `if` condition, avoid complex blocks or closures with blocks; instead, move the block or closure higher and bind it with a `let` [INFO] [stdout] --> src/parser/mod.rs:117:13 [INFO] [stdout] | [INFO] [stdout] 117 | / if { [INFO] [stdout] 118 | | let v = &self.tokens[self.ptr].variant; [INFO] [stdout] 119 | | v != &TokenVariant::Begin && v != &TokenVariant::End [INFO] [stdout] 120 | | } { [INFO] [stdout] | |_____________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blocks_in_conditions [INFO] [stdout] = note: `#[warn(clippy::blocks_in_conditions)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 117 ~ let res = { [INFO] [stdout] 118 + let v = &self.tokens[self.ptr].variant; [INFO] [stdout] 119 + v != &TokenVariant::Begin && v != &TokenVariant::End [INFO] [stdout] 120 ~ }; if res { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.27s [INFO] running `Command { std: "docker" "inspect" "45f220c6f268dbdc3f56603c376ff53ecb4d96fa2e235545e83f4f361e4603c8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "45f220c6f268dbdc3f56603c376ff53ecb4d96fa2e235545e83f4f361e4603c8", kill_on_drop: false }` [INFO] [stdout] 45f220c6f268dbdc3f56603c376ff53ecb4d96fa2e235545e83f4f361e4603c8