[INFO] fetching crate spice21 0.1.5...
[INFO] building spice21-0.1.5 against master#ad85bc524b1ad696e42061ad8338d382dffbdbe5 for pr-146237-1
[INFO] extracting crate spice21 0.1.5 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate spice21 0.1.5
[INFO] finished tweaking crates.io crate spice21 0.1.5
[INFO] tweaked toml for crates.io crate spice21 0.1.5 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate spice21 0.1.5 on toolchain ad85bc524b1ad696e42061ad8338d382dffbdbe5
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "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" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 62 packages to latest compatible versions
[INFO] [stderr]       Adding bytes v0.5.6 (available: v1.10.1)
[INFO] [stderr]       Adding num v0.3.1 (available: v0.4.3)
[INFO] [stderr]       Adding prost v0.6.1 (available: v0.14.1)
[INFO] [stderr]       Adding prost-build v0.6.1 (available: v0.14.1)
[INFO] [stderr]       Adding prost-types v0.6.1 (available: v0.14.1)
[INFO] [stderr]       Adding serde_yaml v0.8.26 (available: v0.9.34+deprecated)
[INFO] [stderr]       Adding textwrap v0.12.1 (available: v0.16.2)
[INFO] [stderr]       Adding toml v0.5.11 (available: v0.9.7)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded textwrap v0.12.1
[INFO] [stderr]   Downloaded spice21procs v0.1.5
[INFO] [stderr]   Downloaded prost-types v0.6.1
[INFO] [stderr]   Downloaded prost v0.6.1
[INFO] [stderr]   Downloaded spice21int v0.1.5
[INFO] [stderr]   Downloaded prost-derive v0.6.1
[INFO] [stderr]   Downloaded prost-build v0.6.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1d2da88489d7bf0cdf516b533ca7ce533cf3d3319ce4cbac77fc79c0071a812d
[INFO] running `Command { std: "docker" "start" "-a" "1d2da88489d7bf0cdf516b533ca7ce533cf3d3319ce4cbac77fc79c0071a812d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1d2da88489d7bf0cdf516b533ca7ce533cf3d3319ce4cbac77fc79c0071a812d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1d2da88489d7bf0cdf516b533ca7ce533cf3d3319ce4cbac77fc79c0071a812d", kill_on_drop: false }`
[INFO] [stdout] 1d2da88489d7bf0cdf516b533ca7ce533cf3d3319ce4cbac77fc79c0071a812d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2f82a8d3a6d2587bceaaabbca8463ee50b892670f4b398bd4221ff26c3aba5ca
[INFO] running `Command { std: "docker" "start" "-a" "2f82a8d3a6d2587bceaaabbca8463ee50b892670f4b398bd4221ff26c3aba5ca", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling itertools v0.8.2
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling which v3.1.1
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling num-bigint v0.3.3
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling fixedbitset v0.2.0
[INFO] [stderr]    Compiling prost-build v0.6.1
[INFO] [stderr]    Compiling tempfile v3.23.0
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling yaml-rust v0.4.5
[INFO] [stderr]    Compiling textwrap v0.12.1
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]    Compiling heck v0.3.3
[INFO] [stderr]    Compiling prost-derive v0.6.1
[INFO] [stderr]    Compiling prost v0.6.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling prost-types v0.6.1
[INFO] [stderr]    Compiling spice21int v0.1.5
[INFO] [stderr]    Compiling spice21procs v0.1.5
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling spice21 v0.1.5 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling num-complex v0.3.1
[INFO] [stderr]    Compiling serde_yaml v0.8.26
[INFO] [stderr]    Compiling toml v0.5.11
[INFO] [stderr]    Compiling num v0.3.1
[INFO] [stdout] warning: unused import: `mos::*`
[INFO] [stdout]   --> src/comps/mod.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) use mos::*;
[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: `TranState`
[INFO] [stdout]   --> src/comps/mos.rs:14:67
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::analysis::{AnalysisInfo, ChargeInteg, Options, Stamps, TranState, VarIndex, Variables};
[INFO] [stdout]    |                                                                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/comps/diode.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `from_opt_type`
[INFO] [stdout]   --> src/comps/diode.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{attr, from_opt_type, sperror, SpNum, SpResult};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `AcOptions` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `AcOptions` in the type namespace is also re-exported here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `OpResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `OpResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `TranOptions` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `TranOptions` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `TranResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `TranResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `AcResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `AcResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pbfact1`
[INFO] [stdout]    --> src/comps/mos.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let _pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 153 -         let pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout] 153 +         let comps::consts::EPSSI = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/comps/mos.rs:321:21
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if let Some(t) = inst.temp {
[INFO] [stdout]     |                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if let Some(_t) = inst.temp {
[INFO] [stdout]     |                     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 321 -         if let Some(t) = inst.temp {
[INFO] [stdout] 321 +         if let Some(comps::consts::EPSSI) = inst.temp {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gcbs`
[INFO] [stdout]    --> src/comps/mos.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |         let gcbs = omega * self.op.cbs;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 929 |         let _gcbs = omega * self.op.cbs;
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 929 -         let gcbs = omega * self.op.cbs;
[INFO] [stdout] 929 +         let comps::consts::EPSSI = omega * self.op.cbs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gcbd`
[INFO] [stdout]    --> src/comps/mos.rs:930:13
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let gcbd = omega * self.op.cbd;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let _gcbd = omega * self.op.cbd;
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 930 -         let gcbd = omega * self.op.cbd;
[INFO] [stdout] 930 +         let comps::consts::EPSSI = omega * self.op.cbd;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cjunc` is assigned to, but never used
[INFO] [stdout]    --> src/comps/diode.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut cjunc = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cjunc` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 168 -         let mut cjunc = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout] 168 +         let mut comps::consts::EPSSI = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cjunc` is never read
[INFO] [stdout]    --> src/comps/diode.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |         cjunc *= 1.0 + model.m * (400e-6 * (temp - consts::TEMP_REF) - gmanew);
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m_`
[INFO] [stdout]    --> src/elab.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |         } else if let Some(m_) = self.defs.mos1.models.get(&model) { 
[INFO] [stdout]     |                            ^^ help: if this is intentional, prefix it with an underscore: `_m_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find` is never used
[INFO] [stdout]   --> src/analysis.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl<NumT: SpNum> Variables<NumT> {
[INFO] [stdout]    | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn find<S: Into<String>>(&self, name: S) -> Option<VarIndex> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/analysis.rs:366:19
[INFO] [stdout]     |
[INFO] [stdout] 355 | impl OpResult {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub(crate) fn get<S: Into<String>>(&self, signame: S) -> SpResult<f64> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/analysis.rs:391:10
[INFO] [stdout]     |
[INFO] [stdout] 391 |     TRAN(&'a TranOptions, &'a TranState),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 391 -     TRAN(&'a TranOptions, &'a TranState),
[INFO] [stdout] 391 +     TRAN((), &'a TranState),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TRAP` is never constructed
[INFO] [stdout]    --> src/analysis.rs:397:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub(crate) enum NumericalIntegration {
[INFO] [stdout]     |                 -------------------- variant in this enum
[INFO] [stdout] 396 |     BE,
[INFO] [stdout] 397 |     TRAP,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `s` is never used
[INFO] [stdout]   --> src/circuit.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub(crate) fn s<S: Into<String>>(from: S) -> String {
[INFO] [stdout]    |               ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CompTrait` is never used
[INFO] [stdout]    --> src/circuit.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | trait CompTrait {}
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> src/comps/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub(crate) trait Component {
[INFO] [stdout]    |                  --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn validate(&self) -> SpResult<()> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `v` is never read
[INFO] [stdout]    --> src/comps/mod.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct CapOpPoint {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 167 |     v: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CapOpPoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `m` is never read
[INFO] [stdout]    --> src/comps/mos.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub struct Mos1InstanceParams {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 252 |     m: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mos1InstanceParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `temp`, `kp_t`, and `leff` are never read
[INFO] [stdout]    --> src/comps/mos.rs:302:16
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub(crate) struct Mos1InternalParams {
[INFO] [stdout]     |                   ------------------ fields in this struct
[INFO] [stdout] 302 |     pub(crate) temp: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub(crate) kp_t: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub(crate) leff: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `area` and `vcrit` are never read
[INFO] [stdout]    --> src/comps/mos.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 489 | pub(crate) struct MosJunction {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 490 |     area: f64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     vcrit: f64,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ids` and `vds` are never read
[INFO] [stdout]    --> src/comps/mos.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub(crate) struct Mos1OpPoint {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 527 |     ids: f64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 528 |     vgs: f64,
[INFO] [stdout] 529 |     vds: f64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mos1OpPoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `orig` is never read
[INFO] [stdout]   --> src/sparse21/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Element<T: Num> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 75 |     orig: (usize, usize, T),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Element` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MAX` should have a snake case name
[INFO] [stdout]   --> src/comps/cmath.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) fn MAX(a: f64, b: f64) -> f64 {
[INFO] [stdout]    |               ^^^ help: convert the identifier to snake case: `max`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MIN` should have a snake case name
[INFO] [stdout]   --> src/comps/cmath.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) fn MIN(a: f64, b: f64) -> f64 {
[INFO] [stdout]    |               ^^^ help: convert the identifier to snake case: `min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/defs.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/elab.rs:97:28
[INFO] [stdout]    |
[INFO] [stdout] 97 |             None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 97 -             None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout] 97 +             None => panic!("Parameters not defined: {}", params),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/elab.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 151 -                 None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout] 151 +                 None => panic!("Parameters not defined: {}", params),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/elab.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |             panic!(format!("Model not defined: {}", model));
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 167 -             panic!(format!("Model not defined: {}", model));
[INFO] [stdout] 167 +             panic!("Model not defined: {}", model);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 48.46s
[INFO] running `Command { std: "docker" "inspect" "2f82a8d3a6d2587bceaaabbca8463ee50b892670f4b398bd4221ff26c3aba5ca", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f82a8d3a6d2587bceaaabbca8463ee50b892670f4b398bd4221ff26c3aba5ca", kill_on_drop: false }`
[INFO] [stdout] 2f82a8d3a6d2587bceaaabbca8463ee50b892670f4b398bd4221ff26c3aba5ca
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+ad85bc524b1ad696e42061ad8338d382dffbdbe5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afea9e50c3f9674988df7d26ebc1bc2ed40c39b16605fd41ff369799ce838ea5
[INFO] running `Command { std: "docker" "start" "-a" "afea9e50c3f9674988df7d26ebc1bc2ed40c39b16605fd41ff369799ce838ea5", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `mos::*`
[INFO] [stdout]   --> src/comps/mod.rs:17:16
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub(crate) use mos::*;
[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: `TranState`
[INFO] [stdout]   --> src/comps/mos.rs:14:67
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::analysis::{AnalysisInfo, ChargeInteg, Options, Stamps, TranState, VarIndex, Variables};
[INFO] [stdout]    |                                                                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/comps/diode.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `from_opt_type`
[INFO] [stdout]   --> src/comps/diode.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{attr, from_opt_type, sperror, SpNum, SpResult};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `AcOptions` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `AcOptions` in the type namespace is also re-exported here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `OpResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `OpResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `TranOptions` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `TranOptions` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `TranResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `TranResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `AcResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `AcResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pbfact1`
[INFO] [stdout]    --> src/comps/mos.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let _pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 153 -         let pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout] 153 +         let comps::consts::EPSSI = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/comps/mos.rs:321:21
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if let Some(t) = inst.temp {
[INFO] [stdout]     |                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if let Some(_t) = inst.temp {
[INFO] [stdout]     |                     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 321 -         if let Some(t) = inst.temp {
[INFO] [stdout] 321 +         if let Some(comps::consts::EPSSI) = inst.temp {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gcbs`
[INFO] [stdout]    --> src/comps/mos.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |         let gcbs = omega * self.op.cbs;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 929 |         let _gcbs = omega * self.op.cbs;
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 929 -         let gcbs = omega * self.op.cbs;
[INFO] [stdout] 929 +         let comps::consts::EPSSI = omega * self.op.cbs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gcbd`
[INFO] [stdout]    --> src/comps/mos.rs:930:13
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let gcbd = omega * self.op.cbd;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let _gcbd = omega * self.op.cbd;
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 930 -         let gcbd = omega * self.op.cbd;
[INFO] [stdout] 930 +         let comps::consts::EPSSI = omega * self.op.cbd;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cjunc` is assigned to, but never used
[INFO] [stdout]    --> src/comps/diode.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut cjunc = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cjunc` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 168 -         let mut cjunc = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout] 168 +         let mut comps::consts::EPSSI = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cjunc` is never read
[INFO] [stdout]    --> src/comps/diode.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |         cjunc *= 1.0 + model.m * (400e-6 * (temp - consts::TEMP_REF) - gmanew);
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m_`
[INFO] [stdout]    --> src/elab.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |         } else if let Some(m_) = self.defs.mos1.models.get(&model) { 
[INFO] [stdout]     |                            ^^ help: if this is intentional, prefix it with an underscore: `_m_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find` is never used
[INFO] [stdout]   --> src/analysis.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl<NumT: SpNum> Variables<NumT> {
[INFO] [stdout]    | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn find<S: Into<String>>(&self, name: S) -> Option<VarIndex> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get` is never used
[INFO] [stdout]    --> src/analysis.rs:366:19
[INFO] [stdout]     |
[INFO] [stdout] 355 | impl OpResult {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub(crate) fn get<S: Into<String>>(&self, signame: S) -> SpResult<f64> {
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/analysis.rs:391:10
[INFO] [stdout]     |
[INFO] [stdout] 391 |     TRAN(&'a TranOptions, &'a TranState),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 391 -     TRAN(&'a TranOptions, &'a TranState),
[INFO] [stdout] 391 +     TRAN((), &'a TranState),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TRAP` is never constructed
[INFO] [stdout]    --> src/analysis.rs:397:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub(crate) enum NumericalIntegration {
[INFO] [stdout]     |                 -------------------- variant in this enum
[INFO] [stdout] 396 |     BE,
[INFO] [stdout] 397 |     TRAP,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `s` is never used
[INFO] [stdout]   --> src/circuit.rs:61:15
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub(crate) fn s<S: Into<String>>(from: S) -> String {
[INFO] [stdout]    |               ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CompTrait` is never used
[INFO] [stdout]    --> src/circuit.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | trait CompTrait {}
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> src/comps/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub(crate) trait Component {
[INFO] [stdout]    |                  --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn validate(&self) -> SpResult<()> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `v` is never read
[INFO] [stdout]    --> src/comps/mod.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct CapOpPoint {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 167 |     v: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CapOpPoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `m` is never read
[INFO] [stdout]    --> src/comps/mos.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub struct Mos1InstanceParams {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 252 |     m: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mos1InstanceParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `temp`, `kp_t`, and `leff` are never read
[INFO] [stdout]    --> src/comps/mos.rs:302:16
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub(crate) struct Mos1InternalParams {
[INFO] [stdout]     |                   ------------------ fields in this struct
[INFO] [stdout] 302 |     pub(crate) temp: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub(crate) kp_t: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub(crate) leff: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `area` and `vcrit` are never read
[INFO] [stdout]    --> src/comps/mos.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 489 | pub(crate) struct MosJunction {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 490 |     area: f64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     vcrit: f64,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ids` and `vds` are never read
[INFO] [stdout]    --> src/comps/mos.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub(crate) struct Mos1OpPoint {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 527 |     ids: f64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 528 |     vgs: f64,
[INFO] [stdout] 529 |     vds: f64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mos1OpPoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `orig` is never read
[INFO] [stdout]   --> src/sparse21/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Element<T: Num> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 75 |     orig: (usize, usize, T),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Element` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MAX` should have a snake case name
[INFO] [stdout]   --> src/comps/cmath.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) fn MAX(a: f64, b: f64) -> f64 {
[INFO] [stdout]    |               ^^^ help: convert the identifier to snake case: `max`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MIN` should have a snake case name
[INFO] [stdout]   --> src/comps/cmath.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) fn MIN(a: f64, b: f64) -> f64 {
[INFO] [stdout]    |               ^^^ help: convert the identifier to snake case: `min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/defs.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/elab.rs:97:28
[INFO] [stdout]    |
[INFO] [stdout] 97 |             None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 97 -             None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout] 97 +             None => panic!("Parameters not defined: {}", params),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/elab.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 151 -                 None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout] 151 +                 None => panic!("Parameters not defined: {}", params),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/elab.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |             panic!(format!("Model not defined: {}", model));
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 167 -             panic!(format!("Model not defined: {}", model));
[INFO] [stdout] 167 +             panic!("Model not defined: {}", model);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling spice21 v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `TranState`
[INFO] [stdout]   --> src/comps/mos.rs:14:67
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::analysis::{AnalysisInfo, ChargeInteg, Options, Stamps, TranState, VarIndex, Variables};
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/comps/diode.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `from_opt_type`
[INFO] [stdout]   --> src/comps/diode.rs:12:19
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::{attr, from_opt_type, sperror, SpNum, SpResult};
[INFO] [stdout]    |                   ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `AcOptions` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `AcOptions` in the type namespace is also re-exported here
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(ambiguous_glob_reexports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `OpResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `OpResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `TranOptions` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `TranOptions` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `TranResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `TranResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: ambiguous glob re-exports
[INFO] [stdout]    --> src/lib.rs:166:9
[INFO] [stdout]     |
[INFO] [stdout] 166 | pub use analysis::*;
[INFO] [stdout]     |         ^^^^^^^^^^^ the name `AcResult` in the type namespace is first re-exported here
[INFO] [stdout] 167 | pub use proto::*;
[INFO] [stdout]     |         -------- but the name `AcResult` in the type namespace is also re-exported here
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pbfact1`
[INFO] [stdout]    --> src/comps/mos.rs:153:13
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 153 |         let _pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 153 -         let pbfact1 = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout] 153 +         let comps::consts::EPSSI = -2.0 * vtnom * (1.5 * fact1.ln() + Q * arg1);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/comps/mos.rs:321:21
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if let Some(t) = inst.temp {
[INFO] [stdout]     |                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 321 |         if let Some(_t) = inst.temp {
[INFO] [stdout]     |                     +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 321 -         if let Some(t) = inst.temp {
[INFO] [stdout] 321 +         if let Some(comps::consts::EPSSI) = inst.temp {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gcbs`
[INFO] [stdout]    --> src/comps/mos.rs:929:13
[INFO] [stdout]     |
[INFO] [stdout] 929 |         let gcbs = omega * self.op.cbs;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 929 |         let _gcbs = omega * self.op.cbs;
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 929 -         let gcbs = omega * self.op.cbs;
[INFO] [stdout] 929 +         let comps::consts::EPSSI = omega * self.op.cbs;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `gcbd`
[INFO] [stdout]    --> src/comps/mos.rs:930:13
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let gcbd = omega * self.op.cbd;
[INFO] [stdout]     |             ^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 930 |         let _gcbd = omega * self.op.cbd;
[INFO] [stdout]     |             +
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 930 -         let gcbd = omega * self.op.cbd;
[INFO] [stdout] 930 +         let comps::consts::EPSSI = omega * self.op.cbd;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `cjunc` is assigned to, but never used
[INFO] [stdout]    --> src/comps/diode.rs:168:17
[INFO] [stdout]     |
[INFO] [stdout] 168 |         let mut cjunc = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout]     |                 ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: consider using `_cjunc` instead
[INFO] [stdout] help: you might have meant to pattern match on the similarly named constant `EPSSI`
[INFO] [stdout]     |
[INFO] [stdout] 168 -         let mut cjunc = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout] 168 +         let mut comps::consts::EPSSI = model.cj0 / (1.0 + model.m * (400e-6 * (tnom - consts::TEMP_REF) - gmaold));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `cjunc` is never read
[INFO] [stdout]    --> src/comps/diode.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 171 |         cjunc *= 1.0 + model.m * (400e-6 * (temp - consts::TEMP_REF) - gmanew);
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: maybe it is overwritten before being read?
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `m_`
[INFO] [stdout]    --> src/elab.rs:147:28
[INFO] [stdout]     |
[INFO] [stdout] 147 |         } else if let Some(m_) = self.defs.mos1.models.get(&model) { 
[INFO] [stdout]     |                            ^^ help: if this is intentional, prefix it with an underscore: `_m_`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/proto.rs:338:13
[INFO] [stdout]     |
[INFO] [stdout] 338 |         let d: Circuit = toml::from_str(&s).unwrap();
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `find` is never used
[INFO] [stdout]   --> src/analysis.rs:83:12
[INFO] [stdout]    |
[INFO] [stdout] 49 | impl<NumT: SpNum> Variables<NumT> {
[INFO] [stdout]    | --------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub fn find<S: Into<String>>(&self, name: S) -> Option<VarIndex> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/analysis.rs:391:10
[INFO] [stdout]     |
[INFO] [stdout] 391 |     TRAN(&'a TranOptions, &'a TranState),
[INFO] [stdout]     |     ---- ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]     |
[INFO] [stdout] 391 -     TRAN(&'a TranOptions, &'a TranState),
[INFO] [stdout] 391 +     TRAN((), &'a TranState),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `TRAP` is never constructed
[INFO] [stdout]    --> src/analysis.rs:397:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | pub(crate) enum NumericalIntegration {
[INFO] [stdout]     |                 -------------------- variant in this enum
[INFO] [stdout] 396 |     BE,
[INFO] [stdout] 397 |     TRAP,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `CompTrait` is never used
[INFO] [stdout]    --> src/circuit.rs:121:7
[INFO] [stdout]     |
[INFO] [stdout] 121 | trait CompTrait {}
[INFO] [stdout]     |       ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]   --> src/comps/mod.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub(crate) trait Component {
[INFO] [stdout]    |                  --------- method in this trait
[INFO] [stdout] ...
[INFO] [stdout] 82 |     fn validate(&self) -> SpResult<()> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `v` is never read
[INFO] [stdout]    --> src/comps/mod.rs:167:5
[INFO] [stdout]     |
[INFO] [stdout] 166 | struct CapOpPoint {
[INFO] [stdout]     |        ---------- field in this struct
[INFO] [stdout] 167 |     v: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `CapOpPoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `m` is never read
[INFO] [stdout]    --> src/comps/mos.rs:252:5
[INFO] [stdout]     |
[INFO] [stdout] 251 | pub struct Mos1InstanceParams {
[INFO] [stdout]     |            ------------------ field in this struct
[INFO] [stdout] 252 |     m: f64,
[INFO] [stdout]     |     ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mos1InstanceParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `temp`, `kp_t`, and `leff` are never read
[INFO] [stdout]    --> src/comps/mos.rs:302:16
[INFO] [stdout]     |
[INFO] [stdout] 301 | pub(crate) struct Mos1InternalParams {
[INFO] [stdout]     |                   ------------------ fields in this struct
[INFO] [stdout] 302 |     pub(crate) temp: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 305 |     pub(crate) kp_t: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub(crate) leff: f64,
[INFO] [stdout]     |                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `area` and `vcrit` are never read
[INFO] [stdout]    --> src/comps/mos.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 489 | pub(crate) struct MosJunction {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 490 |     area: f64,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 494 |     vcrit: f64,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ids` and `vds` are never read
[INFO] [stdout]    --> src/comps/mos.rs:527:5
[INFO] [stdout]     |
[INFO] [stdout] 526 | pub(crate) struct Mos1OpPoint {
[INFO] [stdout]     |                   ----------- fields in this struct
[INFO] [stdout] 527 |     ids: f64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout] 528 |     vgs: f64,
[INFO] [stdout] 529 |     vds: f64,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mos1OpPoint` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `orig` is never read
[INFO] [stdout]   --> src/sparse21/mod.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub struct Element<T: Num> {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 75 |     orig: (usize, usize, T),
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Element` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MAX` should have a snake case name
[INFO] [stdout]   --> src/comps/cmath.rs:13:15
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub(crate) fn MAX(a: f64, b: f64) -> f64 {
[INFO] [stdout]    |               ^^^ help: convert the identifier to snake case: `max`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `MIN` should have a snake case name
[INFO] [stdout]   --> src/comps/cmath.rs:16:15
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub(crate) fn MIN(a: f64, b: f64) -> f64 {
[INFO] [stdout]    |               ^^^ help: convert the identifier to snake case: `min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/defs.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn read(&self) -> RwLockReadGuard<T> {
[INFO] [stdout]    |                 ^^^^^     ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub fn read(&self) -> RwLockReadGuard<'_, T> {
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/elab.rs:97:28
[INFO] [stdout]    |
[INFO] [stdout] 97 |             None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 97 -             None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout] 97 +             None => panic!("Parameters not defined: {}", params),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/elab.rs:151:32
[INFO] [stdout]     |
[INFO] [stdout] 151 |                 None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 151 -                 None => panic!(format!("Parameters not defined: {}", params)),
[INFO] [stdout] 151 +                 None => panic!("Parameters not defined: {}", params),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/elab.rs:167:20
[INFO] [stdout]     |
[INFO] [stdout] 167 |             panic!(format!("Model not defined: {}", model));
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 167 -             panic!(format!("Model not defined: {}", model));
[INFO] [stdout] 167 +             panic!("Model not defined: {}", model);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 21.53s
[INFO] running `Command { std: "docker" "inspect" "afea9e50c3f9674988df7d26ebc1bc2ed40c39b16605fd41ff369799ce838ea5", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afea9e50c3f9674988df7d26ebc1bc2ed40c39b16605fd41ff369799ce838ea5", kill_on_drop: false }`
[INFO] [stdout] afea9e50c3f9674988df7d26ebc1bc2ed40c39b16605fd41ff369799ce838ea5
