[INFO] fetching crate firrtl-parser 0.1.0...
[INFO] testing firrtl-parser-0.1.0 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate firrtl-parser 0.1.0 into /workspace/builds/worker-3-tc1/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-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate firrtl-parser 0.1.0 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nom v7.0.0-alpha1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b2098a4ea9f1bc910b65cb6ff68f3068c035dd629de8a5c2e6b7b90764182f05
[INFO] running `Command { std: "docker" "start" "-a" "b2098a4ea9f1bc910b65cb6ff68f3068c035dd629de8a5c2e6b7b90764182f05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2098a4ea9f1bc910b65cb6ff68f3068c035dd629de8a5c2e6b7b90764182f05", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2098a4ea9f1bc910b65cb6ff68f3068c035dd629de8a5c2e6b7b90764182f05", kill_on_drop: false }`
[INFO] [stdout] b2098a4ea9f1bc910b65cb6ff68f3068c035dd629de8a5c2e6b7b90764182f05
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] da98aa27cf8d862adcfca3ed90877553d47106b84b8ede2d669b874c1491c4f0
[INFO] running `Command { std: "docker" "start" "-a" "da98aa27cf8d862adcfca3ed90877553d47106b84b8ede2d669b874c1491c4f0", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling lexical-core v0.7.6
[INFO] [stderr]    Compiling nom v7.0.0-alpha1
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling regex-automata v0.4.13
[INFO] [stderr]    Compiling regex v1.12.2
[INFO] [stderr]    Compiling 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 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: 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]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.22s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v7.0.0-alpha1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "da98aa27cf8d862adcfca3ed90877553d47106b84b8ede2d669b874c1491c4f0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da98aa27cf8d862adcfca3ed90877553d47106b84b8ede2d669b874c1491c4f0", kill_on_drop: false }`
[INFO] [stdout] da98aa27cf8d862adcfca3ed90877553d47106b84b8ede2d669b874c1491c4f0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0a5f8cbb3f74bef12bc88c5e3cab10c6205a290cec7f4e6ae840adfe365ec28f
[INFO] running `Command { std: "docker" "start" "-a" "0a5f8cbb3f74bef12bc88c5e3cab10c6205a290cec7f4e6ae840adfe365ec28f", kill_on_drop: false }`
[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: `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: 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]    Compiling 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 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: 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]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.65s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v7.0.0-alpha1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "0a5f8cbb3f74bef12bc88c5e3cab10c6205a290cec7f4e6ae840adfe365ec28f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0a5f8cbb3f74bef12bc88c5e3cab10c6205a290cec7f4e6ae840adfe365ec28f", kill_on_drop: false }`
[INFO] [stdout] 0a5f8cbb3f74bef12bc88c5e3cab10c6205a290cec7f4e6ae840adfe365ec28f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 1b4540533588951f83014030c114206d5d1b9aa495efe38e346057b1af04f2af
[INFO] running `Command { std: "docker" "start" "-a" "1b4540533588951f83014030c114206d5d1b9aa495efe38e346057b1af04f2af", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `LitVal` and `PrimOp`
[INFO] [stderr]  --> src/expr.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 |     Expr, LitVal, Literal, PrimOp,
[INFO] [stderr]   |           ^^^^^^           ^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Module`
[INFO] [stderr]  --> src/string.rs:1:34
[INFO] [stderr]   |
[INFO] [stderr] 1 | use crate::{IDStr, Info, LitVal, Module, PrimOp};
[INFO] [stderr]   |                                  ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `error::ErrorKind`, `take_while`, `terminated`, and `value`
[INFO] [stderr]   --> src/string.rs:5:36
[INFO] [stderr]    |
[INFO] [stderr]  5 |     bytes::complete::{is_not, tag, take_while},
[INFO] [stderr]    |                                    ^^^^^^^^^^
[INFO] [stderr]  6 |     character::complete::digit1,
[INFO] [stderr]  7 |     combinator::{opt, success, value},
[INFO] [stderr]    |                                ^^^^^
[INFO] [stderr]  8 |     error::ErrorKind,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 11 |     sequence::{delimited, preceded, terminated},
[INFO] [stderr]    |                                     ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rest`
[INFO] [stderr]   --> src/expr.rs:77:10
[INFO] [stderr]    |
[INFO] [stderr] 77 |     let (rest, op) = parse_primop_name(input)?;
[INFO] [stderr]    |          ^^^^ help: if this is intentional, prefix it with an underscore: `_rest`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `op`
[INFO] [stderr]   --> src/expr.rs:77:16
[INFO] [stderr]    |
[INFO] [stderr] 77 |     let (rest, op) = parse_primop_name(input)?;
[INFO] [stderr]    |                ^^ help: if this is intentional, prefix it with an underscore: `_op`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `input`
[INFO] [stderr]   --> src/expr.rs:81:19
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub fn parse_expr(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |                   ^^^^^ help: if this is intentional, prefix it with an underscore: `_input`
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `infos`, and `modules` are never read
[INFO] [stderr]   --> src/lib.rs:14:5
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct Circuit {
[INFO] [stderr]    |            ------- fields in this struct
[INFO] [stderr] 14 |     id: IDStr,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 15 |     infos: Vec<Info>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 16 |     modules: Vec<Module>,
[INFO] [stderr]    |     ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Circuit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `infos`, `ports`, and `stmt` are never read
[INFO] [stderr]   --> src/lib.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub struct Module {
[INFO] [stderr]    |            ------ fields in this struct
[INFO] [stderr] 21 |     id: IDStr,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 22 |     infos: Vec<Info>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 23 |     ports: Vec<Port>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr] 24 |     stmt: Stmt,
[INFO] [stderr]    |     ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Module` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `direction`, `id`, `ty`, and `infos` are never read
[INFO] [stderr]   --> src/lib.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub struct Port {
[INFO] [stderr]    |            ---- fields in this struct
[INFO] [stderr] 29 |     direction: Direction,
[INFO] [stderr]    |     ^^^^^^^^^
[INFO] [stderr] 30 |     id: IDStr,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 31 |     ty: Type,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 32 |     infos: Vec<Info>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `Port` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `ty`, and `infos` are never read
[INFO] [stderr]   --> src/lib.rs:74:5
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub struct FieldInner {
[INFO] [stderr]    |            ---------- fields in this struct
[INFO] [stderr] 74 |     id: IDStr,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 75 |     ty: Type,
[INFO] [stderr]    |     ^^
[INFO] [stderr] 76 |     infos: Vec<Info>,
[INFO] [stderr]    |     ^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `FieldInner` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `ty`, and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:99:5
[INFO] [stderr]     |
[INFO] [stderr]  98 | pub struct Wire {
[INFO] [stderr]     |            ---- fields in this struct
[INFO] [stderr]  99 |     id: IDStr,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 100 |     ty: Type,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 101 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Wire` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `ty`, `clk`, `init`, and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:106:5
[INFO] [stderr]     |
[INFO] [stderr] 105 | pub struct Reg {
[INFO] [stderr]     |            --- fields in this struct
[INFO] [stderr] 106 |     id: IDStr,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 107 |     ty: Type,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 108 |     clk: IDStr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 109 |     init: RegInit,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 110 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Reg` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `signal` and `val` are never read
[INFO] [stderr]    --> src/lib.rs:115:5
[INFO] [stderr]     |
[INFO] [stderr] 114 | pub struct RegInit {
[INFO] [stderr]     |            ------- fields in this struct
[INFO] [stderr] 115 |     signal: Expr,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr] 116 |     val: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `RegInit` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `infos`, and `opts` are never read
[INFO] [stderr]    --> src/lib.rs:121:5
[INFO] [stderr]     |
[INFO] [stderr] 120 | pub struct Mem {
[INFO] [stderr]     |            --- fields in this struct
[INFO] [stderr] 121 |     id: IDStr,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 122 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 123 |     opts: MemOpts,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Mem` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]    --> src/lib.rs:128:5
[INFO] [stderr]     |
[INFO] [stderr] 127 | pub struct MemOpts {
[INFO] [stderr]     |            ------- fields in this struct
[INFO] [stderr] 128 |     data_type: Type,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 129 |     depth: usize,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 130 |     read_latency: usize,
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] 131 |     write_latency: usize,
[INFO] [stderr]     |     ^^^^^^^^^^^^^
[INFO] [stderr] 132 |     read_under_write: ReadUnderWrite,
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^
[INFO] [stderr] 133 |     r_ports: Vec<IDStr>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 134 |     w_ports: Vec<IDStr>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 135 |     rw_ports: Vec<IDStr>,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `MemOpts` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id` and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:147:5
[INFO] [stderr]     |
[INFO] [stderr] 146 | pub struct Instance {
[INFO] [stderr]     |            -------- fields in this struct
[INFO] [stderr] 147 |     id: String,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 148 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Instance` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `id`, `rhs`, and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:153:5
[INFO] [stderr]     |
[INFO] [stderr] 152 | pub struct Node {
[INFO] [stderr]     |            ---- fields in this struct
[INFO] [stderr] 153 |     id: String,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 154 |     rhs: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 155 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Node` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `lhs`, `rhs`, and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:160:5
[INFO] [stderr]     |
[INFO] [stderr] 159 | pub struct Connect {
[INFO] [stderr]     |            ------- fields in this struct
[INFO] [stderr] 160 |     lhs: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 161 |     rhs: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 162 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Connect` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `lhs` and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:167:5
[INFO] [stderr]     |
[INFO] [stderr] 166 | pub struct Invalidate {
[INFO] [stderr]     |            ---------- fields in this struct
[INFO] [stderr] 167 |     lhs: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 168 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Invalidate` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `exprs` and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:173:5
[INFO] [stderr]     |
[INFO] [stderr] 172 | pub struct Attatch {
[INFO] [stderr]     |            ------- fields in this struct
[INFO] [stderr] 173 |     exprs: Expr,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 174 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Attatch` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `cond`, `infos`, `if_true`, and `if_false` are never read
[INFO] [stderr]    --> src/lib.rs:179:5
[INFO] [stderr]     |
[INFO] [stderr] 178 | pub struct Conditional {
[INFO] [stderr]     |            ----------- fields in this struct
[INFO] [stderr] 179 |     cond: Expr,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 180 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr] 181 |     if_true: Box<Stmt>,
[INFO] [stderr]     |     ^^^^^^^
[INFO] [stderr] 182 |     if_false: Box<Stmt>,
[INFO] [stderr]     |     ^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Conditional` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `clk`, `halt`, `exit_code`, `id`, and `infos` are never read
[INFO] [stderr]    --> src/lib.rs:187:5
[INFO] [stderr]     |
[INFO] [stderr] 186 | pub struct Stop {
[INFO] [stderr]     |            ---- fields in this struct
[INFO] [stderr] 187 |     clk: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 188 |     halt: Expr,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr] 189 |     exit_code: i32,
[INFO] [stderr]     |     ^^^^^^^^^
[INFO] [stderr] 190 |     id: Option<IDStr>,
[INFO] [stderr]     |     ^^
[INFO] [stderr] 191 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Stop` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: fields `clk`, `print_signal`, `fmt`, and `params` are never read
[INFO] [stderr]    --> src/lib.rs:196:5
[INFO] [stderr]     |
[INFO] [stderr] 195 | pub struct Printf {
[INFO] [stderr]     |            ------ fields in this struct
[INFO] [stderr] 196 |     clk: Expr,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 197 |     print_signal: Expr,
[INFO] [stderr]     |     ^^^^^^^^^^^^
[INFO] [stderr] 198 |     fmt: String,
[INFO] [stderr]     |     ^^^
[INFO] [stderr] 199 |     params: Vec<Expr>,
[INFO] [stderr]     |     ^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Printf` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: field `infos` is never read
[INFO] [stderr]    --> src/lib.rs:204:5
[INFO] [stderr]     |
[INFO] [stderr] 203 | pub struct Empty {
[INFO] [stderr]     |            ----- field in this struct
[INFO] [stderr] 204 |     infos: Vec<Info>,
[INFO] [stderr]     |     ^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `Empty` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_uint_literal` is never used
[INFO] [stderr]   --> src/expr.rs:13:8
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub fn parse_uint_literal(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_sint_literal` is never used
[INFO] [stderr]   --> src/expr.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn parse_sint_literal(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_ref` is never used
[INFO] [stderr]   --> src/expr.rs:25:8
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub fn parse_ref(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_sub_field` is never used
[INFO] [stderr]   --> src/expr.rs:30:8
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn parse_sub_field(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_access` is never used
[INFO] [stderr]   --> src/expr.rs:35:8
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub fn parse_access(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_dyn_access` is never used
[INFO] [stderr]   --> src/expr.rs:44:8
[INFO] [stderr]    |
[INFO] [stderr] 44 | pub fn parse_dyn_access(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_mux` is never used
[INFO] [stderr]   --> src/expr.rs:50:8
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub fn parse_mux(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_cond_valid` is never used
[INFO] [stderr]   --> src/expr.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn parse_cond_valid(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `paren_pair` is never used
[INFO] [stderr]   --> src/expr.rs:69:4
[INFO] [stderr]    |
[INFO] [stderr] 69 | fn paren_pair<'a, T, U>(
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_primop` is never used
[INFO] [stderr]   --> src/expr.rs:76:8
[INFO] [stderr]    |
[INFO] [stderr] 76 | pub fn parse_primop(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_expr` is never used
[INFO] [stderr]   --> src/expr.rs:81:8
[INFO] [stderr]    |
[INFO] [stderr] 81 | pub fn parse_expr(input: &str) -> IResult<&str, Expr> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_litval` is never used
[INFO] [stderr]   --> src/string.rs:27:8
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn parse_litval<'a>(input: &'a str) -> IResult<&'a str, LitVal> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_info` is never used
[INFO] [stderr]   --> src/string.rs:55:4
[INFO] [stderr]    |
[INFO] [stderr] 55 | fn parse_info(input: &str) -> IResult<&str, Info> {
[INFO] [stderr]    |    ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_infos` is never used
[INFO] [stderr]   --> src/string.rs:61:8
[INFO] [stderr]    |
[INFO] [stderr] 61 | pub fn parse_infos(input: &str) -> IResult<&str, Vec<Info>> {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_id` is never used
[INFO] [stderr]   --> src/string.rs:65:8
[INFO] [stderr]    |
[INFO] [stderr] 65 | pub fn parse_id(input: &str) -> IResult<&str, IDStr> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_primop_name` is never used
[INFO] [stderr]   --> src/string.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn parse_primop_name(input: &str) -> IResult<&str, PrimOp> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_decimal_usize` is never used
[INFO] [stderr]    --> src/string.rs:119:8
[INFO] [stderr]     |
[INFO] [stderr] 119 | pub fn parse_decimal_usize(input: &str) -> IResult<&str, usize> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_width` is never used
[INFO] [stderr]    --> src/string.rs:126:8
[INFO] [stderr]     |
[INFO] [stderr] 126 | pub fn parse_width(input: &str) -> IResult<&str, usize> {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_fixed_point_bits` is never used
[INFO] [stderr]    --> src/string.rs:130:8
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub fn parse_fixed_point_bits(input: &str) -> IResult<&str, usize> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_uint_type` is never used
[INFO] [stderr]   --> src/types.rs:19:8
[INFO] [stderr]    |
[INFO] [stderr] 19 | pub fn parse_uint_type(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_sint_type` is never used
[INFO] [stderr]   --> src/types.rs:24:8
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn parse_sint_type(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_fixed_point_type` is never used
[INFO] [stderr]   --> src/types.rs:29:8
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub fn parse_fixed_point_type(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_clock_type` is never used
[INFO] [stderr]   --> src/types.rs:38:8
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub fn parse_clock_type(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_analog_type` is never used
[INFO] [stderr]   --> src/types.rs:42:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | pub fn parse_analog_type(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_field` is never used
[INFO] [stderr]   --> src/types.rs:47:8
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn parse_field(input: &str) -> IResult<&str, Field> {
[INFO] [stderr]    |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_bundle` is never used
[INFO] [stderr]   --> src/types.rs:63:8
[INFO] [stderr]    |
[INFO] [stderr] 63 | pub fn parse_bundle(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_vector` is never used
[INFO] [stderr]   --> src/types.rs:70:8
[INFO] [stderr]    |
[INFO] [stderr] 70 | pub fn parse_vector(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_type` is never used
[INFO] [stderr]   --> src/types.rs:85:8
[INFO] [stderr]    |
[INFO] [stderr] 85 | pub fn parse_type(input: &str) -> IResult<&str, Type> {
[INFO] [stderr]    |        ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `firrtl-parser` (lib) generated 52 warnings (run `cargo fix --lib -p firrtl-parser` to apply 6 suggestions)
[INFO] [stderr] warning: `firrtl-parser` (lib test) generated 52 warnings (52 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v7.0.0-alpha1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/firrtl_parser-8f8b9f347c89225b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test tests::it_works ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests firrtl_parser
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "1b4540533588951f83014030c114206d5d1b9aa495efe38e346057b1af04f2af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b4540533588951f83014030c114206d5d1b9aa495efe38e346057b1af04f2af", kill_on_drop: false }`
[INFO] [stdout] 1b4540533588951f83014030c114206d5d1b9aa495efe38e346057b1af04f2af
