[INFO] cloning repository https://github.com/tulilirockz/qbfc [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tulilirockz/qbfc" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftulilirockz%2Fqbfc", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftulilirockz%2Fqbfc'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] f7194a407762f9825b28aef6acf8af26df78d65c [INFO] linting tulilirockz/qbfc against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftulilirockz%2Fqbfc" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/tulilirockz/qbfc [INFO] finished tweaking git repo https://github.com/tulilirockz/qbfc [INFO] tweaked toml for git repo https://github.com/tulilirockz/qbfc written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/tulilirockz/qbfc 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/tulilirockz/qbfc already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded clap v4.5.17 [INFO] [stderr] Downloaded clap_builder v4.5.17 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 9fa47b50acca60011e5f0ec80617ff593540dcb83305aa4cfe78ac100ba27451 [INFO] running `Command { std: "docker" "start" "-a" "9fa47b50acca60011e5f0ec80617ff593540dcb83305aa4cfe78ac100ba27451", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "9fa47b50acca60011e5f0ec80617ff593540dcb83305aa4cfe78ac100ba27451", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9fa47b50acca60011e5f0ec80617ff593540dcb83305aa4cfe78ac100ba27451", kill_on_drop: false }` [INFO] [stdout] 9fa47b50acca60011e5f0ec80617ff593540dcb83305aa4cfe78ac100ba27451 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 5c44ae54b8986c49f42dcc07bc2349e6551f79b748b018ba5bfe238fc74d9b24 [INFO] running `Command { std: "docker" "start" "-a" "5c44ae54b8986c49f42dcc07bc2349e6551f79b748b018ba5bfe238fc74d9b24", kill_on_drop: false }` [INFO] [stderr] Compiling unicode-ident v1.0.13 [INFO] [stderr] Checking anstyle-parse v0.2.5 [INFO] [stderr] Checking anstyle v1.0.8 [INFO] [stderr] Checking anstyle-query v1.1.1 [INFO] [stderr] Checking colorchoice v1.0.2 [INFO] [stderr] Checking clap_lex v0.7.2 [INFO] [stderr] Checking qbe v2.1.0 (/opt/rustwide/workdir/qbe-rs) [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Checking anstream v0.6.15 [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> qbe-rs/src/lib.rs:484:23 [INFO] [stdout] | [INFO] [stdout] 484 | pub fn last_block(&mut self) -> &Block { [INFO] [stdout] | ^^^^^^^^^ ^^^^^^ [INFO] [stdout] | | || [INFO] [stdout] | | |the same lifetime is hidden here [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the lifetime is elided 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] 484 | pub fn last_block(&mut self) -> &Block<'_> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking clap_builder v4.5.17 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling clap_derive v4.5.13 [INFO] [stderr] Checking clap v4.5.17 [INFO] [stderr] Checking qbfc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_block(self: &mut Self, block: qbe::Block<'a>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] = note: `#[warn(clippy::needless_arbitrary_self_type)]` on by default [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 22 - fn add_block(self: &mut Self, block: qbe::Block<'a>) { [INFO] [stdout] 22 + fn add_block(&mut self, block: qbe::Block<'a>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn init_body(self: &mut Self) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 46 - pub fn init_body(self: &mut Self) -> &mut Self { [INFO] [stdout] 46 + pub fn init_body(&mut self) -> &mut Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:81:23 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn close_prog(self: &mut Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 81 - pub fn close_prog(self: &mut Self) { [INFO] [stdout] 81 + pub fn close_prog(&mut self) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | self: &mut Self, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 94 - self: &mut Self, [INFO] [stdout] 94 + &mut self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn to_opposite(self: Self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 21 - pub fn to_opposite(self: Self) -> Option { [INFO] [stdout] 21 + pub fn to_opposite(self) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:37:17 [INFO] [stdout] | [INFO] [stdout] 37 | fn validate(self: &Self) -> bool; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 37 - fn validate(self: &Self) -> bool; [INFO] [stdout] 37 + fn validate(&self) -> bool; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | fn validate(self: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 41 - fn validate(self: &Self) -> bool { [INFO] [stdout] 41 + fn validate(&self) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | fn compress(self: Self) -> Vec; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 76 - fn compress(self: Self) -> Vec; [INFO] [stdout] 76 + fn compress(self) -> Vec; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:80:23 [INFO] [stdout] | [INFO] [stdout] 80 | fn is_valid_token(self: Self) -> bool; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 80 - fn is_valid_token(self: Self) -> bool; [INFO] [stdout] 80 + fn is_valid_token(self) -> bool; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:84:14 [INFO] [stdout] | [INFO] [stdout] 84 | fn clean(self: Self) -> Self; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 84 - fn clean(self: Self) -> Self; [INFO] [stdout] 84 + fn clean(self) -> Self; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:88:14 [INFO] [stdout] | [INFO] [stdout] 88 | fn clean(self: Self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 88 - fn clean(self: Self) -> Self { [INFO] [stdout] 88 + fn clean(self) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | fn compress(self: Self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 114 - fn compress(self: Self) -> Vec { [INFO] [stdout] 114 + fn compress(self) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:173:23 [INFO] [stdout] | [INFO] [stdout] 173 | fn is_valid_token(self: Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 173 - fn is_valid_token(self: Self) -> bool { [INFO] [stdout] 173 + fn is_valid_token(self) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:22:18 [INFO] [stdout] | [INFO] [stdout] 22 | fn add_block(self: &mut Self, block: qbe::Block<'a>) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] = note: `#[warn(clippy::needless_arbitrary_self_type)]` on by default [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 22 - fn add_block(self: &mut Self, block: qbe::Block<'a>) { [INFO] [stdout] 22 + fn add_block(&mut self, block: qbe::Block<'a>) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:46:22 [INFO] [stdout] | [INFO] [stdout] 46 | pub fn init_body(self: &mut Self) -> &mut Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 46 - pub fn init_body(self: &mut Self) -> &mut Self { [INFO] [stdout] 46 + pub fn init_body(&mut self) -> &mut Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:81:23 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn close_prog(self: &mut Self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 81 - pub fn close_prog(self: &mut Self) { [INFO] [stdout] 81 + pub fn close_prog(&mut self) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/ir.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | self: &mut Self, [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 94 - self: &mut Self, [INFO] [stdout] 94 + &mut self, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:21:24 [INFO] [stdout] | [INFO] [stdout] 21 | pub fn to_opposite(self: Self) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 21 - pub fn to_opposite(self: Self) -> Option { [INFO] [stdout] 21 + pub fn to_opposite(self) -> Option { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:37:17 [INFO] [stdout] | [INFO] [stdout] 37 | fn validate(self: &Self) -> bool; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 37 - fn validate(self: &Self) -> bool; [INFO] [stdout] 37 + fn validate(&self) -> bool; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:41:17 [INFO] [stdout] | [INFO] [stdout] 41 | fn validate(self: &Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 41 - fn validate(self: &Self) -> bool { [INFO] [stdout] 41 + fn validate(&self) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:76:17 [INFO] [stdout] | [INFO] [stdout] 76 | fn compress(self: Self) -> Vec; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 76 - fn compress(self: Self) -> Vec; [INFO] [stdout] 76 + fn compress(self) -> Vec; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:80:23 [INFO] [stdout] | [INFO] [stdout] 80 | fn is_valid_token(self: Self) -> bool; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 80 - fn is_valid_token(self: Self) -> bool; [INFO] [stdout] 80 + fn is_valid_token(self) -> bool; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:84:14 [INFO] [stdout] | [INFO] [stdout] 84 | fn clean(self: Self) -> Self; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 84 - fn clean(self: Self) -> Self; [INFO] [stdout] 84 + fn clean(self) -> Self; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:88:14 [INFO] [stdout] | [INFO] [stdout] 88 | fn clean(self: Self) -> Self { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 88 - fn clean(self: Self) -> Self { [INFO] [stdout] 88 + fn clean(self) -> Self { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:114:17 [INFO] [stdout] | [INFO] [stdout] 114 | fn compress(self: Self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 114 - fn compress(self: Self) -> Vec { [INFO] [stdout] 114 + fn compress(self) -> Vec { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type of the `self` parameter does not need to be arbitrary [INFO] [stdout] --> src/token.rs:173:23 [INFO] [stdout] | [INFO] [stdout] 173 | fn is_valid_token(self: Self) -> bool { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_arbitrary_self_type [INFO] [stdout] help: remove the type [INFO] [stdout] | [INFO] [stdout] 173 - fn is_valid_token(self: Self) -> bool { [INFO] [stdout] 173 + fn is_valid_token(self) -> bool { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ir.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / return BlocksTracker { [INFO] [stdout] 17 | | blocks: vec![], [INFO] [stdout] 18 | | idx: 1, [INFO] [stdout] 19 | | }; [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] 16 ~ BlocksTracker { [INFO] [stdout] 17 + blocks: vec![], [INFO] [stdout] 18 + idx: 1, [INFO] [stdout] 19 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/ir.rs:16:9 [INFO] [stdout] | [INFO] [stdout] 16 | / return BlocksTracker { [INFO] [stdout] 17 | | blocks: vec![], [INFO] [stdout] 18 | | idx: 1, [INFO] [stdout] 19 | | }; [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] 16 ~ BlocksTracker { [INFO] [stdout] 17 + blocks: vec![], [INFO] [stdout] 18 + idx: 1, [INFO] [stdout] 19 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/token.rs:92:16 [INFO] [stdout] | [INFO] [stdout] 92 | if !cleaned[idx + 1].token.to_opposite().is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cleaned[idx + 1].token.to_opposite().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: manual implementation of an assign operation [INFO] [stdout] --> src/token.rs:99:21 [INFO] [stdout] | [INFO] [stdout] 99 | cleaned[idx].num = cleaned[idx].num - cleaned[idx + 1].num; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cleaned[idx].num -= cleaned[idx + 1].num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/token.rs:102:21 [INFO] [stdout] | [INFO] [stdout] 102 | cleaned[idx + 1].num = cleaned[idx + 1].num - cleaned[idx].num; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cleaned[idx + 1].num -= cleaned[idx].num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | return compressed_tokens; [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 - return compressed_tokens; [INFO] [stdout] 152 + compressed_tokens [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/token.rs:156:1 [INFO] [stdout] | [INFO] [stdout] 156 | impl Into for u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 156 ~ impl From for BrainfuckToken { [INFO] [stdout] 157 ~ fn from(val: u8) -> Self { [INFO] [stdout] 158 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/token.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | / match self { [INFO] [stdout] 175 | | b'>' | b'<' | b'+' | b'-' | b'.' | b',' | b'[' | b']' => true, [INFO] [stdout] 176 | | _ => false, [INFO] [stdout] 177 | | } [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] 174 - match self { [INFO] [stdout] 175 - b'>' | b'<' | b'+' | b'-' | b'.' | b',' | b'[' | b']' => true, [INFO] [stdout] 176 - _ => false, [INFO] [stdout] 177 - } [INFO] [stdout] 174 + matches!(self, b'>' | b'<' | b'+' | b'-' | b'.' | b',' | b'[' | b']') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | return; [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] 149 - ); [INFO] [stdout] 150 - return; [INFO] [stdout] 149 + ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / if !args.no_check { [INFO] [stdout] 64 | | if !compressed_tokens.validate() { [INFO] [stdout] 65 | | panic!("Failed due to bracket mismatch"); [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 63 ~ if !args.no_check [INFO] [stdout] 64 ~ && !compressed_tokens.validate() { [INFO] [stdout] 65 | panic!("Failed due to bracket mismatch"); [INFO] [stdout] 66 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | / format!( [INFO] [stdout] 114 | | "{}", [INFO] [stdout] 115 | | String::from_utf8(qbeproc.wait_with_output().unwrap().stdout).unwrap() [INFO] [stdout] 116 | | ), [INFO] [stdout] | |_________________^ help: consider using `.to_string()`: `String::from_utf8(qbeproc.wait_with_output().unwrap().stdout).unwrap().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: spawned process is never `wait()`ed on [INFO] [stdout] --> src/main.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | let qbeproc = Command::new("qbe") [INFO] [stdout] | ___________________________^ [INFO] [stdout] 122 | | .stdin(Stdio::piped()) [INFO] [stdout] 123 | | .stdout(Stdio::piped()) [INFO] [stdout] 124 | | .spawn() [INFO] [stdout] 125 | | .expect("Failure finding QBE binary"); [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: consider calling `.wait()` [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/token.rs:92:16 [INFO] [stdout] | [INFO] [stdout] 92 | if !cleaned[idx + 1].token.to_opposite().is_none() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `cleaned[idx + 1].token.to_opposite().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: manual implementation of an assign operation [INFO] [stdout] --> src/token.rs:99:21 [INFO] [stdout] | [INFO] [stdout] 99 | cleaned[idx].num = cleaned[idx].num - cleaned[idx + 1].num; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cleaned[idx].num -= cleaned[idx + 1].num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/token.rs:102:21 [INFO] [stdout] | [INFO] [stdout] 102 | cleaned[idx + 1].num = cleaned[idx + 1].num - cleaned[idx].num; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `cleaned[idx + 1].num -= cleaned[idx].num` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/token.rs:152:9 [INFO] [stdout] | [INFO] [stdout] 152 | return compressed_tokens; [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 - return compressed_tokens; [INFO] [stdout] 152 + compressed_tokens [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/token.rs:156:1 [INFO] [stdout] | [INFO] [stdout] 156 | impl Into for u8 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 156 ~ impl From for BrainfuckToken { [INFO] [stdout] 157 ~ fn from(val: u8) -> Self { [INFO] [stdout] 158 ~ match val { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/token.rs:174:9 [INFO] [stdout] | [INFO] [stdout] 174 | / match self { [INFO] [stdout] 175 | | b'>' | b'<' | b'+' | b'-' | b'.' | b',' | b'[' | b']' => true, [INFO] [stdout] 176 | | _ => false, [INFO] [stdout] 177 | | } [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] 174 - match self { [INFO] [stdout] 175 - b'>' | b'<' | b'+' | b'-' | b'.' | b',' | b'[' | b']' => true, [INFO] [stdout] 176 - _ => false, [INFO] [stdout] 177 - } [INFO] [stdout] 174 + matches!(self, b'>' | b'<' | b'+' | b'-' | b'.' | b',' | b'[' | b']') [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/main.rs:150:13 [INFO] [stdout] | [INFO] [stdout] 150 | return; [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] 149 - ); [INFO] [stdout] 150 - return; [INFO] [stdout] 149 + ); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> src/main.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | / if !args.no_check { [INFO] [stdout] 64 | | if !compressed_tokens.validate() { [INFO] [stdout] 65 | | panic!("Failed due to bracket mismatch"); [INFO] [stdout] 66 | | } [INFO] [stdout] 67 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stdout] = note: `#[warn(clippy::collapsible_if)]` on by default [INFO] [stdout] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 63 ~ if !args.no_check [INFO] [stdout] 64 ~ && !compressed_tokens.validate() { [INFO] [stdout] 65 | panic!("Failed due to bracket mismatch"); [INFO] [stdout] 66 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/main.rs:113:17 [INFO] [stdout] | [INFO] [stdout] 113 | / format!( [INFO] [stdout] 114 | | "{}", [INFO] [stdout] 115 | | String::from_utf8(qbeproc.wait_with_output().unwrap().stdout).unwrap() [INFO] [stdout] 116 | | ), [INFO] [stdout] | |_________________^ help: consider using `.to_string()`: `String::from_utf8(qbeproc.wait_with_output().unwrap().stdout).unwrap().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: spawned process is never `wait()`ed on [INFO] [stdout] --> src/main.rs:121:27 [INFO] [stdout] | [INFO] [stdout] 121 | let qbeproc = Command::new("qbe") [INFO] [stdout] | ___________________________^ [INFO] [stdout] 122 | | .stdin(Stdio::piped()) [INFO] [stdout] 123 | | .stdout(Stdio::piped()) [INFO] [stdout] 124 | | .spawn() [INFO] [stdout] 125 | | .expect("Failure finding QBE binary"); [INFO] [stdout] | |_____________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: consider calling `.wait()` [INFO] [stdout] = note: not doing so might leave behind zombie processes [INFO] [stdout] = note: see https://doc.rust-lang.org/stable/std/process/struct.Child.html#warning [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#zombie_processes [INFO] [stdout] = note: `#[warn(clippy::zombie_processes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 9.88s [INFO] running `Command { std: "docker" "inspect" "5c44ae54b8986c49f42dcc07bc2349e6551f79b748b018ba5bfe238fc74d9b24", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c44ae54b8986c49f42dcc07bc2349e6551f79b748b018ba5bfe238fc74d9b24", kill_on_drop: false }` [INFO] [stdout] 5c44ae54b8986c49f42dcc07bc2349e6551f79b748b018ba5bfe238fc74d9b24