[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#1f12b9b0fdbe735968ac002792a720f0ba4faca6 for crater-rollup-uwu [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fphansel%2Fbattgen" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/phansel/battgen on toolchain 1f12b9b0fdbe735968ac002792a720f0ba4faca6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "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-5-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" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f45923d19012e83340998f80c0749b34cc8f273083805bb47938da56c3d5fb63 [INFO] running `Command { std: "docker" "start" "-a" "f45923d19012e83340998f80c0749b34cc8f273083805bb47938da56c3d5fb63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f45923d19012e83340998f80c0749b34cc8f273083805bb47938da56c3d5fb63", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f45923d19012e83340998f80c0749b34cc8f273083805bb47938da56c3d5fb63", kill_on_drop: false }` [INFO] [stdout] f45923d19012e83340998f80c0749b34cc8f273083805bb47938da56c3d5fb63 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+1f12b9b0fdbe735968ac002792a720f0ba4faca6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f5d2c3d559e72f5256746c6863f0891d0b88a47213cc47254aa57005325bf78d [INFO] running `Command { std: "docker" "start" "-a" "f5d2c3d559e72f5256746c6863f0891d0b88a47213cc47254aa57005325bf78d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.8 [INFO] [stderr] Compiling unicode-xid v0.2.0 [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 unicode-width v0.1.7 [INFO] [stderr] Checking strsim v0.8.0 [INFO] [stderr] Checking ansi_term v0.11.0 [INFO] [stderr] Checking vec_map v0.8.1 [INFO] [stderr] Checking textwrap v0.11.0 [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` and `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` and `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 = 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 = 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: multiple fields are never read [INFO] [stdout] --> src/electrical.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Module { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | pub input_type: ModType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 32 | pub chem: Chem, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub termination: Term, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 38 | pub vmin: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | pub vmax: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub rnom: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 46 | // continuous maximum current in amps according to manufacturer [INFO] [stdout] 47 | pub max_current_continuous: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub specific_heat: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 51 | // to 80% SoH at 1C charge/discharge [INFO] [stdout] 52 | pub cycle_life: f32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 53 | // KELVIN [INFO] [stdout] 54 | pub temp_max: f32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub temp_min: f32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Module` 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 `e_params`, `m_params`, and `t_params` are never read [INFO] [stdout] --> src/electrical.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct Battery { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 64 | pub e_params: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 65 | pub m_params: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 66 | pub t_params: Option, [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: 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: 33 warnings emitted [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: multiple fields are never read [INFO] [stdout] --> src/electrical.rs:31:9 [INFO] [stdout] | [INFO] [stdout] 28 | pub struct Module { [INFO] [stdout] | ------ fields in this struct [INFO] [stdout] ... [INFO] [stdout] 31 | pub input_type: ModType, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 32 | pub chem: Chem, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 37 | pub termination: Term, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 38 | pub vmin: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 39 | pub vmax: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 45 | pub rnom: f32, [INFO] [stdout] | ^^^^ [INFO] [stdout] 46 | // continuous maximum current in amps according to manufacturer [INFO] [stdout] 47 | pub max_current_continuous: f32, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 50 | pub specific_heat: f32, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 51 | // to 80% SoH at 1C charge/discharge [INFO] [stdout] 52 | pub cycle_life: f32, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 53 | // KELVIN [INFO] [stdout] 54 | pub temp_max: f32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 55 | pub temp_min: f32, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Module` 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 `e_params`, `m_params`, and `t_params` are never read [INFO] [stdout] --> src/electrical.rs:64:9 [INFO] [stdout] | [INFO] [stdout] 61 | pub struct Battery { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 64 | pub e_params: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 65 | pub m_params: Option, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 66 | pub t_params: Option, [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: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.39s [INFO] running `Command { std: "docker" "inspect" "f5d2c3d559e72f5256746c6863f0891d0b88a47213cc47254aa57005325bf78d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f5d2c3d559e72f5256746c6863f0891d0b88a47213cc47254aa57005325bf78d", kill_on_drop: false }` [INFO] [stdout] f5d2c3d559e72f5256746c6863f0891d0b88a47213cc47254aa57005325bf78d