[INFO] cloning repository https://github.com/swen128/compiler-book [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/swen128/compiler-book" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswen128%2Fcompiler-book", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswen128%2Fcompiler-book'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] bf1a832bbd495c07bc75edee722288ca59b23cb6 [INFO] checking swen128/compiler-book against master#af4a5a13a15fa0c60e06321077ef452f769b42fd for pr-122960-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fswen128%2Fcompiler-book" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/swen128/compiler-book on toolchain af4a5a13a15fa0c60e06321077ef452f769b42fd [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/swen128/compiler-book [INFO] finished tweaking git repo https://github.com/swen128/compiler-book [INFO] tweaked toml for git repo https://github.com/swen128/compiler-book written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/swen128/compiler-book 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" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded indoc v2.0.4 [INFO] [stderr] Downloaded logos v0.13.0 [INFO] [stderr] Downloaded logos-derive v0.13.0 [INFO] [stderr] Downloaded pretty_assertions v1.4.0 [INFO] [stderr] Downloaded stacker v0.1.15 [INFO] [stderr] Downloaded chumsky v0.9.3 [INFO] [stderr] Downloaded logos-codegen v0.13.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c38cd0dd4c67793d886cd596ab4503334486e490ef728ce326ad3c8b4a01229d [INFO] running `Command { std: "docker" "start" "-a" "c38cd0dd4c67793d886cd596ab4503334486e490ef728ce326ad3c8b4a01229d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c38cd0dd4c67793d886cd596ab4503334486e490ef728ce326ad3c8b4a01229d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c38cd0dd4c67793d886cd596ab4503334486e490ef728ce326ad3c8b4a01229d", kill_on_drop: false }` [INFO] [stdout] c38cd0dd4c67793d886cd596ab4503334486e490ef728ce326ad3c8b4a01229d [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+af4a5a13a15fa0c60e06321077ef452f769b42fd" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b3abd3280580cbb4862d156fd5e44145849f8ec5b6528f286a4b5dc63d4f9999 [INFO] running `Command { std: "docker" "start" "-a" "b3abd3280580cbb4862d156fd5e44145849f8ec5b6528f286a4b5dc63d4f9999", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.152 [INFO] [stderr] Compiling proc-macro2 v1.0.76 [INFO] [stderr] Compiling regex-syntax v0.6.29 [INFO] [stderr] Compiling ahash v0.8.7 [INFO] [stderr] Compiling beef v0.5.2 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking zerocopy v0.7.32 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Checking allocator-api2 v0.2.16 [INFO] [stderr] Checking yansi v0.5.1 [INFO] [stderr] Checking diff v0.1.13 [INFO] [stderr] Compiling indoc v2.0.4 [INFO] [stderr] Checking pretty_assertions v1.4.0 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Compiling psm v0.1.21 [INFO] [stderr] Compiling stacker v0.1.15 [INFO] [stderr] Checking chumsky v0.9.3 [INFO] [stderr] Compiling logos-codegen v0.13.0 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling logos-derive v0.13.0 [INFO] [stderr] Checking logos v0.13.0 [INFO] [stderr] Checking compiler-book v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `risc_v::RiscVFrame` [INFO] [stdout] --> src/frame.rs:3:9 [INFO] [stdout] | [INFO] [stdout] 3 | pub use risc_v::RiscVFrame; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `types` is imported redundantly [INFO] [stdout] --> src/checker.rs:921:64 [INFO] [stdout] | [INFO] [stdout] 920 | use super::*; [INFO] [stdout] | -------- the item `types` is already imported here [INFO] [stdout] 921 | use crate::{ast::Expr, ast::*, frame::RiscVFrame as Frame, types, Span, Spanned}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Span` is imported redundantly [INFO] [stdout] --> src/checker.rs:921:71 [INFO] [stdout] | [INFO] [stdout] 920 | use super::*; [INFO] [stdout] | -------- the item `Span` is already imported here [INFO] [stdout] 921 | use crate::{ast::Expr, ast::*, frame::RiscVFrame as Frame, types, Span, Spanned}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Spanned` is imported redundantly [INFO] [stdout] --> src/checker.rs:921:77 [INFO] [stdout] | [INFO] [stdout] 920 | use super::*; [INFO] [stdout] | -------- the item `Spanned` is already imported here [INFO] [stdout] 921 | use crate::{ast::Expr, ast::*, frame::RiscVFrame as Frame, types, Span, Spanned}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the item `Stream` is imported redundantly [INFO] [stdout] --> src/parser.rs:412:9 [INFO] [stdout] | [INFO] [stdout] 412 | use chumsky::Stream; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] 413 | [INFO] [stdout] 414 | use super::*; [INFO] [stdout] | -------- the item `Stream` is already imported here [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::symbol::symbol` [INFO] [stdout] --> src/types.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | use crate::symbol::symbol; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/temp.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn named(name: &str) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `level` [INFO] [stdout] --> src/translate/level.rs:71:46 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn formals(level: Level) -> Vec> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_level` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/frame/risc_v.rs:81:32 [INFO] [stdout] | [INFO] [stdout] 81 | fn proc_entry_exit1(&self, body: crate::ir::Statement) -> crate::ir::Statement { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/frame/risc_v.rs:85:22 [INFO] [stdout] | [INFO] [stdout] 85 | fn external_call(name: &str, args: Vec) -> crate::ir::Expr { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/frame/risc_v.rs:85:34 [INFO] [stdout] | [INFO] [stdout] 85 | fn external_call(name: &str, args: Vec) -> crate::ir::Expr { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame_pointer` [INFO] [stdout] --> src/frame/risc_v.rs:98:20 [INFO] [stdout] | [INFO] [stdout] 98 | fn expr(&self, frame_pointer: &Temp) -> Expr { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_pointer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/temp.rs:36:18 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn named(name: &str) -> Self { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `level` [INFO] [stdout] --> src/translate/level.rs:71:46 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn formals(level: Level) -> Vec> { [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_level` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `expr::Condition` is more private than the item `expr::Expr::Cx::0` [INFO] [stdout] --> src/translate/expr.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | Cx(Condition), [INFO] [stdout] | ^^^^^^^^^ field `expr::Expr::Cx::0` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `expr::Condition` is only usable at visibility `pub(translate)` [INFO] [stdout] --> src/translate/expr.rs:100:1 [INFO] [stdout] | [INFO] [stdout] 100 | pub(super) enum Condition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `body` [INFO] [stdout] --> src/frame/risc_v.rs:81:32 [INFO] [stdout] | [INFO] [stdout] 81 | fn proc_entry_exit1(&self, body: crate::ir::Statement) -> crate::ir::Statement { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_body` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/frame/risc_v.rs:85:22 [INFO] [stdout] | [INFO] [stdout] 85 | fn external_call(name: &str, args: Vec) -> crate::ir::Expr { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_name` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/frame/risc_v.rs:85:34 [INFO] [stdout] | [INFO] [stdout] 85 | fn external_call(name: &str, args: Vec) -> crate::ir::Expr { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `frame_pointer` [INFO] [stdout] --> src/frame/risc_v.rs:98:20 [INFO] [stdout] | [INFO] [stdout] 98 | fn expr(&self, frame_pointer: &Temp) -> Expr { [INFO] [stdout] | ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frame_pointer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `lookup_variable` is never used [INFO] [stdout] --> src/checker.rs:687:8 [INFO] [stdout] | [INFO] [stdout] 53 | impl Checker { [INFO] [stdout] | --------------------------------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 687 | fn lookup_variable<'a>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `lookup_variable` is never used [INFO] [stdout] --> src/checker.rs:716:4 [INFO] [stdout] | [INFO] [stdout] 716 | fn lookup_variable<'a, F: Frame + Clone + PartialEq>( [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `find_escape` is never used [INFO] [stdout] --> src/escape.rs:9:8 [INFO] [stdout] | [INFO] [stdout] 9 | pub fn find_escape(program: &mut ast::Program) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `And`, `Or`, `LShift`, `RShift`, `ARShift`, and `Xor` are never constructed [INFO] [stdout] --> src/ir.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 47 | pub enum BinOp { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 53 | And, [INFO] [stdout] | ^^^ [INFO] [stdout] 54 | /// Bitwise `or` operator [INFO] [stdout] 55 | Or, [INFO] [stdout] | ^^ [INFO] [stdout] 56 | LShift, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 57 | RShift, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 58 | ARShift, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 59 | Xor, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `BinOp` 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: variants `Ult`, `Ule`, `Ugt`, and `Uge` are never constructed [INFO] [stdout] --> src/ir.rs:70:5 [INFO] [stdout] | [INFO] [stdout] 63 | pub enum RelOp { [INFO] [stdout] | ----- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 70 | Ult, [INFO] [stdout] | ^^^ [INFO] [stdout] 71 | Ule, [INFO] [stdout] | ^^^ [INFO] [stdout] 72 | Ugt, [INFO] [stdout] | ^^^ [INFO] [stdout] 73 | Uge, [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `RelOp` 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: method `negate` is never used [INFO] [stdout] --> src/ir.rs:77:12 [INFO] [stdout] | [INFO] [stdout] 76 | impl RelOp { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] 77 | pub fn negate(&self) -> Self { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `has` is never used [INFO] [stdout] --> src/symbol.rs:62:12 [INFO] [stdout] | [INFO] [stdout] 41 | impl SymbolTable { [INFO] [stdout] | ---------------------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 62 | pub fn has(&self, symbol: &Symbol) -> bool { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TempTable` is never constructed [INFO] [stdout] --> src/temp.rs:20:12 [INFO] [stdout] | [INFO] [stdout] 20 | pub struct TempTable {} [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `named` is never used [INFO] [stdout] --> src/temp.rs:36:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Label { [INFO] [stdout] | ---------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 36 | pub fn named(name: &str) -> Self { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `is_array_type` is never used [INFO] [stdout] --> src/types.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 18 | impl Ty { [INFO] [stdout] | ------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 53 | pub fn is_array_type(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `body` and `frame` are never read [INFO] [stdout] --> src/translate.rs:17:16 [INFO] [stdout] | [INFO] [stdout] 17 | Function { body: ir::Statement, frame: F }, [INFO] [stdout] | -------- ^^^^ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `0` and `1` are never read [INFO] [stdout] --> src/translate.rs:18:12 [INFO] [stdout] | [INFO] [stdout] 18 | String(Label, String), [INFO] [stdout] | ------ ^^^^^ ^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | fields in this variant [INFO] [stdout] | [INFO] [stdout] help: consider changing the fields to be of unit type to suppress this warning while preserving the field numbering, or remove the fields [INFO] [stdout] | [INFO] [stdout] 18 | String((), ()), [INFO] [stdout] | ~~ ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `if_then_else_unit` is never used [INFO] [stdout] --> src/translate.rs:176:4 [INFO] [stdout] | [INFO] [stdout] 176 | fn if_then_else_unit(cond: Condition, then: ir::Statement, else_: ir::Statement) -> ir::Statement { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated constants `TRUE` and `FALSE` are never used [INFO] [stdout] --> src/translate/expr.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 14 | impl Expr { [INFO] [stdout] | --------- associated constants in this implementation [INFO] [stdout] 15 | pub(super) const TRUE: Self = Self::Ex(ir::Expr::TRUE); [INFO] [stdout] | ^^^^ [INFO] [stdout] 16 | pub(super) const FALSE: Self = Self::Ex(ir::Expr::FALSE); [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `Never` is never constructed [INFO] [stdout] --> src/translate/expr.rs:103:5 [INFO] [stdout] | [INFO] [stdout] 100 | pub(super) enum Condition { [INFO] [stdout] | --------- variant in this enum [INFO] [stdout] ... [INFO] [stdout] 103 | Never(ir::Statement), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Condition` 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: function `formals` is never used [INFO] [stdout] --> src/translate/level.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn formals(level: Level) -> Vec> { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `return_value_location` and `name` are never used [INFO] [stdout] --> src/frame.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub trait Frame { [INFO] [stdout] | ----- associated items in this trait [INFO] [stdout] ... [INFO] [stdout] 29 | fn return_value_location() -> &'static Temp; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 32 | fn name(&self) -> Label; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `expr` is never used [INFO] [stdout] --> src/frame.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub trait Access { [INFO] [stdout] | ------ method in this trait [INFO] [stdout] 55 | fn expr(&self, frame_pointer: &Temp) -> ir::Expr; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_temp` is never used [INFO] [stdout] --> src/canonical_tree.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 56 | impl Dest { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 57 | pub fn new_temp() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new_temp` is never used [INFO] [stdout] --> src/canonical_tree.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl Expr { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn new_temp() -> Self { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `basic_blocks` is never used [INFO] [stdout] --> src/basic_block.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | pub fn basic_blocks(statements: Vec) -> (Vec, Label) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `next_basic_block` is never used [INFO] [stdout] --> src/basic_block.rs:80:4 [INFO] [stdout] | [INFO] [stdout] 80 | fn next_basic_block( [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/basic_block.rs:142:11 [INFO] [stdout] | [INFO] [stdout] 142 | Start(Label), [INFO] [stdout] | ----- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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] 142 | Start(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/basic_block.rs:143:9 [INFO] [stdout] | [INFO] [stdout] 143 | Mid(LinearStatement), [INFO] [stdout] | --- ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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] 143 | Mid(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/basic_block.rs:144:9 [INFO] [stdout] | [INFO] [stdout] 144 | End(Jump), [INFO] [stdout] | --- ^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [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] 144 | End(()), [INFO] [stdout] | ~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `single_label` is never used [INFO] [stdout] --> src/basic_block.rs:194:12 [INFO] [stdout] | [INFO] [stdout] 192 | impl Jump { [INFO] [stdout] | --------- associated function in this implementation [INFO] [stdout] 193 | /// Unconditional jump to the given label. [INFO] [stdout] 194 | pub fn single_label(label: Label) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `statements` is never read [INFO] [stdout] --> src/trace.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub struct Trace { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] 11 | statements: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `Jump`, `CJump`, and `Label` are never constructed [INFO] [stdout] --> src/trace.rs:31:5 [INFO] [stdout] | [INFO] [stdout] 17 | pub enum Statement { [INFO] [stdout] | --------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 31 | Jump { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 35 | CJump { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | Label(Label), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Statement` 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: function `trace_schedule` is never used [INFO] [stdout] --> src/trace.rs:52:8 [INFO] [stdout] | [INFO] [stdout] 52 | pub fn trace_schedule(blocks: Vec, done: Label) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `TraceGenerator` is never constructed [INFO] [stdout] --> src/trace.rs:56:8 [INFO] [stdout] | [INFO] [stdout] 56 | struct TraceGenerator<'a> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `successor`, `claim`, `next_unclaimed_block`, and `get_unclaimed_block` are never used [INFO] [stdout] --> src/trace.rs:93:8 [INFO] [stdout] | [INFO] [stdout] 92 | impl<'a> TraceGenerator<'a> { [INFO] [stdout] | --------------------------- associated items in this implementation [INFO] [stdout] 93 | fn new(blocks: &'a Vec, done: Label) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 104 | fn successor(&mut self, block: &BasicBlock) -> (Option, Option) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 179 | fn claim(&mut self, block: &BasicBlock) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 183 | fn next_unclaimed_block(&mut self) -> Option<&'a BasicBlock> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn get_unclaimed_block(&self, label: &Label) -> Option<&'a BasicBlock> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 43 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `expr::Condition` is more private than the item `expr::Expr::Cx::0` [INFO] [stdout] --> src/translate/expr.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | Cx(Condition), [INFO] [stdout] | ^^^^^^^^^ field `expr::Expr::Cx::0` is reachable at visibility `pub(crate)` [INFO] [stdout] | [INFO] [stdout] note: but type `expr::Condition` is only usable at visibility `pub(translate)` [INFO] [stdout] --> src/translate/expr.rs:100:1 [INFO] [stdout] | [INFO] [stdout] 100 | pub(super) enum Condition { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `trans_program` is never used [INFO] [stdout] --> src/checker.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn trans_program( [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Checker` is never constructed [INFO] [stdout] --> src/checker.rs:40:8 [INFO] [stdout] | [INFO] [stdout] 40 | struct Checker { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/checker.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 53 | impl Checker { [INFO] [stdout] | --------------------------------------------- associated items in this implementation [INFO] [stdout] 54 | fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 64 | fn enter_loop(&mut self, label: Label) -> Option