[INFO] fetching crate firrtl-parser 0.1.0...
[INFO] checking firrtl-parser-0.1.0 against try#0611f7de057c584b8771102fde7aed6c70c71d3b for pr-146440
[INFO] extracting crate firrtl-parser 0.1.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate firrtl-parser 0.1.0
[INFO] finished tweaking crates.io crate firrtl-parser 0.1.0
[INFO] tweaked toml for crates.io crate firrtl-parser 0.1.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate firrtl-parser 0.1.0 on toolchain 0611f7de057c584b8771102fde7aed6c70c71d3b
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 14 packages to latest compatible versions
[INFO] [stderr]       Adding nom v7.0.0-alpha1 (available: v7.1.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 8f1fafc98ecfdaf6027ee43e68b8aa52c4d7be617a314d579ca85b88adfd788e
[INFO] running `Command { std: "docker" "start" "-a" "8f1fafc98ecfdaf6027ee43e68b8aa52c4d7be617a314d579ca85b88adfd788e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8f1fafc98ecfdaf6027ee43e68b8aa52c4d7be617a314d579ca85b88adfd788e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f1fafc98ecfdaf6027ee43e68b8aa52c4d7be617a314d579ca85b88adfd788e", kill_on_drop: false }`
[INFO] [stdout] 8f1fafc98ecfdaf6027ee43e68b8aa52c4d7be617a314d579ca85b88adfd788e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/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" "+0611f7de057c584b8771102fde7aed6c70c71d3b" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3f42da1ec37e4f4d9e5b85d815361c7d926b8046d75950a9a602204c9badceb0
[INFO] running `Command { std: "docker" "start" "-a" "3f42da1ec37e4f4d9e5b85d815361c7d926b8046d75950a9a602204c9badceb0", kill_on_drop: false }`
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]    Compiling nom v7.0.0-alpha1
[INFO] [stderr]     Checking lexical-core v0.7.6
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking firrtl-parser v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `LitVal` and `PrimOp`
[INFO] [stdout]  --> src/expr.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Expr, LitVal, Literal, PrimOp,
[INFO] [stdout]   |           ^^^^^^           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Module`
[INFO] [stdout]  --> src/string.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{IDStr, Info, LitVal, Module, PrimOp};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::ErrorKind`, `take_while`, `terminated`, and `value`
[INFO] [stdout]   --> src/string.rs:5:36
[INFO] [stdout]    |
[INFO] [stdout]  5 |     bytes::complete::{is_not, tag, take_while},
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]  6 |     character::complete::digit1,
[INFO] [stdout]  7 |     combinator::{opt, success, value},
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]  8 |     error::ErrorKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     sequence::{delimited, preceded, terminated},
[INFO] [stdout]    |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `LitVal` and `PrimOp`
[INFO] [stdout]  --> src/expr.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 |     Expr, LitVal, Literal, PrimOp,
[INFO] [stdout]   |           ^^^^^^           ^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Module`
[INFO] [stdout]  --> src/string.rs:1:34
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{IDStr, Info, LitVal, Module, PrimOp};
[INFO] [stdout]   |                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error::ErrorKind`, `take_while`, `terminated`, and `value`
[INFO] [stdout]   --> src/string.rs:5:36
[INFO] [stdout]    |
[INFO] [stdout]  5 |     bytes::complete::{is_not, tag, take_while},
[INFO] [stdout]    |                                    ^^^^^^^^^^
[INFO] [stdout]  6 |     character::complete::digit1,
[INFO] [stdout]  7 |     combinator::{opt, success, value},
[INFO] [stdout]    |                                ^^^^^
[INFO] [stdout]  8 |     error::ErrorKind,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     sequence::{delimited, preceded, terminated},
[INFO] [stdout]    |                                     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rest`
[INFO] [stdout]   --> src/expr.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let (rest, op) = parse_primop_name(input)?;
[INFO] [stdout]    |          ^^^^ help: if this is intentional, prefix it with an underscore: `_rest`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rest`
[INFO] [stdout]   --> src/expr.rs:77:10
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let (rest, op) = parse_primop_name(input)?;
[INFO] [stdout]    |          ^^^^ help: if this is intentional, prefix it with an underscore: `_rest`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]   --> src/expr.rs:77:16
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let (rest, op) = parse_primop_name(input)?;
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/expr.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn parse_expr(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `op`
[INFO] [stdout]   --> src/expr.rs:77:16
[INFO] [stdout]    |
[INFO] [stdout] 77 |     let (rest, op) = parse_primop_name(input)?;
[INFO] [stdout]    |                ^^ help: if this is intentional, prefix it with an underscore: `_op`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `input`
[INFO] [stdout]   --> src/expr.rs:81:19
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn parse_expr(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Circuit` is never constructed
[INFO] [stdout]   --> src/lib.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Circuit {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Module` is never constructed
[INFO] [stdout]   --> src/lib.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Module {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Port` is never constructed
[INFO] [stdout]   --> src/lib.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Port {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `infos`, and `modules` are never read
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Circuit {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 14 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     modules: Vec<Module>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Circuit` has derived impls for the traits `Clone` and `Debug`, but these are 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 `id`, `infos`, `ports`, and `stmt` are never read
[INFO] [stdout]   --> src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Module {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 21 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 22 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     ports: Vec<Port>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 24 |     stmt: Stmt,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Module` 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 `direction`, `id`, `ty`, and `infos` are never read
[INFO] [stdout]   --> src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Port {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 29 |     direction: Direction,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 31 |     ty: Type,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 32 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Port` 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 `id`, `ty`, and `infos` are never read
[INFO] [stdout]   --> src/lib.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FieldInner {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 74 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 75 |     ty: Type,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 76 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInner` 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 `id`, `ty`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub struct Wire {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout]  99 |     id: IDStr,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 100 |     ty: Type,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 101 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Wire` 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 `id`, `ty`, `clk`, `init`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Reg {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 106 |     id: IDStr,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 107 |     ty: Type,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 108 |     clk: IDStr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     init: RegInit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 110 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Reg` 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 `signal` and `val` are never read
[INFO] [stdout]    --> src/lib.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct RegInit {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 115 |     signal: Expr,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 116 |     val: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RegInit` 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 `id`, `infos`, and `opts` are never read
[INFO] [stdout]    --> src/lib.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct Mem {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 121 |     id: IDStr,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 122 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 123 |     opts: MemOpts,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mem` 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: multiple fields are never read
[INFO] [stdout]    --> src/lib.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct MemOpts {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 128 |     data_type: Type,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 129 |     depth: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 130 |     read_latency: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 131 |     write_latency: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 132 |     read_under_write: ReadUnderWrite,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 133 |     r_ports: Vec<IDStr>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 134 |     w_ports: Vec<IDStr>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 135 |     rw_ports: Vec<IDStr>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemOpts` 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 `id` and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct Instance {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 147 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 148 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instance` 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 `id`, `rhs`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct Node {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 153 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 154 |     rhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 155 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` 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 `lhs`, `rhs`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct Connect {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 160 |     lhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 161 |     rhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 162 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Connect` 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 `lhs` and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct Invalidate {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 167 |     lhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 168 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Invalidate` 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 `exprs` and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub struct Attatch {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 173 |     exprs: Expr,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 174 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Attatch` 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`, `infos`, `if_true`, and `if_false` are never read
[INFO] [stdout]    --> src/lib.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct Conditional {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 179 |     cond: Expr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 180 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 181 |     if_true: Box<Stmt>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 182 |     if_false: Box<Stmt>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Conditional` 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 `clk`, `halt`, `exit_code`, `id`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Stop {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 187 |     clk: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 188 |     halt: Expr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 189 |     exit_code: i32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 190 |     id: Option<IDStr>,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 191 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stop` 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 `clk`, `print_signal`, `fmt`, and `params` are never read
[INFO] [stdout]    --> src/lib.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct Printf {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 196 |     clk: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 197 |     print_signal: Expr,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 198 |     fmt: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 199 |     params: Vec<Expr>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Printf` 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 `infos` is never read
[INFO] [stdout]    --> src/lib.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct Empty {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 204 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Empty` 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 `parse_uint_literal` is never used
[INFO] [stdout]   --> src/expr.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parse_uint_literal(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sint_literal` is never used
[INFO] [stdout]   --> src/expr.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn parse_sint_literal(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ref` is never used
[INFO] [stdout]   --> src/expr.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn parse_ref(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sub_field` is never used
[INFO] [stdout]   --> src/expr.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn parse_sub_field(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_access` is never used
[INFO] [stdout]   --> src/expr.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn parse_access(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_dyn_access` is never used
[INFO] [stdout]   --> src/expr.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_dyn_access(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_mux` is never used
[INFO] [stdout]   --> src/expr.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_mux(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_cond_valid` is never used
[INFO] [stdout]   --> src/expr.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn parse_cond_valid(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren_pair` is never used
[INFO] [stdout]   --> src/expr.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn paren_pair<'a, T, U>(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_primop` is never used
[INFO] [stdout]   --> src/expr.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn parse_primop(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expr` is never used
[INFO] [stdout]   --> src/expr.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn parse_expr(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_litval` is never used
[INFO] [stdout]   --> src/string.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn parse_litval<'a>(input: &'a str) -> IResult<&'a str, LitVal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_info` is never used
[INFO] [stdout]   --> src/string.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn parse_info(input: &str) -> IResult<&str, Info> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_infos` is never used
[INFO] [stdout]   --> src/string.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn parse_infos(input: &str) -> IResult<&str, Vec<Info>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_id` is never used
[INFO] [stdout]   --> src/string.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn parse_id(input: &str) -> IResult<&str, IDStr> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_primop_name` is never used
[INFO] [stdout]   --> src/string.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn parse_primop_name(input: &str) -> IResult<&str, PrimOp> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_decimal_usize` is never used
[INFO] [stdout]    --> src/string.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn parse_decimal_usize(input: &str) -> IResult<&str, usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_width` is never used
[INFO] [stdout]    --> src/string.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_width(input: &str) -> IResult<&str, usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fixed_point_bits` is never used
[INFO] [stdout]    --> src/string.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn parse_fixed_point_bits(input: &str) -> IResult<&str, usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_uint_type` is never used
[INFO] [stdout]   --> src/types.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn parse_uint_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sint_type` is never used
[INFO] [stdout]   --> src/types.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn parse_sint_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fixed_point_type` is never used
[INFO] [stdout]   --> src/types.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn parse_fixed_point_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_clock_type` is never used
[INFO] [stdout]   --> src/types.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn parse_clock_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_analog_type` is never used
[INFO] [stdout]   --> src/types.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn parse_analog_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_field` is never used
[INFO] [stdout]   --> src/types.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn parse_field(input: &str) -> IResult<&str, Field> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_bundle` is never used
[INFO] [stdout]   --> src/types.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn parse_bundle(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_vector` is never used
[INFO] [stdout]   --> src/types.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn parse_vector(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_type` is never used
[INFO] [stdout]   --> src/types.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn parse_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Circuit` is never constructed
[INFO] [stdout]   --> src/lib.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Circuit {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout]    = note: `#[deny(unused_unconstructable_pub_struct)]` (part of `#[deny(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Module` is never constructed
[INFO] [stdout]   --> src/lib.rs:20:12
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Module {
[INFO] [stdout]    |            ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: struct `Port` is never constructed
[INFO] [stdout]   --> src/lib.rs:28:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Port {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `pub` struct has private fields, no public constructor, and is not otherwise reachable through the external API, so consider providing a public constructor or removing it
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id`, `infos`, and `modules` are never read
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Circuit {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 14 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 15 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 16 |     modules: Vec<Module>,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Circuit` has derived impls for the traits `Clone` and `Debug`, but these are 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 `id`, `infos`, `ports`, and `stmt` are never read
[INFO] [stdout]   --> src/lib.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct Module {
[INFO] [stdout]    |            ------ fields in this struct
[INFO] [stdout] 21 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 22 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 23 |     ports: Vec<Port>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 24 |     stmt: Stmt,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Module` 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 `direction`, `id`, `ty`, and `infos` are never read
[INFO] [stdout]   --> src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct Port {
[INFO] [stdout]    |            ---- fields in this struct
[INFO] [stdout] 29 |     direction: Direction,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 30 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 31 |     ty: Type,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 32 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Port` 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 `id`, `ty`, and `infos` are never read
[INFO] [stdout]   --> src/lib.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FieldInner {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 74 |     id: IDStr,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 75 |     ty: Type,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 76 |     infos: Vec<Info>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `FieldInner` 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 `id`, `ty`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  98 | pub struct Wire {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout]  99 |     id: IDStr,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 100 |     ty: Type,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 101 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Wire` 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 `id`, `ty`, `clk`, `init`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub struct Reg {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 106 |     id: IDStr,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 107 |     ty: Type,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 108 |     clk: IDStr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 109 |     init: RegInit,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 110 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Reg` 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 `signal` and `val` are never read
[INFO] [stdout]    --> src/lib.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub struct RegInit {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 115 |     signal: Expr,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 116 |     val: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `RegInit` 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 `id`, `infos`, and `opts` are never read
[INFO] [stdout]    --> src/lib.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 120 | pub struct Mem {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 121 |     id: IDStr,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 122 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 123 |     opts: MemOpts,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mem` 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: multiple fields are never read
[INFO] [stdout]    --> src/lib.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub struct MemOpts {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 128 |     data_type: Type,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 129 |     depth: usize,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 130 |     read_latency: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 131 |     write_latency: usize,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 132 |     read_under_write: ReadUnderWrite,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 133 |     r_ports: Vec<IDStr>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 134 |     w_ports: Vec<IDStr>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 135 |     rw_ports: Vec<IDStr>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MemOpts` 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 `id` and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:147:5
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct Instance {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 147 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 148 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Instance` 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 `id`, `rhs`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct Node {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 153 |     id: String,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 154 |     rhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 155 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Node` 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 `lhs`, `rhs`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub struct Connect {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 160 |     lhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 161 |     rhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 162 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Connect` 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 `lhs` and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub struct Invalidate {
[INFO] [stdout]     |            ---------- fields in this struct
[INFO] [stdout] 167 |     lhs: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 168 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Invalidate` 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 `exprs` and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:173:5
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub struct Attatch {
[INFO] [stdout]     |            ------- fields in this struct
[INFO] [stdout] 173 |     exprs: Expr,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 174 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Attatch` 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`, `infos`, `if_true`, and `if_false` are never read
[INFO] [stdout]    --> src/lib.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 178 | pub struct Conditional {
[INFO] [stdout]     |            ----------- fields in this struct
[INFO] [stdout] 179 |     cond: Expr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 180 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 181 |     if_true: Box<Stmt>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 182 |     if_false: Box<Stmt>,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Conditional` 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 `clk`, `halt`, `exit_code`, `id`, and `infos` are never read
[INFO] [stdout]    --> src/lib.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 186 | pub struct Stop {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] 187 |     clk: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 188 |     halt: Expr,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 189 |     exit_code: i32,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 190 |     id: Option<IDStr>,
[INFO] [stdout]     |     ^^
[INFO] [stdout] 191 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Stop` 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 `clk`, `print_signal`, `fmt`, and `params` are never read
[INFO] [stdout]    --> src/lib.rs:196:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | pub struct Printf {
[INFO] [stdout]     |            ------ fields in this struct
[INFO] [stdout] 196 |     clk: Expr,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 197 |     print_signal: Expr,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 198 |     fmt: String,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 199 |     params: Vec<Expr>,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Printf` 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 `infos` is never read
[INFO] [stdout]    --> src/lib.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 203 | pub struct Empty {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 204 |     infos: Vec<Info>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Empty` 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 `parse_uint_literal` is never used
[INFO] [stdout]   --> src/expr.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn parse_uint_literal(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sint_literal` is never used
[INFO] [stdout]   --> src/expr.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn parse_sint_literal(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_ref` is never used
[INFO] [stdout]   --> src/expr.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub fn parse_ref(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sub_field` is never used
[INFO] [stdout]   --> src/expr.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn parse_sub_field(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_access` is never used
[INFO] [stdout]   --> src/expr.rs:35:8
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub fn parse_access(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_dyn_access` is never used
[INFO] [stdout]   --> src/expr.rs:44:8
[INFO] [stdout]    |
[INFO] [stdout] 44 | pub fn parse_dyn_access(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_mux` is never used
[INFO] [stdout]   --> src/expr.rs:50:8
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub fn parse_mux(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_cond_valid` is never used
[INFO] [stdout]   --> src/expr.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn parse_cond_valid(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `paren_pair` is never used
[INFO] [stdout]   --> src/expr.rs:69:4
[INFO] [stdout]    |
[INFO] [stdout] 69 | fn paren_pair<'a, T, U>(
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_primop` is never used
[INFO] [stdout]   --> src/expr.rs:76:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub fn parse_primop(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_expr` is never used
[INFO] [stdout]   --> src/expr.rs:81:8
[INFO] [stdout]    |
[INFO] [stdout] 81 | pub fn parse_expr(input: &str) -> IResult<&str, Expr> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_litval` is never used
[INFO] [stdout]   --> src/string.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn parse_litval<'a>(input: &'a str) -> IResult<&'a str, LitVal> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_info` is never used
[INFO] [stdout]   --> src/string.rs:55:4
[INFO] [stdout]    |
[INFO] [stdout] 55 | fn parse_info(input: &str) -> IResult<&str, Info> {
[INFO] [stdout]    |    ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_infos` is never used
[INFO] [stdout]   --> src/string.rs:61:8
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub fn parse_infos(input: &str) -> IResult<&str, Vec<Info>> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_id` is never used
[INFO] [stdout]   --> src/string.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn parse_id(input: &str) -> IResult<&str, IDStr> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_primop_name` is never used
[INFO] [stdout]   --> src/string.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn parse_primop_name(input: &str) -> IResult<&str, PrimOp> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_decimal_usize` is never used
[INFO] [stdout]    --> src/string.rs:119:8
[INFO] [stdout]     |
[INFO] [stdout] 119 | pub fn parse_decimal_usize(input: &str) -> IResult<&str, usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_width` is never used
[INFO] [stdout]    --> src/string.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub fn parse_width(input: &str) -> IResult<&str, usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fixed_point_bits` is never used
[INFO] [stdout]    --> src/string.rs:130:8
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub fn parse_fixed_point_bits(input: &str) -> IResult<&str, usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_uint_type` is never used
[INFO] [stdout]   --> src/types.rs:19:8
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub fn parse_uint_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_sint_type` is never used
[INFO] [stdout]   --> src/types.rs:24:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn parse_sint_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_fixed_point_type` is never used
[INFO] [stdout]   --> src/types.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn parse_fixed_point_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_clock_type` is never used
[INFO] [stdout]   --> src/types.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn parse_clock_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_analog_type` is never used
[INFO] [stdout]   --> src/types.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub fn parse_analog_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_field` is never used
[INFO] [stdout]   --> src/types.rs:47:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn parse_field(input: &str) -> IResult<&str, Field> {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_bundle` is never used
[INFO] [stdout]   --> src/types.rs:63:8
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub fn parse_bundle(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_vector` is never used
[INFO] [stdout]   --> src/types.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 70 | pub fn parse_vector(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_type` is never used
[INFO] [stdout]   --> src/types.rs:85:8
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub fn parse_type(input: &str) -> IResult<&str, Type> {
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `firrtl-parser` (lib) due to 3 previous errors; 52 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `firrtl-parser` (lib test) due to 3 previous errors; 52 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "3f42da1ec37e4f4d9e5b85d815361c7d926b8046d75950a9a602204c9badceb0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3f42da1ec37e4f4d9e5b85d815361c7d926b8046d75950a9a602204c9badceb0", kill_on_drop: false }`
[INFO] [stdout] 3f42da1ec37e4f4d9e5b85d815361c7d926b8046d75950a9a602204c9badceb0
