[INFO] fetching crate craydate 0.1.7...
[INFO] testing craydate-0.1.7 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate craydate 0.1.7 into /workspace/builds/worker-0-tc1/source
[INFO] started tweaking crates.io crate craydate 0.1.7
[INFO] finished tweaking crates.io crate craydate 0.1.7
[INFO] tweaked toml for crates.io crate craydate 0.1.7 written to /workspace/builds/worker-0-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate craydate 0.1.7 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 11 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded craydate-sys v0.1.3
[INFO] [stderr]   Downloaded craydate-macro v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4f0bb2a99f2ad82f24c96eaa82aaf963acca570954e528435546ba82619980b9
[INFO] running `Command { std: "docker" "start" "-a" "4f0bb2a99f2ad82f24c96eaa82aaf963acca570954e528435546ba82619980b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4f0bb2a99f2ad82f24c96eaa82aaf963acca570954e528435546ba82619980b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f0bb2a99f2ad82f24c96eaa82aaf963acca570954e528435546ba82619980b9", kill_on_drop: false }`
[INFO] [stdout] 4f0bb2a99f2ad82f24c96eaa82aaf963acca570954e528435546ba82619980b9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ec06a6b2bbbc2c78e03c55cf854eecba7cdf1d6e71851e3022cf27649c41a3ed
[INFO] running `Command { std: "docker" "start" "-a" "ec06a6b2bbbc2c78e03c55cf854eecba7cdf1d6e71851e3022cf27649c41a3ed", kill_on_drop: false }`
[INFO] [stderr]    Compiling craydate-sys v0.1.3
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling craydate-macro v0.1.2
[INFO] [stderr]    Compiling euclid v0.22.11
[INFO] [stderr]    Compiling craydate v0.1.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]    --> src/lib.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | #![feature(core_intrinsics)]
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: using it is strongly discouraged
[INFO] [stdout]     = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_channel as CSoundChannelApi`
[INFO] [stdout]  --> src/ctypes.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use craydate_sys::playdate_sound_channel as CSoundChannelApi;
[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: `craydate_sys::playdate_sound_effect as CSoundEffectApi`
[INFO] [stdout]  --> src/ctypes.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use craydate_sys::playdate_sound_effect as CSoundEffectApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_bitcrusher as CSoundEffectBitCrusherApi`
[INFO] [stdout]  --> src/ctypes.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use craydate_sys::playdate_sound_effect_bitcrusher as CSoundEffectBitCrusherApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_delayline as CSoundEffectDelayLineApi`
[INFO] [stdout]   --> src/ctypes.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use craydate_sys::playdate_sound_effect_delayline as CSoundEffectDelayLineApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_onepolefilter as CSoundEffectOnePoleFilterApi`
[INFO] [stdout]   --> src/ctypes.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use craydate_sys::playdate_sound_effect_onepolefilter as CSoundEffectOnePoleFilterApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_overdrive as CSoundEffectOverDriveApi`
[INFO] [stdout]   --> src/ctypes.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use craydate_sys::playdate_sound_effect_overdrive as CSoundEffectOverDriveApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_ringmodulator as CSoundEffectRingModulatorApi`
[INFO] [stdout]   --> src/ctypes.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use craydate_sys::playdate_sound_effect_ringmodulator as CSoundEffectRingModulatorApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_twopolefilter as CSoundEffectTwoPoleFilterApi`
[INFO] [stdout]   --> src/ctypes.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use craydate_sys::playdate_sound_effect_twopolefilter as CSoundEffectTwoPoleFilterApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_envelope as CSoundEnvelopeApi`
[INFO] [stdout]   --> src/ctypes.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use craydate_sys::playdate_sound_envelope as CSoundEnvelopeApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_fileplayer as CSoundFilePlayerApi`
[INFO] [stdout]   --> src/ctypes.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use craydate_sys::playdate_sound_fileplayer as CSoundFilePlayerApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_instrument as CSoundInstrumentApi`
[INFO] [stdout]   --> src/ctypes.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use craydate_sys::playdate_sound_instrument as CSoundInstrumentApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_lfo as CSoundLfoApi`
[INFO] [stdout]   --> src/ctypes.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use craydate_sys::playdate_sound_lfo as CSoundLfoApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sample as CSoundSampleApi`
[INFO] [stdout]   --> src/ctypes.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use craydate_sys::playdate_sound_sample as CSoundSampleApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sampleplayer as CSoundSamplePlayerApi`
[INFO] [stdout]   --> src/ctypes.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use craydate_sys::playdate_sound_sampleplayer as CSoundSamplePlayerApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sequence as CSoundSequenceApi`
[INFO] [stdout]   --> src/ctypes.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use craydate_sys::playdate_sound_sequence as CSoundSequenceApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_source as CSoundSourceApi`
[INFO] [stdout]   --> src/ctypes.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use craydate_sys::playdate_sound_source as CSoundSourceApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_synth as CSoundSynthApi`
[INFO] [stdout]   --> src/ctypes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use craydate_sys::playdate_sound_synth as CSoundSynthApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_track as CSoundTrackApi`
[INFO] [stdout]   --> src/ctypes.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use craydate_sys::playdate_sound_track as CSoundTrackApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_video as CVideoApi`
[INFO] [stdout]   --> src/ctypes.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use craydate_sys::playdate_video as CVideoApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::SoundFormat as CSoundFormat`
[INFO] [stdout]   --> src/ctypes.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub use craydate_sys::SoundFormat as CSoundFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::SoundWaveform as CSoundWaveform`
[INFO] [stdout]   --> src/ctypes.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub use craydate_sys::SoundWaveform as CSoundWaveform;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::panic::PanicInfo::<'a>::payload`: this never returns anything useful
[INFO] [stdout]    --> src/lib.rs:294:31
[INFO] [stdout]     |
[INFO] [stdout] 294 |   if let Some(s) = panic_info.payload().downcast_ref::<&str>() {
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:107:3
[INFO] [stdout]     |
[INFO] [stdout] 107 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/log.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 |   for b in bytes {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:116:3
[INFO] [stdout]     |
[INFO] [stdout] 116 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:120:3
[INFO] [stdout]     |
[INFO] [stdout] 120 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/log.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) fn log_byte_to_stdout(byte: u8) {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/time.rs:199:25
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let seconds_whole = unsafe { core::intrinsics::truncf32(seconds) };
[INFO] [stdout]     |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BssPtr` is never constructed
[INFO] [stdout]    --> src/lib.rs:326:8
[INFO] [stdout]     |
[INFO] [stdout] 326 | struct BssPtr(*const u32);
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsSoundEffect` is never used
[INFO] [stdout]    --> src/sound/effects/sound_effect.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub trait AsSoundEffect: AsRef<SoundEffect> + AsMut<SoundEffect> {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/callbacks.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |     match unsafe { &CURRENT_CALLBACK } {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 120 |     match unsafe { &raw const CURRENT_CALLBACK } {
[INFO] [stdout]     |                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/callbacks.rs:217:22
[INFO] [stdout]     |
[INFO] [stdout] 217 |     assert!(unsafe { CURRENT_CALLBACK.is_none() });
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]   --> src/executor.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 |       drop(exec);
[INFO] [stdout]    |       ^^^^^----^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            argument has type `&mut executor::Executor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    |
[INFO] [stdout] 81 -       drop(exec);
[INFO] [stdout] 81 +       let _ = exec;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]   --> src/executor.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     drop(exec);
[INFO] [stdout]    |     ^^^^^----^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          argument has type `&mut executor::Executor`
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    |
[INFO] [stdout] 94 -     drop(exec);
[INFO] [stdout] 94 +     let _ = exec;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/executor.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     drop(exec);
[INFO] [stdout]     |     ^^^^^----^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          argument has type `&mut executor::Executor`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 118 -     drop(exec);
[INFO] [stdout] 118 +     let _ = exec;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `alloc::boxed::Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/executor.rs:165:16
[INFO] [stdout]     |
[INFO] [stdout] 165 |       unsafe { Box::from_raw(data) };
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |       unsafe { let _ = Box::from_raw(data); };
[INFO] [stdout]     |                +++++++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/graphics/bitmap.rs:103:20
[INFO] [stdout]     |
[INFO] [stdout] 103 |   pub fn as_pixels(&self) -> BitmapPixels {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 103 |   pub fn as_pixels(&self) -> BitmapPixels<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/graphics/bitmap.rs:113:24
[INFO] [stdout]     |
[INFO] [stdout] 113 |   pub fn as_pixels_mut(&mut self) -> BitmapPixelsMut {
[INFO] [stdout]     |                        ^^^^^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |   pub fn as_pixels_mut(&mut self) -> BitmapPixelsMut<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/graphics/bitmap.rs:151:22
[INFO] [stdout]     |
[INFO] [stdout] 151 |   pub fn mask_bitmap(&self) -> Option<UnownedBitmapMut> {
[INFO] [stdout]     |                      ^^^^^            ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 151 |   pub fn mask_bitmap(&self) -> Option<UnownedBitmapMut<'_>> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence.rs:195:55
[INFO] [stdout]     |
[INFO] [stdout] 195 |   pub fn tracks<'a>(&'a self) -> impl Iterator<Item = SequenceTrack> + 'a {
[INFO] [stdout]     |                      --                               ^^^^^^^^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                      |                                |
[INFO] [stdout]     |                      the lifetime is named here       the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 195 |   pub fn tracks<'a>(&'a self) -> impl Iterator<Item = SequenceTrack<'a>> + 'a {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence.rs:226:25
[INFO] [stdout]     |
[INFO] [stdout] 226 |   pub fn track_at_index(&self, index: u32) -> Option<SequenceTrack> {
[INFO] [stdout]     |                         ^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 226 |   pub fn track_at_index(&self, index: u32) -> Option<SequenceTrack<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence_track.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |   pub fn signals(&self) -> impl Iterator<Item = SequenceTrackControl> {
[INFO] [stdout]     |                  ^^^^^                          ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 149 |   pub fn signals(&self) -> impl Iterator<Item = SequenceTrackControl<'_>> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence_track.rs:164:37
[INFO] [stdout]     |
[INFO] [stdout] 164 |   pub fn signal_for_midi_controller(&self, midi_controller: i32) -> Option<SequenceTrackControl> {
[INFO] [stdout]     |                                     ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 164 |   pub fn signal_for_midi_controller(&self, midi_controller: i32) -> Option<SequenceTrackControl<'_>> {
[INFO] [stdout]     |                                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence_track.rs:270:44
[INFO] [stdout]     |
[INFO] [stdout] 270 |   pub fn create_signal_for_midi_controller(&mut self, midi_controller: i32) -> CreateSignalResult {
[INFO] [stdout]     |                                            ^^^^^^^^^                           ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 270 |   pub fn create_signal_for_midi_controller(&mut self, midi_controller: i32) -> CreateSignalResult<'_> {
[INFO] [stdout]     |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/system.rs:69:22
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub fn start_timer(&self) -> HighResolutionTimer {
[INFO] [stdout]    |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub fn start_timer(&self) -> HighResolutionTimer<'_> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/system_event.rs:91:16
[INFO] [stdout]    |
[INFO] [stdout] 91 |   fn next_impl(&self) -> SystemEventFuture {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 91 |   fn next_impl(&self) -> SystemEventFuture<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/macro_helpers.rs:53:18
[INFO] [stdout]    |
[INFO] [stdout] 53 |         unsafe { GLOBAL_ALLOCATOR.set_system_ptr(&*api.system) };
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.97s
[INFO] running `Command { std: "docker" "inspect" "ec06a6b2bbbc2c78e03c55cf854eecba7cdf1d6e71851e3022cf27649c41a3ed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ec06a6b2bbbc2c78e03c55cf854eecba7cdf1d6e71851e3022cf27649c41a3ed", kill_on_drop: false }`
[INFO] [stdout] ec06a6b2bbbc2c78e03c55cf854eecba7cdf1d6e71851e3022cf27649c41a3ed
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8774b565c45ae65868720fe19b489e6f79aeaa1da4903317d20bc85f81d182aa
[INFO] running `Command { std: "docker" "start" "-a" "8774b565c45ae65868720fe19b489e6f79aeaa1da4903317d20bc85f81d182aa", kill_on_drop: false }`
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]    --> src/lib.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | #![feature(core_intrinsics)]
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: using it is strongly discouraged
[INFO] [stdout]     = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_channel as CSoundChannelApi`
[INFO] [stdout]  --> src/ctypes.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use craydate_sys::playdate_sound_channel as CSoundChannelApi;
[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: `craydate_sys::playdate_sound_effect as CSoundEffectApi`
[INFO] [stdout]  --> src/ctypes.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use craydate_sys::playdate_sound_effect as CSoundEffectApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_bitcrusher as CSoundEffectBitCrusherApi`
[INFO] [stdout]  --> src/ctypes.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use craydate_sys::playdate_sound_effect_bitcrusher as CSoundEffectBitCrusherApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_delayline as CSoundEffectDelayLineApi`
[INFO] [stdout]   --> src/ctypes.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use craydate_sys::playdate_sound_effect_delayline as CSoundEffectDelayLineApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_onepolefilter as CSoundEffectOnePoleFilterApi`
[INFO] [stdout]   --> src/ctypes.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use craydate_sys::playdate_sound_effect_onepolefilter as CSoundEffectOnePoleFilterApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_overdrive as CSoundEffectOverDriveApi`
[INFO] [stdout]   --> src/ctypes.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use craydate_sys::playdate_sound_effect_overdrive as CSoundEffectOverDriveApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_ringmodulator as CSoundEffectRingModulatorApi`
[INFO] [stdout]   --> src/ctypes.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use craydate_sys::playdate_sound_effect_ringmodulator as CSoundEffectRingModulatorApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_twopolefilter as CSoundEffectTwoPoleFilterApi`
[INFO] [stdout]   --> src/ctypes.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use craydate_sys::playdate_sound_effect_twopolefilter as CSoundEffectTwoPoleFilterApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_envelope as CSoundEnvelopeApi`
[INFO] [stdout]   --> src/ctypes.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use craydate_sys::playdate_sound_envelope as CSoundEnvelopeApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_fileplayer as CSoundFilePlayerApi`
[INFO] [stdout]   --> src/ctypes.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use craydate_sys::playdate_sound_fileplayer as CSoundFilePlayerApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_instrument as CSoundInstrumentApi`
[INFO] [stdout]   --> src/ctypes.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use craydate_sys::playdate_sound_instrument as CSoundInstrumentApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_lfo as CSoundLfoApi`
[INFO] [stdout]   --> src/ctypes.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use craydate_sys::playdate_sound_lfo as CSoundLfoApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sample as CSoundSampleApi`
[INFO] [stdout]   --> src/ctypes.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use craydate_sys::playdate_sound_sample as CSoundSampleApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sampleplayer as CSoundSamplePlayerApi`
[INFO] [stdout]   --> src/ctypes.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use craydate_sys::playdate_sound_sampleplayer as CSoundSamplePlayerApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sequence as CSoundSequenceApi`
[INFO] [stdout]   --> src/ctypes.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use craydate_sys::playdate_sound_sequence as CSoundSequenceApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_source as CSoundSourceApi`
[INFO] [stdout]   --> src/ctypes.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use craydate_sys::playdate_sound_source as CSoundSourceApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_synth as CSoundSynthApi`
[INFO] [stdout]   --> src/ctypes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use craydate_sys::playdate_sound_synth as CSoundSynthApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_track as CSoundTrackApi`
[INFO] [stdout]   --> src/ctypes.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use craydate_sys::playdate_sound_track as CSoundTrackApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_video as CVideoApi`
[INFO] [stdout]   --> src/ctypes.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use craydate_sys::playdate_video as CVideoApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::SoundFormat as CSoundFormat`
[INFO] [stdout]   --> src/ctypes.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub use craydate_sys::SoundFormat as CSoundFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::SoundWaveform as CSoundWaveform`
[INFO] [stdout]   --> src/ctypes.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub use craydate_sys::SoundWaveform as CSoundWaveform;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::panic::PanicInfo::<'a>::payload`: this never returns anything useful
[INFO] [stdout]    --> src/lib.rs:294:31
[INFO] [stdout]     |
[INFO] [stdout] 294 |   if let Some(s) = panic_info.payload().downcast_ref::<&str>() {
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:107:3
[INFO] [stdout]     |
[INFO] [stdout] 107 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/log.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 |   for b in bytes {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:116:3
[INFO] [stdout]     |
[INFO] [stdout] 116 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:120:3
[INFO] [stdout]     |
[INFO] [stdout] 120 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/log.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) fn log_byte_to_stdout(byte: u8) {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/time.rs:199:25
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let seconds_whole = unsafe { core::intrinsics::truncf32(seconds) };
[INFO] [stdout]     |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BssPtr` is never constructed
[INFO] [stdout]    --> src/lib.rs:326:8
[INFO] [stdout]     |
[INFO] [stdout] 326 | struct BssPtr(*const u32);
[INFO] [stdout]     |        ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AsSoundEffect` is never used
[INFO] [stdout]    --> src/sound/effects/sound_effect.rs:118:11
[INFO] [stdout]     |
[INFO] [stdout] 118 | pub trait AsSoundEffect: AsRef<SoundEffect> + AsMut<SoundEffect> {
[INFO] [stdout]     |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/callbacks.rs:120:20
[INFO] [stdout]     |
[INFO] [stdout] 120 |     match unsafe { &CURRENT_CALLBACK } {
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: use `&raw const` instead to create a raw pointer
[INFO] [stdout]     |
[INFO] [stdout] 120 |     match unsafe { &raw const CURRENT_CALLBACK } {
[INFO] [stdout]     |                     +++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/callbacks.rs:217:22
[INFO] [stdout]     |
[INFO] [stdout] 217 |     assert!(unsafe { CURRENT_CALLBACK.is_none() });
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling craydate v0.1.7 (/opt/rustwide/workdir)
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]   --> src/executor.rs:81:7
[INFO] [stdout]    |
[INFO] [stdout] 81 |       drop(exec);
[INFO] [stdout]    |       ^^^^^----^
[INFO] [stdout]    |            |
[INFO] [stdout]    |            argument has type `&mut executor::Executor`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dropping_references)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    |
[INFO] [stdout] 81 -       drop(exec);
[INFO] [stdout] 81 +       let _ = exec;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]   --> src/executor.rs:94:5
[INFO] [stdout]    |
[INFO] [stdout] 94 |     drop(exec);
[INFO] [stdout]    |     ^^^^^----^
[INFO] [stdout]    |          |
[INFO] [stdout]    |          argument has type `&mut executor::Executor`
[INFO] [stdout]    |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]    |
[INFO] [stdout] 94 -     drop(exec);
[INFO] [stdout] 94 +     let _ = exec;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: calls to `std::mem::drop` with a reference instead of an owned value does nothing
[INFO] [stdout]    --> src/executor.rs:118:5
[INFO] [stdout]     |
[INFO] [stdout] 118 |     drop(exec);
[INFO] [stdout]     |     ^^^^^----^
[INFO] [stdout]     |          |
[INFO] [stdout]     |          argument has type `&mut executor::Executor`
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the expression or result
[INFO] [stdout]     |
[INFO] [stdout] 118 -     drop(exec);
[INFO] [stdout] 118 +     let _ = exec;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `alloc::boxed::Box::<T>::from_raw` that must be used
[INFO] [stdout]    --> src/executor.rs:165:16
[INFO] [stdout]     |
[INFO] [stdout] 165 |       unsafe { Box::from_raw(data) };
[INFO] [stdout]     |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 165 |       unsafe { let _ = Box::from_raw(data); };
[INFO] [stdout]     |                +++++++                    +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/graphics/bitmap.rs:103:20
[INFO] [stdout]     |
[INFO] [stdout] 103 |   pub fn as_pixels(&self) -> BitmapPixels {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 103 |   pub fn as_pixels(&self) -> BitmapPixels<'_> {
[INFO] [stdout]     |                                          ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/graphics/bitmap.rs:113:24
[INFO] [stdout]     |
[INFO] [stdout] 113 |   pub fn as_pixels_mut(&mut self) -> BitmapPixelsMut {
[INFO] [stdout]     |                        ^^^^^^^^^     ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 113 |   pub fn as_pixels_mut(&mut self) -> BitmapPixelsMut<'_> {
[INFO] [stdout]     |                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/graphics/bitmap.rs:151:22
[INFO] [stdout]     |
[INFO] [stdout] 151 |   pub fn mask_bitmap(&self) -> Option<UnownedBitmapMut> {
[INFO] [stdout]     |                      ^^^^^            ^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                      |
[INFO] [stdout]     |                      the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 151 |   pub fn mask_bitmap(&self) -> Option<UnownedBitmapMut<'_>> {
[INFO] [stdout]     |                                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence.rs:195:55
[INFO] [stdout]     |
[INFO] [stdout] 195 |   pub fn tracks<'a>(&'a self) -> impl Iterator<Item = SequenceTrack> + 'a {
[INFO] [stdout]     |                      --                               ^^^^^^^^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                      |                                |
[INFO] [stdout]     |                      the lifetime is named here       the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 195 |   pub fn tracks<'a>(&'a self) -> impl Iterator<Item = SequenceTrack<'a>> + 'a {
[INFO] [stdout]     |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence.rs:226:25
[INFO] [stdout]     |
[INFO] [stdout] 226 |   pub fn track_at_index(&self, index: u32) -> Option<SequenceTrack> {
[INFO] [stdout]     |                         ^^^^^                        ^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 226 |   pub fn track_at_index(&self, index: u32) -> Option<SequenceTrack<'_>> {
[INFO] [stdout]     |                                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence_track.rs:149:18
[INFO] [stdout]     |
[INFO] [stdout] 149 |   pub fn signals(&self) -> impl Iterator<Item = SequenceTrackControl> {
[INFO] [stdout]     |                  ^^^^^                          ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 149 |   pub fn signals(&self) -> impl Iterator<Item = SequenceTrackControl<'_>> {
[INFO] [stdout]     |                                                                     ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence_track.rs:164:37
[INFO] [stdout]     |
[INFO] [stdout] 164 |   pub fn signal_for_midi_controller(&self, midi_controller: i32) -> Option<SequenceTrackControl> {
[INFO] [stdout]     |                                     ^^^^^ the lifetime is elided here      ^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 164 |   pub fn signal_for_midi_controller(&self, midi_controller: i32) -> Option<SequenceTrackControl<'_>> {
[INFO] [stdout]     |                                                                                                ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/sound/midi/sequence_track.rs:270:44
[INFO] [stdout]     |
[INFO] [stdout] 270 |   pub fn create_signal_for_midi_controller(&mut self, midi_controller: i32) -> CreateSignalResult {
[INFO] [stdout]     |                                            ^^^^^^^^^                           ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                                            |
[INFO] [stdout]     |                                            the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 270 |   pub fn create_signal_for_midi_controller(&mut self, midi_controller: i32) -> CreateSignalResult<'_> {
[INFO] [stdout]     |                                                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/system.rs:69:22
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub fn start_timer(&self) -> HighResolutionTimer {
[INFO] [stdout]    |                      ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 69 |   pub fn start_timer(&self) -> HighResolutionTimer<'_> {
[INFO] [stdout]    |                                                   ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/system_event.rs:91:16
[INFO] [stdout]    |
[INFO] [stdout] 91 |   fn next_impl(&self) -> SystemEventFuture {
[INFO] [stdout]    |                ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                |
[INFO] [stdout]    |                the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 91 |   fn next_impl(&self) -> SystemEventFuture<'_> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a mutable reference to mutable static
[INFO] [stdout]   --> src/macro_helpers.rs:53:18
[INFO] [stdout]    |
[INFO] [stdout] 53 |         unsafe { GLOBAL_ALLOCATOR.set_system_ptr(&*api.system) };
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference to mutable static
[INFO] [stdout]    |
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]    = note: mutable references to mutable statics are dangerous; it's undefined behavior if any other pointer to the static is used or if any other reference is created for the static while the mutable reference lives
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: the `#[alloc_error_handler]` in this crate conflicts with allocation error handler in: std
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `core_intrinsics` is internal to the compiler or standard library
[INFO] [stdout]    --> src/lib.rs:190:12
[INFO] [stdout]     |
[INFO] [stdout] 190 | #![feature(core_intrinsics)]
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: using it is strongly discouraged
[INFO] [stdout]     = note: `#[warn(internal_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_channel as CSoundChannelApi`
[INFO] [stdout]  --> src/ctypes.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub use craydate_sys::playdate_sound_channel as CSoundChannelApi;
[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: `craydate_sys::playdate_sound_effect as CSoundEffectApi`
[INFO] [stdout]  --> src/ctypes.rs:8:9
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub use craydate_sys::playdate_sound_effect as CSoundEffectApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_bitcrusher as CSoundEffectBitCrusherApi`
[INFO] [stdout]  --> src/ctypes.rs:9:9
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub use craydate_sys::playdate_sound_effect_bitcrusher as CSoundEffectBitCrusherApi;
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_delayline as CSoundEffectDelayLineApi`
[INFO] [stdout]   --> src/ctypes.rs:10:9
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub use craydate_sys::playdate_sound_effect_delayline as CSoundEffectDelayLineApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_onepolefilter as CSoundEffectOnePoleFilterApi`
[INFO] [stdout]   --> src/ctypes.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub use craydate_sys::playdate_sound_effect_onepolefilter as CSoundEffectOnePoleFilterApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_overdrive as CSoundEffectOverDriveApi`
[INFO] [stdout]   --> src/ctypes.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub use craydate_sys::playdate_sound_effect_overdrive as CSoundEffectOverDriveApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_ringmodulator as CSoundEffectRingModulatorApi`
[INFO] [stdout]   --> src/ctypes.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub use craydate_sys::playdate_sound_effect_ringmodulator as CSoundEffectRingModulatorApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_effect_twopolefilter as CSoundEffectTwoPoleFilterApi`
[INFO] [stdout]   --> src/ctypes.rs:14:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub use craydate_sys::playdate_sound_effect_twopolefilter as CSoundEffectTwoPoleFilterApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_envelope as CSoundEnvelopeApi`
[INFO] [stdout]   --> src/ctypes.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub use craydate_sys::playdate_sound_envelope as CSoundEnvelopeApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_fileplayer as CSoundFilePlayerApi`
[INFO] [stdout]   --> src/ctypes.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub use craydate_sys::playdate_sound_fileplayer as CSoundFilePlayerApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_instrument as CSoundInstrumentApi`
[INFO] [stdout]   --> src/ctypes.rs:17:9
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub use craydate_sys::playdate_sound_instrument as CSoundInstrumentApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_lfo as CSoundLfoApi`
[INFO] [stdout]   --> src/ctypes.rs:18:9
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use craydate_sys::playdate_sound_lfo as CSoundLfoApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sample as CSoundSampleApi`
[INFO] [stdout]   --> src/ctypes.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use craydate_sys::playdate_sound_sample as CSoundSampleApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sampleplayer as CSoundSamplePlayerApi`
[INFO] [stdout]   --> src/ctypes.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub use craydate_sys::playdate_sound_sampleplayer as CSoundSamplePlayerApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_sequence as CSoundSequenceApi`
[INFO] [stdout]   --> src/ctypes.rs:21:9
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub use craydate_sys::playdate_sound_sequence as CSoundSequenceApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_source as CSoundSourceApi`
[INFO] [stdout]   --> src/ctypes.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub use craydate_sys::playdate_sound_source as CSoundSourceApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_synth as CSoundSynthApi`
[INFO] [stdout]   --> src/ctypes.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub use craydate_sys::playdate_sound_synth as CSoundSynthApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_sound_track as CSoundTrackApi`
[INFO] [stdout]   --> src/ctypes.rs:24:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub use craydate_sys::playdate_sound_track as CSoundTrackApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::playdate_video as CVideoApi`
[INFO] [stdout]   --> src/ctypes.rs:26:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub use craydate_sys::playdate_video as CVideoApi;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::SoundFormat as CSoundFormat`
[INFO] [stdout]   --> src/ctypes.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 | pub use craydate_sys::SoundFormat as CSoundFormat;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `craydate_sys::SoundWaveform as CSoundWaveform`
[INFO] [stdout]   --> src/ctypes.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 | pub use craydate_sys::SoundWaveform as CSoundWaveform;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::panic::PanicInfo::<'a>::payload`: this never returns anything useful
[INFO] [stdout]    --> src/lib.rs:294:31
[INFO] [stdout]     |
[INFO] [stdout] 294 |   if let Some(s) = panic_info.payload().downcast_ref::<&str>() {
[INFO] [stdout]     |                               ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:102:5
[INFO] [stdout]     |
[INFO] [stdout] 102 |     unsafe {
[INFO] [stdout]     |     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:107:3
[INFO] [stdout]     |
[INFO] [stdout] 107 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/log.rs:101:7
[INFO] [stdout]     |
[INFO] [stdout] 101 |   for b in bytes {
[INFO] [stdout]     |       ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:116:3
[INFO] [stdout]     |
[INFO] [stdout] 116 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/log.rs:120:3
[INFO] [stdout]     |
[INFO] [stdout] 120 |   unsafe {
[INFO] [stdout]     |   ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `byte`
[INFO] [stdout]    --> src/log.rs:115:34
[INFO] [stdout]     |
[INFO] [stdout] 115 | pub(crate) fn log_byte_to_stdout(byte: u8) {
[INFO] [stdout]     |                                  ^^^^ help: if this is intentional, prefix it with an underscore: `_byte`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/time.rs:199:25
[INFO] [stdout]     |
[INFO] [stdout] 199 |     let seconds_whole = unsafe { core::intrinsics::truncf32(seconds) };
[INFO] [stdout]     |                         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `craydate` (lib test) due to 1 previous error; 30 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "8774b565c45ae65868720fe19b489e6f79aeaa1da4903317d20bc85f81d182aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8774b565c45ae65868720fe19b489e6f79aeaa1da4903317d20bc85f81d182aa", kill_on_drop: false }`
[INFO] [stdout] 8774b565c45ae65868720fe19b489e6f79aeaa1da4903317d20bc85f81d182aa
