[INFO] cloning repository https://github.com/Edcorp844/Radius-raid-wasm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Edcorp844/Radius-raid-wasm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEdcorp844%2FRadius-raid-wasm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEdcorp844%2FRadius-raid-wasm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 6a90233762a52d1f9a6a893bad3b41ac970362a2
[INFO] checking Edcorp844/Radius-raid-wasm against a5689b034ad287112f709693384a37f1377eb9cc for pr-129249-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FEdcorp844%2FRadius-raid-wasm" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Edcorp844/Radius-raid-wasm
[INFO] finished tweaking git repo https://github.com/Edcorp844/Radius-raid-wasm
[INFO] tweaked toml for git repo https://github.com/Edcorp844/Radius-raid-wasm written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Edcorp844/Radius-raid-wasm on toolchain a5689b034ad287112f709693384a37f1377eb9cc
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Edcorp844/Radius-raid-wasm 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" "+a5689b034ad287112f709693384a37f1377eb9cc" "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-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b
[INFO] running `Command { std: "docker" "start" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b", 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" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b", 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" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b" "/opt/rustwide/cargo-home/bin/cargo" "+a5689b034ad287112f709693384a37f1377eb9cc" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling quote v1.0.42
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.106
[INFO] [stderr]    Compiling bumpalo v3.19.0
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling zerocopy v0.8.30
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling wasm-bindgen v0.2.106
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.106
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.106
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking js-sys v0.3.83
[INFO] [stderr]     Checking console_error_panic_hook v0.1.7
[INFO] [stderr]     Checking web-sys v0.3.83
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.56
[INFO] [stderr]     Checking serde-wasm-bindgen v0.6.5
[INFO] [stderr]     Checking radius_raid v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `web_sys::console::log_1`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::console::log_1;
[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: `crate::audio::apply_envelope`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::audio::apply_envelope;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::noise_wave`
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::audio::noise_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::saw_wave`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::audio::saw_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::sine_wave`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::audio::sine_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::square_wave`
[INFO] [stdout]   --> src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::audio::square_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioBufferSourceNode` and `AudioBuffer`
[INFO] [stdout]  --> src/audio.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::{AudioBuffer, AudioBufferSourceNode, AudioContext};
[INFO] [stdout]   |               ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/sfxr_audio.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioBufferSourceNode`, `AudioBuffer`, and `AudioDestinationNode`
[INFO] [stdout]  --> src/sfxr_audio.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use web_sys::{AudioContext, AudioBuffer, AudioBufferSourceNode, AudioDestinationNode};
[INFO] [stdout]   |                             ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::clone`
[INFO] [stdout]  --> src/util.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::clone;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AudioBufferSourceNode`
[INFO] [stdout]  --> src/game_sfx.rs:3:42
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::{AudioContext, AudioBuffer, AudioBufferSourceNode};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `data_models::AudioDef`
[INFO] [stdout]  --> src/game_sfx.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{audio::start_audio, data_models::AudioDef};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1568:31
[INFO] [stdout]      |
[INFO] [stdout] 1568 |         let func: Option<*mut (dyn FnMut(&mut Game))> =
[INFO] [stdout]      |                               ^                    ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1568 -         let func: Option<*mut (dyn FnMut(&mut Game))> =
[INFO] [stdout] 1568 +         let func: Option<*mut dyn FnMut(&mut Game)> =
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `web_sys::console::log_1`
[INFO] [stdout]  --> src/lib.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::console::log_1;
[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: `crate::audio::apply_envelope`
[INFO] [stdout]   --> src/lib.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use crate::audio::apply_envelope;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::noise_wave`
[INFO] [stdout]   --> src/lib.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::audio::noise_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::saw_wave`
[INFO] [stdout]   --> src/lib.rs:15:5
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::audio::saw_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::sine_wave`
[INFO] [stdout]   --> src/lib.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::audio::sine_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::audio::square_wave`
[INFO] [stdout]   --> src/lib.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::audio::square_wave;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioBufferSourceNode` and `AudioBuffer`
[INFO] [stdout]  --> src/audio.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use web_sys::{AudioBuffer, AudioBufferSourceNode, AudioContext};
[INFO] [stdout]   |               ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/sfxr_audio.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `AudioBufferSourceNode`, `AudioBuffer`, and `AudioDestinationNode`
[INFO] [stdout]  --> src/sfxr_audio.rs:4:29
[INFO] [stdout]   |
[INFO] [stdout] 4 | use web_sys::{AudioContext, AudioBuffer, AudioBufferSourceNode, AudioDestinationNode};
[INFO] [stdout]   |                             ^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::clone`
[INFO] [stdout]  --> src/util.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::clone;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `AudioBufferSourceNode`
[INFO] [stdout]  --> src/game_sfx.rs:3:42
[INFO] [stdout]   |
[INFO] [stdout] 3 | use web_sys::{AudioContext, AudioBuffer, AudioBufferSourceNode};
[INFO] [stdout]   |                                          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `data_models::AudioDef`
[INFO] [stdout]  --> src/game_sfx.rs:5:33
[INFO] [stdout]   |
[INFO] [stdout] 5 | use crate::{audio::start_audio, data_models::AudioDef};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]     --> src/lib.rs:1568:31
[INFO] [stdout]      |
[INFO] [stdout] 1568 |         let func: Option<*mut (dyn FnMut(&mut Game))> =
[INFO] [stdout]      |                               ^                    ^
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]      |
[INFO] [stdout] 1568 -         let func: Option<*mut (dyn FnMut(&mut Game))> =
[INFO] [stdout] 1568 +         let func: Option<*mut dyn FnMut(&mut Game)> =
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample` is never read
[INFO] [stdout]    --> src/sfxr_audio.rs:334:34
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 let mut sample = 0.0;
[INFO] [stdout]     |                                  ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 349 |                         sample = if fp < self.square_duty { 0.5 } else { -0.5 };
[INFO] [stdout]     |                         ------------------------------------------------------- `sample` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game_sfx.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let mut period = sample_rate / freq;
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/game_sfx.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut period_position = 0.0;
[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_sfx.rs:134:13
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut freq_dramp = params.freq_dramp;
[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_sfx.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut lpf_ramp = params.lpf_ramp;
[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_sfx.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut lpf_res = params.lpf_res;
[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_sfx.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut hpf_ramp = params.hpf_ramp;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period`
[INFO] [stdout]    --> src/game_sfx.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let mut period = sample_rate / freq;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_period`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period_position`
[INFO] [stdout]    --> src/game_sfx.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut period_position = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_period_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pp`
[INFO] [stdout]    --> src/game_sfx.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let pp = fltp;
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_pp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample` is never read
[INFO] [stdout]    --> src/game_sfx.rs:200:30
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let mut sample = 0.0;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 208 |                     sample = if phase_wrapped < duty { 0.5 } else { -0.5 };
[INFO] [stdout]     |                     ------------------------------------------------------ `sample` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample` is never read
[INFO] [stdout]    --> src/sfxr_audio.rs:334:34
[INFO] [stdout]     |
[INFO] [stdout] 334 |                 let mut sample = 0.0;
[INFO] [stdout]     |                                  ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 349 |                         sample = if fp < self.square_duty { 0.5 } else { -0.5 };
[INFO] [stdout]     |                         ------------------------------------------------------- `sample` is overwritten here before the previous value is read
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `waveform`
[INFO] [stdout]     --> src/lib.rs:1615:9
[INFO] [stdout]      |
[INFO] [stdout] 1615 |         waveform: &str,
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_waveform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency`
[INFO] [stdout]     --> src/lib.rs:1616:9
[INFO] [stdout]      |
[INFO] [stdout] 1616 |         frequency: f64,
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attack`
[INFO] [stdout]     --> src/lib.rs:1618:9
[INFO] [stdout]      |
[INFO] [stdout] 1618 |         attack: f64,
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_attack`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decay`
[INFO] [stdout]     --> src/lib.rs:1619:9
[INFO] [stdout]      |
[INFO] [stdout] 1619 |         decay: f64,
[INFO] [stdout]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_decay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sustain`
[INFO] [stdout]     --> src/lib.rs:1620:9
[INFO] [stdout]      |
[INFO] [stdout] 1620 |         sustain: f64,
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sustain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `release`
[INFO] [stdout]     --> src/lib.rs:1621:9
[INFO] [stdout]      |
[INFO] [stdout] 1621 |         release: f64,
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_release`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]     --> src/lib.rs:1625:13
[INFO] [stdout]      |
[INFO] [stdout] 1625 |         let len = (duration * sr as f64) as usize;
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_style`
[INFO] [stdout]     --> src/lib.rs:1988:13
[INFO] [stdout]      |
[INFO] [stdout] 1988 |         let layer_style = layer.as_mut().unwrap().style();
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `margin_left`
[INFO] [stdout]     --> src/lib.rs:1989:13
[INFO] [stdout]      |
[INFO] [stdout] 1989 |         let margin_left =
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_margin_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `margin_top`
[INFO] [stdout]     --> src/lib.rs:1994:9
[INFO] [stdout]      |
[INFO] [stdout] 1994 |     let margin_top =
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_margin_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/lib.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  66 | pub struct Game {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  99 |     okeys: Option<data_models::KeyState>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     gameover_tick: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 109 |     gameover_tick_max: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     gameover_explosion: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |
[INFO] [stdout] 112 |     instruction_tick: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 |     instruction_tick_max: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     text_pops : Vec<TextPop>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `spawn_powerups` and `update_background_parallax` are never used
[INFO] [stdout]     --> src/lib.rs:1562:8
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Game {
[INFO] [stdout]      | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1562 |     fn spawn_powerups(&mut self) {}
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1971 | fn update_background_parallax(&mut self) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generator` is never read
[INFO] [stdout]    --> src/sfxr_audio.rs:417:5
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub struct SfxrAudio {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 416 |     audio_ctx: AudioContext,
[INFO] [stdout] 417 |     generator: SfxrGenerator,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `frnd` is never used
[INFO] [stdout]    --> src/sfxr_audio.rs:486:4
[INFO] [stdout]     |
[INFO] [stdout] 486 | fn frnd(range: f32) -> f32 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |             (self.x - self.radius).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 572 -             (self.x - self.radius).into(),
[INFO] [stdout] 572 +             (self.x - self.radius),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 572 -             (self.x - self.radius).into(),
[INFO] [stdout] 572 +             <f64 as Into<_>>::into((self.x - self.radius)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |             (self.y - self.radius - 6.0).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 573 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 573 +             (self.y - self.radius - 6.0),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 573 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 573 +             <f64 as Into<_>>::into((self.y - self.radius - 6.0)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:574:13
[INFO] [stdout]     |
[INFO] [stdout] 574 |             (self.radius * 2.0).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 574 -             (self.radius * 2.0).into(),
[INFO] [stdout] 574 +             (self.radius * 2.0),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 574 -             (self.radius * 2.0).into(),
[INFO] [stdout] 574 +             <f64 as Into<_>>::into((self.radius * 2.0)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |             (self.x - self.radius).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 585 -             (self.x - self.radius).into(),
[INFO] [stdout] 585 +             (self.x - self.radius),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 585 -             (self.x - self.radius).into(),
[INFO] [stdout] 585 +             <f64 as Into<_>>::into((self.x - self.radius)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 |             (self.y - self.radius - 6.0).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 586 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 586 +             (self.y - self.radius - 6.0),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 586 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 586 +             <f64 as Into<_>>::into((self.y - self.radius - 6.0)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:587:13
[INFO] [stdout]     |
[INFO] [stdout] 587 |             ((self.radius * 2.0) * ratio).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 587 -             ((self.radius * 2.0) * ratio).into(),
[INFO] [stdout] 587 +             ((self.radius * 2.0) * ratio),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 587 -             ((self.radius * 2.0) * ratio).into(),
[INFO] [stdout] 587 +             <f64 as Into<_>>::into(((self.radius * 2.0) * ratio)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:604:13
[INFO] [stdout]     |
[INFO] [stdout] 604 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 604 -             self.x.into(),
[INFO] [stdout] 604 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 604 -             self.x.into(),
[INFO] [stdout] 604 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 605 -             self.y.into(),
[INFO] [stdout] 605 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 605 -             self.y.into(),
[INFO] [stdout] 605 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |             self.radius.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 606 -             self.radius.into(),
[INFO] [stdout] 606 +             self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 606 -             self.radius.into(),
[INFO] [stdout] 606 +             <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:617:13
[INFO] [stdout]     |
[INFO] [stdout] 617 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 617 -             self.x.into(),
[INFO] [stdout] 617 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 617 -             self.x.into(),
[INFO] [stdout] 617 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:618:13
[INFO] [stdout]     |
[INFO] [stdout] 618 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 618 -             self.y.into(),
[INFO] [stdout] 618 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 618 -             self.y.into(),
[INFO] [stdout] 618 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:619:13
[INFO] [stdout]     |
[INFO] [stdout] 619 |             r1.into(),
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 619 -             r1.into(),
[INFO] [stdout] 619 +             r1,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 619 -             r1.into(),
[INFO] [stdout] 619 +             <f64 as Into<_>>::into(r1),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:629:13
[INFO] [stdout]     |
[INFO] [stdout] 629 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 629 -             self.x.into(),
[INFO] [stdout] 629 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 629 -             self.x.into(),
[INFO] [stdout] 629 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:630:13
[INFO] [stdout]     |
[INFO] [stdout] 630 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 630 -             self.y.into(),
[INFO] [stdout] 630 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 630 -             self.y.into(),
[INFO] [stdout] 630 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:631:13
[INFO] [stdout]     |
[INFO] [stdout] 631 |             (self.radius - 0.5).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 631 -             (self.radius - 0.5).into(),
[INFO] [stdout] 631 +             (self.radius - 0.5),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 631 -             (self.radius - 0.5).into(),
[INFO] [stdout] 631 +             <f64 as Into<_>>::into((self.radius - 0.5)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 645 -             self.x.into(),
[INFO] [stdout] 645 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 645 -             self.x.into(),
[INFO] [stdout] 645 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 646 -             self.y.into(),
[INFO] [stdout] 646 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 646 -             self.y.into(),
[INFO] [stdout] 646 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |             (self.radius - 0.5).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 647 -             (self.radius - 0.5).into(),
[INFO] [stdout] 647 +             (self.radius - 0.5),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 647 -             (self.radius - 0.5).into(),
[INFO] [stdout] 647 +             <f64 as Into<_>>::into((self.radius - 0.5)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |             (mod_angle as f64 + std::f64::consts::PI ).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 648 -             (mod_angle as f64 + std::f64::consts::PI ).into(),
[INFO] [stdout] 648 +             (mod_angle as f64 + std::f64::consts::PI ),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 648 -             (mod_angle as f64 + std::f64::consts::PI ).into(),
[INFO] [stdout] 648 +             <f64 as Into<_>>::into((mod_angle as f64 + std::f64::consts::PI )),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:655:13
[INFO] [stdout]     |
[INFO] [stdout] 655 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 655 -             self.x.into(),
[INFO] [stdout] 655 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 655 -             self.x.into(),
[INFO] [stdout] 655 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 656 -             self.y.into(),
[INFO] [stdout] 656 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 656 -             self.y.into(),
[INFO] [stdout] 656 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:657:13
[INFO] [stdout]     |
[INFO] [stdout] 657 |             (self.radius - 0.5).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 657 -             (self.radius - 0.5).into(),
[INFO] [stdout] 657 +             (self.radius - 0.5),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 657 -             (self.radius - 0.5).into(),
[INFO] [stdout] 657 +             <f64 as Into<_>>::into((self.radius - 0.5)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:658:13
[INFO] [stdout]     |
[INFO] [stdout] 658 |             mod_angle.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 658 -             mod_angle.into(),
[INFO] [stdout] 658 +             mod_angle,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 658 -             mod_angle.into(),
[INFO] [stdout] 658 +             <f64 as Into<_>>::into(mod_angle),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:672:17
[INFO] [stdout]     |
[INFO] [stdout] 672 |                 self.x.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 672 -                 self.x.into(),
[INFO] [stdout] 672 +                 self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 672 -                 self.x.into(),
[INFO] [stdout] 672 +                 <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:673:17
[INFO] [stdout]     |
[INFO] [stdout] 673 |                 self.y.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 673 -                 self.y.into(),
[INFO] [stdout] 673 +                 self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 673 -                 self.y.into(),
[INFO] [stdout] 673 +                 <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |                 self.radius.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 674 -                 self.radius.into(),
[INFO] [stdout] 674 +                 self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 674 -                 self.radius.into(),
[INFO] [stdout] 674 +                 <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:694:17
[INFO] [stdout]     |
[INFO] [stdout] 694 |                 self.x.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 694 -                 self.x.into(),
[INFO] [stdout] 694 +                 self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 694 -                 self.x.into(),
[INFO] [stdout] 694 +                 <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:695:17
[INFO] [stdout]     |
[INFO] [stdout] 695 |                 self.y.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 695 -                 self.y.into(),
[INFO] [stdout] 695 +                 self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 695 -                 self.y.into(),
[INFO] [stdout] 695 +                 <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:696:17
[INFO] [stdout]     |
[INFO] [stdout] 696 |                 self.radius.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 696 -                 self.radius.into(),
[INFO] [stdout] 696 +                 self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 696 -                 self.radius.into(),
[INFO] [stdout] 696 +                 <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:713:17
[INFO] [stdout]     |
[INFO] [stdout] 713 |                 self.x.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 713 -                 self.x.into(),
[INFO] [stdout] 713 +                 self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 713 -                 self.x.into(),
[INFO] [stdout] 713 +                 <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:714:17
[INFO] [stdout]     |
[INFO] [stdout] 714 |                 self.y.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 714 -                 self.y.into(),
[INFO] [stdout] 714 +                 self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 714 -                 self.y.into(),
[INFO] [stdout] 714 +                 <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:715:17
[INFO] [stdout]     |
[INFO] [stdout] 715 |                 self.radius.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 715 -                 self.radius.into(),
[INFO] [stdout] 715 +                 self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 715 -                 self.radius.into(),
[INFO] [stdout] 715 +                 <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(self.x, self.y.into());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(<f64 as Into<_>>::into(self.x), self.y.into());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:85:36
[INFO] [stdout]    |
[INFO] [stdout] 85 |         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(self.x.into(), self.y);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(self.x.into(), <f64 as Into<_>>::into(self.y));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(self.ex, self.ey.into());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(<f64 as Into<_>>::into(self.ex), self.ey.into());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:86:37
[INFO] [stdout]    |
[INFO] [stdout] 86 |         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(self.ex.into(), self.ey);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(self.ex.into(), <f64 as Into<_>>::into(self.ey));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |         ctx.set_line_width(self.line_width.into());
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 88 -         ctx.set_line_width(self.line_width.into());
[INFO] [stdout] 88 +         ctx.set_line_width(self.line_width);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 88 -         ctx.set_line_width(self.line_width.into());
[INFO] [stdout] 88 +         ctx.set_line_width(<f64 as Into<_>>::into(self.line_width));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/game_sfx.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let mut period = sample_rate / freq;
[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: variable does not need to be mutable
[INFO] [stdout]    --> src/game_sfx.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut period_position = 0.0;
[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_sfx.rs:134:13
[INFO] [stdout]     |
[INFO] [stdout] 134 |         let mut freq_dramp = params.freq_dramp;
[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_sfx.rs:138:13
[INFO] [stdout]     |
[INFO] [stdout] 138 |         let mut lpf_ramp = params.lpf_ramp;
[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_sfx.rs:139:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |         let mut lpf_res = params.lpf_res;
[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_sfx.rs:141:13
[INFO] [stdout]     |
[INFO] [stdout] 141 |         let mut hpf_ramp = params.hpf_ramp;
[INFO] [stdout]     |             ----^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period`
[INFO] [stdout]    --> src/game_sfx.rs:120:13
[INFO] [stdout]     |
[INFO] [stdout] 120 |         let mut period = sample_rate / freq;
[INFO] [stdout]     |             ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_period`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `period_position`
[INFO] [stdout]    --> src/game_sfx.rs:121:13
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let mut period_position = 0.0;
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_period_position`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pp`
[INFO] [stdout]    --> src/game_sfx.rs:243:21
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let pp = fltp;
[INFO] [stdout]     |                     ^^ help: if this is intentional, prefix it with an underscore: `_pp`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `sample` is never read
[INFO] [stdout]    --> src/game_sfx.rs:200:30
[INFO] [stdout]     |
[INFO] [stdout] 200 |             let mut sample = 0.0;
[INFO] [stdout]     |                              ^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 208 |                     sample = if phase_wrapped < duty { 0.5 } else { -0.5 };
[INFO] [stdout]     |                     ------------------------------------------------------ `sample` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `radius_raid` (lib test) due to 37 previous errors; 38 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused variable: `waveform`
[INFO] [stdout]     --> src/lib.rs:1615:9
[INFO] [stdout]      |
[INFO] [stdout] 1615 |         waveform: &str,
[INFO] [stdout]      |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_waveform`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `frequency`
[INFO] [stdout]     --> src/lib.rs:1616:9
[INFO] [stdout]      |
[INFO] [stdout] 1616 |         frequency: f64,
[INFO] [stdout]      |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_frequency`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attack`
[INFO] [stdout]     --> src/lib.rs:1618:9
[INFO] [stdout]      |
[INFO] [stdout] 1618 |         attack: f64,
[INFO] [stdout]      |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_attack`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `decay`
[INFO] [stdout]     --> src/lib.rs:1619:9
[INFO] [stdout]      |
[INFO] [stdout] 1619 |         decay: f64,
[INFO] [stdout]      |         ^^^^^ help: if this is intentional, prefix it with an underscore: `_decay`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sustain`
[INFO] [stdout]     --> src/lib.rs:1620:9
[INFO] [stdout]      |
[INFO] [stdout] 1620 |         sustain: f64,
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_sustain`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `release`
[INFO] [stdout]     --> src/lib.rs:1621:9
[INFO] [stdout]      |
[INFO] [stdout] 1621 |         release: f64,
[INFO] [stdout]      |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_release`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `len`
[INFO] [stdout]     --> src/lib.rs:1625:13
[INFO] [stdout]      |
[INFO] [stdout] 1625 |         let len = (duration * sr as f64) as usize;
[INFO] [stdout]      |             ^^^ help: if this is intentional, prefix it with an underscore: `_len`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `layer_style`
[INFO] [stdout]     --> src/lib.rs:1988:13
[INFO] [stdout]      |
[INFO] [stdout] 1988 |         let layer_style = layer.as_mut().unwrap().style();
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_layer_style`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `margin_left`
[INFO] [stdout]     --> src/lib.rs:1989:13
[INFO] [stdout]      |
[INFO] [stdout] 1989 |         let margin_left =
[INFO] [stdout]      |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_margin_left`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `margin_top`
[INFO] [stdout]     --> src/lib.rs:1994:9
[INFO] [stdout]      |
[INFO] [stdout] 1994 |     let margin_top =
[INFO] [stdout]      |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_margin_top`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]    --> src/lib.rs:99:5
[INFO] [stdout]     |
[INFO] [stdout]  66 | pub struct Game {
[INFO] [stdout]     |            ---- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout]  99 |     okeys: Option<data_models::KeyState>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 108 |     gameover_tick: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^
[INFO] [stdout] 109 |     gameover_tick_max: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 110 |     gameover_explosion: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 111 |
[INFO] [stdout] 112 |     instruction_tick: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 113 |     instruction_tick_max: f64,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     text_pops : Vec<TextPop>,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `spawn_powerups` and `update_background_parallax` are never used
[INFO] [stdout]     --> src/lib.rs:1562:8
[INFO] [stdout]      |
[INFO] [stdout]  159 | impl Game {
[INFO] [stdout]      | --------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 1562 |     fn spawn_powerups(&mut self) {}
[INFO] [stdout]      |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 1971 | fn update_background_parallax(&mut self) {
[INFO] [stdout]      |    ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generator` is never read
[INFO] [stdout]    --> src/sfxr_audio.rs:417:5
[INFO] [stdout]     |
[INFO] [stdout] 415 | pub struct SfxrAudio {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 416 |     audio_ctx: AudioContext,
[INFO] [stdout] 417 |     generator: SfxrGenerator,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `frnd` is never used
[INFO] [stdout]    --> src/sfxr_audio.rs:486:4
[INFO] [stdout]     |
[INFO] [stdout] 486 | fn frnd(range: f32) -> f32 {
[INFO] [stdout]     |    ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:572:13
[INFO] [stdout]     |
[INFO] [stdout] 572 |             (self.x - self.radius).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]     = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 572 -             (self.x - self.radius).into(),
[INFO] [stdout] 572 +             (self.x - self.radius),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 572 -             (self.x - self.radius).into(),
[INFO] [stdout] 572 +             <f64 as Into<_>>::into((self.x - self.radius)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:573:13
[INFO] [stdout]     |
[INFO] [stdout] 573 |             (self.y - self.radius - 6.0).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 573 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 573 +             (self.y - self.radius - 6.0),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 573 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 573 +             <f64 as Into<_>>::into((self.y - self.radius - 6.0)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:574:13
[INFO] [stdout]     |
[INFO] [stdout] 574 |             (self.radius * 2.0).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 574 -             (self.radius * 2.0).into(),
[INFO] [stdout] 574 +             (self.radius * 2.0),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 574 -             (self.radius * 2.0).into(),
[INFO] [stdout] 574 +             <f64 as Into<_>>::into((self.radius * 2.0)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |             (self.x - self.radius).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 585 -             (self.x - self.radius).into(),
[INFO] [stdout] 585 +             (self.x - self.radius),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 585 -             (self.x - self.radius).into(),
[INFO] [stdout] 585 +             <f64 as Into<_>>::into((self.x - self.radius)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:586:13
[INFO] [stdout]     |
[INFO] [stdout] 586 |             (self.y - self.radius - 6.0).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 586 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 586 +             (self.y - self.radius - 6.0),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 586 -             (self.y - self.radius - 6.0).into(),
[INFO] [stdout] 586 +             <f64 as Into<_>>::into((self.y - self.radius - 6.0)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:587:13
[INFO] [stdout]     |
[INFO] [stdout] 587 |             ((self.radius * 2.0) * ratio).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 587 -             ((self.radius * 2.0) * ratio).into(),
[INFO] [stdout] 587 +             ((self.radius * 2.0) * ratio),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 587 -             ((self.radius * 2.0) * ratio).into(),
[INFO] [stdout] 587 +             <f64 as Into<_>>::into(((self.radius * 2.0) * ratio)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:604:13
[INFO] [stdout]     |
[INFO] [stdout] 604 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 604 -             self.x.into(),
[INFO] [stdout] 604 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 604 -             self.x.into(),
[INFO] [stdout] 604 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:605:13
[INFO] [stdout]     |
[INFO] [stdout] 605 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 605 -             self.y.into(),
[INFO] [stdout] 605 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 605 -             self.y.into(),
[INFO] [stdout] 605 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |             self.radius.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 606 -             self.radius.into(),
[INFO] [stdout] 606 +             self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 606 -             self.radius.into(),
[INFO] [stdout] 606 +             <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:617:13
[INFO] [stdout]     |
[INFO] [stdout] 617 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 617 -             self.x.into(),
[INFO] [stdout] 617 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 617 -             self.x.into(),
[INFO] [stdout] 617 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:618:13
[INFO] [stdout]     |
[INFO] [stdout] 618 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 618 -             self.y.into(),
[INFO] [stdout] 618 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 618 -             self.y.into(),
[INFO] [stdout] 618 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:619:13
[INFO] [stdout]     |
[INFO] [stdout] 619 |             r1.into(),
[INFO] [stdout]     |             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 619 -             r1.into(),
[INFO] [stdout] 619 +             r1,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 619 -             r1.into(),
[INFO] [stdout] 619 +             <f64 as Into<_>>::into(r1),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:629:13
[INFO] [stdout]     |
[INFO] [stdout] 629 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 629 -             self.x.into(),
[INFO] [stdout] 629 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 629 -             self.x.into(),
[INFO] [stdout] 629 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:630:13
[INFO] [stdout]     |
[INFO] [stdout] 630 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 630 -             self.y.into(),
[INFO] [stdout] 630 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 630 -             self.y.into(),
[INFO] [stdout] 630 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:631:13
[INFO] [stdout]     |
[INFO] [stdout] 631 |             (self.radius - 0.5).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 631 -             (self.radius - 0.5).into(),
[INFO] [stdout] 631 +             (self.radius - 0.5),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 631 -             (self.radius - 0.5).into(),
[INFO] [stdout] 631 +             <f64 as Into<_>>::into((self.radius - 0.5)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:645:13
[INFO] [stdout]     |
[INFO] [stdout] 645 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 645 -             self.x.into(),
[INFO] [stdout] 645 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 645 -             self.x.into(),
[INFO] [stdout] 645 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:646:13
[INFO] [stdout]     |
[INFO] [stdout] 646 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 646 -             self.y.into(),
[INFO] [stdout] 646 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 646 -             self.y.into(),
[INFO] [stdout] 646 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:647:13
[INFO] [stdout]     |
[INFO] [stdout] 647 |             (self.radius - 0.5).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 647 -             (self.radius - 0.5).into(),
[INFO] [stdout] 647 +             (self.radius - 0.5),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 647 -             (self.radius - 0.5).into(),
[INFO] [stdout] 647 +             <f64 as Into<_>>::into((self.radius - 0.5)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:648:13
[INFO] [stdout]     |
[INFO] [stdout] 648 |             (mod_angle as f64 + std::f64::consts::PI ).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 648 -             (mod_angle as f64 + std::f64::consts::PI ).into(),
[INFO] [stdout] 648 +             (mod_angle as f64 + std::f64::consts::PI ),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 648 -             (mod_angle as f64 + std::f64::consts::PI ).into(),
[INFO] [stdout] 648 +             <f64 as Into<_>>::into((mod_angle as f64 + std::f64::consts::PI )),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:655:13
[INFO] [stdout]     |
[INFO] [stdout] 655 |             self.x.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 655 -             self.x.into(),
[INFO] [stdout] 655 +             self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 655 -             self.x.into(),
[INFO] [stdout] 655 +             <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:656:13
[INFO] [stdout]     |
[INFO] [stdout] 656 |             self.y.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 656 -             self.y.into(),
[INFO] [stdout] 656 +             self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 656 -             self.y.into(),
[INFO] [stdout] 656 +             <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:657:13
[INFO] [stdout]     |
[INFO] [stdout] 657 |             (self.radius - 0.5).into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 657 -             (self.radius - 0.5).into(),
[INFO] [stdout] 657 +             (self.radius - 0.5),
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 657 -             (self.radius - 0.5).into(),
[INFO] [stdout] 657 +             <f64 as Into<_>>::into((self.radius - 0.5)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:658:13
[INFO] [stdout]     |
[INFO] [stdout] 658 |             mod_angle.into(),
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 658 -             mod_angle.into(),
[INFO] [stdout] 658 +             mod_angle,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 658 -             mod_angle.into(),
[INFO] [stdout] 658 +             <f64 as Into<_>>::into(mod_angle),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:672:17
[INFO] [stdout]     |
[INFO] [stdout] 672 |                 self.x.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 672 -                 self.x.into(),
[INFO] [stdout] 672 +                 self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 672 -                 self.x.into(),
[INFO] [stdout] 672 +                 <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:673:17
[INFO] [stdout]     |
[INFO] [stdout] 673 |                 self.y.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 673 -                 self.y.into(),
[INFO] [stdout] 673 +                 self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 673 -                 self.y.into(),
[INFO] [stdout] 673 +                 <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:674:17
[INFO] [stdout]     |
[INFO] [stdout] 674 |                 self.radius.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 674 -                 self.radius.into(),
[INFO] [stdout] 674 +                 self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 674 -                 self.radius.into(),
[INFO] [stdout] 674 +                 <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:694:17
[INFO] [stdout]     |
[INFO] [stdout] 694 |                 self.x.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 694 -                 self.x.into(),
[INFO] [stdout] 694 +                 self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 694 -                 self.x.into(),
[INFO] [stdout] 694 +                 <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:695:17
[INFO] [stdout]     |
[INFO] [stdout] 695 |                 self.y.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 695 -                 self.y.into(),
[INFO] [stdout] 695 +                 self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 695 -                 self.y.into(),
[INFO] [stdout] 695 +                 <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:696:17
[INFO] [stdout]     |
[INFO] [stdout] 696 |                 self.radius.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 696 -                 self.radius.into(),
[INFO] [stdout] 696 +                 self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 696 -                 self.radius.into(),
[INFO] [stdout] 696 +                 <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:713:17
[INFO] [stdout]     |
[INFO] [stdout] 713 |                 self.x.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 713 -                 self.x.into(),
[INFO] [stdout] 713 +                 self.x,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 713 -                 self.x.into(),
[INFO] [stdout] 713 +                 <f64 as Into<_>>::into(self.x),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:714:17
[INFO] [stdout]     |
[INFO] [stdout] 714 |                 self.y.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 714 -                 self.y.into(),
[INFO] [stdout] 714 +                 self.y,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 714 -                 self.y.into(),
[INFO] [stdout] 714 +                 <f64 as Into<_>>::into(self.y),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]    --> src/enemy.rs:715:17
[INFO] [stdout]     |
[INFO] [stdout] 715 |                 self.radius.into(),
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]     |
[INFO] [stdout] 715 -                 self.radius.into(),
[INFO] [stdout] 715 +                 self.radius,
[INFO] [stdout]     |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]     |
[INFO] [stdout] 715 -                 self.radius.into(),
[INFO] [stdout] 715 +                 <f64 as Into<_>>::into(self.radius),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:85:21
[INFO] [stdout]    |
[INFO] [stdout] 85 |         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout]    |                     ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(self.x, self.y.into());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(<f64 as Into<_>>::into(self.x), self.y.into());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:85:36
[INFO] [stdout]    |
[INFO] [stdout] 85 |         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(self.x.into(), self.y);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 85 -         ctx.move_to(self.x.into(), self.y.into());
[INFO] [stdout] 85 +         ctx.move_to(self.x.into(), <f64 as Into<_>>::into(self.y));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:86:21
[INFO] [stdout]    |
[INFO] [stdout] 86 |         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(self.ex, self.ey.into());
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(<f64 as Into<_>>::into(self.ex), self.ey.into());
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:86:37
[INFO] [stdout]    |
[INFO] [stdout] 86 |         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(self.ex.into(), self.ey);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 86 -         ctx.line_to(self.ex.into(), self.ey.into());
[INFO] [stdout] 86 +         ctx.line_to(self.ex.into(), <f64 as Into<_>>::into(self.ey));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/particle.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |         ctx.set_line_width(self.line_width.into());
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout] help: consider removing the conversion call
[INFO] [stdout]    |
[INFO] [stdout] 88 -         ctx.set_line_width(self.line_width.into());
[INFO] [stdout] 88 +         ctx.set_line_width(self.line_width);
[INFO] [stdout]    |
[INFO] [stdout] help: you can use the fully-qualified path to avoid triggering this lint
[INFO] [stdout]    |
[INFO] [stdout] 88 -         ctx.set_line_width(self.line_width.into());
[INFO] [stdout] 88 +         ctx.set_line_width(<f64 as Into<_>>::into(self.line_width));
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `radius_raid` (lib) due to 37 previous errors; 38 warnings emitted
[INFO] [stderr] warning: unused dependency `console_error_panic_hook`
[INFO] [stderr]  --> Cargo.toml:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | console_error_panic_hook = "0.1.7"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `console_error_panic_hook`
[INFO] [stderr] warning: unused dependency `serde-wasm-bindgen`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | serde-wasm-bindgen = "0.6.5"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr] help: consider removing the dependency on `serde-wasm-bindgen`
[INFO] [stderr] warning: `radius_raid` (manifest) generated 2 warnings
[INFO] running `Command { std: "docker" "inspect" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b", kill_on_drop: false }`
[INFO] [stdout] 3ca04cd1858b9e255b06cb50891ca6bf8cd5c9a6aa7dcf498c5ddf2a3167692b
