[INFO] cloning repository https://github.com/phansel/battgen
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/phansel/battgen" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphansel%2Fbattgen", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphansel%2Fbattgen'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c20c16c281c802540be402c5d6a9bc7590fc522d
[INFO] checking phansel/battgen against master#5518eaa946291f00471af8b254b2a1715f234882 for pr-120393-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphansel%2Fbattgen" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/phansel/battgen on toolchain 5518eaa946291f00471af8b254b2a1715f234882
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/phansel/battgen
[INFO] finished tweaking git repo https://github.com/phansel/battgen
[INFO] tweaked toml for git repo https://github.com/phansel/battgen written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/phansel/battgen already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hermit-abi v0.1.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 90bdcb305e358134a76842f71c77c7248052c1f159e317e93e031dcd1f65cdc3
[INFO] running `Command { std: "docker" "start" "-a" "90bdcb305e358134a76842f71c77c7248052c1f159e317e93e031dcd1f65cdc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90bdcb305e358134a76842f71c77c7248052c1f159e317e93e031dcd1f65cdc3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90bdcb305e358134a76842f71c77c7248052c1f159e317e93e031dcd1f65cdc3", kill_on_drop: false }`
[INFO] [stdout] 90bdcb305e358134a76842f71c77c7248052c1f159e317e93e031dcd1f65cdc3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+5518eaa946291f00471af8b254b2a1715f234882" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] da3f4b57cf0df4c6719b2b6d9c621c3a94947d573d0b31ca1628ca61c7e67c14
[INFO] running `Command { std: "docker" "start" "-a" "da3f4b57cf0df4c6719b2b6d9c621c3a94947d573d0b31ca1628ca61c7e67c14", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.8
[INFO] [stderr]    Compiling syn v1.0.14
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking colored v1.9.3
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]     Checking ron v0.5.1
[INFO] [stderr]     Checking battgen v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]   --> src/main.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/main.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ron::value::Value`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use ron::value::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `fs::File`
[INFO] [stdout]   --> src/main.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::{collections::HashMap, fs::File};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 |             if ((self.series % x) == 0) {
[INFO] [stdout]     |                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 143 -             if ((self.series % x) == 0) {
[INFO] [stdout] 143 +             if (self.series % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:155:16
[INFO] [stdout]     |
[INFO] [stdout] 155 |             if ((self.parallel % x) == 0) {
[INFO] [stdout]     |                ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -             if ((self.parallel % x) == 0) {
[INFO] [stdout] 155 +             if (self.parallel % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::*`
[INFO] [stdout]   --> src/thermal.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | const PI: f32 = (3.1415926 as f32);
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 - const PI: f32 = (3.1415926 as f32);
[INFO] [stdout] 52 + const PI: f32 = 3.1415926 as f32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]   --> src/main.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/main.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ron::value::Value`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use ron::value::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `fs::File`
[INFO] [stdout]   --> src/main.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::{collections::HashMap, fs::File};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 |             if ((self.series % x) == 0) {
[INFO] [stdout]     |                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 143 -             if ((self.series % x) == 0) {
[INFO] [stdout] 143 +             if (self.series % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:155:16
[INFO] [stdout]     |
[INFO] [stdout] 155 |             if ((self.parallel % x) == 0) {
[INFO] [stdout]     |                ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -             if ((self.parallel % x) == 0) {
[INFO] [stdout] 155 +             if (self.parallel % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::*`
[INFO] [stdout]   --> src/thermal.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | const PI: f32 = (3.1415926 as f32);
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 - const PI: f32 = (3.1415926 as f32);
[INFO] [stdout] 52 + const PI: f32 = 3.1415926 as f32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut ma: Vec<ModuleArray> = Vec::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let mut ma = ModuleArray::new(m, s, p);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/mechanical.rs:55:60
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |                                                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]    --> src/io.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]    --> src/io.rs:114:43
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let mut topology = matches.value_of("topology").unwrap_or(default_topo);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut topo_arr: Vec<&str> = topology.split("S").collect();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PARALLEL_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const MAX_PARALLEL_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SERIES_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const MAX_SERIES_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_cell_count`, `print_possible_submodules`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Module {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_cell_count(self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn print_possible_submodules(self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print_topology`, `get_kwh_nominal`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ModuleArray {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn print_topology(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn get_kwh_nominal(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_module_count`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl Battery {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Battery {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn get_module_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `defaults_from_chem` is never used
[INFO] [stdout]    --> src/electrical.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn defaults_from_chem(chem: &Chem) -> (f32, f32, f32, f32, f32, f32, f32, f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `peak_current` and `soh` are never read
[INFO] [stdout]    --> src/electrical.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ElectricalParams {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 368 |     peak_current: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 369 |     // state of health
[INFO] [stdout] 370 |     soh: f32,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElectricalParams` 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: associated functions `new_rec_cell` and `new_cyl_cell` are never used
[INFO] [stdout]   --> src/mechanical.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Module {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new_rec_cell(l: f32, w: f32, h: f32, m: f32, r: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_accel` is never read
[INFO] [stdout]    --> src/mechanical.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct MechanicalParams {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 127 |     // linear and angular xyz
[INFO] [stdout] 128 |     peak_accel: [f32; 6],
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MechanicalParams` 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 `density`, `specific_heat`, `freezing_point`, `boiling_point`, `flammable`, and `conductive` are never read
[INFO] [stdout]   --> src/thermal.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Coolant {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 31 |     density: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     specific_heat: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     freezing_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     boiling_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     flammable: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 36 |     conductive: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coolant` 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: struct `CoolantMix` is never constructed
[INFO] [stdout]   --> src/thermal.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CoolantMix {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coolant`, `flow_rate`, and `heat_k` are never read
[INFO] [stdout]   --> src/thermal.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ThermalParams {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 50 |     coolant: Coolant,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 51 |     flow_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     heat_k: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThermalParams` 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: function `write_module` is never used
[INFO] [stdout]    --> src/io.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]    --> src/electrical.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |     let current_max_C = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:56:44
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut ma: Vec<ModuleArray> = Vec::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let mut ma = ModuleArray::new(m, s, p);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/mechanical.rs:55:60
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |                                                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]    --> src/io.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]    --> src/io.rs:114:43
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let mut topology = matches.value_of("topology").unwrap_or(default_topo);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut topo_arr: Vec<&str> = topology.split("S").collect();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PARALLEL_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const MAX_PARALLEL_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SERIES_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const MAX_SERIES_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_cell_count`, `print_possible_submodules`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Module {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_cell_count(self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn print_possible_submodules(self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print_topology`, `get_kwh_nominal`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ModuleArray {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn print_topology(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn get_kwh_nominal(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_module_count`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl Battery {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Battery {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn get_module_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `defaults_from_chem` is never used
[INFO] [stdout]    --> src/electrical.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn defaults_from_chem(chem: &Chem) -> (f32, f32, f32, f32, f32, f32, f32, f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `peak_current` and `soh` are never read
[INFO] [stdout]    --> src/electrical.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ElectricalParams {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 368 |     peak_current: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 369 |     // state of health
[INFO] [stdout] 370 |     soh: f32,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElectricalParams` 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: associated functions `new_rec_cell` and `new_cyl_cell` are never used
[INFO] [stdout]   --> src/mechanical.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Module {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new_rec_cell(l: f32, w: f32, h: f32, m: f32, r: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_accel` is never read
[INFO] [stdout]    --> src/mechanical.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct MechanicalParams {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 127 |     // linear and angular xyz
[INFO] [stdout] 128 |     peak_accel: [f32; 6],
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MechanicalParams` 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 `density`, `specific_heat`, `freezing_point`, `boiling_point`, `flammable`, and `conductive` are never read
[INFO] [stdout]   --> src/thermal.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Coolant {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 31 |     density: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     specific_heat: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     freezing_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     boiling_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     flammable: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 36 |     conductive: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coolant` 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: struct `CoolantMix` is never constructed
[INFO] [stdout]   --> src/thermal.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CoolantMix {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coolant`, `flow_rate`, and `heat_k` are never read
[INFO] [stdout]   --> src/thermal.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ThermalParams {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 50 |     coolant: Coolant,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 51 |     flow_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     heat_k: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThermalParams` 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: function `write_module` is never used
[INFO] [stdout]    --> src/io.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]    --> src/electrical.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |     let current_max_C = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:56:44
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 16.61s
[INFO] running `Command { std: "docker" "inspect" "da3f4b57cf0df4c6719b2b6d9c621c3a94947d573d0b31ca1628ca61c7e67c14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da3f4b57cf0df4c6719b2b6d9c621c3a94947d573d0b31ca1628ca61c7e67c14", kill_on_drop: false }`
[INFO] [stdout] da3f4b57cf0df4c6719b2b6d9c621c3a94947d573d0b31ca1628ca61c7e67c14
[INFO] checking phansel/battgen against try#7622c0f807a4e13c4db886a1681bf343795692df+rustflags=-Dnon_local_definitions for pr-120393-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphansel%2Fbattgen" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/phansel/battgen on toolchain 7622c0f807a4e13c4db886a1681bf343795692df
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/phansel/battgen
[INFO] finished tweaking git repo https://github.com/phansel/battgen
[INFO] tweaked toml for git repo https://github.com/phansel/battgen written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/phansel/battgen already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] d19a93d78e1d1961fe377c80b0e2c7ac98704b71dfa7cb373a7ab0bf54daebda
[INFO] running `Command { std: "docker" "start" "-a" "d19a93d78e1d1961fe377c80b0e2c7ac98704b71dfa7cb373a7ab0bf54daebda", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "d19a93d78e1d1961fe377c80b0e2c7ac98704b71dfa7cb373a7ab0bf54daebda", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d19a93d78e1d1961fe377c80b0e2c7ac98704b71dfa7cb373a7ab0bf54daebda", kill_on_drop: false }`
[INFO] [stdout] d19a93d78e1d1961fe377c80b0e2c7ac98704b71dfa7cb373a7ab0bf54daebda
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dnon_local_definitions" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+7622c0f807a4e13c4db886a1681bf343795692df" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a76ef074c9abc7badbae5f77f7b3e07c79e1c68c477a6bfbfd7a39db954917ce
[INFO] running `Command { std: "docker" "start" "-a" "a76ef074c9abc7badbae5f77f7b3e07c79e1c68c477a6bfbfd7a39db954917ce", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.8
[INFO] [stderr]    Compiling syn v1.0.14
[INFO] [stderr]    Compiling libc v0.2.67
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]     Checking base64 v0.10.1
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]    Compiling quote v1.0.2
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]     Checking colored v1.9.3
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]     Checking ron v0.5.1
[INFO] [stderr]     Checking battgen v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]   --> src/main.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/main.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ron::value::Value`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use ron::value::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `fs::File`
[INFO] [stdout]   --> src/main.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::{collections::HashMap, fs::File};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 |             if ((self.series % x) == 0) {
[INFO] [stdout]     |                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 143 -             if ((self.series % x) == 0) {
[INFO] [stdout] 143 +             if (self.series % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:155:16
[INFO] [stdout]     |
[INFO] [stdout] 155 |             if ((self.parallel % x) == 0) {
[INFO] [stdout]     |                ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -             if ((self.parallel % x) == 0) {
[INFO] [stdout] 155 +             if (self.parallel % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::*`
[INFO] [stdout]   --> src/thermal.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | const PI: f32 = (3.1415926 as f32);
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 - const PI: f32 = (3.1415926 as f32);
[INFO] [stdout] 52 + const PI: f32 = 3.1415926 as f32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `SubCommand`
[INFO] [stdout]   --> src/main.rs:23:22
[INFO] [stdout]    |
[INFO] [stdout] 23 | use clap::{App, Arg, SubCommand};
[INFO] [stdout]    |                      ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Serialize`
[INFO] [stdout]   --> src/main.rs:26:26
[INFO] [stdout]    |
[INFO] [stdout] 26 | use serde::{Deserialize, Serialize};
[INFO] [stdout]    |                          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ron::value::Value`
[INFO] [stdout]   --> src/main.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | use ron::value::Value;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `collections::HashMap`, `fs::File`
[INFO] [stdout]   --> src/main.rs:34:11
[INFO] [stdout]    |
[INFO] [stdout] 34 | use std::{collections::HashMap, fs::File};
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:143:16
[INFO] [stdout]     |
[INFO] [stdout] 143 |             if ((self.series % x) == 0) {
[INFO] [stdout]     |                ^                      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 143 -             if ((self.series % x) == 0) {
[INFO] [stdout] 143 +             if (self.series % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/electrical.rs:155:16
[INFO] [stdout]     |
[INFO] [stdout] 155 |             if ((self.parallel % x) == 0) {
[INFO] [stdout]     |                ^                        ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 155 -             if ((self.parallel % x) == 0) {
[INFO] [stdout] 155 +             if (self.parallel % x) == 0 {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::*`
[INFO] [stdout]   --> src/thermal.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crate::*;
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/main.rs:52:17
[INFO] [stdout]    |
[INFO] [stdout] 52 | const PI: f32 = (3.1415926 as f32);
[INFO] [stdout]    |                 ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 52 - const PI: f32 = (3.1415926 as f32);
[INFO] [stdout] 52 + const PI: f32 = 3.1415926 as f32;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut ma: Vec<ModuleArray> = Vec::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let mut ma = ModuleArray::new(m, s, p);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/mechanical.rs:55:60
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |                                                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut ma: Vec<ModuleArray> = Vec::new();
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/electrical.rs:244:13
[INFO] [stdout]     |
[INFO] [stdout] 244 |         let mut ma = ModuleArray::new(m, s, p);
[INFO] [stdout]     |             ----^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `v`
[INFO] [stdout]   --> src/mechanical.rs:55:60
[INFO] [stdout]    |
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |                                                            ^ help: if this is intentional, prefix it with an underscore: `_v`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]    --> src/io.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]    --> src/io.rs:114:43
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `module`
[INFO] [stdout]    --> src/io.rs:114:21
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                     ^^^^^^ help: if this is intentional, prefix it with an underscore: `_module`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let mut topology = matches.value_of("topology").unwrap_or(default_topo);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut topo_arr: Vec<&str> = topology.split("S").collect();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `filename`
[INFO] [stdout]    --> src/io.rs:114:43
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_filename`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PARALLEL_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const MAX_PARALLEL_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SERIES_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const MAX_SERIES_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_cell_count`, `print_possible_submodules`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Module {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_cell_count(self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn print_possible_submodules(self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print_topology`, `get_kwh_nominal`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ModuleArray {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn print_topology(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn get_kwh_nominal(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_module_count`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl Battery {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Battery {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn get_module_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `defaults_from_chem` is never used
[INFO] [stdout]    --> src/electrical.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn defaults_from_chem(chem: &Chem) -> (f32, f32, f32, f32, f32, f32, f32, f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `peak_current` and `soh` are never read
[INFO] [stdout]    --> src/electrical.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ElectricalParams {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 368 |     peak_current: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 369 |     // state of health
[INFO] [stdout] 370 |     soh: f32,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElectricalParams` 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: associated functions `new_rec_cell` and `new_cyl_cell` are never used
[INFO] [stdout]   --> src/mechanical.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Module {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new_rec_cell(l: f32, w: f32, h: f32, m: f32, r: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_accel` is never read
[INFO] [stdout]    --> src/mechanical.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct MechanicalParams {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 127 |     // linear and angular xyz
[INFO] [stdout] 128 |     peak_accel: [f32; 6],
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MechanicalParams` 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 `density`, `specific_heat`, `freezing_point`, `boiling_point`, `flammable`, and `conductive` are never read
[INFO] [stdout]   --> src/thermal.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Coolant {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 31 |     density: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     specific_heat: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     freezing_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     boiling_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     flammable: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 36 |     conductive: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coolant` 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: struct `CoolantMix` is never constructed
[INFO] [stdout]   --> src/thermal.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CoolantMix {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coolant`, `flow_rate`, and `heat_k` are never read
[INFO] [stdout]   --> src/thermal.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ThermalParams {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 50 |     coolant: Coolant,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 51 |     flow_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     heat_k: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThermalParams` 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: function `write_module` is never used
[INFO] [stdout]    --> src/io.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Module`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:81:30
[INFO] [stdout]    |
[INFO] [stdout] 81 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Shape`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Term`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_ModType`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/electrical.rs:105:30
[INFO] [stdout]     |
[INFO] [stdout] 105 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Chem`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]    --> src/electrical.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |     let current_max_C = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:56:44
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/io.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_InputModule`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:131:9
[INFO] [stdout]     |
[INFO] [stdout] 131 |     let mut topology = matches.value_of("topology").unwrap_or(default_topo);
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:133:9
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let mut topo_arr: Vec<&str> = topology.split("S").collect();
[INFO] [stdout]     |         ----^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_PARALLEL_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:23:7
[INFO] [stdout]    |
[INFO] [stdout] 23 | const MAX_PARALLEL_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `MAX_SERIES_SUB` is never used
[INFO] [stdout]   --> src/electrical.rs:24:7
[INFO] [stdout]    |
[INFO] [stdout] 24 | const MAX_SERIES_SUB: i32 = 25;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_cell_count`, `print_possible_submodules`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:134:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl Module {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 134 |     pub fn get_cell_count(self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn print_possible_submodules(self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 169 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `print_topology`, `get_kwh_nominal`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:193:12
[INFO] [stdout]     |
[INFO] [stdout] 176 | impl ModuleArray {
[INFO] [stdout]     | ---------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 193 |     pub fn print_topology(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 209 |     pub fn get_kwh_nominal(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 224 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `get_module_count`, `get_cell_count`, and `get_ir_dc` are never used
[INFO] [stdout]    --> src/electrical.rs:232:12
[INFO] [stdout]     |
[INFO] [stdout] 231 | impl Battery {
[INFO] [stdout]     | ------------ associated items in this implementation
[INFO] [stdout] 232 |     pub fn new() -> Battery {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 312 |     pub fn get_module_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 320 |     pub fn get_cell_count(&self) -> i32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 325 |     pub fn get_ir_dc(&self, soc: &f32) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `defaults_from_chem` is never used
[INFO] [stdout]    --> src/electrical.rs:336:8
[INFO] [stdout]     |
[INFO] [stdout] 336 | pub fn defaults_from_chem(chem: &Chem) -> (f32, f32, f32, f32, f32, f32, f32, f32) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `peak_current` and `soh` are never read
[INFO] [stdout]    --> src/electrical.rs:368:5
[INFO] [stdout]     |
[INFO] [stdout] 364 | pub struct ElectricalParams {
[INFO] [stdout]     |            ---------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 368 |     peak_current: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout] 369 |     // state of health
[INFO] [stdout] 370 |     soh: f32,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ElectricalParams` 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: associated functions `new_rec_cell` and `new_cyl_cell` are never used
[INFO] [stdout]   --> src/mechanical.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Module {
[INFO] [stdout]    | ----------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 29 |     pub fn new_rec_cell(l: f32, w: f32, h: f32, m: f32, r: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 |     pub fn new_cyl_cell(diam: f32, l: f32, m: f32, r: f32, v: f32, q: f32, chem: Chem) -> Module {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_accel` is never read
[INFO] [stdout]    --> src/mechanical.rs:128:5
[INFO] [stdout]     |
[INFO] [stdout] 126 | pub struct MechanicalParams {
[INFO] [stdout]     |            ---------------- field in this struct
[INFO] [stdout] 127 |     // linear and angular xyz
[INFO] [stdout] 128 |     peak_accel: [f32; 6],
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `MechanicalParams` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 6 previous errors; 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `density`, `specific_heat`, `freezing_point`, `boiling_point`, `flammable`, and `conductive` are never read
[INFO] [stdout]   --> src/thermal.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub struct Coolant {
[INFO] [stdout]    |            ------- fields in this struct
[INFO] [stdout] 31 |     density: f32,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 32 |     specific_heat: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 33 |     freezing_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     boiling_point: f32,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 35 |     flammable: bool,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 36 |     conductive: bool,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Coolant` 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: struct `CoolantMix` is never constructed
[INFO] [stdout]   --> src/thermal.rs:42:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub struct CoolantMix {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `coolant`, `flow_rate`, and `heat_k` are never read
[INFO] [stdout]   --> src/thermal.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | pub struct ThermalParams {
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] 50 |     coolant: Coolant,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] 51 |     flow_rate: f32,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 52 |     heat_k: f32,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ThermalParams` 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: function `write_module` is never used
[INFO] [stdout]    --> src/io.rs:114:8
[INFO] [stdout]     |
[INFO] [stdout] 114 | pub fn write_module(module: &InputModule, filename: &str) {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:27:30
[INFO] [stdout]    |
[INFO] [stdout] 27 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Module`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: requested on the command line with `-D non-local-definitions`
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:81:30
[INFO] [stdout]    |
[INFO] [stdout] 81 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Shape`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:89:30
[INFO] [stdout]    |
[INFO] [stdout] 89 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Term`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/electrical.rs:97:30
[INFO] [stdout]    |
[INFO] [stdout] 97 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]    |                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_ModType`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]    --> src/electrical.rs:105:30
[INFO] [stdout]     |
[INFO] [stdout] 105 | #[derive(Copy, Clone, Debug, Deserialize)]
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_Chem`
[INFO] [stdout]     = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]     = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]     = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]    --> src/electrical.rs:347:9
[INFO] [stdout]     |
[INFO] [stdout] 347 |     let current_max_C = 2.0;
[INFO] [stdout]     |         ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:30:44
[INFO] [stdout]    |
[INFO] [stdout] 30 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `current_max_C` should have a snake case name
[INFO] [stdout]   --> src/mechanical.rs:56:44
[INFO] [stdout]    |
[INFO] [stdout] 56 |         let (vmin, vnom, vmax, cycle_life, current_max_C, specific_heat, temp_max, temp_min) =
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^ help: convert the identifier to snake case (notice the capitalization): `current_max_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: non-local `impl` definition, they should be avoided as they go against expectation
[INFO] [stdout]   --> src/io.rs:28:24
[INFO] [stdout]    |
[INFO] [stdout] 28 | #[derive(Clone, Debug, Deserialize)]
[INFO] [stdout]    |                        ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: move this `impl` block outside the of the current constant `_IMPL_DESERIALIZE_FOR_InputModule`
[INFO] [stdout]    = note: an `impl` definition is non-local if it is nested inside an item and neither the type nor the trait are at the same nesting level as the `impl` block
[INFO] [stdout]    = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue <https://github.com/rust-lang/rust/issues/120363>
[INFO] [stdout]    = note: this error originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `battgen` (bin "battgen") due to 7 previous errors; 31 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: aborting due to 6 previous errors; 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `battgen` (bin "battgen" test) due to 7 previous errors; 31 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "a76ef074c9abc7badbae5f77f7b3e07c79e1c68c477a6bfbfd7a39db954917ce", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a76ef074c9abc7badbae5f77f7b3e07c79e1c68c477a6bfbfd7a39db954917ce", kill_on_drop: false }`
[INFO] [stdout] a76ef074c9abc7badbae5f77f7b3e07c79e1c68c477a6bfbfd7a39db954917ce
