[INFO] cloning repository https://github.com/felicityin/mit-6035-compiler-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/felicityin/mit-6035-compiler-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffelicityin%2Fmit-6035-compiler-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffelicityin%2Fmit-6035-compiler-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 716375c9c4eabcede408e79d52352a7cbd24c00b [INFO] linting felicityin/mit-6035-compiler-rs against nightly for clippy-nonminimal_bool-denied [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffelicityin%2Fmit-6035-compiler-rs" "/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/felicityin/mit-6035-compiler-rs [INFO] finished tweaking git repo https://github.com/felicityin/mit-6035-compiler-rs [INFO] tweaked toml for git repo https://github.com/felicityin/mit-6035-compiler-rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/felicityin/mit-6035-compiler-rs on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/felicityin/mit-6035-compiler-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded pico-args v0.4.2 [INFO] [stderr] Downloaded string_cache v0.8.4 [INFO] [stderr] Downloaded lalrpop-util v0.19.8 [INFO] [stderr] Downloaded ena v0.14.0 [INFO] [stderr] Downloaded lalrpop v0.19.8 [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] 3765188cc9a8de34caa5976f6dc74005bbf1d1c0678fce58231ffe900c054f8c [INFO] running `Command { std: "docker" "start" "-a" "3765188cc9a8de34caa5976f6dc74005bbf1d1c0678fce58231ffe900c054f8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "3765188cc9a8de34caa5976f6dc74005bbf1d1c0678fce58231ffe900c054f8c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3765188cc9a8de34caa5976f6dc74005bbf1d1c0678fce58231ffe900c054f8c", kill_on_drop: false }` [INFO] [stdout] 3765188cc9a8de34caa5976f6dc74005bbf1d1c0678fce58231ffe900c054f8c [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] e04dc3b9e51bedf84dc2d789f6c6ef6561225096be39c45b966a915b9111a8c9 [INFO] running `Command { std: "docker" "start" "-a" "e04dc3b9e51bedf84dc2d789f6c6ef6561225096be39c45b966a915b9111a8c9", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.135 [INFO] [stderr] Compiling parking_lot_core v0.9.4 [INFO] [stderr] Compiling smallvec v1.10.0 [INFO] [stderr] Compiling scopeguard v1.1.0 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling siphasher v0.3.10 [INFO] [stderr] Compiling regex-syntax v0.6.27 [INFO] [stderr] Compiling either v1.8.0 [INFO] [stderr] Compiling fixedbitset v0.4.2 [INFO] [stderr] Compiling indexmap v1.9.1 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling log v0.4.17 [INFO] [stderr] Compiling new_debug_unreachable v1.0.4 [INFO] [stderr] Compiling once_cell v1.15.0 [INFO] [stderr] Compiling lock_api v0.4.9 [INFO] [stderr] Compiling aho-corasick v0.7.19 [INFO] [stderr] Compiling bit-vec v0.6.3 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling pico-args v0.4.2 [INFO] [stderr] Compiling ena v0.14.0 [INFO] [stderr] Compiling itertools v0.10.5 [INFO] [stderr] Compiling unicode-xid v0.2.4 [INFO] [stderr] Compiling bit-set v0.5.3 [INFO] [stderr] Compiling phf_shared v0.10.0 [INFO] [stderr] Compiling petgraph v0.6.2 [INFO] [stderr] Compiling dirs-sys-next v0.1.2 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling parking_lot v0.12.1 [INFO] [stderr] Compiling dirs-next v2.0.0 [INFO] [stderr] Compiling term v0.7.0 [INFO] [stderr] Compiling ascii-canvas v3.0.0 [INFO] [stderr] Compiling string_cache v0.8.4 [INFO] [stderr] Compiling regex v1.6.0 [INFO] [stderr] Compiling lalrpop-util v0.19.8 [INFO] [stderr] Compiling lalrpop v0.19.8 [INFO] [stderr] Compiling decafc v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `root` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct IRRoot { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 7 | pub root: ProgramDecl, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRRoot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `import_decls`, `field_decls`, and `method_decls` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct ProgramDecl { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 12 | pub import_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | pub field_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 14 | pub method_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgramDecl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct MethodDecl0 { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | pub block: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodDecl0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_decls` and `statements` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 76 | pub struct Block { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 77 | pub field_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 78 | pub statements: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | Assign(Assign), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 85 - Assign(Assign), [INFO] [stdout] 85 + Assign(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:86:16 [INFO] [stdout] | [INFO] [stdout] 86 | MethodCall(MethodCall), [INFO] [stdout] | ---------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 86 - MethodCall(MethodCall), [INFO] [stdout] 86 + MethodCall(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | IfElse(IfElse), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 87 - IfElse(IfElse), [INFO] [stdout] 87 + IfElse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | For(For), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 88 - For(For), [INFO] [stdout] 88 + For(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:89:11 [INFO] [stdout] | [INFO] [stdout] 89 | While(While), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 89 - While(While), [INFO] [stdout] 89 + While(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | Return(Return), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 90 - Return(Return), [INFO] [stdout] 90 + Return(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:91:11 [INFO] [stdout] | [INFO] [stdout] 91 | Break(Break), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 91 - Break(Break), [INFO] [stdout] 91 + Break(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | Continue(Continue), [INFO] [stdout] | -------- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 92 - Continue(Continue), [INFO] [stdout] 92 + Continue(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `dst` and `assign_expr` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct Assign { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 97 | pub dst: Location, [INFO] [stdout] | ^^^ [INFO] [stdout] 98 | pub assign_expr: AssignExpr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Assign` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `array_len` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct Location { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 103 | pub id: VarDecl, [INFO] [stdout] 104 | pub array_len: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Location` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:110:15 [INFO] [stdout] | [INFO] [stdout] 110 | Increment(Increment), [INFO] [stdout] | --------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `AssignExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 110 - Increment(Increment), [INFO] [stdout] 110 + Increment(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:122:22 [INFO] [stdout] | [INFO] [stdout] 122 | CompoundAssignOp(CompoundAssignOp), [INFO] [stdout] | ---------------- ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `AssignOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 122 - CompoundAssignOp(CompoundAssignOp), [INFO] [stdout] 122 + CompoundAssignOp(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:167:13 [INFO] [stdout] | [INFO] [stdout] 167 | Callout(MethodCall1), [INFO] [stdout] | ------- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MethodCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 167 - Callout(MethodCall1), [INFO] [stdout] 167 + Callout(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `args` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 171 | pub struct MethodCall0 { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 172 | pub decl: MethodDecl, [INFO] [stdout] 173 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodCall0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `args` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct MethodCall1 { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 178 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 179 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodCall1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:184:10 [INFO] [stdout] | [INFO] [stdout] 184 | Expr(Expr), [INFO] [stdout] | ---- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ImportArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 184 - Expr(Expr), [INFO] [stdout] 184 + Expr(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:185:19 [INFO] [stdout] | [INFO] [stdout] 185 | StringLiteral(String), [INFO] [stdout] | ------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ImportArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 185 - StringLiteral(String), [INFO] [stdout] 185 + StringLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cond`, `if_block`, and `else_block` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 191 | pub struct IfElse0 { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 192 | pub cond: Expr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 193 | pub if_block: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 194 | pub else_block: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IfElse0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `init_expr`, `incre_expr`, `update`, and `block` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 200 | pub struct For0 { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 201 | pub id: VarDecl, [INFO] [stdout] | ^^ [INFO] [stdout] 202 | pub init_expr: Expr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 203 | pub incre_expr: Expr, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 204 | pub update: ForUpdate, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 205 | pub block: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `For0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `update_expr` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 209 | pub struct ForUpdate { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 210 | pub id: Location, [INFO] [stdout] | ^^ [INFO] [stdout] 211 | pub update_expr: ForUpdateExpr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdate` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:216:16 [INFO] [stdout] | [INFO] [stdout] 216 | AssignExpr(ForUpdateAssignExpr), [INFO] [stdout] | ---------- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdateExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 216 - AssignExpr(ForUpdateAssignExpr), [INFO] [stdout] 216 + AssignExpr(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | Increment(Increment), [INFO] [stdout] | --------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdateExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 217 - Increment(Increment), [INFO] [stdout] 217 + Increment(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `compound_assign_op` and `expr` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct ForUpdateAssignExpr { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 222 | pub compound_assign_op: CompoundAssignOp, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 223 | pub expr: Expr, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdateAssignExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cond` and `block` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 229 | pub struct While0 { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 230 | pub cond: Expr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 231 | pub block: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `While0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func` and `val` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 235 | pub struct Return { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 236 | pub func: MethodDecl, [INFO] [stdout] | ^^^^ [INFO] [stdout] 237 | pub val: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Return` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | For(For), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Break` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 242 - For(For), [INFO] [stdout] 242 + For(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:243:11 [INFO] [stdout] | [INFO] [stdout] 243 | While(While), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Break` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 243 - While(While), [INFO] [stdout] 243 + While(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | For(For), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Continue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 248 - For(For), [INFO] [stdout] 248 + For(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:249:11 [INFO] [stdout] | [INFO] [stdout] 249 | While(While), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Continue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 249 - While(While), [INFO] [stdout] 249 + While(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expr` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct Expr0 { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 256 | pub type_: Type, [INFO] [stdout] 257 | pub expr: ExprType, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:265:11 [INFO] [stdout] | [INFO] [stdout] 265 | LenId(Id), [INFO] [stdout] | ----- ^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ExprType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 265 - LenId(Id), [INFO] [stdout] 265 + LenId(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `op` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 271 | pub struct Unary { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 272 | pub expr: Expr, [INFO] [stdout] 273 | pub op: UnaryOp, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Unary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lhs` and `rhs` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 283 | pub struct Binary { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 284 | pub lhs: Expr, [INFO] [stdout] | ^^^ [INFO] [stdout] 285 | pub rhs: Expr, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Binary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:358:16 [INFO] [stdout] | [INFO] [stdout] 358 | IntLiteral(i32), [INFO] [stdout] | ---------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 358 - IntLiteral(i32), [INFO] [stdout] 358 + IntLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:359:17 [INFO] [stdout] | [INFO] [stdout] 359 | CharLiteral(char), [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 359 - CharLiteral(char), [INFO] [stdout] 359 + CharLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:360:17 [INFO] [stdout] | [INFO] [stdout] 360 | BoolLiteral(bool), [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 360 - BoolLiteral(bool), [INFO] [stdout] 360 + BoolLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/env.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | If(IfElse), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `EnvType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 22 - If(IfElse), [INFO] [stdout] 22 + If(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/env.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | Else(IfElse), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `EnvType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 23 - Else(IfElse), [INFO] [stdout] 23 + Else(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | DuplicatedVar(VarDecl), // rule 1.1 [INFO] [stdout] | ------------- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 5 - DuplicatedVar(VarDecl), // rule 1.1 [INFO] [stdout] 5 + DuplicatedVar(()), // rule 1.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | DuplicatedMethod(MethodDecl), // rule 1.1 [INFO] [stdout] | ---------------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 6 - DuplicatedMethod(MethodDecl), // rule 1.1 [INFO] [stdout] 6 + DuplicatedMethod(()), // rule 1.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | UsedBeforeDeclared(String), // rule 2, 10, 11 [INFO] [stdout] | ------------------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 7 - UsedBeforeDeclared(String), // rule 2, 10, 11 [INFO] [stdout] 7 + UsedBeforeDeclared(()), // rule 2, 10, 11 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:11:28 [INFO] [stdout] | [INFO] [stdout] 11 | ArrayLenShouldPositive(String), // rule 4, 13 [INFO] [stdout] | ---------------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - ArrayLenShouldPositive(String), // rule 4, 13 [INFO] [stdout] 11 + ArrayLenShouldPositive(()), // rule 4, 13 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | IdMustArray(String), // rule 12.1 [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - IdMustArray(String), // rule 12.1 [INFO] [stdout] 12 + IdMustArray(()), // rule 12.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | TypeOfExprMustInt(String), // rule 12.2 [INFO] [stdout] | ----------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - TypeOfExprMustInt(String), // rule 12.2 [INFO] [stdout] 13 + TypeOfExprMustInt(()), // rule 12.2 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Op` [INFO] [stdout] --> src/ast.rs:223:1 [INFO] [stdout] | [INFO] [stdout] 223 | / pub enum BinaryOp { [INFO] [stdout] 224 | | ArithOp(ArithOp), [INFO] [stdout] 225 | | RelOp(RelOp), [INFO] [stdout] 226 | | EqOp(EqOp), [INFO] [stdout] 227 | | CondOp(CondOp), [INFO] [stdout] 228 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Literal` [INFO] [stdout] --> src/ast.rs:260:1 [INFO] [stdout] | [INFO] [stdout] 260 | / pub enum Literal { [INFO] [stdout] 261 | | IntLiteral(IntLiteral), [INFO] [stdout] 262 | | CharLiteral(CharLiteral), [INFO] [stdout] 263 | | BoolLiteral(BoolLiteral), [INFO] [stdout] 264 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `root` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:7:9 [INFO] [stdout] | [INFO] [stdout] 6 | pub struct IRRoot { [INFO] [stdout] | ------ field in this struct [INFO] [stdout] 7 | pub root: ProgramDecl, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IRRoot` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `import_decls`, `field_decls`, and `method_decls` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:12:9 [INFO] [stdout] | [INFO] [stdout] 11 | pub struct ProgramDecl { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 12 | pub import_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 13 | pub field_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 14 | pub method_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ProgramDecl` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `block` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 29 | pub struct MethodDecl0 { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] ... [INFO] [stdout] 33 | pub block: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodDecl0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `field_decls` and `statements` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:77:9 [INFO] [stdout] | [INFO] [stdout] 76 | pub struct Block { [INFO] [stdout] | ----- fields in this struct [INFO] [stdout] 77 | pub field_decls: Vec, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 78 | pub statements: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Block` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 85 | Assign(Assign), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 85 - Assign(Assign), [INFO] [stdout] 85 + Assign(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:86:16 [INFO] [stdout] | [INFO] [stdout] 86 | MethodCall(MethodCall), [INFO] [stdout] | ---------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 86 - MethodCall(MethodCall), [INFO] [stdout] 86 + MethodCall(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:87:12 [INFO] [stdout] | [INFO] [stdout] 87 | IfElse(IfElse), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 87 - IfElse(IfElse), [INFO] [stdout] 87 + IfElse(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantic_analyzer/ir.rs:358:5 [INFO] [stdout] | [INFO] [stdout] 358 | IntLiteral(i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:88:9 [INFO] [stdout] | [INFO] [stdout] 88 | For(For), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 88 - For(For), [INFO] [stdout] 88 + For(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantic_analyzer/ir.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 359 | CharLiteral(char), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:89:11 [INFO] [stdout] | [INFO] [stdout] 89 | While(While), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 89 - While(While), [INFO] [stdout] 89 + While(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantic_analyzer/ir.rs:360:5 [INFO] [stdout] | [INFO] [stdout] 360 | BoolLiteral(bool), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Literal` [INFO] [stdout] --> src/semantic_analyzer/ir.rs:357:1 [INFO] [stdout] | [INFO] [stdout] 357 | / pub enum Literal { [INFO] [stdout] 358 | | IntLiteral(i32), [INFO] [stdout] 359 | | CharLiteral(char), [INFO] [stdout] 360 | | BoolLiteral(bool), [INFO] [stdout] 361 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:90:12 [INFO] [stdout] | [INFO] [stdout] 90 | Return(Return), [INFO] [stdout] | ------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 90 - Return(Return), [INFO] [stdout] 90 + Return(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:91:11 [INFO] [stdout] | [INFO] [stdout] 91 | Break(Break), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 91 - Break(Break), [INFO] [stdout] 91 + Break(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:92:14 [INFO] [stdout] | [INFO] [stdout] 92 | Continue(Continue), [INFO] [stdout] | -------- ^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Statement0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 92 - Continue(Continue), [INFO] [stdout] 92 + Continue(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `dst` and `assign_expr` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 96 | pub struct Assign { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 97 | pub dst: Location, [INFO] [stdout] | ^^^ [INFO] [stdout] 98 | pub assign_expr: AssignExpr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Assign` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `array_len` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:104:9 [INFO] [stdout] | [INFO] [stdout] 102 | pub struct Location { [INFO] [stdout] | -------- field in this struct [INFO] [stdout] 103 | pub id: VarDecl, [INFO] [stdout] 104 | pub array_len: Option, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Location` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:110:15 [INFO] [stdout] | [INFO] [stdout] 110 | Increment(Increment), [INFO] [stdout] | --------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `AssignExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 110 - Increment(Increment), [INFO] [stdout] 110 + Increment(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:122:22 [INFO] [stdout] | [INFO] [stdout] 122 | CompoundAssignOp(CompoundAssignOp), [INFO] [stdout] | ---------------- ^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `AssignOp` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 122 - CompoundAssignOp(CompoundAssignOp), [INFO] [stdout] 122 + CompoundAssignOp(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:167:13 [INFO] [stdout] | [INFO] [stdout] 167 | Callout(MethodCall1), [INFO] [stdout] | ------- ^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MethodCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 167 - Callout(MethodCall1), [INFO] [stdout] 167 + Callout(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `args` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:173:9 [INFO] [stdout] | [INFO] [stdout] 171 | pub struct MethodCall0 { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 172 | pub decl: MethodDecl, [INFO] [stdout] 173 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodCall0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `name` and `args` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:178:9 [INFO] [stdout] | [INFO] [stdout] 177 | pub struct MethodCall1 { [INFO] [stdout] | ----------- fields in this struct [INFO] [stdout] 178 | pub name: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] 179 | pub args: Vec, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `MethodCall1` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:184:10 [INFO] [stdout] | [INFO] [stdout] 184 | Expr(Expr), [INFO] [stdout] | ---- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ImportArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 184 - Expr(Expr), [INFO] [stdout] 184 + Expr(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:185:19 [INFO] [stdout] | [INFO] [stdout] 185 | StringLiteral(String), [INFO] [stdout] | ------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ImportArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 185 - StringLiteral(String), [INFO] [stdout] 185 + StringLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cond`, `if_block`, and `else_block` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:192:9 [INFO] [stdout] | [INFO] [stdout] 191 | pub struct IfElse0 { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 192 | pub cond: Expr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 193 | pub if_block: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 194 | pub else_block: Option, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `IfElse0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id`, `init_expr`, `incre_expr`, `update`, and `block` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:201:9 [INFO] [stdout] | [INFO] [stdout] 200 | pub struct For0 { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 201 | pub id: VarDecl, [INFO] [stdout] | ^^ [INFO] [stdout] 202 | pub init_expr: Expr, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 203 | pub incre_expr: Expr, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 204 | pub update: ForUpdate, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 205 | pub block: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `For0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `id` and `update_expr` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:210:9 [INFO] [stdout] | [INFO] [stdout] 209 | pub struct ForUpdate { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 210 | pub id: Location, [INFO] [stdout] | ^^ [INFO] [stdout] 211 | pub update_expr: ForUpdateExpr, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdate` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:216:16 [INFO] [stdout] | [INFO] [stdout] 216 | AssignExpr(ForUpdateAssignExpr), [INFO] [stdout] | ---------- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdateExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 216 - AssignExpr(ForUpdateAssignExpr), [INFO] [stdout] 216 + AssignExpr(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:217:15 [INFO] [stdout] | [INFO] [stdout] 217 | Increment(Increment), [INFO] [stdout] | --------- ^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdateExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 217 - Increment(Increment), [INFO] [stdout] 217 + Increment(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `compound_assign_op` and `expr` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:222:9 [INFO] [stdout] | [INFO] [stdout] 221 | pub struct ForUpdateAssignExpr { [INFO] [stdout] | ------------------- fields in this struct [INFO] [stdout] 222 | pub compound_assign_op: CompoundAssignOp, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 223 | pub expr: Expr, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ForUpdateAssignExpr` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `cond` and `block` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:230:9 [INFO] [stdout] | [INFO] [stdout] 229 | pub struct While0 { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 230 | pub cond: Expr, [INFO] [stdout] | ^^^^ [INFO] [stdout] 231 | pub block: Option, [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `While0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func` and `val` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:236:9 [INFO] [stdout] | [INFO] [stdout] 235 | pub struct Return { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 236 | pub func: MethodDecl, [INFO] [stdout] | ^^^^ [INFO] [stdout] 237 | pub val: Option, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Return` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:242:9 [INFO] [stdout] | [INFO] [stdout] 242 | For(For), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Break` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 242 - For(For), [INFO] [stdout] 242 + For(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:243:11 [INFO] [stdout] | [INFO] [stdout] 243 | While(While), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Break` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 243 - While(While), [INFO] [stdout] 243 + While(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:248:9 [INFO] [stdout] | [INFO] [stdout] 248 | For(For), [INFO] [stdout] | --- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Continue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 248 - For(For), [INFO] [stdout] 248 + For(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:249:11 [INFO] [stdout] | [INFO] [stdout] 249 | While(While), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Continue` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 249 - While(While), [INFO] [stdout] 249 + While(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `expr` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:257:9 [INFO] [stdout] | [INFO] [stdout] 255 | pub struct Expr0 { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 256 | pub type_: Type, [INFO] [stdout] 257 | pub expr: ExprType, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Expr0` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:265:11 [INFO] [stdout] | [INFO] [stdout] 265 | LenId(Id), [INFO] [stdout] | ----- ^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `ExprType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 265 - LenId(Id), [INFO] [stdout] 265 + LenId(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `op` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:273:9 [INFO] [stdout] | [INFO] [stdout] 271 | pub struct Unary { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 272 | pub expr: Expr, [INFO] [stdout] 273 | pub op: UnaryOp, [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = note: `Unary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `lhs` and `rhs` are never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 283 | pub struct Binary { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] 284 | pub lhs: Expr, [INFO] [stdout] | ^^^ [INFO] [stdout] 285 | pub rhs: Expr, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Binary` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:358:16 [INFO] [stdout] | [INFO] [stdout] 358 | IntLiteral(i32), [INFO] [stdout] | ---------- ^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 358 - IntLiteral(i32), [INFO] [stdout] 358 + IntLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:359:17 [INFO] [stdout] | [INFO] [stdout] 359 | CharLiteral(char), [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 359 - CharLiteral(char), [INFO] [stdout] 359 + CharLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/ir.rs:360:17 [INFO] [stdout] | [INFO] [stdout] 360 | BoolLiteral(bool), [INFO] [stdout] | ----------- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `Literal` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 360 - BoolLiteral(bool), [INFO] [stdout] 360 + BoolLiteral(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/env.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 22 | If(IfElse), [INFO] [stdout] | -- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `EnvType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 22 - If(IfElse), [INFO] [stdout] 22 + If(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/env.rs:23:10 [INFO] [stdout] | [INFO] [stdout] 23 | Else(IfElse), [INFO] [stdout] | ---- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `EnvType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 23 - Else(IfElse), [INFO] [stdout] 23 + Else(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | DuplicatedVar(VarDecl), // rule 1.1 [INFO] [stdout] | ------------- ^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 5 - DuplicatedVar(VarDecl), // rule 1.1 [INFO] [stdout] 5 + DuplicatedVar(()), // rule 1.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:6:22 [INFO] [stdout] | [INFO] [stdout] 6 | DuplicatedMethod(MethodDecl), // rule 1.1 [INFO] [stdout] | ---------------- ^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 6 - DuplicatedMethod(MethodDecl), // rule 1.1 [INFO] [stdout] 6 + DuplicatedMethod(()), // rule 1.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/semantic_analyzer/env.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | / match env.table.get(name) { [INFO] [stdout] 67 | | Some(v) => return Some(v.clone()), [INFO] [stdout] 68 | | None => (), [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(v) = env.table.get(name) { return Some(v.clone()) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:7:24 [INFO] [stdout] | [INFO] [stdout] 7 | UsedBeforeDeclared(String), // rule 2, 10, 11 [INFO] [stdout] | ------------------ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 7 - UsedBeforeDeclared(String), // rule 2, 10, 11 [INFO] [stdout] 7 + UsedBeforeDeclared(()), // rule 2, 10, 11 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:11:28 [INFO] [stdout] | [INFO] [stdout] 11 | ArrayLenShouldPositive(String), // rule 4, 13 [INFO] [stdout] | ---------------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 11 - ArrayLenShouldPositive(String), // rule 4, 13 [INFO] [stdout] 11 + ArrayLenShouldPositive(()), // rule 4, 13 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:12:17 [INFO] [stdout] | [INFO] [stdout] 12 | IdMustArray(String), // rule 12.1 [INFO] [stdout] | ----------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 12 - IdMustArray(String), // rule 12.1 [INFO] [stdout] 12 + IdMustArray(()), // rule 12.1 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/semantic_analyzer/errors.rs:13:23 [INFO] [stdout] | [INFO] [stdout] 13 | TypeOfExprMustInt(String), // rule 12.2 [INFO] [stdout] | ----------------- ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `SemanticCheckError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 13 - TypeOfExprMustInt(String), // rule 12.2 [INFO] [stdout] 13 + TypeOfExprMustInt(()), // rule 12.2 [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return self.construct_ir(p); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return self.construct_ir(p); [INFO] [stdout] 26 + self.construct_ir(p) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / if let Err(errors) = self.pre_check(&p) { [INFO] [stdout] 24 | | return Err(errors); [INFO] [stdout] 25 | | } [INFO] [stdout] | |_________^ help: replace it with: `self.pre_check(&p)?;` [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: all variants have the same postfix: `Op` [INFO] [stdout] --> src/ast.rs:223:1 [INFO] [stdout] | [INFO] [stdout] 223 | / pub enum BinaryOp { [INFO] [stdout] 224 | | ArithOp(ArithOp), [INFO] [stdout] 225 | | RelOp(RelOp), [INFO] [stdout] 226 | | EqOp(EqOp), [INFO] [stdout] 227 | | CondOp(CondOp), [INFO] [stdout] 228 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Literal` [INFO] [stdout] --> src/ast.rs:260:1 [INFO] [stdout] | [INFO] [stdout] 260 | / pub enum Literal { [INFO] [stdout] 261 | | IntLiteral(IntLiteral), [INFO] [stdout] 262 | | CharLiteral(CharLiteral), [INFO] [stdout] 263 | | BoolLiteral(BoolLiteral), [INFO] [stdout] 264 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: local variable doesn't need to be boxed here [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:373:27 [INFO] [stdout] | [INFO] [stdout] 373 | fn get_ir_expr(&self, expr: ast::Expr) -> IRResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stdout] = note: `#[warn(clippy::boxed_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:499:20 [INFO] [stdout] | [INFO] [stdout] 499 | let expr = match self.get_ir_expr(unary.expr) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 500 | | Ok(u) => u, [INFO] [stdout] 501 | | Err(e) => return Err(e), [INFO] [stdout] 502 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(unary.expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:521:28 [INFO] [stdout] | [INFO] [stdout] 521 | let expr = match self.get_ir_expr(a.expr) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 522 | | Ok(expr) => expr, [INFO] [stdout] 523 | | Err(e) => return Err(e), [INFO] [stdout] 524 | | }; [INFO] [stdout] | |_________________^ help: try instead: `self.get_ir_expr(a.expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:540:19 [INFO] [stdout] | [INFO] [stdout] 540 | } else if !for_.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `for_.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: this boolean expression can be simplified [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:553:19 [INFO] [stdout] | [INFO] [stdout] 553 | } else if !for_.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `for_.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 `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:561:20 [INFO] [stdout] | [INFO] [stdout] 561 | let cond = match self.get_ir_expr(if_else.cond) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 562 | | Ok(c) => c, [INFO] [stdout] 563 | | Err(e) => return Err(e), [INFO] [stdout] 564 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(if_else.cond)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:578:24 [INFO] [stdout] | [INFO] [stdout] 578 | let if_block = match self.get_ir_block(if_else.if_block) { [INFO] [stdout] | ________________________^ [INFO] [stdout] 579 | | Ok(b) => b, [INFO] [stdout] 580 | | Err(e) => return Err(e), [INFO] [stdout] 581 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_block(if_else.if_block)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:611:25 [INFO] [stdout] | [INFO] [stdout] 611 | let init_expr = match self.get_ir_expr(lop.init_expr) { [INFO] [stdout] | _________________________^ [INFO] [stdout] 612 | | Ok(i) => i, [INFO] [stdout] 613 | | Err(e) => return Err(e), [INFO] [stdout] 614 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(lop.init_expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:619:26 [INFO] [stdout] | [INFO] [stdout] 619 | let incre_expr = match self.get_ir_expr(lop.incre_expr) { [INFO] [stdout] | __________________________^ [INFO] [stdout] 620 | | Ok(i) => i, [INFO] [stdout] 621 | | Err(e) => return Err(e), [INFO] [stdout] 622 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(lop.incre_expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:627:22 [INFO] [stdout] | [INFO] [stdout] 627 | let update = match self.get_ir_for_update(lop.update) { [INFO] [stdout] | ______________________^ [INFO] [stdout] 628 | | Ok(u) => u, [INFO] [stdout] 629 | | Err(e) => return Err(e), [INFO] [stdout] 630 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_for_update(lop.update)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:642:21 [INFO] [stdout] | [INFO] [stdout] 642 | let block = match self.get_ir_block(lop.block) { [INFO] [stdout] | _____________________^ [INFO] [stdout] 643 | | Ok(b) => b, [INFO] [stdout] 644 | | Err(e) => return Err(e), [INFO] [stdout] 645 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_block(lop.block)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:659:18 [INFO] [stdout] | [INFO] [stdout] 659 | let id = match self.get_ir_location(update.location) { [INFO] [stdout] | __________________^ [INFO] [stdout] 660 | | Ok(l) => l, [INFO] [stdout] 661 | | Err(e) => return Err(e), [INFO] [stdout] 662 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_location(update.location)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:780:20 [INFO] [stdout] | [INFO] [stdout] 780 | let cond = match self.get_ir_expr(whl.expr) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 781 | | Ok(expr) => expr, [INFO] [stdout] 782 | | Err(e) => return Err(e), [INFO] [stdout] 783 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(whl.expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:792:21 [INFO] [stdout] | [INFO] [stdout] 792 | let block = match self.get_ir_block(whl.block, ) { [INFO] [stdout] | _____________________^ [INFO] [stdout] 793 | | Ok(b) => b, [INFO] [stdout] 794 | | Err(e) => return Err(e), [INFO] [stdout] 795 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_block(whl.block, )?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantic_analyzer/ir.rs:358:5 [INFO] [stdout] | [INFO] [stdout] 358 | IntLiteral(i32), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantic_analyzer/ir.rs:359:5 [INFO] [stdout] | [INFO] [stdout] 359 | CharLiteral(char), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant name ends with the enum's name [INFO] [stdout] --> src/semantic_analyzer/ir.rs:360:5 [INFO] [stdout] | [INFO] [stdout] 360 | BoolLiteral(bool), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same postfix: `Literal` [INFO] [stdout] --> src/semantic_analyzer/ir.rs:357:1 [INFO] [stdout] | [INFO] [stdout] 357 | / pub enum Literal { [INFO] [stdout] 358 | | IntLiteral(i32), [INFO] [stdout] 359 | | CharLiteral(char), [INFO] [stdout] 360 | | BoolLiteral(bool), [INFO] [stdout] 361 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the postfixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let` [INFO] [stdout] --> src/semantic_analyzer/env.rs:66:13 [INFO] [stdout] | [INFO] [stdout] 66 | / match env.table.get(name) { [INFO] [stdout] 67 | | Some(v) => return Some(v.clone()), [INFO] [stdout] 68 | | None => (), [INFO] [stdout] 69 | | } [INFO] [stdout] | |_____________^ help: try: `if let Some(v) = env.table.get(name) { return Some(v.clone()) }` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stdout] = note: `#[warn(clippy::single_match)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:26:9 [INFO] [stdout] | [INFO] [stdout] 26 | return self.construct_ir(p); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 26 - return self.construct_ir(p); [INFO] [stdout] 26 + self.construct_ir(p) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this block may be rewritten with the `?` operator [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:23:9 [INFO] [stdout] | [INFO] [stdout] 23 | / if let Err(errors) = self.pre_check(&p) { [INFO] [stdout] 24 | | return Err(errors); [INFO] [stdout] 25 | | } [INFO] [stdout] | |_________^ help: replace it with: `self.pre_check(&p)?;` [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: local variable doesn't need to be boxed here [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:373:27 [INFO] [stdout] | [INFO] [stdout] 373 | fn get_ir_expr(&self, expr: ast::Expr) -> IRResult { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#boxed_local [INFO] [stdout] = note: `#[warn(clippy::boxed_local)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:499:20 [INFO] [stdout] | [INFO] [stdout] 499 | let expr = match self.get_ir_expr(unary.expr) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 500 | | Ok(u) => u, [INFO] [stdout] 501 | | Err(e) => return Err(e), [INFO] [stdout] 502 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(unary.expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:521:28 [INFO] [stdout] | [INFO] [stdout] 521 | let expr = match self.get_ir_expr(a.expr) { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 522 | | Ok(expr) => expr, [INFO] [stdout] 523 | | Err(e) => return Err(e), [INFO] [stdout] 524 | | }; [INFO] [stdout] | |_________________^ help: try instead: `self.get_ir_expr(a.expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:540:19 [INFO] [stdout] | [INFO] [stdout] 540 | } else if !for_.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `for_.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: this boolean expression can be simplified [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:553:19 [INFO] [stdout] | [INFO] [stdout] 553 | } else if !for_.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ help: try: `for_.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 `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:561:20 [INFO] [stdout] | [INFO] [stdout] 561 | let cond = match self.get_ir_expr(if_else.cond) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 562 | | Ok(c) => c, [INFO] [stdout] 563 | | Err(e) => return Err(e), [INFO] [stdout] 564 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(if_else.cond)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:578:24 [INFO] [stdout] | [INFO] [stdout] 578 | let if_block = match self.get_ir_block(if_else.if_block) { [INFO] [stdout] | ________________________^ [INFO] [stdout] 579 | | Ok(b) => b, [INFO] [stdout] 580 | | Err(e) => return Err(e), [INFO] [stdout] 581 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_block(if_else.if_block)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:611:25 [INFO] [stdout] | [INFO] [stdout] 611 | let init_expr = match self.get_ir_expr(lop.init_expr) { [INFO] [stdout] | _________________________^ [INFO] [stdout] 612 | | Ok(i) => i, [INFO] [stdout] 613 | | Err(e) => return Err(e), [INFO] [stdout] 614 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(lop.init_expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:619:26 [INFO] [stdout] | [INFO] [stdout] 619 | let incre_expr = match self.get_ir_expr(lop.incre_expr) { [INFO] [stdout] | __________________________^ [INFO] [stdout] 620 | | Ok(i) => i, [INFO] [stdout] 621 | | Err(e) => return Err(e), [INFO] [stdout] 622 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(lop.incre_expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:627:22 [INFO] [stdout] | [INFO] [stdout] 627 | let update = match self.get_ir_for_update(lop.update) { [INFO] [stdout] | ______________________^ [INFO] [stdout] 628 | | Ok(u) => u, [INFO] [stdout] 629 | | Err(e) => return Err(e), [INFO] [stdout] 630 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_for_update(lop.update)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:642:21 [INFO] [stdout] | [INFO] [stdout] 642 | let block = match self.get_ir_block(lop.block) { [INFO] [stdout] | _____________________^ [INFO] [stdout] 643 | | Ok(b) => b, [INFO] [stdout] 644 | | Err(e) => return Err(e), [INFO] [stdout] 645 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_block(lop.block)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:659:18 [INFO] [stdout] | [INFO] [stdout] 659 | let id = match self.get_ir_location(update.location) { [INFO] [stdout] | __________________^ [INFO] [stdout] 660 | | Ok(l) => l, [INFO] [stdout] 661 | | Err(e) => return Err(e), [INFO] [stdout] 662 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_location(update.location)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:780:20 [INFO] [stdout] | [INFO] [stdout] 780 | let cond = match self.get_ir_expr(whl.expr) { [INFO] [stdout] | ____________________^ [INFO] [stdout] 781 | | Ok(expr) => expr, [INFO] [stdout] 782 | | Err(e) => return Err(e), [INFO] [stdout] 783 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_expr(whl.expr)?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `match` expression can be replaced with `?` [INFO] [stdout] --> src/semantic_analyzer/analyzer.rs:792:21 [INFO] [stdout] | [INFO] [stdout] 792 | let block = match self.get_ir_block(whl.block, ) { [INFO] [stdout] | _____________________^ [INFO] [stdout] 793 | | Ok(b) => b, [INFO] [stdout] 794 | | Err(e) => return Err(e), [INFO] [stdout] 795 | | }; [INFO] [stdout] | |_________^ help: try instead: `self.get_ir_block(whl.block, )?` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#question_mark [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 17.66s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: lalrpop v0.19.8 [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "e04dc3b9e51bedf84dc2d789f6c6ef6561225096be39c45b966a915b9111a8c9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e04dc3b9e51bedf84dc2d789f6c6ef6561225096be39c45b966a915b9111a8c9", kill_on_drop: false }` [INFO] [stdout] e04dc3b9e51bedf84dc2d789f6c6ef6561225096be39c45b966a915b9111a8c9