[INFO] cloning repository https://github.com/JoshuaXingT/CSC4180_complier [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JoshuaXingT/CSC4180_complier" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJoshuaXingT%2FCSC4180_complier", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJoshuaXingT%2FCSC4180_complier'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] cdbadc9e7fd758172543a28cf90dcf36a1589875 [INFO] linting JoshuaXingT/CSC4180_complier against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJoshuaXingT%2FCSC4180_complier" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/JoshuaXingT/CSC4180_complier [INFO] finished tweaking git repo https://github.com/JoshuaXingT/CSC4180_complier [INFO] tweaked toml for git repo https://github.com/JoshuaXingT/CSC4180_complier written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/JoshuaXingT/CSC4180_complier 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/JoshuaXingT/CSC4180_complier already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] 3e59a3c10e90c1a1f024ecca01c97889bfb5556a2cf9f86a091af9085fbb4d89 [INFO] running `Command { std: "docker" "start" "-a" "3e59a3c10e90c1a1f024ecca01c97889bfb5556a2cf9f86a091af9085fbb4d89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3e59a3c10e90c1a1f024ecca01c97889bfb5556a2cf9f86a091af9085fbb4d89", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3e59a3c10e90c1a1f024ecca01c97889bfb5556a2cf9f86a091af9085fbb4d89", kill_on_drop: false }` [INFO] [stdout] 3e59a3c10e90c1a1f024ecca01c97889bfb5556a2cf9f86a091af9085fbb4d89 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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] dcd177429c2b4894f39b4382610e8d26a9641d14e14d7a1b59c9a4951dfd55e4 [INFO] running `Command { std: "docker" "start" "-a" "dcd177429c2b4894f39b4382610e8d26a9641d14e14d7a1b59c9a4951dfd55e4", kill_on_drop: false }` [INFO] [stderr] Checking CSC4180_complier v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: variant `MUL_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | MUL_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `MulOp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `DIV_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | DIV_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `DivOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `AND_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | AND_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `AndOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OR_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | OR_OP, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `OrOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NOT_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | NOT_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `NotOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHL_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | SHL_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `ShlOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHR_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:139:5 [INFO] [stdout] | [INFO] [stdout] 139 | SHR_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `ShrOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INT_NUM` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | INT_NUM, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `IntNum` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `program` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | program, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `Program` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `statements` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | statements, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Statements` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `var_declarations` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 158 | var_declarations, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VarDeclarations` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `var_declaration` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:159:5 [INFO] [stdout] | [INFO] [stdout] 159 | var_declaration, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VarDeclaration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `declaration_list` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 160 | declaration_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DeclarationList` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `declaration_list_00` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | declaration_list_00, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DeclarationList00` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `declaration` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | declaration, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Declaration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `MUL_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | MUL_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `MulOp` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `code_block` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | code_block, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `CodeBlock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | statement, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Statement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `control_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:165:5 [INFO] [stdout] | [INFO] [stdout] 165 | control_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ControlStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `read_write_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | read_write_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReadWriteStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `assign_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | assign_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssignStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `if_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | if_statement, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IfStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `DIV_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:131:5 [INFO] [stdout] | [INFO] [stdout] 131 | DIV_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `DivOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `AND_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:132:5 [INFO] [stdout] | [INFO] [stdout] 132 | AND_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `AndOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `OR_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:133:5 [INFO] [stdout] | [INFO] [stdout] 133 | OR_OP, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `OrOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `NOT_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:134:5 [INFO] [stdout] | [INFO] [stdout] 134 | NOT_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `NotOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHL_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:138:5 [INFO] [stdout] | [INFO] [stdout] 138 | SHL_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `ShlOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `SHR_OP` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:139:5 [INFO] [stdout] | [INFO] [stdout] 139 | SHR_OP, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `ShrOp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `INT_NUM` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:148:5 [INFO] [stdout] | [INFO] [stdout] 148 | INT_NUM, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `IntNum` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `program` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:156:5 [INFO] [stdout] | [INFO] [stdout] 156 | program, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `Program` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `statements` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:157:5 [INFO] [stdout] | [INFO] [stdout] 157 | statements, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Statements` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `var_declarations` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:158:5 [INFO] [stdout] | [INFO] [stdout] 158 | var_declarations, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VarDeclarations` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `var_declaration` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:159:5 [INFO] [stdout] | [INFO] [stdout] 159 | var_declaration, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `VarDeclaration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `declaration_list` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:160:5 [INFO] [stdout] | [INFO] [stdout] 160 | declaration_list, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DeclarationList` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `declaration_list_00` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | declaration_list_00, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DeclarationList00` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `declaration` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:162:5 [INFO] [stdout] | [INFO] [stdout] 162 | declaration, [INFO] [stdout] | ^^^^^^^^^^^ help: convert the identifier to upper camel case: `Declaration` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `code_block` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:163:5 [INFO] [stdout] | [INFO] [stdout] 163 | code_block, [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to upper camel case: `CodeBlock` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:164:5 [INFO] [stdout] | [INFO] [stdout] 164 | statement, [INFO] [stdout] | ^^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Statement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `control_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:165:5 [INFO] [stdout] | [INFO] [stdout] 165 | control_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ControlStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `read_write_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:166:5 [INFO] [stdout] | [INFO] [stdout] 166 | read_write_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReadWriteStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `assign_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:167:5 [INFO] [stdout] | [INFO] [stdout] 167 | assign_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `AssignStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `if_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:168:5 [INFO] [stdout] | [INFO] [stdout] 168 | if_statement, [INFO] [stdout] | ^^^^^^^^^^^^ help: convert the identifier to upper camel case: `IfStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `if_stmt` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 169 | if_stmt, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `IfStmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `while_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | while_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WhileStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `do_while_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | do_while_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DoWhileStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `return_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:172:5 [INFO] [stdout] | [INFO] [stdout] 172 | return_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReturnStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `read_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 173 | read_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReadStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `write_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | write_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WriteStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | exp, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Exp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_00` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | exp_00, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp00` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_1` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | exp_1, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_11` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | exp_11, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp11` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_2` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | exp_2, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_22` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | exp_22, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp22` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_3` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | exp_3, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_33` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | exp_33, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp33` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_4` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | exp_4, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_44` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | exp_44, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp44` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_5` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | exp_5, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_55` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | exp_55, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp55` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_6` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | exp_6, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_66` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 188 | exp_66, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp66` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_7` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | exp_7, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp7` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_77` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | exp_77, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp77` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_8` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | exp_8, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_88` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | exp_88, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp88` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_9` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | exp_9, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp9` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_10` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | exp_10, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `if_stmt` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:169:5 [INFO] [stdout] | [INFO] [stdout] 169 | if_stmt, [INFO] [stdout] | ^^^^^^^ help: convert the identifier to upper camel case: `IfStmt` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `while_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | while_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WhileStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `do_while_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:171:5 [INFO] [stdout] | [INFO] [stdout] 171 | do_while_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `DoWhileStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `return_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:172:5 [INFO] [stdout] | [INFO] [stdout] 172 | return_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReturnStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `read_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:173:5 [INFO] [stdout] | [INFO] [stdout] 173 | read_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ReadStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `write_statement` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | write_statement, [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `WriteStatement` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:175:5 [INFO] [stdout] | [INFO] [stdout] 175 | exp, [INFO] [stdout] | ^^^ help: convert the identifier to upper camel case: `Exp` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_00` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:176:5 [INFO] [stdout] | [INFO] [stdout] 176 | exp_00, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp00` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_1` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:177:5 [INFO] [stdout] | [INFO] [stdout] 177 | exp_1, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_11` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | exp_11, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp11` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_2` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:179:5 [INFO] [stdout] | [INFO] [stdout] 179 | exp_2, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_22` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:180:5 [INFO] [stdout] | [INFO] [stdout] 180 | exp_22, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp22` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_3` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:181:5 [INFO] [stdout] | [INFO] [stdout] 181 | exp_3, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp3` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_33` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:182:5 [INFO] [stdout] | [INFO] [stdout] 182 | exp_33, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp33` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_4` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:183:5 [INFO] [stdout] | [INFO] [stdout] 183 | exp_4, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp4` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_44` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:184:5 [INFO] [stdout] | [INFO] [stdout] 184 | exp_44, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp44` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_5` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:185:5 [INFO] [stdout] | [INFO] [stdout] 185 | exp_5, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp5` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_55` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:186:5 [INFO] [stdout] | [INFO] [stdout] 186 | exp_55, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp55` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_6` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:187:5 [INFO] [stdout] | [INFO] [stdout] 187 | exp_6, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp6` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_66` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:188:5 [INFO] [stdout] | [INFO] [stdout] 188 | exp_66, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp66` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_7` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:189:5 [INFO] [stdout] | [INFO] [stdout] 189 | exp_7, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp7` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_77` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:190:5 [INFO] [stdout] | [INFO] [stdout] 190 | exp_77, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp77` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_8` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:191:5 [INFO] [stdout] | [INFO] [stdout] 191 | exp_8, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp8` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_88` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:192:5 [INFO] [stdout] | [INFO] [stdout] 192 | exp_88, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp88` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_9` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | exp_9, [INFO] [stdout] | ^^^^^ help: convert the identifier to upper camel case: `Exp9` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `exp_10` should have an upper camel case name [INFO] [stdout] --> src/symbol.rs:194:5 [INFO] [stdout] | [INFO] [stdout] 194 | exp_10, [INFO] [stdout] | ^^^^^^ help: convert the identifier to upper camel case: `Exp10` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/grammar.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / pub fn default() -> Self { [INFO] [stdout] 66 | | Self { [INFO] [stdout] 67 | | grammar_lines: Vec::new(), [INFO] [stdout] 68 | | grammar_rules: Vec::new(), [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/parser.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / pub fn default() -> Self { [INFO] [stdout] 69 | | Self { [INFO] [stdout] 70 | | line: 0, [INFO] [stdout] 71 | | lhs: Symbol::NonTerminal(NonTerminalSymbol::S), [INFO] [stdout] ... | [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/parser.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | / impl ToString for Production { [INFO] [stdout] 78 | | fn to_string(&self) -> String { [INFO] [stdout] 79 | | let mut production_str = String::new(); [INFO] [stdout] 80 | | for symbol in &self.rhs { [INFO] [stdout] ... | [INFO] [stdout] 90 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/grammar.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 65 | / pub fn default() -> Self { [INFO] [stdout] 66 | | Self { [INFO] [stdout] 67 | | grammar_lines: Vec::new(), [INFO] [stdout] 68 | | grammar_rules: Vec::new(), [INFO] [stdout] 69 | | } [INFO] [stdout] 70 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] = note: `#[warn(clippy::should_implement_trait)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/parser.rs:68:5 [INFO] [stdout] | [INFO] [stdout] 68 | / pub fn default() -> Self { [INFO] [stdout] 69 | | Self { [INFO] [stdout] 70 | | line: 0, [INFO] [stdout] 71 | | lhs: Symbol::NonTerminal(NonTerminalSymbol::S), [INFO] [stdout] ... | [INFO] [stdout] 74 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/parser.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | / impl ToString for Production { [INFO] [stdout] 78 | | fn to_string(&self) -> String { [INFO] [stdout] 79 | | let mut production_str = String::new(); [INFO] [stdout] 80 | | for symbol in &self.rhs { [INFO] [stdout] ... | [INFO] [stdout] 90 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] = note: `#[warn(clippy::to_string_trait_impl)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/parser.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / let mut temp_sons: Vec = vec![]; [INFO] [stdout] 131 | | // temp_sons.push("program".to_string()); [INFO] [stdout] 132 | | temp_sons.push(Symbol::NonTerminal(NonTerminalSymbol::program)); [INFO] [stdout] | |____________________________________________________________________^ help: consider using the `vec![]` macro: `let temp_sons: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: calls to `push` immediately after creation [INFO] [stdout] --> src/parser.rs:130:5 [INFO] [stdout] | [INFO] [stdout] 130 | / let mut temp_sons: Vec = vec![]; [INFO] [stdout] 131 | | // temp_sons.push("program".to_string()); [INFO] [stdout] 132 | | temp_sons.push(Symbol::NonTerminal(NonTerminalSymbol::program)); [INFO] [stdout] | |____________________________________________________________________^ help: consider using the `vec![]` macro: `let temp_sons: Vec = vec![..];` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#vec_init_then_push [INFO] [stdout] = note: `#[warn(clippy::vec_init_then_push)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | count = count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:151:9 [INFO] [stdout] | [INFO] [stdout] 151 | count = count + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `count += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] = note: `#[warn(clippy::assign_op_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/parser.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 296 | / pub fn default() -> Self { [INFO] [stdout] 297 | | Self { [INFO] [stdout] 298 | | all_symbol: HashSet::new(), [INFO] [stdout] 299 | | first_set: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 305 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `default` can be confused for the standard trait method `std::default::Default::default` [INFO] [stdout] --> src/parser.rs:296:5 [INFO] [stdout] | [INFO] [stdout] 296 | / pub fn default() -> Self { [INFO] [stdout] 297 | | Self { [INFO] [stdout] 298 | | all_symbol: HashSet::new(), [INFO] [stdout] 299 | | first_set: HashMap::new(), [INFO] [stdout] ... | [INFO] [stdout] 305 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: consider implementing the trait `std::default::Default` or choosing a less ambiguous method name [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:313:75 [INFO] [stdout] | [INFO] [stdout] 313 | self.construct_first_set(&Symbol::NonTerminal(*non_terminal), &productions); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `productions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/parser.rs:313:75 [INFO] [stdout] | [INFO] [stdout] 313 | self.construct_first_set(&Symbol::NonTerminal(*non_terminal), &productions); [INFO] [stdout] | ^^^^^^^^^^^^ help: change this to: `productions` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:318:12 [INFO] [stdout] | [INFO] [stdout] 318 | if !self.first_set.get(symbol).is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.first_set.get(symbol).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(symbol).is_none()` [INFO] [stdout] --> src/parser.rs:318:28 [INFO] [stdout] | [INFO] [stdout] 318 | if !self.first_set.get(symbol).is_none() { [INFO] [stdout] | ---------------^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!self.first_set.contains_key(symbol)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:318:12 [INFO] [stdout] | [INFO] [stdout] 318 | if !self.first_set.get(symbol).is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.first_set.get(symbol).is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary use of `get(symbol).is_none()` [INFO] [stdout] --> src/parser.rs:318:28 [INFO] [stdout] | [INFO] [stdout] 318 | if !self.first_set.get(symbol).is_none() { [INFO] [stdout] | ---------------^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: replace it with: `!self.first_set.contains_key(symbol)` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check [INFO] [stdout] = note: `#[warn(clippy::unnecessary_get_then_check)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:366:25 [INFO] [stdout] | [INFO] [stdout] 366 | index = index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `productions` [INFO] [stdout] --> src/parser.rs:372:30 [INFO] [stdout] | [INFO] [stdout] 372 | for i in 0..productions.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 372 - for i in 0..productions.len() { [INFO] [stdout] 372 + for (i, ) in productions.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:392:25 [INFO] [stdout] | [INFO] [stdout] 392 | index = index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:397:13 [INFO] [stdout] | [INFO] [stdout] 397 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:366:25 [INFO] [stdout] | [INFO] [stdout] 366 | index = index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:403:17 [INFO] [stdout] | [INFO] [stdout] 403 | tokens: &Vec<&str>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 403 - tokens: &Vec<&str>, [INFO] [stdout] 403 + tokens: &[&str], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `productions` [INFO] [stdout] --> src/parser.rs:372:30 [INFO] [stdout] | [INFO] [stdout] 372 | for i in 0..productions.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] = note: `#[warn(clippy::needless_range_loop)]` on by default [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 372 - for i in 0..productions.len() { [INFO] [stdout] 372 + for (i, ) in productions.iter().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:404:22 [INFO] [stdout] | [INFO] [stdout] 404 | scanner_str: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 404 - scanner_str: &Vec, [INFO] [stdout] 404 + scanner_str: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:405:22 [INFO] [stdout] | [INFO] [stdout] 405 | productions: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 405 - productions: &Vec, [INFO] [stdout] 405 + productions: &[Production], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:392:25 [INFO] [stdout] | [INFO] [stdout] 392 | index = index + 1; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ help: replace it with: `index += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:397:13 [INFO] [stdout] | [INFO] [stdout] 397 | i = i + 1; [INFO] [stdout] | ^^^^^^^^^ help: replace it with: `i += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:403:17 [INFO] [stdout] | [INFO] [stdout] 403 | tokens: &Vec<&str>, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] = note: `#[warn(clippy::ptr_arg)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 403 - tokens: &Vec<&str>, [INFO] [stdout] 403 + tokens: &[&str], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:404:22 [INFO] [stdout] | [INFO] [stdout] 404 | scanner_str: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 404 - scanner_str: &Vec, [INFO] [stdout] 404 + scanner_str: &[String], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:405:22 [INFO] [stdout] | [INFO] [stdout] 405 | productions: &Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 405 - productions: &Vec, [INFO] [stdout] 405 + productions: &[Production], [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/parser.rs:427:17 [INFO] [stdout] | [INFO] [stdout] 427 | / if action.is_none() { [INFO] [stdout] 428 | | return Option::None; [INFO] [stdout] 429 | | } [INFO] [stdout] | |_________________^ help: replace it with: `action?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:430:17 [INFO] [stdout] | [INFO] [stdout] 430 | ptr = ptr - 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `ptr -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:463:17 [INFO] [stdout] | [INFO] [stdout] 463 | ptr = ptr + 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `ptr += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/parser.rs:427:17 [INFO] [stdout] | [INFO] [stdout] 427 | / if action.is_none() { [INFO] [stdout] 428 | | return Option::None; [INFO] [stdout] 429 | | } [INFO] [stdout] | |_________________^ help: replace it with: `action?;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] = note: `#[warn(clippy::question_mark)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:472:21 [INFO] [stdout] | [INFO] [stdout] 472 | len = len - 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `len -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:430:17 [INFO] [stdout] | [INFO] [stdout] 430 | ptr = ptr - 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `ptr -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:593:18 [INFO] [stdout] | [INFO] [stdout] 593 | _ => return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: replace `return` with a unit value [INFO] [stdout] | [INFO] [stdout] 593 - _ => return, [INFO] [stdout] 593 + _ => (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:463:17 [INFO] [stdout] | [INFO] [stdout] 463 | ptr = ptr + 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `ptr += 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of an assign operation [INFO] [stdout] --> src/parser.rs:472:21 [INFO] [stdout] | [INFO] [stdout] 472 | len = len - 1; [INFO] [stdout] | ^^^^^^^^^^^^^ help: replace it with: `len -= 1` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#assign_op_pattern [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/parser.rs:593:18 [INFO] [stdout] | [INFO] [stdout] 593 | _ => return, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: replace `return` with a unit value [INFO] [stdout] | [INFO] [stdout] 593 - _ => return, [INFO] [stdout] 593 + _ => (), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:678:69 [INFO] [stdout] | [INFO] [stdout] 678 | fn handle(&mut self, line: usize, lhs_pos: &mut Token, rhs_pos: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 678 - fn handle(&mut self, line: usize, lhs_pos: &mut Token, rhs_pos: &mut Vec) { [INFO] [stdout] 678 + fn handle(&mut self, line: usize, lhs_pos: &mut Token, rhs_pos: &mut [Token]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/parser.rs:750:9 [INFO] [stdout] | [INFO] [stdout] 750 | / for i in 0..self.token_table.len() { [INFO] [stdout] 751 | | if self.token_table[i].id == *id { [INFO] [stdout] 752 | | return Some(i); [INFO] [stdout] ... | [INFO] [stdout] 755 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `(0..self.token_table.len()).find(|&i| self.token_table[i].id == *id)` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `TEMPER_REGISTER_CHECK` [INFO] [stdout] --> src/parser.rs:760:22 [INFO] [stdout] | [INFO] [stdout] 760 | for i in 0..TEMPER_REGISTER_CHECK.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 760 - for i in 0..TEMPER_REGISTER_CHECK.len() { [INFO] [stdout] 760 + for (i, ) in TEMPER_REGISTER_CHECK.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: writing `&mut Vec` instead of `&mut [_]` involves a new object where a slice will do [INFO] [stdout] --> src/parser.rs:678:69 [INFO] [stdout] | [INFO] [stdout] 678 | fn handle(&mut self, line: usize, lhs_pos: &mut Token, rhs_pos: &mut Vec) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 678 - fn handle(&mut self, line: usize, lhs_pos: &mut Token, rhs_pos: &mut Vec) { [INFO] [stdout] 678 + fn handle(&mut self, line: usize, lhs_pos: &mut Token, rhs_pos: &mut [Token]) { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `index` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:783:39 [INFO] [stdout] | [INFO] [stdout] 778 | if index.is_none() { [INFO] [stdout] | ------------------ help: try: `if let Some() = index` [INFO] [stdout] ... [INFO] [stdout] 783 | -4 * self.token_table[index.unwrap()].mem_addr [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:817:12 [INFO] [stdout] | [INFO] [stdout] 817 | if !index.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:830:12 [INFO] [stdout] | [INFO] [stdout] 830 | if !index.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | if !id_index.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `id_index.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `else_label` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:1214:37 [INFO] [stdout] | [INFO] [stdout] 1211 | if else_label.is_none() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = else_label` [INFO] [stdout] ... [INFO] [stdout] 1214 | println!("{}:", else_label.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: manual implementation of `Iterator::find` [INFO] [stdout] --> src/parser.rs:750:9 [INFO] [stdout] | [INFO] [stdout] 750 | / for i in 0..self.token_table.len() { [INFO] [stdout] 751 | | if self.token_table[i].id == *id { [INFO] [stdout] 752 | | return Some(i); [INFO] [stdout] ... | [INFO] [stdout] 755 | | None [INFO] [stdout] | |____________^ help: replace with an iterator: `(0..self.token_table.len()).find(|&i| self.token_table[i].id == *id)` [INFO] [stdout] | [INFO] [stdout] = note: you may need to dereference some variables [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_find [INFO] [stdout] = note: `#[warn(clippy::manual_find)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the loop variable `i` is used to index `TEMPER_REGISTER_CHECK` [INFO] [stdout] --> src/parser.rs:760:22 [INFO] [stdout] | [INFO] [stdout] 760 | for i in 0..TEMPER_REGISTER_CHECK.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_range_loop [INFO] [stdout] help: consider using an iterator and enumerate() [INFO] [stdout] | [INFO] [stdout] 760 - for i in 0..TEMPER_REGISTER_CHECK.len() { [INFO] [stdout] 760 + for (i, ) in TEMPER_REGISTER_CHECK.iter_mut().enumerate() { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:1305:16 [INFO] [stdout] | [INFO] [stdout] 1305 | if !do_item.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `do_item.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `index` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:783:39 [INFO] [stdout] | [INFO] [stdout] 778 | if index.is_none() { [INFO] [stdout] | ------------------ help: try: `if let Some() = index` [INFO] [stdout] ... [INFO] [stdout] 783 | -4 * self.token_table[index.unwrap()].mem_addr [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] = note: `#[warn(clippy::unnecessary_unwrap)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:817:12 [INFO] [stdout] | [INFO] [stdout] 817 | if !index.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:830:12 [INFO] [stdout] | [INFO] [stdout] 830 | if !index.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: try: `index.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:893:12 [INFO] [stdout] | [INFO] [stdout] 893 | if !id_index.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ help: try: `id_index.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: called `unwrap` on `else_label` after checking its variant with `is_none` [INFO] [stdout] --> src/parser.rs:1214:37 [INFO] [stdout] | [INFO] [stdout] 1211 | if else_label.is_none() { [INFO] [stdout] | ----------------------- help: try: `if let Some() = else_label` [INFO] [stdout] ... [INFO] [stdout] 1214 | println!("{}:", else_label.unwrap()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_unwrap [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/parser.rs:1305:16 [INFO] [stdout] | [INFO] [stdout] 1305 | if !do_item.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: try: `do_item.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/symbol.rs:98:1 [INFO] [stdout] | [INFO] [stdout] 98 | / impl ToString for Symbol { [INFO] [stdout] 99 | | fn to_string(&self) -> String { [INFO] [stdout] 100 | | match self { [INFO] [stdout] 101 | | Symbol::NonTerminal(index) => format!("{}", NONTERMINAL_TABLE[*index as usize]), [INFO] [stdout] ... | [INFO] [stdout] 106 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/symbol.rs:101:43 [INFO] [stdout] | [INFO] [stdout] 101 | Symbol::NonTerminal(index) => format!("{}", NONTERMINAL_TABLE[*index as usize]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `NONTERMINAL_TABLE[*index as usize].to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/symbol.rs:102:40 [INFO] [stdout] | [INFO] [stdout] 102 | Symbol::Terminal(index) => format!("{}", TERMINAL_TABLE[*index as usize]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `TERMINAL_TABLE[*index as usize].to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/symbol.rs:103:29 [INFO] [stdout] | [INFO] [stdout] 103 | Symbol::None => format!(""), [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/main.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | if let Option::None = parser.parse(&program_tokens, &scanner_tokens, &grammar.grammar_rules) { [INFO] [stdout] | -------^^^^^^^^^^^^------------------------------------------------------------------------- help: try: `if parser.parse(&program_tokens, &scanner_tokens, &grammar.grammar_rules).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `I` should have a snake case name [INFO] [stdout] --> src/parser.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | I: &mut LR1State, [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/parser.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let B = if item.dot != item.production.rhs.len() { [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:492:38 [INFO] [stdout] | [INFO] [stdout] 492 | ... let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:498:38 [INFO] [stdout] | [INFO] [stdout] 498 | ... let n2 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:505:29 [INFO] [stdout] | [INFO] [stdout] 505 | ... FLAG_STACK.push(s2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:506:29 [INFO] [stdout] | [INFO] [stdout] 506 | ... FLAG_STACK.push("out".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:511:38 [INFO] [stdout] | [INFO] [stdout] 511 | ... let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:548:21 [INFO] [stdout] | [INFO] [stdout] 548 | if !DO_FLAG.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | INSIDE_DO_TEMP_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:563:21 [INFO] [stdout] | [INFO] [stdout] 563 | if !DO_FLAG.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:564:21 [INFO] [stdout] | [INFO] [stdout] 564 | INSIDE_DO_TEMP_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:568:26 [INFO] [stdout] | [INFO] [stdout] 568 | let n1 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: direct implementation of `ToString` [INFO] [stdout] --> src/symbol.rs:98:1 [INFO] [stdout] | [INFO] [stdout] 98 | / impl ToString for Symbol { [INFO] [stdout] 99 | | fn to_string(&self) -> String { [INFO] [stdout] 100 | | match self { [INFO] [stdout] 101 | | Symbol::NonTerminal(index) => format!("{}", NONTERMINAL_TABLE[*index as usize]), [INFO] [stdout] ... | [INFO] [stdout] 106 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: prefer implementing `Display` instead [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_trait_impl [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:573:26 [INFO] [stdout] | [INFO] [stdout] 573 | let n2 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:578:17 [INFO] [stdout] | [INFO] [stdout] 578 | FLAG_STACK.push(s2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:580:17 [INFO] [stdout] | [INFO] [stdout] 580 | FLAG_STACK.push(s2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:583:17 [INFO] [stdout] | [INFO] [stdout] 583 | DO_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:586:26 [INFO] [stdout] | [INFO] [stdout] 586 | let n1 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:591:17 [INFO] [stdout] | [INFO] [stdout] 591 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:603:26 [INFO] [stdout] | [INFO] [stdout] 603 | let n1 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:611:25 [INFO] [stdout] | [INFO] [stdout] 611 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/symbol.rs:101:43 [INFO] [stdout] | [INFO] [stdout] 101 | Symbol::NonTerminal(index) => format!("{}", NONTERMINAL_TABLE[*index as usize]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `NONTERMINAL_TABLE[*index as usize].to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:621:25 [INFO] [stdout] | [INFO] [stdout] 621 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:629:25 [INFO] [stdout] | [INFO] [stdout] 629 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:636:26 [INFO] [stdout] | [INFO] [stdout] 636 | let s2 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:760:25 [INFO] [stdout] | [INFO] [stdout] 760 | for i in 0..TEMPER_REGISTER_CHECK.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:1207:36 [INFO] [stdout] | [INFO] [stdout] 1207 | let peek = &FLAG_STACK[FLAG_STACK.len() - 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1209:17 [INFO] [stdout] | [INFO] [stdout] 1209 | FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1210:34 [INFO] [stdout] | [INFO] [stdout] 1210 | let else_label = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1237:22 [INFO] [stdout] | [INFO] [stdout] 1237 | let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1242:22 [INFO] [stdout] | [INFO] [stdout] 1242 | let s2 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/symbol.rs:102:40 [INFO] [stdout] | [INFO] [stdout] 102 | Symbol::Terminal(index) => format!("{}", TERMINAL_TABLE[*index as usize]), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `TERMINAL_TABLE[*index as usize].to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1265:22 [INFO] [stdout] | [INFO] [stdout] 1265 | let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1304:27 [INFO] [stdout] | [INFO] [stdout] 1304 | let do_item = DO_FLAG.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:1306:20 [INFO] [stdout] | [INFO] [stdout] 1306 | if INSIDE_DO_TEMP_FLAG.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1309:21 [INFO] [stdout] | [INFO] [stdout] 1309 | INSIDE_DO_TEMP_FLAG.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1310:21 [INFO] [stdout] | [INFO] [stdout] 1310 | DO_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2398:67 [INFO] [stdout] | [INFO] [stdout] 2398 | println!(" bne $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/symbol.rs:103:29 [INFO] [stdout] | [INFO] [stdout] 103 | Symbol::None => format!(""), [INFO] [stdout] | ^^^^^^^^^^^ help: consider using `String::new()`: `String::new()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2404:48 [INFO] [stdout] | [INFO] [stdout] 2404 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2415:67 [INFO] [stdout] | [INFO] [stdout] 2415 | println!(" beq $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2418:73 [INFO] [stdout] | [INFO] [stdout] 2418 | ... TEMPER_REGISTER_TABLE[rhs2.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2422:48 [INFO] [stdout] | [INFO] [stdout] 2422 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2577:73 [INFO] [stdout] | [INFO] [stdout] 2577 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2580:48 [INFO] [stdout] | [INFO] [stdout] 2580 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2593:73 [INFO] [stdout] | [INFO] [stdout] 2593 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2595:67 [INFO] [stdout] | [INFO] [stdout] 2595 | println!(" beq $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2598:48 [INFO] [stdout] | [INFO] [stdout] 2598 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2747:67 [INFO] [stdout] | [INFO] [stdout] 2747 | println!(" bne $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2749:48 [INFO] [stdout] | [INFO] [stdout] 2749 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2761:67 [INFO] [stdout] | [INFO] [stdout] 2761 | println!(" beq $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2762:67 [INFO] [stdout] | [INFO] [stdout] 2762 | println!(" beq $t9, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2765:48 [INFO] [stdout] | [INFO] [stdout] 2765 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2888:73 [INFO] [stdout] | [INFO] [stdout] 2888 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2895:48 [INFO] [stdout] | [INFO] [stdout] 2895 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2907:73 [INFO] [stdout] | [INFO] [stdout] 2907 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2911:73 [INFO] [stdout] | [INFO] [stdout] 2911 | ... TEMPER_REGISTER_TABLE[rhs2.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2915:48 [INFO] [stdout] | [INFO] [stdout] 2915 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `TerminalSymbolTable` should have an upper case name [INFO] [stdout] --> src/symbol.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub static TerminalSymbolTable: [TerminalSymbol; 41] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 4 - pub static TerminalSymbolTable: [TerminalSymbol; 41] = [ [INFO] [stdout] 4 + pub static TERMINAL_SYMBOL_TABLE: [TerminalSymbol; 41] = [ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `NonTerminalSymbolTable` should have an upper case name [INFO] [stdout] --> src/symbol.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | pub static NonTerminalSymbolTable: [NonTerminalSymbol; 40] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 48 - pub static NonTerminalSymbolTable: [NonTerminalSymbol; 40] = [ [INFO] [stdout] 48 + pub static NON_TERMINAL_SYMBOL_TABLE: [NonTerminalSymbol; 40] = [ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_none()` [INFO] [stdout] --> src/main.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 83 | if let Option::None = parser.parse(&program_tokens, &scanner_tokens, &grammar.grammar_rules) { [INFO] [stdout] | -------^^^^^^^^^^^^------------------------------------------------------------------------- help: try: `if parser.parse(&program_tokens, &scanner_tokens, &grammar.grammar_rules).is_none()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `I` should have a snake case name [INFO] [stdout] --> src/parser.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | I: &mut LR1State, [INFO] [stdout] | ^ help: convert the identifier to snake case (notice the capitalization): `i` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `B` should have a snake case name [INFO] [stdout] --> src/parser.rs:202:17 [INFO] [stdout] | [INFO] [stdout] 202 | let B = if item.dot != item.production.rhs.len() { [INFO] [stdout] | ^ help: convert the identifier to snake case: `b` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:492:38 [INFO] [stdout] | [INFO] [stdout] 492 | ... let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:498:38 [INFO] [stdout] | [INFO] [stdout] 498 | ... let n2 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:505:29 [INFO] [stdout] | [INFO] [stdout] 505 | ... FLAG_STACK.push(s2); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:506:29 [INFO] [stdout] | [INFO] [stdout] 506 | ... FLAG_STACK.push("out".to_string()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:511:38 [INFO] [stdout] | [INFO] [stdout] 511 | ... let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:548:21 [INFO] [stdout] | [INFO] [stdout] 548 | if !DO_FLAG.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:549:21 [INFO] [stdout] | [INFO] [stdout] 549 | INSIDE_DO_TEMP_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:563:21 [INFO] [stdout] | [INFO] [stdout] 563 | if !DO_FLAG.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:564:21 [INFO] [stdout] | [INFO] [stdout] 564 | INSIDE_DO_TEMP_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:568:26 [INFO] [stdout] | [INFO] [stdout] 568 | let n1 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:573:26 [INFO] [stdout] | [INFO] [stdout] 573 | let n2 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:578:17 [INFO] [stdout] | [INFO] [stdout] 578 | FLAG_STACK.push(s2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:579:17 [INFO] [stdout] | [INFO] [stdout] 579 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:580:17 [INFO] [stdout] | [INFO] [stdout] 580 | FLAG_STACK.push(s2.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:583:17 [INFO] [stdout] | [INFO] [stdout] 583 | DO_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:586:26 [INFO] [stdout] | [INFO] [stdout] 586 | let n1 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:591:17 [INFO] [stdout] | [INFO] [stdout] 591 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:603:26 [INFO] [stdout] | [INFO] [stdout] 603 | let n1 = FLAG_PTR.to_string(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:611:25 [INFO] [stdout] | [INFO] [stdout] 611 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:621:25 [INFO] [stdout] | [INFO] [stdout] 621 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:629:25 [INFO] [stdout] | [INFO] [stdout] 629 | FLAG_STACK.push(s1.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:636:26 [INFO] [stdout] | [INFO] [stdout] 636 | let s2 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:760:25 [INFO] [stdout] | [INFO] [stdout] 760 | for i in 0..TEMPER_REGISTER_CHECK.len() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:1207:36 [INFO] [stdout] | [INFO] [stdout] 1207 | let peek = &FLAG_STACK[FLAG_STACK.len() - 1]; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1209:17 [INFO] [stdout] | [INFO] [stdout] 1209 | FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1210:34 [INFO] [stdout] | [INFO] [stdout] 1210 | let else_label = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1237:22 [INFO] [stdout] | [INFO] [stdout] 1237 | let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1242:22 [INFO] [stdout] | [INFO] [stdout] 1242 | let s2 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1265:22 [INFO] [stdout] | [INFO] [stdout] 1265 | let s1 = FLAG_STACK.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1304:27 [INFO] [stdout] | [INFO] [stdout] 1304 | let do_item = DO_FLAG.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:1306:20 [INFO] [stdout] | [INFO] [stdout] 1306 | if INSIDE_DO_TEMP_FLAG.is_empty() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1309:21 [INFO] [stdout] | [INFO] [stdout] 1309 | INSIDE_DO_TEMP_FLAG.pop(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a mutable reference to mutable static [INFO] [stdout] --> src/parser.rs:1310:21 [INFO] [stdout] | [INFO] [stdout] 1310 | DO_FLAG.push(1); [INFO] [stdout] | ^^^^^^^^^^^^^^^ mutable reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2398:67 [INFO] [stdout] | [INFO] [stdout] 2398 | println!(" bne $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2404:48 [INFO] [stdout] | [INFO] [stdout] 2404 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2415:67 [INFO] [stdout] | [INFO] [stdout] 2415 | println!(" beq $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2418:73 [INFO] [stdout] | [INFO] [stdout] 2418 | ... TEMPER_REGISTER_TABLE[rhs2.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2422:48 [INFO] [stdout] | [INFO] [stdout] 2422 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2577:73 [INFO] [stdout] | [INFO] [stdout] 2577 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2580:48 [INFO] [stdout] | [INFO] [stdout] 2580 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2593:73 [INFO] [stdout] | [INFO] [stdout] 2593 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2595:67 [INFO] [stdout] | [INFO] [stdout] 2595 | println!(" beq $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2598:48 [INFO] [stdout] | [INFO] [stdout] 2598 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2747:67 [INFO] [stdout] | [INFO] [stdout] 2747 | println!(" bne $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2749:48 [INFO] [stdout] | [INFO] [stdout] 2749 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2761:67 [INFO] [stdout] | [INFO] [stdout] 2761 | println!(" beq $t8, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2762:67 [INFO] [stdout] | [INFO] [stdout] 2762 | println!(" beq $t9, $zero, LABELOP{}", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2765:48 [INFO] [stdout] | [INFO] [stdout] 2765 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2888:73 [INFO] [stdout] | [INFO] [stdout] 2888 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2895:48 [INFO] [stdout] | [INFO] [stdout] 2895 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2907:73 [INFO] [stdout] | [INFO] [stdout] 2907 | ... TEMPER_REGISTER_TABLE[rhs1.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2911:73 [INFO] [stdout] | [INFO] [stdout] 2911 | ... TEMPER_REGISTER_TABLE[rhs2.temp_reg_index], LABEL_OF_OP [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: creating a shared reference to mutable static [INFO] [stdout] --> src/parser.rs:2915:48 [INFO] [stdout] | [INFO] [stdout] 2915 | println!("LABELOP{}:", LABEL_OF_OP); [INFO] [stdout] | ^^^^^^^^^^^ shared reference to mutable static [INFO] [stdout] | [INFO] [stdout] = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `TerminalSymbolTable` should have an upper case name [INFO] [stdout] --> src/symbol.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | pub static TerminalSymbolTable: [TerminalSymbol; 41] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 4 - pub static TerminalSymbolTable: [TerminalSymbol; 41] = [ [INFO] [stdout] 4 + pub static TERMINAL_SYMBOL_TABLE: [TerminalSymbol; 41] = [ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static variable `NonTerminalSymbolTable` should have an upper case name [INFO] [stdout] --> src/symbol.rs:48:12 [INFO] [stdout] | [INFO] [stdout] 48 | pub static NonTerminalSymbolTable: [NonTerminalSymbol; 40] = [ [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] help: convert the identifier to upper case [INFO] [stdout] | [INFO] [stdout] 48 - pub static NonTerminalSymbolTable: [NonTerminalSymbol; 40] = [ [INFO] [stdout] 48 + pub static NON_TERMINAL_SYMBOL_TABLE: [NonTerminalSymbol; 40] = [ [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.03s [INFO] running `Command { std: "docker" "inspect" "dcd177429c2b4894f39b4382610e8d26a9641d14e14d7a1b59c9a4951dfd55e4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dcd177429c2b4894f39b4382610e8d26a9641d14e14d7a1b59c9a4951dfd55e4", kill_on_drop: false }` [INFO] [stdout] dcd177429c2b4894f39b4382610e8d26a9641d14e14d7a1b59c9a4951dfd55e4