[INFO] cloning repository https://github.com/ozymandiaslone/para-genesis-1
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ozymandiaslone/para-genesis-1" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fozymandiaslone%2Fpara-genesis-1", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fozymandiaslone%2Fpara-genesis-1'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 21e5511e1bd18aac26e0a6411bb333ba0c354060
[INFO] checking ozymandiaslone/para-genesis-1 against try#bf5ff6675cf10ce009ac02007b064a7cfc4509ac for pr-140558
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fozymandiaslone%2Fpara-genesis-1" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/ozymandiaslone/para-genesis-1 on toolchain bf5ff6675cf10ce009ac02007b064a7cfc4509ac
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/ozymandiaslone/para-genesis-1
[INFO] finished tweaking git repo https://github.com/ozymandiaslone/para-genesis-1
[INFO] tweaked toml for git repo https://github.com/ozymandiaslone/para-genesis-1 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/ozymandiaslone/para-genesis-1 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" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/not-fl3/macroquad`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded miniquad v0.4.0
[INFO] [stderr]   Downloaded noise v0.8.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f80b4260699b11411d955035ff3e2c7dbef7195e670d9256565e43f25a6a7121
[INFO] running `Command { std: "docker" "start" "-a" "f80b4260699b11411d955035ff3e2c7dbef7195e670d9256565e43f25a6a7121", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f80b4260699b11411d955035ff3e2c7dbef7195e670d9256565e43f25a6a7121", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f80b4260699b11411d955035ff3e2c7dbef7195e670d9256565e43f25a6a7121", kill_on_drop: false }`
[INFO] [stdout] f80b4260699b11411d955035ff3e2c7dbef7195e670d9256565e43f25a6a7121
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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" "-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:b0b074c097205a61b89e8ad263052f976b2b332c4dc5f02aef1fe52501660d6e" "/opt/rustwide/cargo-home/bin/cargo" "+bf5ff6675cf10ce009ac02007b064a7cfc4509ac" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7788a4798e59404161e6f7087cb6de728c3a11655060b250693d3796b3abc010
[INFO] running `Command { std: "docker" "start" "-a" "7788a4798e59404161e6f7087cb6de728c3a11655060b250693d3796b3abc010", kill_on_drop: false }`
[INFO] [stderr]     Checking cfg-if v1.0.0
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]    Compiling crossbeam-utils v0.8.19
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]     Checking simd-adler32 v0.3.7
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling crc32fast v1.4.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]    Compiling quad-alsa-sys v0.3.2
[INFO] [stderr]     Checking either v1.9.0
[INFO] [stderr]     Checking weezl v0.1.8
[INFO] [stderr]     Checking zerocopy v0.7.32
[INFO] [stderr]     Checking dasp_sample v0.11.0
[INFO] [stderr]     Checking miniz_oxide v0.7.2
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking fdeflate v0.3.4
[INFO] [stderr]     Checking zune-inflate v0.2.54
[INFO] [stderr]    Compiling ahash v0.8.10
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking ogg v0.7.1
[INFO] [stderr]     Checking half v2.3.1
[INFO] [stderr]     Checking color_quant v1.1.0
[INFO] [stderr]     Checking dasp_frame v0.11.0
[INFO] [stderr]     Checking smallvec v0.6.14
[INFO] [stderr]     Checking hound v3.5.1
[INFO] [stderr]    Compiling lock_api v0.4.11
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking lebe v0.5.2
[INFO] [stderr]    Compiling miniquad v0.4.0
[INFO] [stderr]    Compiling quad-snd v0.2.7
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking bit_field v0.10.2
[INFO] [stderr]     Checking bytemuck v1.14.3
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking gif v0.13.1
[INFO] [stderr]     Checking lewton v0.9.4
[INFO] [stderr]     Checking ttf-parser v0.15.2
[INFO] [stderr]    Compiling macroquad_macro v0.1.7 (https://github.com/not-fl3/macroquad#f451960a)
[INFO] [stderr]     Checking quad-rand v0.2.1
[INFO] [stderr]     Checking qoi v0.4.1
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking flate2 v1.0.28
[INFO] [stderr]     Checking glam v0.21.3
[INFO] [stderr]     Checking bumpalo v3.15.3
[INFO] [stderr]     Checking hashbrown v0.13.2
[INFO] [stderr]     Checking flume v0.11.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.18
[INFO] [stderr]     Checking crossbeam-channel v0.5.12
[INFO] [stderr]     Checking crossbeam-queue v0.3.11
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking png v0.17.13
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.5
[INFO] [stderr]     Checking audrey v0.3.0
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking rand_xorshift v0.2.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking crossbeam v0.8.4
[INFO] [stderr]     Checking fontdue v0.7.3
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking rayon v1.9.0
[INFO] [stderr]     Checking exr v1.72.0
[INFO] [stderr]     Checking noise v0.8.2
[INFO] [stderr]     Checking jpeg-decoder v0.3.1
[INFO] [stderr]     Checking tiff v0.9.1
[INFO] [stderr]     Checking image v0.24.9
[INFO] [stderr]     Checking macroquad v0.4.5 (https://github.com/not-fl3/macroquad#f451960a)
[INFO] [stderr]     Checking para-genesis-1 v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::rockybody::*`
[INFO] [stdout]  --> src/game.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::rockybody::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/menu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::physics::*`
[INFO] [stdout]  --> src/menu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::physics::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::camera::*`
[INFO] [stdout]  --> src/menu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::camera::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/menu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Distribution`
[INFO] [stdout]  --> src/rockybody.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::texturetools::*`
[INFO] [stdout]   --> src/rockybody.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::texturetools::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/rockybody.rs:243:22
[INFO] [stdout]     |
[INFO] [stdout] 243 |             let dx = (w - cx);
[INFO] [stdout]     |                      ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -             let dx = (w - cx);
[INFO] [stdout] 243 +             let dx = w - cx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/rockybody.rs:244:22
[INFO] [stdout]     |
[INFO] [stdout] 244 |             let dy = (h - cy);
[INFO] [stdout]     |                      ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 244 -             let dy = (h - cy);
[INFO] [stdout] 244 +             let dy = h - cy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam::thread`
[INFO] [stdout]  --> src/physics.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crossbeam::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/physics.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let r2 = (dx*dx + dy*dy);
[INFO] [stdout]    |              ^             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 71 -     let r2 = (dx*dx + dy*dy);
[INFO] [stdout] 71 +     let r2 = dx*dx + dy*dy;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:278:43
[INFO] [stdout]     |
[INFO] [stdout] 278 |                     bodies[j].update_xpos((overlap * nx / distance));
[INFO] [stdout]     |                                           ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 278 -                     bodies[j].update_xpos((overlap * nx / distance));
[INFO] [stdout] 278 +                     bodies[j].update_xpos(overlap * nx / distance);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:279:43
[INFO] [stdout]     |
[INFO] [stdout] 279 |                     bodies[j].update_ypos((overlap * ny / distance));
[INFO] [stdout]     |                                           ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 279 -                     bodies[j].update_ypos((overlap * ny / distance));
[INFO] [stdout] 279 +                     bodies[j].update_ypos(overlap * ny / distance);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:311:39
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 bodies[j].update_xvel((1. / jmass as f32 * impulse_x));
[INFO] [stdout]     |                                       ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 311 -                 bodies[j].update_xvel((1. / jmass as f32 * impulse_x));
[INFO] [stdout] 311 +                 bodies[j].update_xvel(1. / jmass as f32 * impulse_x);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:312:39
[INFO] [stdout]     |
[INFO] [stdout] 312 |                 bodies[j].update_yvel((1. / jmass as f32 * impulse_y));
[INFO] [stdout]     |                                       ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 312 -                 bodies[j].update_yvel((1. / jmass as f32 * impulse_y));
[INFO] [stdout] 312 +                 bodies[j].update_yvel(1. / jmass as f32 * impulse_y);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/ships.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/texturetools.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/texturetools.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::physics::*`
[INFO] [stdout]  --> src/texturetools.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::physics::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::camera::*`
[INFO] [stdout]  --> src/texturetools.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::camera::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/texturetools.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/mathtools.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/mathtools.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::physics::*`
[INFO] [stdout]  --> src/mathtools.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::physics::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stdout]  --> src/life.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use noise::{NoiseFn, Perlin};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Distribution` and `Uniform`
[INFO] [stdout]  --> src/life.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                             ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `SystemTime`
[INFO] [stdout]  --> src/star_system.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{SystemTime, Instant, Duration};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::rand::Rng`
[INFO] [stdout]  --> src/star_system.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ::rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stdout]  --> src/star_system.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use noise::{NoiseFn, Perlin};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Distribution` and `Uniform`
[INFO] [stdout]  --> src/star_system.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                             ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::mathtools::*`
[INFO] [stdout]   --> src/star_system.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::mathtools::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ships::*`
[INFO] [stdout]   --> src/star_system.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::ships::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::rockybody::*`
[INFO] [stdout]  --> src/game.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use super::rockybody::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/menu.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::physics::*`
[INFO] [stdout]  --> src/menu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::physics::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::camera::*`
[INFO] [stdout]  --> src/menu.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use super::camera::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/menu.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Distribution`
[INFO] [stdout]  --> src/rockybody.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                             ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::texturetools::*`
[INFO] [stdout]   --> src/rockybody.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use super::texturetools::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/rockybody.rs:243:22
[INFO] [stdout]     |
[INFO] [stdout] 243 |             let dx = (w - cx);
[INFO] [stdout]     |                      ^      ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 243 -             let dx = (w - cx);
[INFO] [stdout] 243 +             let dx = w - cx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]    --> src/rockybody.rs:244:22
[INFO] [stdout]     |
[INFO] [stdout] 244 |             let dy = (h - cy);
[INFO] [stdout]     |                      ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 244 -             let dy = (h - cy);
[INFO] [stdout] 244 +             let dy = h - cy;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crossbeam::thread`
[INFO] [stdout]  --> src/physics.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crossbeam::thread;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around assigned value
[INFO] [stdout]   --> src/physics.rs:71:14
[INFO] [stdout]    |
[INFO] [stdout] 71 |     let r2 = (dx*dx + dy*dy);
[INFO] [stdout]    |              ^             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 71 -     let r2 = (dx*dx + dy*dy);
[INFO] [stdout] 71 +     let r2 = dx*dx + dy*dy;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:278:43
[INFO] [stdout]     |
[INFO] [stdout] 278 |                     bodies[j].update_xpos((overlap * nx / distance));
[INFO] [stdout]     |                                           ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 278 -                     bodies[j].update_xpos((overlap * nx / distance));
[INFO] [stdout] 278 +                     bodies[j].update_xpos(overlap * nx / distance);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:279:43
[INFO] [stdout]     |
[INFO] [stdout] 279 |                     bodies[j].update_ypos((overlap * ny / distance));
[INFO] [stdout]     |                                           ^                       ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 279 -                     bodies[j].update_ypos((overlap * ny / distance));
[INFO] [stdout] 279 +                     bodies[j].update_ypos(overlap * ny / distance);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:311:39
[INFO] [stdout]     |
[INFO] [stdout] 311 |                 bodies[j].update_xvel((1. / jmass as f32 * impulse_x));
[INFO] [stdout]     |                                       ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 311 -                 bodies[j].update_xvel((1. / jmass as f32 * impulse_x));
[INFO] [stdout] 311 +                 bodies[j].update_xvel(1. / jmass as f32 * impulse_x);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around method argument
[INFO] [stdout]    --> src/physics.rs:312:39
[INFO] [stdout]     |
[INFO] [stdout] 312 |                 bodies[j].update_yvel((1. / jmass as f32 * impulse_y));
[INFO] [stdout]     |                                       ^                             ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 312 -                 bodies[j].update_yvel((1. / jmass as f32 * impulse_y));
[INFO] [stdout] 312 +                 bodies[j].update_yvel(1. / jmass as f32 * impulse_y);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/ships.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/texturetools.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/texturetools.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::physics::*`
[INFO] [stdout]  --> src/texturetools.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::physics::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::camera::*`
[INFO] [stdout]  --> src/texturetools.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use super::camera::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/texturetools.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Instant`
[INFO] [stdout]  --> src/mathtools.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::time::Instant;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `macroquad::texture::*`
[INFO] [stdout]  --> src/mathtools.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use macroquad::texture::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::physics::*`
[INFO] [stdout]  --> src/mathtools.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use super::physics::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stdout]  --> src/life.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use noise::{NoiseFn, Perlin};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Distribution` and `Uniform`
[INFO] [stdout]  --> src/life.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                             ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration`, `Instant`, and `SystemTime`
[INFO] [stdout]  --> src/star_system.rs:2:17
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::time::{SystemTime, Instant, Duration};
[INFO] [stdout]   |                 ^^^^^^^^^^  ^^^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `::rand::Rng`
[INFO] [stdout]  --> src/star_system.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use ::rand::Rng;
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `NoiseFn` and `Perlin`
[INFO] [stdout]  --> src/star_system.rs:5:13
[INFO] [stdout]   |
[INFO] [stdout] 5 | use noise::{NoiseFn, Perlin};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Distribution` and `Uniform`
[INFO] [stdout]  --> src/star_system.rs:6:29
[INFO] [stdout]   |
[INFO] [stdout] 6 | use ::rand::distributions::{Distribution, Uniform};
[INFO] [stdout]   |                             ^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::mathtools::*`
[INFO] [stdout]   --> src/star_system.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use super::mathtools::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::ships::*`
[INFO] [stdout]   --> src/star_system.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use super::ships::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/game.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut limd_sound: &Sound = &load_sound("limd.wav").await.unwrap();
[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/game.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut camera: ZCamera = ZCamera::new_origin();
[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/game.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut player = Player::new();
[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/game.rs:29:13
[INFO] [stdout]    |
[INFO] [stdout] 29 |         let mut limd_sound: &Sound = &load_sound("limd.wav").await.unwrap();
[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/game.rs:32:13
[INFO] [stdout]    |
[INFO] [stdout] 32 |         let mut camera: ZCamera = ZCamera::new_origin();
[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/game.rs:34:13
[INFO] [stdout]    |
[INFO] [stdout] 34 |         let mut player = Player::new();
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_height`
[INFO] [stdout]    --> src/rockybody.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let win_height = win_height as i32;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vel_distribution`
[INFO] [stdout]    --> src/rockybody.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let vel_distribution = Uniform::new(0.0f32, 2.0f32);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vel_distribution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]    --> src/rockybody.rs:220:28
[INFO] [stdout]     |
[INFO] [stdout] 220 | async fn create_rocky_body(mass: u64, radius: f32) -> Texture2D {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rockybody.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 let mut color: Color = Color {
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win_height`
[INFO] [stdout]    --> src/rockybody.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let win_height = win_height as i32;
[INFO] [stdout]     |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_win_height`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `vel_distribution`
[INFO] [stdout]    --> src/rockybody.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let vel_distribution = Uniform::new(0.0f32, 2.0f32);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_vel_distribution`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `relx`
[INFO] [stdout]    --> src/physics.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let relx = (bodies[i].xvel() - bodies[j].xvel()).abs();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_relx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rely`
[INFO] [stdout]    --> src/physics.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let rely = (bodies[i].yvel() - bodies[j].yvel()).abs();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_rely`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `mass`
[INFO] [stdout]    --> src/rockybody.rs:220:28
[INFO] [stdout]     |
[INFO] [stdout] 220 | async fn create_rocky_body(mass: u64, radius: f32) -> Texture2D {
[INFO] [stdout]     |                            ^^^^ help: if this is intentional, prefix it with an underscore: `_mass`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/rockybody.rs:254:21
[INFO] [stdout]     |
[INFO] [stdout] 254 |                 let mut color: Color = Color {
[INFO] [stdout]     |                     ----^^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fs`
[INFO] [stdout]   --> src/star_system.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut fs = false;
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_fs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `relx`
[INFO] [stdout]    --> src/physics.rs:128:17
[INFO] [stdout]     |
[INFO] [stdout] 128 |             let relx = (bodies[i].xvel() - bodies[j].xvel()).abs();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_relx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rely`
[INFO] [stdout]    --> src/physics.rs:129:17
[INFO] [stdout]     |
[INFO] [stdout] 129 |             let rely = (bodies[i].yvel() - bodies[j].yvel()).abs();
[INFO] [stdout]     |                 ^^^^ help: if this is intentional, prefix it with an underscore: `_rely`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/star_system.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut fs = false;
[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/star_system.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut life: Civilization = load_civilization();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fs`
[INFO] [stdout]   --> src/star_system.rs:37:17
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut fs = false;
[INFO] [stdout]    |                 ^^ help: if this is intentional, prefix it with an underscore: `_fs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/star_system.rs:37:13
[INFO] [stdout]    |
[INFO] [stdout] 37 |         let mut fs = false;
[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/star_system.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut life: Civilization = load_civilization();
[INFO] [stdout]    |             ----^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/physics.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clear_color`
[INFO] [stdout]    --> src/menu.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let clear_color: Color = Color {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clear_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `red_color`
[INFO] [stdout]    --> src/menu.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let red_color: Color = Color {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_red_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/physics.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adx`
[INFO] [stdout]    --> src/ships.rs:261:14
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let (adx, ady) = ( (ddx * self.max_dv) / (ddx + ddy), (ddy * self.max_dv) / (ddx + ddy));
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_adx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ady`
[INFO] [stdout]    --> src/ships.rs:261:19
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let (adx, ady) = ( (ddx * self.max_dv) / (ddx + ddy), (ddy * self.max_dv) / (ddx + ddy));
[INFO] [stdout]     |                   ^^^ help: if this is intentional, prefix it with an underscore: `_ady`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clear_color`
[INFO] [stdout]    --> src/menu.rs:202:9
[INFO] [stdout]     |
[INFO] [stdout] 202 |     let clear_color: Color = Color {
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clear_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/texturetools.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let (width, height) = (image.width, image.height);
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/texturetools.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let (width, height) = (image.width, image.height);
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `red_color`
[INFO] [stdout]    --> src/menu.rs:278:9
[INFO] [stdout]     |
[INFO] [stdout] 278 |     let red_color: Color = Color {
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_red_color`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/texturetools.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |             let mut numerator = (a * w as f64 + b * h as f64 + c).abs();
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active_ships`
[INFO] [stdout]   --> src/life.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         active_ships: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_active_ships`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:101:31
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn update_xvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:105:31
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn update_yvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn update_xpos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:113:31
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn update_ypos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_vec`
[INFO] [stdout]    --> src/life.rs:117:30
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn add_vector(&mut self, force_vec: ForceVector) {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]    --> src/life.rs:128:24
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn draw(&mut self, camera: &ZCamera) {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/star_system.rs:87:24
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn sync_player(player: &mut Player) {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:105:31
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn update_xvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:107:31
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn update_yvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn update_xpos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:111:31
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn update_ypos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_vec`
[INFO] [stdout]    --> src/star_system.rs:113:30
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn add_vector(&mut self, force_vec: ForceVector) {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dummy_cam`
[INFO] [stdout]    --> src/star_system.rs:127:24
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn draw(&mut self, dummy_cam: &ZCamera) {
[INFO] [stdout]     |                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dummy_cam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `adx`
[INFO] [stdout]    --> src/ships.rs:261:14
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let (adx, ady) = ( (ddx * self.max_dv) / (ddx + ddy), (ddy * self.max_dv) / (ddx + ddy));
[INFO] [stdout]     |              ^^^ help: if this is intentional, prefix it with an underscore: `_adx`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ady`
[INFO] [stdout]    --> src/ships.rs:261:19
[INFO] [stdout]     |
[INFO] [stdout] 261 |         let (adx, ady) = ( (ddx * self.max_dv) / (ddx + ddy), (ddy * self.max_dv) / (ddx + ddy));
[INFO] [stdout]     |                   ^^^ help: if this is intentional, prefix it with an underscore: `_ady`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `width`
[INFO] [stdout]   --> src/texturetools.rs:12:10
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let (width, height) = (image.width, image.height);
[INFO] [stdout]    |          ^^^^^ help: if this is intentional, prefix it with an underscore: `_width`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `height`
[INFO] [stdout]   --> src/texturetools.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 |     let (width, height) = (image.width, image.height);
[INFO] [stdout]    |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_height`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/texturetools.rs:41:17
[INFO] [stdout]    |
[INFO] [stdout] 41 |             let mut numerator = (a * w as f64 + b * h as f64 + c).abs();
[INFO] [stdout]    |                 ----^^^^^^^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `active_ships`
[INFO] [stdout]   --> src/life.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |         active_ships: Vec<usize>,
[INFO] [stdout]    |         ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_active_ships`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:101:31
[INFO] [stdout]     |
[INFO] [stdout] 101 |     fn update_xvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:105:31
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn update_yvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn update_xpos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/life.rs:113:31
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn update_ypos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_vec`
[INFO] [stdout]    --> src/life.rs:117:30
[INFO] [stdout]     |
[INFO] [stdout] 117 |     fn add_vector(&mut self, force_vec: ForceVector) {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `camera`
[INFO] [stdout]    --> src/life.rs:128:24
[INFO] [stdout]     |
[INFO] [stdout] 128 |     fn draw(&mut self, camera: &ZCamera) {
[INFO] [stdout]     |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_camera`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `player`
[INFO] [stdout]   --> src/star_system.rs:87:24
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn sync_player(player: &mut Player) {
[INFO] [stdout]    |                        ^^^^^^ help: if this is intentional, prefix it with an underscore: `_player`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:105:31
[INFO] [stdout]     |
[INFO] [stdout] 105 |     fn update_xvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:107:31
[INFO] [stdout]     |
[INFO] [stdout] 107 |     fn update_yvel(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     fn update_xpos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `update_val`
[INFO] [stdout]    --> src/star_system.rs:111:31
[INFO] [stdout]     |
[INFO] [stdout] 111 |     fn update_ypos(&mut self, update_val: f32) {
[INFO] [stdout]     |                               ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_update_val`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `force_vec`
[INFO] [stdout]    --> src/star_system.rs:113:30
[INFO] [stdout]     |
[INFO] [stdout] 113 |     fn add_vector(&mut self, force_vec: ForceVector) {
[INFO] [stdout]     |                              ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_force_vec`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `dummy_cam`
[INFO] [stdout]    --> src/star_system.rs:127:24
[INFO] [stdout]     |
[INFO] [stdout] 127 |     fn draw(&mut self, dummy_cam: &ZCamera) {
[INFO] [stdout]     |                        ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_dummy_cam`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `player` is never read
[INFO] [stdout]   --> src/game.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Game {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     player: Player,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StartingUp` and `AboutToQuit` are never constructed
[INFO] [stdout]    --> src/game.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum GameState {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 114 |     Playing,
[INFO] [stdout] 115 |     StartingUp,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 116 |     AboutToQuit,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Alert` is never constructed
[INFO] [stdout]   --> src/menu.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum WindowType {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 14 |     Error,
[INFO] [stdout] 15 |     Alert,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WindowType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_type` is never read
[INFO] [stdout]   --> src/menu.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct VintageWindow {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     window_type: WindowType,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_inverse_sqrt` is never used
[INFO] [stdout]    --> src/star.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn fast_inverse_sqrt(n: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_root` is never used
[INFO] [stdout]    --> src/star.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn fast_root(n :f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_particle` is never used
[INFO] [stdout]    --> src/star.rs:331:10
[INFO] [stdout]     |
[INFO] [stdout] 331 | async fn initialize_particle(win_width: i32, win_height: i32) -> Star {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_any_mut` and `force_vectors` are never used
[INFO] [stdout]   --> src/physics.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait PhysObj: Send + Sync {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 14 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn force_vectors(&self) -> Vec<ForceVector>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_inverse_sqrt` is never used
[INFO] [stdout]    --> src/physics.rs:340:4
[INFO] [stdout]     |
[INFO] [stdout] 340 | fn fast_inverse_sqrt(n: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_root` is never used
[INFO] [stdout]    --> src/physics.rs:347:4
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn fast_root(n :f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_zoom` and `clone` are never used
[INFO] [stdout]   --> src/camera.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl ZCamera {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn add_zoom(&mut self, dz: f32) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn clone(&self) -> ZCamera {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `clone` are never used
[INFO] [stdout]    --> src/ships.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl PlayerShip {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 133 |     pub fn new (
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn clone(&self) -> PlayerShip {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ships.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl Ship {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 186 |     pub fn new (
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersection` is never used
[INFO] [stdout]  --> src/mathtools.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn intersection(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_inverse_sqrt` is never used
[INFO] [stdout]   --> src/mathtools.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn fast_inverse_sqrt(n: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_root` is never used
[INFO] [stdout]   --> src/mathtools.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn fast_root(n :f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/life.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Civilization {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 13 |     pub energy_output: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub dexterity: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 15 |     pub strength: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 16 |     pub constitution: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub damage: f64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 18 |     pub size: f64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 19 |     pub seed: u32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ship_ap` are never used
[INFO] [stdout]   --> src/life.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Civilization {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn ship_ap(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_n_active_ships` is never used
[INFO] [stdout]    --> src/life.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn create_n_active_ships(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_ships_desired_pos` is never used
[INFO] [stdout]    --> src/life.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn update_ships_desired_pos(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/star_system.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const WIDTH: u32 = 1000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT` is never used
[INFO] [stdout]   --> src/star_system.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const HEIGHT: u32 = 1000;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `life` and `force_vectors` are never read
[INFO] [stdout]   --> src/star_system.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct StarSystem {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 22 |     pub bodies: Vec<Box<dyn PhysObj>>,
[INFO] [stdout] 23 |     pub life: Civilization,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub force_vectors: Vec<ForceVector>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `sync_player` is never used
[INFO] [stdout]   --> src/star_system.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl StarSystem {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn sync_player(player: &mut Player) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `player` is never read
[INFO] [stdout]   --> src/game.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct Game {
[INFO] [stdout]    |            ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 17 |     player: Player,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `StartingUp` and `AboutToQuit` are never constructed
[INFO] [stdout]    --> src/game.rs:115:5
[INFO] [stdout]     |
[INFO] [stdout] 113 | pub enum GameState {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] 114 |     Playing,
[INFO] [stdout] 115 |     StartingUp,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 116 |     AboutToQuit,
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Alert` is never constructed
[INFO] [stdout]   --> src/menu.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub enum WindowType {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] 14 |     Error,
[INFO] [stdout] 15 |     Alert,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WindowType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `window_type` is never read
[INFO] [stdout]   --> src/menu.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct VintageWindow {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 26 |     window_type: WindowType,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_inverse_sqrt` is never used
[INFO] [stdout]    --> src/star.rs:265:4
[INFO] [stdout]     |
[INFO] [stdout] 265 | fn fast_inverse_sqrt(n: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_root` is never used
[INFO] [stdout]    --> src/star.rs:272:4
[INFO] [stdout]     |
[INFO] [stdout] 272 | fn fast_root(n :f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `initialize_particle` is never used
[INFO] [stdout]    --> src/star.rs:331:10
[INFO] [stdout]     |
[INFO] [stdout] 331 | async fn initialize_particle(win_width: i32, win_height: i32) -> Star {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `as_any_mut` and `force_vectors` are never used
[INFO] [stdout]   --> src/physics.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub trait PhysObj: Send + Sync {
[INFO] [stdout]    |           ------- methods in this trait
[INFO] [stdout] ...
[INFO] [stdout] 14 |     fn as_any_mut(&mut self) -> &mut dyn Any;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     fn force_vectors(&self) -> Vec<ForceVector>;
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_inverse_sqrt` is never used
[INFO] [stdout]    --> src/physics.rs:340:4
[INFO] [stdout]     |
[INFO] [stdout] 340 | fn fast_inverse_sqrt(n: f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_root` is never used
[INFO] [stdout]    --> src/physics.rs:347:4
[INFO] [stdout]     |
[INFO] [stdout] 347 | fn fast_root(n :f32) -> f32 {
[INFO] [stdout]     |    ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `add_zoom` and `clone` are never used
[INFO] [stdout]   --> src/camera.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout] 7  | impl ZCamera {
[INFO] [stdout]    | ------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn add_zoom(&mut self, dz: f32) {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 18 |     pub fn clone(&self) -> ZCamera {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `clone` are never used
[INFO] [stdout]    --> src/ships.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout] 132 | impl PlayerShip {
[INFO] [stdout]     | --------------- associated items in this implementation
[INFO] [stdout] 133 |     pub fn new (
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn clone(&self) -> PlayerShip {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ships.rs:186:12
[INFO] [stdout]     |
[INFO] [stdout] 185 | impl Ship {
[INFO] [stdout]     | --------- associated function in this implementation
[INFO] [stdout] 186 |     pub fn new (
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `intersection` is never used
[INFO] [stdout]  --> src/mathtools.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn intersection(
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_inverse_sqrt` is never used
[INFO] [stdout]   --> src/mathtools.rs:31:4
[INFO] [stdout]    |
[INFO] [stdout] 31 | fn fast_inverse_sqrt(n: f32) -> f32 {
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fast_root` is never used
[INFO] [stdout]   --> src/mathtools.rs:38:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub fn fast_root(n :f32) -> f32 {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/life.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct Civilization {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 13 |     pub energy_output: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 14 |     pub dexterity: f64,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout] 15 |     pub strength: f64,
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 16 |     pub constitution: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^
[INFO] [stdout] 17 |     pub damage: f64,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 18 |     pub size: f64,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 19 |     pub seed: u32,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new` and `ship_ap` are never used
[INFO] [stdout]   --> src/life.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 23 | impl Civilization {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] 24 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn ship_ap(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_n_active_ships` is never used
[INFO] [stdout]    --> src/life.rs:152:8
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub fn create_n_active_ships(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `update_ships_desired_pos` is never used
[INFO] [stdout]    --> src/life.rs:191:8
[INFO] [stdout]     |
[INFO] [stdout] 191 | pub fn update_ships_desired_pos(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `WIDTH` is never used
[INFO] [stdout]   --> src/star_system.rs:17:7
[INFO] [stdout]    |
[INFO] [stdout] 17 | const WIDTH: u32 = 1000;
[INFO] [stdout]    |       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `HEIGHT` is never used
[INFO] [stdout]   --> src/star_system.rs:18:7
[INFO] [stdout]    |
[INFO] [stdout] 18 | const HEIGHT: u32 = 1000;
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `life` and `force_vectors` are never read
[INFO] [stdout]   --> src/star_system.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct StarSystem {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 22 |     pub bodies: Vec<Box<dyn PhysObj>>,
[INFO] [stdout] 23 |     pub life: Civilization,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub force_vectors: Vec<ForceVector>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `sync_player` is never used
[INFO] [stdout]   --> src/star_system.rs:87:12
[INFO] [stdout]    |
[INFO] [stdout] 34 | impl StarSystem {
[INFO] [stdout]    | --------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 87 |     pub fn sync_player(player: &mut Player) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 16.89s
[INFO] running `Command { std: "docker" "inspect" "7788a4798e59404161e6f7087cb6de728c3a11655060b250693d3796b3abc010", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7788a4798e59404161e6f7087cb6de728c3a11655060b250693d3796b3abc010", kill_on_drop: false }`
[INFO] [stdout] 7788a4798e59404161e6f7087cb6de728c3a11655060b250693d3796b3abc010
