[INFO] cloning repository https://github.com/albi-c/mlogium-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/albi-c/mlogium-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falbi-c%2Fmlogium-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falbi-c%2Fmlogium-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 5006a45a85f6c83f7042abe541a368fcea74df47 [INFO] linting albi-c/mlogium-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Falbi-c%2Fmlogium-rs" "/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/albi-c/mlogium-rs [INFO] finished tweaking git repo https://github.com/albi-c/mlogium-rs [INFO] tweaked toml for git repo https://github.com/albi-c/mlogium-rs written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/albi-c/mlogium-rs 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/albi-c/mlogium-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded smol_str v0.3.2 [INFO] [stderr] Downloaded ariadne v0.5.1 [INFO] [stderr] Downloaded borsh v1.5.7 [INFO] [stderr] Downloaded unicode-width v0.1.14 [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] 385bf53e5f286dec82b2f65eaea1440451a464240988cc453c757c89d4e94b57 [INFO] running `Command { std: "docker" "start" "-a" "385bf53e5f286dec82b2f65eaea1440451a464240988cc453c757c89d4e94b57", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "385bf53e5f286dec82b2f65eaea1440451a464240988cc453c757c89d4e94b57", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "385bf53e5f286dec82b2f65eaea1440451a464240988cc453c757c89d4e94b57", kill_on_drop: false }` [INFO] [stdout] 385bf53e5f286dec82b2f65eaea1440451a464240988cc453c757c89d4e94b57 [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] f9d4837ec302fde6c4d73c120d12e8779f354f7a614a6149fd4345af20d76b06 [INFO] running `Command { std: "docker" "start" "-a" "f9d4837ec302fde6c4d73c120d12e8779f354f7a614a6149fd4345af20d76b06", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Checking unicode-width v0.1.14 [INFO] [stderr] Checking yansi v1.0.1 [INFO] [stderr] Checking smol_str v0.3.2 [INFO] [stderr] Checking ariadne v0.5.1 [INFO] [stderr] Checking quote v1.0.40 [INFO] [stderr] Checking syn v2.0.101 [INFO] [stderr] Checking derive v0.1.0 (/opt/rustwide/workdir/derive) [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> derive/src/lib.rs:160:22 [INFO] [stdout] | [INFO] [stdout] 160 | .filter_map(|i| i) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> derive/src/lib.rs:163:22 [INFO] [stdout] | [INFO] [stdout] 163 | .filter_map(|i| i) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> derive/src/lib.rs:160:22 [INFO] [stdout] | [INFO] [stdout] 160 | .filter_map(|i| i) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> derive/src/lib.rs:163:22 [INFO] [stdout] | [INFO] [stdout] 163 | .filter_map(|i| i) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> derive/src/lib.rs:160:22 [INFO] [stdout] | [INFO] [stdout] 160 | .filter_map(|i| i) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] = note: `#[warn(clippy::filter_map_identity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of `filter_map` with an identity function [INFO] [stdout] --> derive/src/lib.rs:163:22 [INFO] [stdout] | [INFO] [stdout] 163 | .filter_map(|i| i) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: try: `flatten()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#filter_map_identity [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking code v0.1.0 (/opt/rustwide/workdir/code) [INFO] [stderr] Checking parse v0.1.0 (/opt/rustwide/workdir/parse) [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> parse/src/lex.rs:302:33 [INFO] [stdout] | [INFO] [stdout] 302 | const OPTIONS: &'static [char] = [INFO] [stdout] | -^^^^^^^------- help: consider removing `'static`: `&[char]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> parse/src/parser.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | const OP_RULES: &'static [OpRule] = &[ [INFO] [stdout] | -^^^^^^^--------- help: consider removing `'static`: `&[OpRule]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | Read(Out, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | GetLink(Out, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_6` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | Sensor(Out, In, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | Set(Out, In), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | Lookup(Sel, Out, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | Lookup(Sel, Out, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_6` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | Read(Out, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | Read(Out, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | Write(In, In, In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | Write(In, In, In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | Write(In, In, In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_6` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | Print(In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | PrintChar(In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | Format(In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | DrawFlush(In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | PrintFlush(In), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | GetLink(Out, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | Sensor(Out, In, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | Sensor(Out, In, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | Set(Out, In), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | Lookup(Sel, Out, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | Wait(In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | UBind(In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> parse/src/lex.rs:302:33 [INFO] [stdout] | [INFO] [stdout] 302 | const OPTIONS: &'static [char] = [INFO] [stdout] | -^^^^^^^------- help: consider removing `'static`: `&[char]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] = note: `#[warn(clippy::redundant_static_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constants have by default a `'static` lifetime [INFO] [stdout] --> parse/src/parser.rs:52:18 [INFO] [stdout] | [INFO] [stdout] 52 | const OP_RULES: &'static [OpRule] = &[ [INFO] [stdout] | -^^^^^^^--------- help: consider removing `'static`: `&[OpRule]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_static_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> code/src/instr.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / impl Default for InsIn { [INFO] [stdout] 39 | | fn default() -> Self { [INFO] [stdout] 40 | | Self::None [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 16 + #[derive(Default)] [INFO] [stdout] 17 | pub enum InsIn { [INFO] [stdout] 18 ~ #[default] [INFO] [stdout] 19 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> parse/src/lex.rs:279:19 [INFO] [stdout] | [INFO] [stdout] 279 | (pos, ch @ '0'..='9') => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> parse/src/lex.rs:283:19 [INFO] [stdout] | [INFO] [stdout] 283 | (pos, ch @ ('a'..='z' | 'A'..='Z' | '_')) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> parse/src/lex.rs:195:41 [INFO] [stdout] | [INFO] [stdout] 195 | fn unexpected_char_with_ch_ref_hint<'b>(i: usize, ch: char, expected: &[char]) -> LexerError { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> parse/src/lex.rs:197:28 [INFO] [stdout] | [INFO] [stdout] 197 | i, ch,expected.into_iter().map(|&ch| ch.into()).collect()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> parse/src/lex.rs:202:29 [INFO] [stdout] | [INFO] [stdout] 202 | i, ch, expected.into_iter().map(|s| s.to_string()).collect()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> parse/src/lex.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 234 | if string.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `string.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: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> parse/src/lex.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | self.next().ok_or_else(|| LexerError::UnexpectedEof) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 253 - self.next().ok_or_else(|| LexerError::UnexpectedEof) [INFO] [stdout] 253 + self.next().ok_or(LexerError::UnexpectedEof) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> parse/src/lex.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | / if let Some((_, ch)) = self.peek() { [INFO] [stdout] 259 | | if func(ch) { [INFO] [stdout] 260 | | self.next(); [INFO] [stdout] 261 | | continue; [INFO] [stdout] 262 | | } [INFO] [stdout] 263 | | } [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] 258 ~ if let Some((_, ch)) = self.peek() [INFO] [stdout] 259 ~ && func(ch) { [INFO] [stdout] 260 | self.next(); [INFO] [stdout] 261 | continue; [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual check for common ascii range [INFO] [stdout] --> parse/src/lex.rs:280:38 [INFO] [stdout] | [INFO] [stdout] 280 | self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] = note: `#[warn(clippy::manual_is_ascii_check)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 280 - self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] 280 + self.take_while(|ch: char| ch.is_ascii_digit()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> parse/src/lex.rs:400:24 [INFO] [stdout] | [INFO] [stdout] 400 | if !self.peek_take(ch).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.peek_take(ch).is_none()` [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 check for common ascii range [INFO] [stdout] --> parse/src/lex.rs:327:42 [INFO] [stdout] | [INFO] [stdout] 327 | self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 327 - self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] 327 + self.take_while(|ch: char| ch.is_ascii_digit()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual check for common ascii range [INFO] [stdout] --> parse/src/lex.rs:330:46 [INFO] [stdout] | [INFO] [stdout] 330 | self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 330 - self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] 330 + self.take_while(|ch: char| ch.is_ascii_digit()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> parse/src/lex.rs:414:31 [INFO] [stdout] | [INFO] [stdout] 414 | } else if self.peek().map_or(false, |(_, ch)| ch.is_ascii_hexdigit()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 414 - } else if self.peek().map_or(false, |(_, ch)| ch.is_ascii_hexdigit()) { [INFO] [stdout] 414 + } else if self.peek().is_some_and(|(_, ch)| ch.is_ascii_hexdigit()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | Read(Out, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> parse/src/parser.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | fn unexpected<'a>(tok: Tok, hint: Vec) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | GetLink(Out, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_6` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | Sensor(Out, In, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | Set(Out, In), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | Lookup(Sel, Out, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | Lookup(Sel, Out, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_6` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> parse/src/parser.rs:99:38 [INFO] [stdout] | [INFO] [stdout] 99 | let mut hint = types.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> parse/src/parser.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | / if end_brace { [INFO] [stdout] 178 | | if let Some(tok) = self.peek_take(TokType::RBrace)? { [INFO] [stdout] 179 | | end = tok.span.end; [INFO] [stdout] 180 | | break false; [INFO] [stdout] 181 | | } [INFO] [stdout] 182 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 177 ~ if end_brace [INFO] [stdout] 178 ~ && let Some(tok) = self.peek_take(TokType::RBrace)? { [INFO] [stdout] 179 | end = tok.span.end; [INFO] [stdout] 180 | break false; [INFO] [stdout] 181 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | Read(Out, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | Read(Out, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | Write(In, In, In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | Write(In, In, In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | Write(In, In, In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_6` [INFO] [stdout] --> code/src/instr.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | Draw(Sel, In, In, In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | Print(In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | PrintChar(In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:58:5 [INFO] [stdout] | [INFO] [stdout] 58 | Format(In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | DrawFlush(In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 61 | PrintFlush(In), [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | GetLink(Out, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | Control(Sel, In, In, In, In), [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | Radar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | Sensor(Out, In, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | Sensor(Out, In, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:71:5 [INFO] [stdout] | [INFO] [stdout] 71 | Set(Out, In), [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:73:5 [INFO] [stdout] | [INFO] [stdout] 73 | Op(Out, Sel, In, In), [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:75:5 [INFO] [stdout] | [INFO] [stdout] 75 | Lookup(Sel, Out, In), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:77:5 [INFO] [stdout] | [INFO] [stdout] 77 | PackColor(Out, In, In, In, In), [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:79:5 [INFO] [stdout] | [INFO] [stdout] 79 | UnpackColor(Out, Out, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | Wait(In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:84:5 [INFO] [stdout] | [INFO] [stdout] 84 | Jump(In, In, In, In), [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_0` [INFO] [stdout] --> code/src/instr.rs:86:5 [INFO] [stdout] | [INFO] [stdout] 86 | UBind(In), [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_p_0` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:87:5 [INFO] [stdout] | [INFO] [stdout] 87 | UControl(Sel, In, In, In, In, In), [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:89:5 [INFO] [stdout] | [INFO] [stdout] 89 | UControlGetBlock(Sel, In, In, Out, Out, In), [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_1` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_2` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_3` [INFO] [stdout] --> code/src/instr.rs:91:5 [INFO] [stdout] | [INFO] [stdout] 91 | UControlWithin(Sel, In, In, In, Out), [INFO] [stdout] | ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_4` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `p_5` [INFO] [stdout] --> code/src/instr.rs:93:5 [INFO] [stdout] | [INFO] [stdout] 93 | URadar(Sel, Sel, Sel, Sel, In, In, Out), [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_p_5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `impl` can be derived [INFO] [stdout] --> code/src/instr.rs:38:1 [INFO] [stdout] | [INFO] [stdout] 38 | / impl Default for InsIn { [INFO] [stdout] 39 | | fn default() -> Self { [INFO] [stdout] 40 | | Self::None [INFO] [stdout] 41 | | } [INFO] [stdout] 42 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derivable_impls [INFO] [stdout] = note: `#[warn(clippy::derivable_impls)]` on by default [INFO] [stdout] help: replace the manual implementation with a derive attribute and mark the default variant [INFO] [stdout] | [INFO] [stdout] 16 + #[derive(Default)] [INFO] [stdout] 17 | pub enum InsIn { [INFO] [stdout] 18 ~ #[default] [INFO] [stdout] 19 ~ None, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:151:35 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn into_report(self, src: &str) -> Report { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] 151 | pub fn into_report(self, src: &str) -> Report<'_, Span> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:277:26 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn lex_attribute(&self) -> LexerResult { [INFO] [stdout] | ^^^^^ ^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 277 | pub fn lex_attribute(&self) -> LexerResult> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:296:19 [INFO] [stdout] | [INFO] [stdout] 296 | fn lex_string(&self, start: usize, tok_type: TokType, end: char) -> LexerResult { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 296 | fn lex_string(&self, start: usize, tok_type: TokType, end: char) -> LexerResult> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:314:16 [INFO] [stdout] | [INFO] [stdout] 314 | pub fn lex(&self) -> LexerResult> { [INFO] [stdout] | ^^^^^ ^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 314 | pub fn lex(&self) -> LexerResult>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/parser.rs:22:35 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn into_report(self, src: &str) -> Report { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 22 | pub fn into_report(self, src: &str) -> Report<'_, Span> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> parse/src/lex.rs:279:19 [INFO] [stdout] | [INFO] [stdout] 279 | (pos, ch @ '0'..='9') => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `ch` [INFO] [stdout] --> parse/src/lex.rs:283:19 [INFO] [stdout] | [INFO] [stdout] 283 | (pos, ch @ ('a'..='z' | 'A'..='Z' | '_')) => { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_ch` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> parse/src/lex.rs:195:41 [INFO] [stdout] | [INFO] [stdout] 195 | fn unexpected_char_with_ch_ref_hint<'b>(i: usize, ch: char, expected: &[char]) -> LexerError { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> parse/src/lex.rs:197:28 [INFO] [stdout] | [INFO] [stdout] 197 | i, ch,expected.into_iter().map(|&ch| ch.into()).collect()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] = note: `#[warn(clippy::into_iter_on_ref)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> parse/src/lex.rs:202:29 [INFO] [stdout] | [INFO] [stdout] 202 | i, ch, expected.into_iter().map(|s| s.to_string()).collect()) [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> parse/src/lex.rs:234:12 [INFO] [stdout] | [INFO] [stdout] 234 | if string.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `string.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: unnecessary closure used to substitute value for `Option::None` [INFO] [stdout] --> parse/src/lex.rs:253:9 [INFO] [stdout] | [INFO] [stdout] 253 | self.next().ok_or_else(|| LexerError::UnexpectedEof) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_lazy_evaluations [INFO] [stdout] = note: `#[warn(clippy::unnecessary_lazy_evaluations)]` on by default [INFO] [stdout] help: use `ok_or` instead [INFO] [stdout] | [INFO] [stdout] 253 - self.next().ok_or_else(|| LexerError::UnexpectedEof) [INFO] [stdout] 253 + self.next().ok_or(LexerError::UnexpectedEof) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> parse/src/lex.rs:258:13 [INFO] [stdout] | [INFO] [stdout] 258 | / if let Some((_, ch)) = self.peek() { [INFO] [stdout] 259 | | if func(ch) { [INFO] [stdout] 260 | | self.next(); [INFO] [stdout] 261 | | continue; [INFO] [stdout] 262 | | } [INFO] [stdout] 263 | | } [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] 258 ~ if let Some((_, ch)) = self.peek() [INFO] [stdout] 259 ~ && func(ch) { [INFO] [stdout] 260 | self.next(); [INFO] [stdout] 261 | continue; [INFO] [stdout] 262 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual check for common ascii range [INFO] [stdout] --> parse/src/lex.rs:280:38 [INFO] [stdout] | [INFO] [stdout] 280 | self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] = note: `#[warn(clippy::manual_is_ascii_check)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 280 - self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] 280 + self.take_while(|ch: char| ch.is_ascii_digit()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> parse/src/lex.rs:400:24 [INFO] [stdout] | [INFO] [stdout] 400 | if !self.peek_take(ch).is_some() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.peek_take(ch).is_none()` [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 check for common ascii range [INFO] [stdout] --> parse/src/lex.rs:327:42 [INFO] [stdout] | [INFO] [stdout] 327 | self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 327 - self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] 327 + self.take_while(|ch: char| ch.is_ascii_digit()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual check for common ascii range [INFO] [stdout] --> parse/src/lex.rs:330:46 [INFO] [stdout] | [INFO] [stdout] 330 | self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_is_ascii_check [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 330 - self.take_while(|ch| matches!(ch, '0'..='9')); [INFO] [stdout] 330 + self.take_while(|ch: char| ch.is_ascii_digit()); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> parse/src/lex.rs:414:31 [INFO] [stdout] | [INFO] [stdout] 414 | } else if self.peek().map_or(false, |(_, ch)| ch.is_ascii_hexdigit()) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 414 - } else if self.peek().map_or(false, |(_, ch)| ch.is_ascii_hexdigit()) { [INFO] [stdout] 414 + } else if self.peek().is_some_and(|(_, ch)| ch.is_ascii_hexdigit()) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this lifetime isn't used in the function definition [INFO] [stdout] --> parse/src/parser.rs:17:19 [INFO] [stdout] | [INFO] [stdout] 17 | fn unexpected<'a>(tok: Tok, hint: Vec) -> Self { [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `.into_iter()` call is equivalent to `.iter()` and will not consume the `slice` [INFO] [stdout] --> parse/src/parser.rs:99:38 [INFO] [stdout] | [INFO] [stdout] 99 | let mut hint = types.into_iter() [INFO] [stdout] | ^^^^^^^^^ help: call directly: `iter` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#into_iter_on_ref [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `if` statement can be collapsed [INFO] [stdout] --> parse/src/parser.rs:177:13 [INFO] [stdout] | [INFO] [stdout] 177 | / if end_brace { [INFO] [stdout] 178 | | if let Some(tok) = self.peek_take(TokType::RBrace)? { [INFO] [stdout] 179 | | end = tok.span.end; [INFO] [stdout] 180 | | break false; [INFO] [stdout] 181 | | } [INFO] [stdout] 182 | | } [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] help: collapse nested if block [INFO] [stdout] | [INFO] [stdout] 177 ~ if end_brace [INFO] [stdout] 178 ~ && let Some(tok) = self.peek_take(TokType::RBrace)? { [INFO] [stdout] 179 | end = tok.span.end; [INFO] [stdout] 180 | break false; [INFO] [stdout] 181 ~ } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:151:35 [INFO] [stdout] | [INFO] [stdout] 151 | pub fn into_report(self, src: &str) -> Report { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] 151 | pub fn into_report(self, src: &str) -> Report<'_, Span> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:277:26 [INFO] [stdout] | [INFO] [stdout] 277 | pub fn lex_attribute(&self) -> LexerResult { [INFO] [stdout] | ^^^^^ ^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 277 | pub fn lex_attribute(&self) -> LexerResult> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:296:19 [INFO] [stdout] | [INFO] [stdout] 296 | fn lex_string(&self, start: usize, tok_type: TokType, end: char) -> LexerResult { [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 296 | fn lex_string(&self, start: usize, tok_type: TokType, end: char) -> LexerResult> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/lex.rs:314:16 [INFO] [stdout] | [INFO] [stdout] 314 | pub fn lex(&self) -> LexerResult> { [INFO] [stdout] | ^^^^^ ^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 314 | pub fn lex(&self) -> LexerResult>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> parse/src/parser.rs:22:35 [INFO] [stdout] | [INFO] [stdout] 22 | pub fn into_report(self, src: &str) -> Report { [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [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] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 22 | pub fn into_report(self, src: &str) -> Report<'_, Span> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking mlogium v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `LexerIterator` [INFO] [stdout] --> src/main.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | use parse::lex::{Lexer, LexerIterator}; [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: `LexerIterator` [INFO] [stdout] --> src/main.rs:6:25 [INFO] [stdout] | [INFO] [stdout] 6 | use parse::lex::{Lexer, LexerIterator}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `instructions`, `modules`, and `tmp_counter` are never read [INFO] [stdout] --> src/context.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Ctx { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 13 | instructions: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | modules: Vec<(SmolStr, Vec)>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | tmp_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ctx` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `tmp`, `tmp_num`, `emit`, `emit_all`, and `module` are never used [INFO] [stdout] --> src/context.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Ctx { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn tmp(&mut self) -> SmolStr { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn tmp_num(&mut self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn emit(&mut self, ins: Ins) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn emit_all(&mut self, ins: impl IntoIterator) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn module(&mut self, name: SmolStr, func: impl FnOnce(&mut Self) -> T) -> T { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/tree.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct TreeNode { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 8 | value: V, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `value`, `value_mut`, and `tree` are never used [INFO] [stdout] --> src/tree.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl TreeNode { [INFO] [stdout] | ------------------------------------ methods in this implementation [INFO] [stdout] 14 | pub fn value(&self) -> &V { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn value_mut(&mut self) -> &mut V { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn tree(&self) -> &Tree { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get` is never used [INFO] [stdout] --> src/tree.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Tree { [INFO] [stdout] | -------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn get(&self, key: &K) -> Option<&TreeNode> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/compiler.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | / match *self_type { [INFO] [stdout] 78 | | StructMethodSelf::Static => { [INFO] [stdout] 79 | | g_val.insert_val(name)?; [INFO] [stdout] 80 | | }, [INFO] [stdout] 81 | | _ => {}, [INFO] [stdout] 82 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 77 ~ if *self_type == StructMethodSelf::Static { [INFO] [stdout] 78 + g_val.insert_val(name)?; [INFO] [stdout] 79 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `instructions`, `modules`, and `tmp_counter` are never read [INFO] [stdout] --> src/context.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub struct Ctx { [INFO] [stdout] | --- fields in this struct [INFO] [stdout] 13 | instructions: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 14 | modules: Vec<(SmolStr, Vec)>, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 15 | tmp_counter: usize, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Ctx` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `tmp`, `tmp_num`, `emit`, `emit_all`, and `module` are never used [INFO] [stdout] --> src/context.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 19 | impl Ctx { [INFO] [stdout] | -------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 24 | pub fn tmp(&mut self) -> SmolStr { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 28 | pub fn tmp_num(&mut self) -> usize { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 33 | pub fn emit(&mut self, ins: Ins) { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub fn emit_all(&mut self, ins: impl IntoIterator) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 41 | pub fn module(&mut self, name: SmolStr, func: impl FnOnce(&mut Self) -> T) -> T { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `value` is never read [INFO] [stdout] --> src/tree.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 7 | pub struct TreeNode { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 8 | value: V, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `TreeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `value`, `value_mut`, and `tree` are never used [INFO] [stdout] --> src/tree.rs:14:12 [INFO] [stdout] | [INFO] [stdout] 13 | impl TreeNode { [INFO] [stdout] | ------------------------------------ methods in this implementation [INFO] [stdout] 14 | pub fn value(&self) -> &V { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | pub fn value_mut(&mut self) -> &mut V { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 21 | pub fn tree(&self) -> &Tree { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get` is never used [INFO] [stdout] --> src/tree.rs:66:12 [INFO] [stdout] | [INFO] [stdout] 46 | impl Tree { [INFO] [stdout] | -------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 66 | pub fn get(&self, key: &K) -> Option<&TreeNode> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for an equality check. Consider using `if` [INFO] [stdout] --> src/compiler.rs:77:17 [INFO] [stdout] | [INFO] [stdout] 77 | / match *self_type { [INFO] [stdout] 78 | | StructMethodSelf::Static => { [INFO] [stdout] 79 | | g_val.insert_val(name)?; [INFO] [stdout] 80 | | }, [INFO] [stdout] 81 | | _ => {}, [INFO] [stdout] 82 | | } [INFO] [stdout] | |_________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 77 ~ if *self_type == StructMethodSelf::Static { [INFO] [stdout] 78 + g_val.insert_val(name)?; [INFO] [stdout] 79 + } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.13s [INFO] running `Command { std: "docker" "inspect" "f9d4837ec302fde6c4d73c120d12e8779f354f7a614a6149fd4345af20d76b06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f9d4837ec302fde6c4d73c120d12e8779f354f7a614a6149fd4345af20d76b06", kill_on_drop: false }` [INFO] [stdout] f9d4837ec302fde6c4d73c120d12e8779f354f7a614a6149fd4345af20d76b06