[INFO] cloning repository https://github.com/djmango/flyverse
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/djmango/flyverse" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmango%2Fflyverse", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmango%2Fflyverse'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8499227fdcdc519844b30fb7a70e88860f72c2a6
[INFO] checking djmango/flyverse against c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40 for pr-160391-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdjmango%2Fflyverse" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/djmango/flyverse
[INFO] finished tweaking git repo https://github.com/djmango/flyverse
[INFO] tweaked toml for git repo https://github.com/djmango/flyverse written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/djmango/flyverse on toolchain c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/djmango/flyverse 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" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c0af3998e971868164375a7dfb646c9933ddd1a3bdb00fa2041266763dc1eeab" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c
[INFO] running `Command { std: "docker" "start" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c" "/opt/rustwide/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c" "/opt/rustwide/cargo-home/bin/cargo" "+c319ab3d7cf6bd67099fd3635f0e3c0fccb07e40" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling crossbeam-utils v0.8.23
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.21
[INFO] [stderr]    Compiling crossbeam-deque v0.8.8
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking either v1.18.0
[INFO] [stderr]     Checking memchr v2.8.3
[INFO] [stderr]     Checking memmap2 v0.9.11
[INFO] [stderr]    Compiling syn v3.0.5
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking flyverse v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: value assigned to `t_prop` is never read
[INFO] [stdout]    --> src/lif.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let mut t_prop = 0.0f64;
[INFO] [stdout]     |                          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 316 |             t_prop = t.elapsed().as_secs_f64();
[INFO] [stdout]     |             ---------------------------------- `t_prop` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t_prop` is never read
[INFO] [stdout]    --> src/lif.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let mut t_prop = 0.0f64;
[INFO] [stdout]     |                          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 316 |             t_prop = t.elapsed().as_secs_f64();
[INFO] [stdout]     |             ---------------------------------- `t_prop` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sample`
[INFO] [stdout]   --> src/analyze.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use trace::{Options, Sample};
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sample`
[INFO] [stdout]   --> src/analyze.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub use trace::{Options, Sample};
[INFO] [stdout]    |                          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `food`
[INFO] [stdout]    --> src/body.rs:413:9
[INFO] [stdout]     |
[INFO] [stdout] 413 |         food: V3,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_food`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t_prop` is never read
[INFO] [stdout]    --> src/lif.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let mut t_prop = 0.0f64;
[INFO] [stdout]     |                          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 316 |             t_prop = t.elapsed().as_secs_f64();
[INFO] [stdout]     |             ---------------------------------- `t_prop` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `food`
[INFO] [stdout]    --> src/body.rs:413:9
[INFO] [stdout]     |
[INFO] [stdout] 413 |         food: V3,
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_food`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `t_prop` is never read
[INFO] [stdout]    --> src/lif.rs:179:26
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let mut t_prop = 0.0f64;
[INFO] [stdout]     |                          ^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 316 |             t_prop = t.elapsed().as_secs_f64();
[INFO] [stdout]     |             ---------------------------------- `t_prop` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut mix = |b: u8, h: &mut u64| {
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mn`
[INFO] [stdout]    --> src/main.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 let mn = sim.v.iter().cloned().fold(f32::MAX, f32::min);
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_mn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `window_spikes` is never read
[INFO] [stdout]    --> src/main.rs:154:42
[INFO] [stdout]     |
[INFO] [stdout] 154 |             let mut window_spikes: u64 = 0;
[INFO] [stdout]     |                                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 159 |                 window_spikes = sim.total_spikes - before;
[INFO] [stdout]     |                 ----------------------------------------- `window_spikes` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `wall_dist` is never read
[INFO] [stdout]   --> src/analyze/hand.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct HandSample {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub wall_dist: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandSample` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Feeding` is never constructed
[INFO] [stdout]    --> src/body.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub enum Mode {
[INFO] [stdout]     |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 141 |     Feeding,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bytes` and `n` are never read
[INFO] [stdout]   --> src/brain.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Somas {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 15 |     pub bytes: Vec<u8>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub n: usize,
[INFO] [stdout]    |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REGION_NAMES` is never used
[INFO] [stdout]    --> src/groups.rs:183:11
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub const REGION_NAMES: [&str; 12] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `odor_channels` is never read
[INFO] [stdout]    --> src/groups.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct Groups {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub odor_channels: Vec<(String, bool, Vec<u32>)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/groups.rs:434:12
[INFO] [stdout]     |
[INFO] [stdout] 429 | impl Drive {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn empty() -> Drive {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `method` is never read
[INFO] [stdout]   --> src/httpd.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Request {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 14 |     pub method: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_found` is never used
[INFO] [stdout]    --> src/httpd.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn not_found(stream: &mut TcpStream) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/lif.rs:341:12
[INFO] [stdout]     |
[INFO] [stdout] 336 | impl StimGen {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `f32` is never used
[INFO] [stdout]   --> src/npy.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Npy {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn f32(&self, path: &Path) -> Result<&[f32]> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytemuck_f32` is never used
[INFO] [stdout]    --> src/npy.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn bytemuck_f32(raw: &[u8]) -> &[f32] {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counts` and `array_sha256` are never read
[INFO] [stdout]   --> src/pack.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Manifest {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub counts: serde_json::Value,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 27 |     #[serde(default)]
[INFO] [stdout] 28 |     pub array_sha256: serde_json::Value,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Manifest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pack_dir` is never used
[INFO] [stdout]    --> src/pack.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn pack_dir() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]    --> src/room.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 109 |     /// Is `p` inside the palm?
[INFO] [stdout] 110 |     pub fn contains(&self, p: V3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inside_table` is never used
[INFO] [stdout]    --> src/room.rs:482:12
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Room {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub fn inside_table(&self, p: V3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hz` is never used
[INFO] [stdout]    --> src/sim.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl Out {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn hz(&self, r: &GroupRates) -> f32 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `somas` and `mech_groups` are never read
[INFO] [stdout]    --> src/sim.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct World {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub somas: Option<Somas>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub mech_groups: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap_pi` is never used
[INFO] [stdout]     --> src/sim.rs:1185:4
[INFO] [stdout]      |
[INFO] [stdout] 1185 | fn wrap_pi(a: f32) -> f32 {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ILLUMINANT` is never used
[INFO] [stdout]   --> src/vision.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 | const ILLUMINANT: f32 = 1.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `key` and `is_colour` are never used
[INFO] [stdout]    --> src/vision.rs:155:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Spectral {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 155 |     pub fn key(self) -> &'static str {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_colour(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fruit_spectrum`, `fruit_luminance_level`, and `catch_by_eye_for` are never used
[INFO] [stdout]    --> src/vision.rs:670:12
[INFO] [stdout]     |
[INFO] [stdout] 467 | impl Retina {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn fruit_spectrum(&self) -> &[f32; NBANDS] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 681 |     pub fn fruit_luminance_level(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 940 |     pub fn catch_by_eye_for(&self, cls: Spectral) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_CHORD` is never used
[INFO] [stdout]   --> src/wing.rs:39:11
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub const WING_CHORD: f32 = 1.126;
[INFO] [stdout]    |           ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALTERE_LEN` is never used
[INFO] [stdout]   --> src/wing.rs:75:11
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub const HALTERE_LEN: f32 = 0.35;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALTERE_AMP` is never used
[INFO] [stdout]   --> src/wing.rs:78:11
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub const HALTERE_AMP: f32 = 0.30;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_DX` is never used
[INFO] [stdout]   --> src/wing.rs:99:11
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub const WING_DX: f32 = -0.15;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:208:17
[INFO] [stdout]     |
[INFO] [stdout] 208 |             let mut mix = |b: u8, h: &mut u64| {
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mn`
[INFO] [stdout]    --> src/main.rs:253:21
[INFO] [stdout]     |
[INFO] [stdout] 253 |                 let mn = sim.v.iter().cloned().fold(f32::MAX, f32::min);
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_mn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `window_spikes` is never read
[INFO] [stdout]    --> src/main.rs:154:42
[INFO] [stdout]     |
[INFO] [stdout] 154 |             let mut window_spikes: u64 = 0;
[INFO] [stdout]     |                                          ^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 159 |                 window_spikes = sim.total_spikes - before;
[INFO] [stdout]     |                 ----------------------------------------- `window_spikes` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `wall_dist` is never read
[INFO] [stdout]   --> src/analyze/hand.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct HandSample {
[INFO] [stdout]    |            ---------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub wall_dist: f32,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `HandSample` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Feeding` is never constructed
[INFO] [stdout]    --> src/body.rs:141:5
[INFO] [stdout]     |
[INFO] [stdout] 132 | pub enum Mode {
[INFO] [stdout]     |          ---- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 141 |     Feeding,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Mode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bytes` and `n` are never read
[INFO] [stdout]   --> src/brain.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct Somas {
[INFO] [stdout]    |            ----- fields in this struct
[INFO] [stdout] 15 |     pub bytes: Vec<u8>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 16 |     pub n: usize,
[INFO] [stdout]    |         ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `REGION_NAMES` is never used
[INFO] [stdout]    --> src/groups.rs:183:11
[INFO] [stdout]     |
[INFO] [stdout] 183 | pub const REGION_NAMES: [&str; 12] = [
[INFO] [stdout]     |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `odor_channels` is never read
[INFO] [stdout]    --> src/groups.rs:232:9
[INFO] [stdout]     |
[INFO] [stdout] 216 | pub struct Groups {
[INFO] [stdout]     |            ------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 232 |     pub odor_channels: Vec<(String, bool, Vec<u32>)>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `empty` is never used
[INFO] [stdout]    --> src/groups.rs:434:12
[INFO] [stdout]     |
[INFO] [stdout] 429 | impl Drive {
[INFO] [stdout]     | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 434 |     pub fn empty() -> Drive {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `method` is never read
[INFO] [stdout]   --> src/httpd.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Request {
[INFO] [stdout]    |            ------- field in this struct
[INFO] [stdout] 14 |     pub method: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `not_found` is never used
[INFO] [stdout]    --> src/httpd.rs:249:8
[INFO] [stdout]     |
[INFO] [stdout] 249 | pub fn not_found(stream: &mut TcpStream) -> Result<()> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `len` and `is_empty` are never used
[INFO] [stdout]    --> src/lif.rs:341:12
[INFO] [stdout]     |
[INFO] [stdout] 336 | impl StimGen {
[INFO] [stdout]     | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 341 |     pub fn len(&self) -> usize {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 345 |     pub fn is_empty(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `f32` is never used
[INFO] [stdout]   --> src/npy.rs:86:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl Npy {
[INFO] [stdout]    | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn f32(&self, path: &Path) -> Result<&[f32]> {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bytemuck_f32` is never used
[INFO] [stdout]    --> src/npy.rs:123:4
[INFO] [stdout]     |
[INFO] [stdout] 123 | fn bytemuck_f32(raw: &[u8]) -> &[f32] {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `counts` and `array_sha256` are never read
[INFO] [stdout]   --> src/pack.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct Manifest {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     pub counts: serde_json::Value,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 27 |     #[serde(default)]
[INFO] [stdout] 28 |     pub array_sha256: serde_json::Value,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Manifest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `pack_dir` is never used
[INFO] [stdout]    --> src/pack.rs:168:8
[INFO] [stdout]     |
[INFO] [stdout] 168 | pub fn pack_dir() -> PathBuf {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `contains` is never used
[INFO] [stdout]    --> src/room.rs:110:12
[INFO] [stdout]     |
[INFO] [stdout] 108 | impl Hand {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] 109 |     /// Is `p` inside the palm?
[INFO] [stdout] 110 |     pub fn contains(&self, p: V3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `inside_table` is never used
[INFO] [stdout]    --> src/room.rs:482:12
[INFO] [stdout]     |
[INFO] [stdout] 470 | impl Room {
[INFO] [stdout]     | --------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 482 |     pub fn inside_table(&self, p: V3) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `hz` is never used
[INFO] [stdout]    --> src/sim.rs:219:12
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl Out {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 219 |     pub fn hz(&self, r: &GroupRates) -> f32 {
[INFO] [stdout]     |            ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `somas` and `mech_groups` are never read
[INFO] [stdout]    --> src/sim.rs:242:9
[INFO] [stdout]     |
[INFO] [stdout] 237 | pub struct World {
[INFO] [stdout]     |            ----- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 242 |     pub somas: Option<Somas>,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 254 |     pub mech_groups: usize,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `wrap_pi` is never used
[INFO] [stdout]     --> src/sim.rs:1185:4
[INFO] [stdout]      |
[INFO] [stdout] 1185 | fn wrap_pi(a: f32) -> f32 {
[INFO] [stdout]      |    ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `ILLUMINANT` is never used
[INFO] [stdout]   --> src/vision.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 | const ILLUMINANT: f32 = 1.0;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `is_colour` is never used
[INFO] [stdout]    --> src/vision.rs:168:12
[INFO] [stdout]     |
[INFO] [stdout] 115 | impl Spectral {
[INFO] [stdout]     | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn is_colour(self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `fruit_spectrum`, `fruit_luminance_level`, and `catch_by_eye_for` are never used
[INFO] [stdout]    --> src/vision.rs:670:12
[INFO] [stdout]     |
[INFO] [stdout] 467 | impl Retina {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 670 |     pub fn fruit_spectrum(&self) -> &[f32; NBANDS] {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 681 |     pub fn fruit_luminance_level(&self) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 940 |     pub fn catch_by_eye_for(&self, cls: Spectral) -> (f32, f32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALTERE_LEN` is never used
[INFO] [stdout]   --> src/wing.rs:75:11
[INFO] [stdout]    |
[INFO] [stdout] 75 | pub const HALTERE_LEN: f32 = 0.35;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HALTERE_AMP` is never used
[INFO] [stdout]   --> src/wing.rs:78:11
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub const HALTERE_AMP: f32 = 0.30;
[INFO] [stdout]    |           ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WING_DX` is never used
[INFO] [stdout]   --> src/wing.rs:99:11
[INFO] [stdout]    |
[INFO] [stdout] 99 | pub const WING_DX: f32 = -0.15;
[INFO] [stdout]    |           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.81s
[INFO] running `Command { std: "docker" "inspect" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c", kill_on_drop: false }`
[INFO] [stdout] 972637be30a551ce987027397536327da1980aec6a04a97429a838efb6cad75c
