[INFO] cloning repository https://github.com/IvanGav/BTD0
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/IvanGav/BTD0" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIvanGav%2FBTD0", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIvanGav%2FBTD0'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b47af6181a3caf243e9e72248ec2cc998cd3ae41
[INFO] checking IvanGav/BTD0 against e977a0b5ab976a591981e7263bd67a71a4f79308 for pr-158914
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FIvanGav%2FBTD0" "/workspace/builds/worker-4-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/IvanGav/BTD0
[INFO] finished tweaking git repo https://github.com/IvanGav/BTD0
[INFO] tweaked toml for git repo https://github.com/IvanGav/BTD0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/IvanGav/BTD0 on toolchain e977a0b5ab976a591981e7263bd67a71a4f79308
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/IvanGav/BTD0 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" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "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-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c
[INFO] running `Command { std: "docker" "start" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c", 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" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c" "/opt/rustwide/cargo-home/bin/cargo" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c", 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" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c" "/opt/rustwide/cargo-home/bin/cargo" "+e977a0b5ab976a591981e7263bd67a71a4f79308" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.97
[INFO] [stderr]    Compiling libc v0.2.175
[INFO] [stderr]    Compiling indexmap v2.10.0
[INFO] [stderr]    Compiling winnow v0.7.12
[INFO] [stderr]    Compiling cfg-if v1.0.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]     Checking event-listener v5.4.1
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]     Checking event-listener-strategy v0.5.4
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking fixedbitset v0.4.2
[INFO] [stderr]     Checking async-channel v2.5.0
[INFO] [stderr]     Checking disqualified v1.0.0
[INFO] [stderr]     Checking bevy_ptr v0.15.3
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling getrandom v0.2.16
[INFO] [stderr]     Checking async-executor v1.13.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.105
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling uuid v1.12.1
[INFO] [stderr]     Checking fixedbitset v0.5.7
[INFO] [stderr]     Checking bevy_tasks v0.15.3
[INFO] [stderr]     Checking const-random v0.1.18
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]    Compiling naga v23.1.0
[INFO] [stderr]    Compiling cc v1.2.32
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking crossbeam-channel v0.5.15
[INFO] [stderr]     Checking tinyvec v1.9.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling wgpu-hal v23.0.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]     Checking blocking v1.6.2
[INFO] [stderr]     Checking ash v0.38.0+1.3.281
[INFO] [stderr]     Checking khronos-egl v6.0.0
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking rand_distr v0.4.3
[INFO] [stderr]    Compiling wgpu-core v23.0.1
[INFO] [stderr]     Checking async-lock v3.4.1
[INFO] [stderr]    Compiling blake3 v1.8.2
[INFO] [stderr]     Checking glow v0.14.2
[INFO] [stderr]     Checking typewit v1.12.1
[INFO] [stderr]     Checking async-broadcast v0.5.1
[INFO] [stderr]     Checking const_panic v0.2.14
[INFO] [stderr]     Checking async-fs v2.1.3
[INFO] [stderr]     Checking regex-automata v0.4.9
[INFO] [stderr]    Compiling wgpu v23.0.1
[INFO] [stderr]     Checking stackfuture v0.3.0
[INFO] [stderr]     Checking atomicow v1.1.0
[INFO] [stderr]     Checking twox-hash v1.6.3
[INFO] [stderr]     Checking constgebra v0.1.4
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking sysinfo v0.32.1
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]     Checking ruzstd v0.7.3
[INFO] [stderr]     Checking unicode-ident v1.0.18
[INFO] [stderr]     Checking offset-allocator v0.2.0
[INFO] [stderr]    Compiling slotmap v1.0.7
[INFO] [stderr]     Checking radsort v0.1.1
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling rustix v1.0.8
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]     Checking linux-raw-sys v0.9.4
[INFO] [stderr]     Checking euclid v0.22.11
[INFO] [stderr]    Compiling libudev-sys v0.1.4
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]    Compiling nix v0.29.0
[INFO] [stderr]     Checking svg_fmt v0.4.5
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]     Checking fontconfig-parser v0.5.8
[INFO] [stderr]     Checking inotify-sys v0.1.5
[INFO] [stderr]     Checking memmap2 v0.9.7
[INFO] [stderr]    Compiling bevy_macro_utils v0.15.3
[INFO] [stderr]    Compiling encase_derive_impl v0.10.0
[INFO] [stderr]     Checking guillotiere v0.6.2
[INFO] [stderr]    Compiling winit v0.30.12
[INFO] [stderr]     Checking unicode-ccc v0.2.0
[INFO] [stderr]     Checking regex v1.11.1
[INFO] [stderr]     Checking unicode-properties v0.1.3
[INFO] [stderr]     Checking ttf-parser v0.21.1
[INFO] [stderr]     Checking ttf-parser v0.20.0
[INFO] [stderr]     Checking unicode-bidi-mirroring v0.2.0
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking x11-dl v2.21.0
[INFO] [stderr]    Compiling gilrs v0.11.0
[INFO] [stderr]     Checking rangemap v1.6.0
[INFO] [stderr]     Checking sys-locale v0.3.2
[INFO] [stderr]     Checking self_cell v1.2.0
[INFO] [stderr]     Checking lewton v0.10.2
[INFO] [stderr]     Checking grid v0.14.0
[INFO] [stderr]     Checking taffy v0.5.2
[INFO] [stderr]     Checking approx v0.5.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling bytemuck_derive v1.10.1
[INFO] [stderr]    Compiling tracing-attributes v0.1.30
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.15.3
[INFO] [stderr]    Compiling assert_type_match v0.1.1
[INFO] [stderr]    Compiling bevy_reflect_derive v0.15.3
[INFO] [stderr]    Compiling bevy_ecs_macros v0.15.3
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]     Checking bytemuck v1.23.2
[INFO] [stderr]    Compiling bevy_derive v0.15.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling encase_derive v0.10.0
[INFO] [stderr]    Compiling bevy_asset_macros v0.15.3
[INFO] [stderr]     Checking image v0.25.6
[INFO] [stderr]    Compiling bevy_encase_derive v0.15.3
[INFO] [stderr]    Compiling bevy_render_macros v0.15.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking font-types v0.7.3
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]     Checking read-fonts v0.22.7
[INFO] [stderr]     Checking fontdb v0.16.2
[INFO] [stderr]    Compiling gltf-derive v1.4.1
[INFO] [stderr]    Compiling bevy_state_macros v0.15.3
[INFO] [stderr]    Compiling bevy_gizmos_macros v0.15.3
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking derive_more v1.0.0
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking glam v0.29.3
[INFO] [stderr]     Checking smol_str v0.2.2
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking erased-serde v0.4.6
[INFO] [stderr]     Checking petgraph v0.6.5
[INFO] [stderr]     Checking spirv v0.3.0+sdk-1.3.268.0
[INFO] [stderr]     Checking gpu-alloc-types v0.3.0
[INFO] [stderr]     Checking bevy_utils v0.15.3
[INFO] [stderr]     Checking wgpu-types v23.0.0
[INFO] [stderr]     Checking gpu-descriptor-types v0.2.0
[INFO] [stderr]     Checking gpu-alloc v0.6.0
[INFO] [stderr]     Checking gpu-descriptor v0.3.2
[INFO] [stderr]     Checking ron v0.8.1
[INFO] [stderr]     Checking ctrlc v3.4.7
[INFO] [stderr]     Checking alsa v0.9.1
[INFO] [stderr]     Checking inotify v0.11.0
[INFO] [stderr]     Checking xkbcommon-dl v0.4.2
[INFO] [stderr]     Checking rustybuzz v0.14.1
[INFO] [stderr]     Checking skrifa v0.22.3
[INFO] [stderr]     Checking gilrs-core v0.6.4
[INFO] [stderr]     Checking gltf-json v1.4.1
[INFO] [stderr]     Checking rodio v0.19.0
[INFO] [stderr]     Checking polling v3.10.0
[INFO] [stderr]     Checking swash v0.1.19
[INFO] [stderr]     Checking bevy_reflect v0.15.3
[INFO] [stderr]     Checking encase v0.10.0
[INFO] [stderr]     Checking bevy_mikktspace v0.15.3
[INFO] [stderr]     Checking hexasphere v15.1.0
[INFO] [stderr]     Checking calloop v0.13.0
[INFO] [stderr]     Checking x11rb v0.13.1
[INFO] [stderr]     Checking gltf v1.4.1
[INFO] [stderr]     Checking cosmic-text v0.12.1
[INFO] [stderr]     Checking naga_oil v0.16.0
[INFO] [stderr]     Checking bevy_ecs v0.15.4
[INFO] [stderr]     Checking bevy_math v0.15.3
[INFO] [stderr]     Checking accesskit_winit v0.23.1
[INFO] [stderr]     Checking bevy_color v0.15.4
[INFO] [stderr]     Checking bevy_app v0.15.3
[INFO] [stderr]     Checking bevy_core v0.15.3
[INFO] [stderr]     Checking bevy_asset v0.15.3
[INFO] [stderr]     Checking bevy_a11y v0.15.3
[INFO] [stderr]     Checking bevy_time v0.15.3
[INFO] [stderr]     Checking bevy_log v0.15.3
[INFO] [stderr]     Checking bevy_hierarchy v0.15.3
[INFO] [stderr]     Checking bevy_input v0.15.3
[INFO] [stderr]     Checking bevy_diagnostic v0.15.3
[INFO] [stderr]     Checking bevy_transform v0.15.3
[INFO] [stderr]     Checking bevy_state v0.15.3
[INFO] [stderr]     Checking bevy_window v0.15.3
[INFO] [stderr]     Checking bevy_gilrs v0.15.3
[INFO] [stderr]     Checking bevy_image v0.15.3
[INFO] [stderr]     Checking bevy_audio v0.15.3
[INFO] [stderr]     Checking bevy_mesh v0.15.3
[INFO] [stderr]     Checking bevy_winit v0.15.3
[INFO] [stderr]     Checking bevy_render v0.15.3
[INFO] [stderr]     Checking bevy_core_pipeline v0.15.3
[INFO] [stderr]     Checking bevy_picking v0.15.3
[INFO] [stderr]     Checking bevy_animation v0.15.3
[INFO] [stderr]     Checking bevy_scene v0.15.3
[INFO] [stderr]     Checking bevy_sprite v0.15.3
[INFO] [stderr]     Checking bevy_pbr v0.15.3
[INFO] [stderr]     Checking bevy_text v0.15.3
[INFO] [stderr]     Checking bevy_ui v0.15.3
[INFO] [stderr]     Checking bevy_gizmos v0.15.3
[INFO] [stderr]     Checking bevy_gltf v0.15.3
[INFO] [stderr]     Checking bevy_internal v0.15.3
[INFO] [stderr]     Checking bevy v0.15.3
[INFO] [stderr]     Checking bevy_btd v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `bevy::prelude::*`
[INFO] [stdout]  --> src/core/upgradable.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bevy::prelude::*;
[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: `bevy::prelude::*`
[INFO] [stdout]  --> src/core/upgradable.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use bevy::prelude::*;
[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: `tier`
[INFO] [stdout]   --> src/core/bloon.rs:28:26
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn bloon_entity_with(tier: BloonTier, modifiers: BloonModifier)->(Bloon, MoveAlongRoad, HitboxSimple, Option<BloonPropertyRegrow...
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_tier`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/core/bloon.rs:28:43
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn bloon_entity_with(tier: BloonTier, modifiers: BloonModifier)->(Bloon, MoveAlongRoad, HitboxSimple, Option<BloonPropertyRegrow...
[INFO] [stdout]    |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/tower.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         for mut attack in &mut tower.attacks {
[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: `pos`
[INFO] [stdout]    --> src/core/tower.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |     for (mut tower, pos, gpos) in &mut towers {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targeting_mode`
[INFO] [stdout]    --> src/core/tower.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let targeting_mode = tower.get_targeting_mode();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targeting_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attack`
[INFO] [stdout]    --> src/core/tower.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         for mut attack in &mut tower.attacks {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attack`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur_pos`
[INFO] [stdout]   --> src/core/map.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |         for (i, cur_pos) in self.path.iter().enumerate() {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cur_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `around`
[INFO] [stdout]   --> src/core/map.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn closest_pos(&self, around: Vec2)->Vec2 {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_around`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]  --> src/core/attack_fn.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]  --> src/core/attack_fn.rs:5:55
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur_effects`
[INFO] [stdout]  --> src/core/attack_fn.rs:5:71
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |                                                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cur_effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloon_entity_with` is never used
[INFO] [stdout]   --> src/core/bloon.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn bloon_entity_with(tier: BloonTier, modifiers: BloonModifier)->(Bloon, MoveAlongRoad, HitboxSimple, Option<BloonPropertyRegrow...
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Frozen` is never constructed
[INFO] [stdout]    --> src/core/bloon.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 125 | enum BloonModifierData {
[INFO] [stdout]     |      ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 130 |     Frozen = 0b10000,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DamageType` is never used
[INFO] [stdout]    --> src/core/bloon.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub enum DamageType {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Weakness`, `Speed`, `BonusIncome`, and `DamageOverTime` are never constructed
[INFO] [stdout]    --> src/core/bloon.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub enum BloonEffect {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 149 |     Weakness { duration: Option<i32>, strength: i32 },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 150 |     Speed { duration: Option<i32>, strength: f32 }, // also serves as slow and stun
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 151 |     BonusIncome { duration: Option<i32>, strength: i32 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 152 |     DamageOverTime { duration: Option<i32>, damage: i32, tick_rate: u32 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BloonEffect` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Boss` is never constructed
[INFO] [stdout]    --> src/core/bloon.rs:158:19
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub enum BloonType {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] 158 |     Bloon, Blimp, Boss,
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BloonType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BloonPropertyRegrow` is never constructed
[INFO] [stdout]    --> src/core/bloon.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout] 377 | pub struct BloonPropertyRegrow {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bounce` and `collide_height` are never read
[INFO] [stdout]   --> src/core/movement.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct MoveSimple {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 29 |     pub velocity: Vec2,
[INFO] [stdout] 30 |     pub bounce: i32, // number of bounces left
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 31 |     pub collide_height: Option<f32>, // If None - don't collide with obstacles; if Some, collide with obstacles higher than self
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveSimple` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveWaypoint` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct MoveWaypoint {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteeringMove` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct SteeringMove {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HomingMove` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct HomingMove {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeekAfterHitMove` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct SeekAfterHitMove {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TargetMode` is never used
[INFO] [stdout]   --> src/core/movement.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum TargetMode {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HitboxComposite` is never constructed
[INFO] [stdout]  --> src/core/hitbox.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HitboxComposite {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LifetimeRound` is never constructed
[INFO] [stdout]   --> src/core/projectile.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct LifetimeRound {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cannot_pop_modifiers` and `cannot_target_modifiers` are never read
[INFO] [stdout]   --> src/core/projectile.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct DamageDealer {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub cannot_pop_modifiers: BloonModifier,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub cannot_target_modifiers: BloonModifier,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DamageDealer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TowerType` is never used
[INFO] [stdout]  --> src/core/tower.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum TowerType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TargetingMode` is never used
[INFO] [stdout]   --> src/core/tower.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum TargetingMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `vec_entity_modes` is never used
[INFO] [stdout]   --> src/core/tower.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl TargetingMode {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 31 |     pub fn vec_entity_modes()->Vec<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TowerEffect` is never used
[INFO] [stdout]   --> src/core/tower.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum TowerEffect {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Attack` is never used
[INFO] [stdout]   --> src/core/tower.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum Attack {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tower` is never constructed
[INFO] [stdout]   --> src/core/tower.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Tower {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `zero`, `from`, and `get_targeting_mode` are never used
[INFO] [stdout]   --> src/core/tower.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl Tower {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 77 |     /// Dummy function because i didn't feel like doing default (it really shouldn't have a default, but I do need a dummy tower)
[INFO] [stdout] 78 |     fn zero()->Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn from(tower_type: TowerType, upgrades: Upgradable)->Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn get_targeting_mode(&self)->TargetingMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `towers_tick` is never used
[INFO] [stdout]    --> src/core/tower.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn towers_tick(mut towers: Query<(&mut Tower, &Transform, &GlobalTransform)>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dist_to_pos` and `closest_pos` are never used
[INFO] [stdout]   --> src/core/map.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Map {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn dist_to_pos(&self, dist: f32)->(Vec2,usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn closest_pos(&self, around: Vec2)->Vec2 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `damage` is never read
[INFO] [stdout]   --> src/core/event.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct GlobalDamageEvent {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 37 |     pub damage: i32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attack_dart000` is never used
[INFO] [stdout]  --> src/core/attack_fn.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Upgradable` is never used
[INFO] [stdout]  --> src/core/upgradable.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Upgradable {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_upgrade_1`, `can_upgrade_2`, and `can_upgrade_3` are never used
[INFO] [stdout]   --> src/core/upgradable.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Upgradable {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 11 |     /// Return true if path 1 is upgradable
[INFO] [stdout] 12 |     pub fn can_upgrade_1(&self)->bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn can_upgrade_2(&self)->bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn can_upgrade_3(&self)->bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tier`
[INFO] [stdout]   --> src/core/bloon.rs:28:26
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn bloon_entity_with(tier: BloonTier, modifiers: BloonModifier)->(Bloon, MoveAlongRoad, HitboxSimple, Option<BloonPropertyRegrow...
[INFO] [stdout]    |                          ^^^^ help: if this is intentional, prefix it with an underscore: `_tier`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `modifiers`
[INFO] [stdout]   --> src/core/bloon.rs:28:43
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn bloon_entity_with(tier: BloonTier, modifiers: BloonModifier)->(Bloon, MoveAlongRoad, HitboxSimple, Option<BloonPropertyRegrow...
[INFO] [stdout]    |                                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_modifiers`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/tower.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         for mut attack in &mut tower.attacks {
[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: `pos`
[INFO] [stdout]    --> src/core/tower.rs:106:21
[INFO] [stdout]     |
[INFO] [stdout] 106 |     for (mut tower, pos, gpos) in &mut towers {
[INFO] [stdout]     |                     ^^^ help: if this is intentional, prefix it with an underscore: `_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `targeting_mode`
[INFO] [stdout]    --> src/core/tower.rs:107:13
[INFO] [stdout]     |
[INFO] [stdout] 107 |         let targeting_mode = tower.get_targeting_mode();
[INFO] [stdout]     |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_targeting_mode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attack`
[INFO] [stdout]    --> src/core/tower.rs:108:13
[INFO] [stdout]     |
[INFO] [stdout] 108 |         for mut attack in &mut tower.attacks {
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_attack`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur_pos`
[INFO] [stdout]   --> src/core/map.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 |         for (i, cur_pos) in self.path.iter().enumerate() {
[INFO] [stdout]    |                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cur_pos`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `around`
[INFO] [stdout]   --> src/core/map.rs:33:31
[INFO] [stdout]    |
[INFO] [stdout] 33 |     pub fn closest_pos(&self, around: Vec2)->Vec2 {
[INFO] [stdout]    |                               ^^^^^^ help: if this is intentional, prefix it with an underscore: `_around`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `angle`
[INFO] [stdout]  --> src/core/attack_fn.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |                                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_angle`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `entity`
[INFO] [stdout]  --> src/core/attack_fn.rs:5:55
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |                                                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_entity`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cur_effects`
[INFO] [stdout]  --> src/core/attack_fn.rs:5:71
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |                                                                       ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cur_effects`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `bloon_entity_with` is never used
[INFO] [stdout]   --> src/core/bloon.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn bloon_entity_with(tier: BloonTier, modifiers: BloonModifier)->(Bloon, MoveAlongRoad, HitboxSimple, Option<BloonPropertyRegrow...
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Frozen` is never constructed
[INFO] [stdout]    --> src/core/bloon.rs:130:5
[INFO] [stdout]     |
[INFO] [stdout] 125 | enum BloonModifierData {
[INFO] [stdout]     |      ----------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 130 |     Frozen = 0b10000,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `DamageType` is never used
[INFO] [stdout]    --> src/core/bloon.rs:135:10
[INFO] [stdout]     |
[INFO] [stdout] 135 | pub enum DamageType {
[INFO] [stdout]     |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Weakness`, `Speed`, `BonusIncome`, and `DamageOverTime` are never constructed
[INFO] [stdout]    --> src/core/bloon.rs:149:5
[INFO] [stdout]     |
[INFO] [stdout] 148 | pub enum BloonEffect {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 149 |     Weakness { duration: Option<i32>, strength: i32 },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] 150 |     Speed { duration: Option<i32>, strength: f32 }, // also serves as slow and stun
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 151 |     BonusIncome { duration: Option<i32>, strength: i32 },
[INFO] [stdout]     |     ^^^^^^^^^^^
[INFO] [stdout] 152 |     DamageOverTime { duration: Option<i32>, damage: i32, tick_rate: u32 },
[INFO] [stdout]     |     ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BloonEffect` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Boss` is never constructed
[INFO] [stdout]    --> src/core/bloon.rs:158:19
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub enum BloonType {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] 158 |     Bloon, Blimp, Boss,
[INFO] [stdout]     |                   ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `BloonType` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BloonPropertyRegrow` is never constructed
[INFO] [stdout]    --> src/core/bloon.rs:377:12
[INFO] [stdout]     |
[INFO] [stdout] 377 | pub struct BloonPropertyRegrow {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `bounce` and `collide_height` are never read
[INFO] [stdout]   --> src/core/movement.rs:30:9
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct MoveSimple {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] 29 |     pub velocity: Vec2,
[INFO] [stdout] 30 |     pub bounce: i32, // number of bounces left
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 31 |     pub collide_height: Option<f32>, // If None - don't collide with obstacles; if Some, collide with obstacles higher than self
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MoveSimple` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MoveWaypoint` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:36:12
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct MoveWaypoint {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SteeringMove` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub struct SteeringMove {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HomingMove` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:56:12
[INFO] [stdout]    |
[INFO] [stdout] 56 | pub struct HomingMove {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SeekAfterHitMove` is never constructed
[INFO] [stdout]   --> src/core/movement.rs:66:12
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub struct SeekAfterHitMove {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TargetMode` is never used
[INFO] [stdout]   --> src/core/movement.rs:76:10
[INFO] [stdout]    |
[INFO] [stdout] 76 | pub enum TargetMode {
[INFO] [stdout]    |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `HitboxComposite` is never constructed
[INFO] [stdout]  --> src/core/hitbox.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub struct HitboxComposite {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LifetimeRound` is never constructed
[INFO] [stdout]   --> src/core/projectile.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct LifetimeRound {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `cannot_pop_modifiers` and `cannot_target_modifiers` are never read
[INFO] [stdout]   --> src/core/projectile.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub struct DamageDealer {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub cannot_pop_modifiers: BloonModifier,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |     pub cannot_target_modifiers: BloonModifier,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DamageDealer` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TowerType` is never used
[INFO] [stdout]  --> src/core/tower.rs:6:10
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub enum TowerType {
[INFO] [stdout]   |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TargetingMode` is never used
[INFO] [stdout]   --> src/core/tower.rs:24:10
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub enum TargetingMode {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `vec_entity_modes` is never used
[INFO] [stdout]   --> src/core/tower.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl TargetingMode {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 31 |     pub fn vec_entity_modes()->Vec<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `TowerEffect` is never used
[INFO] [stdout]   --> src/core/tower.rs:37:10
[INFO] [stdout]    |
[INFO] [stdout] 37 | pub enum TowerEffect {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Attack` is never used
[INFO] [stdout]   --> src/core/tower.rs:46:10
[INFO] [stdout]    |
[INFO] [stdout] 46 | pub enum Attack {
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Tower` is never constructed
[INFO] [stdout]   --> src/core/tower.rs:65:12
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub struct Tower {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `zero`, `from`, and `get_targeting_mode` are never used
[INFO] [stdout]   --> src/core/tower.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 76 | impl Tower {
[INFO] [stdout]    | ---------- associated items in this implementation
[INFO] [stdout] 77 |     /// Dummy function because i didn't feel like doing default (it really shouldn't have a default, but I do need a dummy tower)
[INFO] [stdout] 78 |     fn zero()->Self {
[INFO] [stdout]    |        ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn from(tower_type: TowerType, upgrades: Upgradable)->Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub fn get_targeting_mode(&self)->TargetingMode {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `towers_tick` is never used
[INFO] [stdout]    --> src/core/tower.rs:105:8
[INFO] [stdout]     |
[INFO] [stdout] 105 | pub fn towers_tick(mut towers: Query<(&mut Tower, &Transform, &GlobalTransform)>) {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `dist_to_pos` and `closest_pos` are never used
[INFO] [stdout]   --> src/core/map.rs:25:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl Map {
[INFO] [stdout]    | -------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub fn dist_to_pos(&self, dist: f32)->(Vec2,usize) {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn closest_pos(&self, around: Vec2)->Vec2 {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `damage` is never read
[INFO] [stdout]   --> src/core/event.rs:37:9
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct GlobalDamageEvent {
[INFO] [stdout]    |            ----------------- field in this struct
[INFO] [stdout] 37 |     pub damage: i32,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `attack_dart000` is never used
[INFO] [stdout]  --> src/core/attack_fn.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn attack_dart000(cmd: &mut Commands, angle: f32, entity: Entity, cur_effects: &mut Vec<TowerEffect>, tower_pos: Vec3) {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Upgradable` is never used
[INFO] [stdout]  --> src/core/upgradable.rs:4:10
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub enum Upgradable {
[INFO] [stdout]   |          ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `can_upgrade_1`, `can_upgrade_2`, and `can_upgrade_3` are never used
[INFO] [stdout]   --> src/core/upgradable.rs:12:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl Upgradable {
[INFO] [stdout]    | --------------- methods in this implementation
[INFO] [stdout] 11 |     /// Return true if path 1 is upgradable
[INFO] [stdout] 12 |     pub fn can_upgrade_1(&self)->bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 22 |     pub fn can_upgrade_2(&self)->bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 32 |     pub fn can_upgrade_3(&self)->bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4m 19s
[INFO] running `Command { std: "docker" "inspect" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c", kill_on_drop: false }`
[INFO] [stdout] b31578516fac587071103f37a8d54e109befd09cfdff7b94bf269295de3b056c
