[INFO] fetching crate fallingblocks 0.1.4...
[INFO] building fallingblocks-0.1.4 against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] extracting crate fallingblocks 0.1.4 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate fallingblocks 0.1.4
[INFO] finished tweaking crates.io crate fallingblocks 0.1.4
[INFO] tweaked toml for crates.io crate fallingblocks 0.1.4 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate fallingblocks 0.1.4 on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate fallingblocks 0.1.4 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded symphonia v0.5.4
[INFO] [stderr]   Downloaded symphonia-format-ogg v0.5.4
[INFO] [stderr]   Downloaded symphonia-utils-xiph v0.5.4
[INFO] [stderr]   Downloaded extended v0.1.0
[INFO] [stderr]   Downloaded symphonia-metadata v0.5.4
[INFO] [stderr]   Downloaded symphonia-format-riff v0.5.4
[INFO] [stderr]   Downloaded symphonia-format-isomp4 v0.5.4
[INFO] [stderr]   Downloaded bevy_ecs_macros v0.15.3
[INFO] [stderr]   Downloaded bevy_ptr v0.15.3
[INFO] [stderr]   Downloaded coreaudio-rs v0.11.3
[INFO] [stderr]   Downloaded bevy_reflect_derive v0.15.3
[INFO] [stderr]   Downloaded cc v1.2.17
[INFO] [stderr]   Downloaded symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]   Downloaded microfft v0.6.0
[INFO] [stderr]   Downloaded alsa v0.9.1
[INFO] [stderr]   Downloaded ndk v0.8.0
[INFO] [stderr]   Downloaded jiff-static v0.2.5
[INFO] [stderr]   Downloaded fundsp v0.20.0
[INFO] [stderr]   Downloaded cpal v0.15.3
[INFO] [stderr]   Downloaded oboe v0.6.1
[INFO] [stderr]   Downloaded bevy_reflect v0.15.3
[INFO] [stderr]   Downloaded oboe-sys v0.6.1
[INFO] [stderr]   Downloaded generic-array v1.2.0
[INFO] [stderr]   Downloaded symphonia-codec-vorbis v0.5.4
[INFO] [stderr]   Downloaded symphonia-format-caf v0.5.4
[INFO] [stderr]   Downloaded symphonia-core v0.5.4
[INFO] [stderr]   Downloaded bevy_macro_utils v0.15.3
[INFO] [stderr]   Downloaded uuid v1.12.1
[INFO] [stderr]   Downloaded bevy_tasks v0.15.3
[INFO] [stderr]   Downloaded bevy_utils_proc_macros v0.15.3
[INFO] [stderr]   Downloaded bevy_utils v0.15.3
[INFO] [stderr]   Downloaded dasp_sample v0.11.0
[INFO] [stderr]   Downloaded numeric-array v0.6.1
[INFO] [stderr]   Downloaded glam v0.28.0
[INFO] [stderr]   Downloaded symphonia-codec-aac v0.5.4
[INFO] [stderr]   Downloaded symphonia-codec-alac v0.5.4
[INFO] [stderr]   Downloaded symphonia-codec-pcm v0.5.4
[INFO] [stderr]   Downloaded bevy_ecs v0.15.3
[INFO] [stderr]   Downloaded symphonia-format-mkv v0.5.4
[INFO] [stderr]   Downloaded thingbuf v0.1.6
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.16
[INFO] [stderr]   Downloaded symphonia-bundle-flac v0.5.4
[INFO] [stderr]   Downloaded symphonia-codec-adpcm v0.5.4
[INFO] [stderr]   Downloaded jiff v0.2.5
[INFO] [stderr]   Downloaded funutd v0.16.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] be1d6b96949aa5032de2055690fcf70f92721d7c4d896a7270b8a2e04e0ea455
[INFO] running `Command { std: "docker" "start" "-a" "be1d6b96949aa5032de2055690fcf70f92721d7c4d896a7270b8a2e04e0ea455", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "be1d6b96949aa5032de2055690fcf70f92721d7c4d896a7270b8a2e04e0ea455", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "be1d6b96949aa5032de2055690fcf70f92721d7c4d896a7270b8a2e04e0ea455", kill_on_drop: false }`
[INFO] [stdout] be1d6b96949aa5032de2055690fcf70f92721d7c4d896a7270b8a2e04e0ea455
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 09e5f54a0de145c28ba667b3a7fa7988b87bfb50e6b98b97f3a0e5229499d998
[INFO] running `Command { std: "docker" "start" "-a" "09e5f54a0de145c28ba667b3a7fa7988b87bfb50e6b98b97f3a0e5229499d998", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.100
[INFO] [stderr]    Compiling bytemuck v1.22.0
[INFO] [stderr]    Compiling libc v0.2.171
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling once_cell v1.21.1
[INFO] [stderr]    Compiling smallvec v1.14.0
[INFO] [stderr]    Compiling foldhash v0.1.5
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling indexmap v2.8.0
[INFO] [stderr]    Compiling winnow v0.7.4
[INFO] [stderr]    Compiling typeid v1.0.3
[INFO] [stderr]    Compiling typenum v1.18.0
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling symphonia-core v0.5.4
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling alsa-sys v0.3.1
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling rustix v0.38.44
[INFO] [stderr]    Compiling futures-core v0.3.31
[INFO] [stderr]    Compiling futures-lite v2.6.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling async-task v4.7.1
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling extended v0.1.0
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling const-random-macro v0.1.16
[INFO] [stderr]    Compiling uuid v1.12.1
[INFO] [stderr]    Compiling async-executor v1.13.1
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling symphonia-metadata v0.5.4
[INFO] [stderr]    Compiling const-random v0.1.18
[INFO] [stderr]    Compiling generic-array v1.2.0
[INFO] [stderr]    Compiling symphonia-codec-adpcm v0.5.4
[INFO] [stderr]    Compiling symphonia-codec-aac v0.5.4
[INFO] [stderr]    Compiling symphonia-codec-alac v0.5.4
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling toml_edit v0.22.24
[INFO] [stderr]    Compiling symphonia-utils-xiph v0.5.4
[INFO] [stderr]    Compiling symphonia-format-caf v0.5.4
[INFO] [stderr]    Compiling symphonia-codec-vorbis v0.5.4
[INFO] [stderr]    Compiling symphonia-bundle-flac v0.5.4
[INFO] [stderr]    Compiling symphonia-format-mkv v0.5.4
[INFO] [stderr]    Compiling symphonia-format-isomp4 v0.5.4
[INFO] [stderr]    Compiling symphonia-format-ogg v0.5.4
[INFO] [stderr]    Compiling symphonia-bundle-mp3 v0.5.4
[INFO] [stderr]    Compiling symphonia-format-riff v0.5.4
[INFO] [stderr]    Compiling symphonia-codec-pcm v0.5.4
[INFO] [stderr]    Compiling castaway v0.2.3
[INFO] [stderr]    Compiling glam v0.28.0
[INFO] [stderr]    Compiling cpal v0.15.3
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling indoc v2.0.6
[INFO] [stderr]    Compiling disqualified v1.0.0
[INFO] [stderr]    Compiling bevy_ptr v0.15.3
[INFO] [stderr]    Compiling unicode-truncate v1.1.0
[INFO] [stderr]    Compiling anstream v0.6.18
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling erased-serde v0.4.6
[INFO] [stderr]    Compiling symphonia v0.5.4
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling compact_str v0.8.1
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling wide v0.7.32
[INFO] [stderr]    Compiling numeric-array v0.6.1
[INFO] [stderr]    Compiling bevy_tasks v0.15.3
[INFO] [stderr]    Compiling microfft v0.6.0
[INFO] [stderr]    Compiling env_filter v0.1.3
[INFO] [stderr]    Compiling alsa v0.9.1
[INFO] [stderr]    Compiling lru v0.12.5
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling nonmax v0.5.5
[INFO] [stderr]    Compiling bevy_macro_utils v0.15.3
[INFO] [stderr]    Compiling darling_core v0.20.10
[INFO] [stderr]    Compiling cassowary v0.3.0
[INFO] [stderr]    Compiling fixedbitset v0.5.7
[INFO] [stderr]    Compiling unicode-width v0.2.0
[INFO] [stderr]    Compiling dasp_sample v0.11.0
[INFO] [stderr]    Compiling jiff v0.2.5
[INFO] [stderr]    Compiling tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling tracing-attributes v0.1.28
[INFO] [stderr]    Compiling pin-project-internal v1.1.10
[INFO] [stderr]    Compiling bevy_utils_proc_macros v0.15.3
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling bevy_reflect_derive v0.15.3
[INFO] [stderr]    Compiling assert_type_match v0.1.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling bevy_ecs_macros v0.15.3
[INFO] [stderr]    Compiling pin-project v1.1.10
[INFO] [stderr]    Compiling thingbuf v0.1.6
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling bevy_utils v0.15.3
[INFO] [stderr]    Compiling darling_macro v0.20.10
[INFO] [stderr]    Compiling strum v0.26.3
[INFO] [stderr]    Compiling funutd v0.16.0
[INFO] [stderr]    Compiling darling v0.20.10
[INFO] [stderr]    Compiling instability v0.3.7
[INFO] [stderr]    Compiling fundsp v0.20.0
[INFO] [stderr]    Compiling ratatui v0.29.0
[INFO] [stderr]    Compiling derive_more v1.0.0
[INFO] [stderr]    Compiling bevy_reflect v0.15.3
[INFO] [stderr]    Compiling env_logger v0.11.7
[INFO] [stderr]    Compiling bevy_ecs v0.15.3
[INFO] [stderr]    Compiling fallingblocks v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/app.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[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: `TetrominoType`
[INFO] [stdout]   --> src/app.rs:14:75
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::components::{Board, CoyoteTime, GameState, Input, ScreenShake, TetrominoType};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::particles`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::particles;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders` and `Margin`
[INFO] [stdout]   --> src/menu.rs:8:56
[INFO] [stdout]    |
[INFO] [stdout]  8 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     widgets::{Block, Borders, Paragraph, Wrap},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/sound.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `KeyEvent`, `KeyModifiers`, and `self`
[INFO] [stdout]   --> src/systems.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers};
[INFO] [stdout]    |                        ^^^^  ^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/systems.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OptionsOption`
[INFO] [stdout]   --> src/ui.rs:21:36
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::menu_types::{MenuState, OptionsOption};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/menu.rs:126:33
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[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/menu.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[INFO] [stdout]     |                                 ----^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/sound.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sound.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/systems.rs:716:27
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn update_music_for_level(world: &mut World) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/menu.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn centered_rect(width: u16, height: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]   --> src/sound.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum AudioCommand {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_move_click` is never used
[INFO] [stdout]    --> src/sound.rs:557:4
[INFO] [stdout]     |
[INFO] [stdout] 557 | fn create_move_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_rotate_click` is never used
[INFO] [stdout]    --> src/sound.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn create_rotate_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_soft_drop` is never used
[INFO] [stdout]    --> src/sound.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn create_soft_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hard_drop` is never used
[INFO] [stdout]    --> src/sound.rs:572:4
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn create_hard_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear` is never used
[INFO] [stdout]    --> src/sound.rs:577:4
[INFO] [stdout]     |
[INFO] [stdout] 577 | fn create_line_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tetris` is never used
[INFO] [stdout]    --> src/sound.rs:595:4
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn create_tetris() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tspin` is never used
[INFO] [stdout]    --> src/sound.rs:612:4
[INFO] [stdout]     |
[INFO] [stdout] 612 | fn create_tspin() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_game_over` is never used
[INFO] [stdout]    --> src/sound.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn create_game_over() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_level_up` is never used
[INFO] [stdout]    --> src/sound.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn create_level_up() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_perfect_clear` is never used
[INFO] [stdout]    --> src/sound.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn create_perfect_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sound_effect` is never used
[INFO] [stdout]    --> src/sound.rs:659:4
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn create_sound_effect(effect: SoundEffect) -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_background_music` is never used
[INFO] [stdout]    --> src/sound.rs:678:4
[INFO] [stdout]     |
[INFO] [stdout] 678 | fn create_background_music() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_move_sound` is never used
[INFO] [stdout]    --> src/sound.rs:708:4
[INFO] [stdout]     |
[INFO] [stdout] 708 | fn create_block_move_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_rotate_sound` is never used
[INFO] [stdout]    --> src/sound.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn create_block_rotate_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_place_sound` is never used
[INFO] [stdout]    --> src/sound.rs:724:4
[INFO] [stdout]     |
[INFO] [stdout] 724 | fn create_block_place_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear_sound` is never used
[INFO] [stdout]    --> src/sound.rs:735:4
[INFO] [stdout]     |
[INFO] [stdout] 735 | fn create_line_clear_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&Ghost` instead of cloning the inner type
[INFO] [stdout]    --> src/systems.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |             ghost_clone = Some(ghost.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/app.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[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: `TetrominoType`
[INFO] [stdout]   --> src/app.rs:14:75
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::components::{Board, CoyoteTime, GameState, Input, ScreenShake, TetrominoType};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::particles`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::particles;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders` and `Margin`
[INFO] [stdout]   --> src/menu.rs:8:56
[INFO] [stdout]    |
[INFO] [stdout]  8 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     widgets::{Block, Borders, Paragraph, Wrap},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/sound.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `KeyEvent`, `KeyModifiers`, and `self`
[INFO] [stdout]   --> src/systems.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers};
[INFO] [stdout]    |                        ^^^^  ^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/systems.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OptionsOption`
[INFO] [stdout]   --> src/ui.rs:21:36
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::menu_types::{MenuState, OptionsOption};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/menu.rs:126:33
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[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/menu.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[INFO] [stdout]     |                                 ----^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/sound.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sound.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/systems.rs:716:27
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn update_music_for_level(world: &mut World) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:193:61
[INFO] [stdout]     |
[INFO] [stdout] 193 | ...                   if let Some(mut audio_state) =
[INFO] [stdout]     |                                   ----^^^^^^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:207:61
[INFO] [stdout]     |
[INFO] [stdout] 207 | ...                   if let Some(mut audio_state) =
[INFO] [stdout]     |                                   ----^^^^^^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_tick` is never used
[INFO] [stdout]    --> src/app.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl App {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn on_tick(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `select` is never used
[INFO] [stdout]    --> src/menu.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl MenuRenderer {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn select(&mut self, menu: &mut Menu, app: &mut App) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/menu.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn centered_rect(width: u16, height: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_random_menu_particle` is never used
[INFO] [stdout]    --> src/particles.rs:311:8
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub fn create_random_menu_particle() -> Particle {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]   --> src/sound.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum AudioCommand {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_move_click` is never used
[INFO] [stdout]    --> src/sound.rs:557:4
[INFO] [stdout]     |
[INFO] [stdout] 557 | fn create_move_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_rotate_click` is never used
[INFO] [stdout]    --> src/sound.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn create_rotate_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_soft_drop` is never used
[INFO] [stdout]    --> src/sound.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn create_soft_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hard_drop` is never used
[INFO] [stdout]    --> src/sound.rs:572:4
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn create_hard_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear` is never used
[INFO] [stdout]    --> src/sound.rs:577:4
[INFO] [stdout]     |
[INFO] [stdout] 577 | fn create_line_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tetris` is never used
[INFO] [stdout]    --> src/sound.rs:595:4
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn create_tetris() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tspin` is never used
[INFO] [stdout]    --> src/sound.rs:612:4
[INFO] [stdout]     |
[INFO] [stdout] 612 | fn create_tspin() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_game_over` is never used
[INFO] [stdout]    --> src/sound.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn create_game_over() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_level_up` is never used
[INFO] [stdout]    --> src/sound.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn create_level_up() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_perfect_clear` is never used
[INFO] [stdout]    --> src/sound.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn create_perfect_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sound_effect` is never used
[INFO] [stdout]    --> src/sound.rs:659:4
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn create_sound_effect(effect: SoundEffect) -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_background_music` is never used
[INFO] [stdout]    --> src/sound.rs:678:4
[INFO] [stdout]     |
[INFO] [stdout] 678 | fn create_background_music() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_move_sound` is never used
[INFO] [stdout]    --> src/sound.rs:708:4
[INFO] [stdout]     |
[INFO] [stdout] 708 | fn create_block_move_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_rotate_sound` is never used
[INFO] [stdout]    --> src/sound.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn create_block_rotate_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_place_sound` is never used
[INFO] [stdout]    --> src/sound.rs:724:4
[INFO] [stdout]     |
[INFO] [stdout] 724 | fn create_block_place_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear_sound` is never used
[INFO] [stdout]    --> src/sound.rs:735:4
[INFO] [stdout]     |
[INFO] [stdout] 735 | fn create_line_clear_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&components::Ghost` instead of cloning the inner type
[INFO] [stdout]    --> src/systems.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |             ghost_clone = Some(ghost.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 15s
[INFO] running `Command { std: "docker" "inspect" "09e5f54a0de145c28ba667b3a7fa7988b87bfb50e6b98b97f3a0e5229499d998", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "09e5f54a0de145c28ba667b3a7fa7988b87bfb50e6b98b97f3a0e5229499d998", kill_on_drop: false }`
[INFO] [stdout] 09e5f54a0de145c28ba667b3a7fa7988b87bfb50e6b98b97f3a0e5229499d998
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a4f17e573e7f888d27944ae67ea5b07c7201f87431f8ec794719a34a1da33950
[INFO] running `Command { std: "docker" "start" "-a" "a4f17e573e7f888d27944ae67ea5b07c7201f87431f8ec794719a34a1da33950", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/app.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[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: `TetrominoType`
[INFO] [stdout]   --> src/app.rs:14:75
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::components::{Board, CoyoteTime, GameState, Input, ScreenShake, TetrominoType};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::particles`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::particles;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders` and `Margin`
[INFO] [stdout]   --> src/menu.rs:8:56
[INFO] [stdout]    |
[INFO] [stdout]  8 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     widgets::{Block, Borders, Paragraph, Wrap},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/sound.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `KeyEvent`, `KeyModifiers`, and `self`
[INFO] [stdout]   --> src/systems.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers};
[INFO] [stdout]    |                        ^^^^  ^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/systems.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OptionsOption`
[INFO] [stdout]   --> src/ui.rs:21:36
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::menu_types::{MenuState, OptionsOption};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/menu.rs:126:33
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[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/menu.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[INFO] [stdout]     |                                 ----^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/sound.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling fallingblocks v0.1.4 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sound.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/systems.rs:716:27
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn update_music_for_level(world: &mut World) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/menu.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn centered_rect(width: u16, height: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]   --> src/sound.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum AudioCommand {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_move_click` is never used
[INFO] [stdout]    --> src/sound.rs:557:4
[INFO] [stdout]     |
[INFO] [stdout] 557 | fn create_move_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_rotate_click` is never used
[INFO] [stdout]    --> src/sound.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn create_rotate_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_soft_drop` is never used
[INFO] [stdout]    --> src/sound.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn create_soft_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hard_drop` is never used
[INFO] [stdout]    --> src/sound.rs:572:4
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn create_hard_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear` is never used
[INFO] [stdout]    --> src/sound.rs:577:4
[INFO] [stdout]     |
[INFO] [stdout] 577 | fn create_line_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tetris` is never used
[INFO] [stdout]    --> src/sound.rs:595:4
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn create_tetris() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tspin` is never used
[INFO] [stdout]    --> src/sound.rs:612:4
[INFO] [stdout]     |
[INFO] [stdout] 612 | fn create_tspin() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_game_over` is never used
[INFO] [stdout]    --> src/sound.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn create_game_over() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_level_up` is never used
[INFO] [stdout]    --> src/sound.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn create_level_up() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_perfect_clear` is never used
[INFO] [stdout]    --> src/sound.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn create_perfect_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sound_effect` is never used
[INFO] [stdout]    --> src/sound.rs:659:4
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn create_sound_effect(effect: SoundEffect) -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_background_music` is never used
[INFO] [stdout]    --> src/sound.rs:678:4
[INFO] [stdout]     |
[INFO] [stdout] 678 | fn create_background_music() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_move_sound` is never used
[INFO] [stdout]    --> src/sound.rs:708:4
[INFO] [stdout]     |
[INFO] [stdout] 708 | fn create_block_move_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_rotate_sound` is never used
[INFO] [stdout]    --> src/sound.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn create_block_rotate_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_place_sound` is never used
[INFO] [stdout]    --> src/sound.rs:724:4
[INFO] [stdout]     |
[INFO] [stdout] 724 | fn create_block_place_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear_sound` is never used
[INFO] [stdout]    --> src/sound.rs:735:4
[INFO] [stdout]     |
[INFO] [stdout] 735 | fn create_line_clear_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&Ghost` instead of cloning the inner type
[INFO] [stdout]    --> src/systems.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |             ghost_clone = Some(ghost.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/app.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[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: `TetrominoType`
[INFO] [stdout]   --> src/app.rs:14:75
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::components::{Board, CoyoteTime, GameState, Input, ScreenShake, TetrominoType};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::particles`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::particles;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders` and `Margin`
[INFO] [stdout]   --> src/menu.rs:8:56
[INFO] [stdout]    |
[INFO] [stdout]  8 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     widgets::{Block, Borders, Paragraph, Wrap},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/sound.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `KeyEvent`, `KeyModifiers`, and `self`
[INFO] [stdout]   --> src/systems.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers};
[INFO] [stdout]    |                        ^^^^  ^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/systems.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OptionsOption`
[INFO] [stdout]   --> src/ui.rs:21:36
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::menu_types::{MenuState, OptionsOption};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/app.rs:11:17
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::time::{Duration, Instant};
[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: `TetrominoType`
[INFO] [stdout]   --> src/app.rs:14:75
[INFO] [stdout]    |
[INFO] [stdout] 14 | use crate::components::{Board, CoyoteTime, GameState, Input, ScreenShake, TetrominoType};
[INFO] [stdout]    |                                                                           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::particles`
[INFO] [stdout]  --> src/menu.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::particles;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Borders` and `Margin`
[INFO] [stdout]   --> src/menu.rs:8:56
[INFO] [stdout]    |
[INFO] [stdout]  8 |     layout::{Alignment, Constraint, Direction, Layout, Margin, Rect},
[INFO] [stdout]    |                                                        ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 11 |     widgets::{Block, Borders, Paragraph, Wrap},
[INFO] [stdout]    |                      ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Instant`
[INFO] [stdout]  --> src/sound.rs:8:27
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                           ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event`, `KeyCode`, `KeyEvent`, `KeyModifiers`, and `self`
[INFO] [stdout]   --> src/systems.rs:25:24
[INFO] [stdout]    |
[INFO] [stdout] 25 | use crossterm::event::{self, Event, KeyCode, KeyEvent, KeyModifiers};
[INFO] [stdout]    |                        ^^^^  ^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Duration` and `Instant`
[INFO] [stdout]   --> src/systems.rs:26:17
[INFO] [stdout]    |
[INFO] [stdout] 26 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `OptionsOption`
[INFO] [stdout]   --> src/ui.rs:21:36
[INFO] [stdout]    |
[INFO] [stdout] 21 | use crate::menu_types::{MenuState, OptionsOption};
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/menu.rs:126:33
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[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/menu.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[INFO] [stdout]     |                                 ----^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/sound.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sound.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[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/menu.rs:126:33
[INFO] [stdout]     |
[INFO] [stdout] 126 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[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/menu.rs:137:33
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     if let Some(mut audio_state) = app.world.get_resource_mut::<AudioState>() {
[INFO] [stdout]     |                                 ----^^^^^^^^^^^
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `stream`
[INFO] [stdout]    --> src/sound.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_stream`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/sound.rs:256:13
[INFO] [stdout]     |
[INFO] [stdout] 256 |         let mut stream = match stream {
[INFO] [stdout]     |             ----^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/systems.rs:716:27
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn update_music_for_level(world: &mut World) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:193:61
[INFO] [stdout]     |
[INFO] [stdout] 193 | ...                   if let Some(mut audio_state) =
[INFO] [stdout]     |                                   ----^^^^^^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/main.rs:207:61
[INFO] [stdout]     |
[INFO] [stdout] 207 | ...                   if let Some(mut audio_state) =
[INFO] [stdout]     |                                   ----^^^^^^^^^^^
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `on_tick` is never used
[INFO] [stdout]    --> src/app.rs:111:12
[INFO] [stdout]     |
[INFO] [stdout]  32 | impl App {
[INFO] [stdout]     | -------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn on_tick(&mut self) {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `select` is never used
[INFO] [stdout]    --> src/menu.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  71 | impl MenuRenderer {
[INFO] [stdout]     | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn select(&mut self, menu: &mut Menu, app: &mut App) -> bool {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/menu.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn centered_rect(width: u16, height: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_random_menu_particle` is never used
[INFO] [stdout]    --> src/particles.rs:311:8
[INFO] [stdout]     |
[INFO] [stdout] 311 | pub fn create_random_menu_particle() -> Particle {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]   --> src/sound.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum AudioCommand {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_move_click` is never used
[INFO] [stdout]    --> src/sound.rs:557:4
[INFO] [stdout]     |
[INFO] [stdout] 557 | fn create_move_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_rotate_click` is never used
[INFO] [stdout]    --> src/sound.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn create_rotate_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_soft_drop` is never used
[INFO] [stdout]    --> src/sound.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn create_soft_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hard_drop` is never used
[INFO] [stdout]    --> src/sound.rs:572:4
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn create_hard_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear` is never used
[INFO] [stdout]    --> src/sound.rs:577:4
[INFO] [stdout]     |
[INFO] [stdout] 577 | fn create_line_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tetris` is never used
[INFO] [stdout]    --> src/sound.rs:595:4
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn create_tetris() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tspin` is never used
[INFO] [stdout]    --> src/sound.rs:612:4
[INFO] [stdout]     |
[INFO] [stdout] 612 | fn create_tspin() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_game_over` is never used
[INFO] [stdout]    --> src/sound.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn create_game_over() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_level_up` is never used
[INFO] [stdout]    --> src/sound.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn create_level_up() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_perfect_clear` is never used
[INFO] [stdout]    --> src/sound.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn create_perfect_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sound_effect` is never used
[INFO] [stdout]    --> src/sound.rs:659:4
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn create_sound_effect(effect: SoundEffect) -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_background_music` is never used
[INFO] [stdout]    --> src/sound.rs:678:4
[INFO] [stdout]     |
[INFO] [stdout] 678 | fn create_background_music() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_move_sound` is never used
[INFO] [stdout]    --> src/sound.rs:708:4
[INFO] [stdout]     |
[INFO] [stdout] 708 | fn create_block_move_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_rotate_sound` is never used
[INFO] [stdout]    --> src/sound.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn create_block_rotate_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_place_sound` is never used
[INFO] [stdout]    --> src/sound.rs:724:4
[INFO] [stdout]     |
[INFO] [stdout] 724 | fn create_block_place_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear_sound` is never used
[INFO] [stdout]    --> src/sound.rs:735:4
[INFO] [stdout]     |
[INFO] [stdout] 735 | fn create_line_clear_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `world`
[INFO] [stdout]    --> src/systems.rs:716:27
[INFO] [stdout]     |
[INFO] [stdout] 716 | fn update_music_for_level(world: &mut World) {
[INFO] [stdout]     |                           ^^^^^ help: if this is intentional, prefix it with an underscore: `_world`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&components::Ghost` instead of cloning the inner type
[INFO] [stdout]    --> src/systems.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |             ghost_clone = Some(ghost.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `centered_rect` is never used
[INFO] [stdout]    --> src/menu.rs:407:4
[INFO] [stdout]     |
[INFO] [stdout] 407 | fn centered_rect(width: u16, height: u16, r: Rect) -> Rect {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Quit` is never constructed
[INFO] [stdout]   --> src/sound.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 30 | enum AudioCommand {
[INFO] [stdout]    |      ------------ variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 34 |     Quit,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_move_click` is never used
[INFO] [stdout]    --> src/sound.rs:557:4
[INFO] [stdout]     |
[INFO] [stdout] 557 | fn create_move_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_rotate_click` is never used
[INFO] [stdout]    --> src/sound.rs:562:4
[INFO] [stdout]     |
[INFO] [stdout] 562 | fn create_rotate_click() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_soft_drop` is never used
[INFO] [stdout]    --> src/sound.rs:567:4
[INFO] [stdout]     |
[INFO] [stdout] 567 | fn create_soft_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_hard_drop` is never used
[INFO] [stdout]    --> src/sound.rs:572:4
[INFO] [stdout]     |
[INFO] [stdout] 572 | fn create_hard_drop() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear` is never used
[INFO] [stdout]    --> src/sound.rs:577:4
[INFO] [stdout]     |
[INFO] [stdout] 577 | fn create_line_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tetris` is never used
[INFO] [stdout]    --> src/sound.rs:595:4
[INFO] [stdout]     |
[INFO] [stdout] 595 | fn create_tetris() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_tspin` is never used
[INFO] [stdout]    --> src/sound.rs:612:4
[INFO] [stdout]     |
[INFO] [stdout] 612 | fn create_tspin() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_game_over` is never used
[INFO] [stdout]    --> src/sound.rs:622:4
[INFO] [stdout]     |
[INFO] [stdout] 622 | fn create_game_over() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_level_up` is never used
[INFO] [stdout]    --> src/sound.rs:631:4
[INFO] [stdout]     |
[INFO] [stdout] 631 | fn create_level_up() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_perfect_clear` is never used
[INFO] [stdout]    --> src/sound.rs:647:4
[INFO] [stdout]     |
[INFO] [stdout] 647 | fn create_perfect_clear() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_sound_effect` is never used
[INFO] [stdout]    --> src/sound.rs:659:4
[INFO] [stdout]     |
[INFO] [stdout] 659 | fn create_sound_effect(effect: SoundEffect) -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_background_music` is never used
[INFO] [stdout]    --> src/sound.rs:678:4
[INFO] [stdout]     |
[INFO] [stdout] 678 | fn create_background_music() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_move_sound` is never used
[INFO] [stdout]    --> src/sound.rs:708:4
[INFO] [stdout]     |
[INFO] [stdout] 708 | fn create_block_move_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_rotate_sound` is never used
[INFO] [stdout]    --> src/sound.rs:715:4
[INFO] [stdout]     |
[INFO] [stdout] 715 | fn create_block_rotate_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_block_place_sound` is never used
[INFO] [stdout]    --> src/sound.rs:724:4
[INFO] [stdout]     |
[INFO] [stdout] 724 | fn create_block_place_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_line_clear_sound` is never used
[INFO] [stdout]    --> src/sound.rs:735:4
[INFO] [stdout]     |
[INFO] [stdout] 735 | fn create_line_clear_sound() -> Box<dyn AudioUnit> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: using `.clone()` on a double reference, which returns `&components::Ghost` instead of cloning the inner type
[INFO] [stdout]    --> src/systems.rs:355:37
[INFO] [stdout]     |
[INFO] [stdout] 355 |             ghost_clone = Some(ghost.clone());
[INFO] [stdout]     |                                     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(suspicious_double_ref_op)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 3.93s
[INFO] running `Command { std: "docker" "inspect" "a4f17e573e7f888d27944ae67ea5b07c7201f87431f8ec794719a34a1da33950", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4f17e573e7f888d27944ae67ea5b07c7201f87431f8ec794719a34a1da33950", kill_on_drop: false }`
[INFO] [stdout] a4f17e573e7f888d27944ae67ea5b07c7201f87431f8ec794719a34a1da33950
