[INFO] fetching crate lumino-midly 0.6.5...
[INFO] checking lumino-midly-0.6.5 against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] extracting crate lumino-midly 0.6.5 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate lumino-midly 0.6.5
[INFO] finished tweaking crates.io crate lumino-midly 0.6.5
[INFO] tweaked toml for crates.io crate lumino-midly 0.6.5 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate lumino-midly 0.6.5 on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate lumino-midly 0.6.5 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" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879
[INFO] running `Command { std: "docker" "start" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking lumino-midly v0.6.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/loader.rs:928:21
[INFO] [stdout]     |
[INFO] [stdout] 928 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/loader.rs:928:21
[INFO] [stdout]     |
[INFO] [stdout] 908 |                     MidiMessage::NoteOn { key, vel } => {
[INFO] [stdout]     |                     -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 911 |                     MidiMessage::NoteOff { key, vel } => note_acc.note_off(*key, ch, vel.as_int()),
[INFO] [stdout]     |                     --------------------------------- matches some of the same values
[INFO] [stdout] 912 |                     MidiMessage::Controller { controller, value } => {
[INFO] [stdout]     |                     --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 915 |                     MidiMessage::ProgramChange { program } => {
[INFO] [stdout]     |                     -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 928 |                     _ => {}
[INFO] [stdout]     |                     ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/loader.rs:928:21
[INFO] [stdout]     |
[INFO] [stdout] 928 |                     _ => {}
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/loader.rs:928:21
[INFO] [stdout]     |
[INFO] [stdout] 908 |                     MidiMessage::NoteOn { key, vel } => {
[INFO] [stdout]     |                     -------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 911 |                     MidiMessage::NoteOff { key, vel } => note_acc.note_off(*key, ch, vel.as_int()),
[INFO] [stdout]     |                     --------------------------------- matches some of the same values
[INFO] [stdout] 912 |                     MidiMessage::Controller { controller, value } => {
[INFO] [stdout]     |                     --------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 915 |                     MidiMessage::ProgramChange { program } => {
[INFO] [stdout]     |                     -------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 928 |                     _ => {}
[INFO] [stdout]     |                     ^ ...and 3 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout]     = note: `#[warn(unsafe_op_in_unsafe_fn)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 356 | / restricted_int! {
[INFO] [stdout] 357 | |     /// A 15-bit integer type.
[INFO] [stdout] 358 | |     ///
[INFO] [stdout] 359 | |     /// Wraps the `u16` type and ensures that the top bit is always zero.
[INFO] [stdout] 360 | |     u15: u16 => 15; read
[INFO] [stdout] 361 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 362 | / restricted_int! {
[INFO] [stdout] 363 | |     /// A 14-bit integer type.
[INFO] [stdout] 364 | |     ///
[INFO] [stdout] 365 | |     /// Wraps the `u16` type and ensures that the top two bits are always zero.
[INFO] [stdout] 366 | |     u14: u16 => 14; read read_u7
[INFO] [stdout] 367 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 368 | / restricted_int! {
[INFO] [stdout] 369 | |     /// A 7-bit integer type.
[INFO] [stdout] 370 | |     ///
[INFO] [stdout] 371 | |     /// Wraps the `u8` type and ensures that the top bit is always zero.
[INFO] [stdout] 372 | |     u7: u8 => 7; read
[INFO] [stdout] 373 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 | / restricted_int! {
[INFO] [stdout] 375 | |     /// A 4-bit integer type.
[INFO] [stdout] 376 | |     ///
[INFO] [stdout] 377 | |     /// Wraps the `u8` type and ensures that the top 4 bits are always zero.
[INFO] [stdout] 378 | |     u4: u8 => 4; read
[INFO] [stdout] 379 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `read_data_u8` and `get_data_u7` are never used
[INFO] [stdout]    --> src/event.rs:334:19
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl MidiMessage {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub(crate) fn read_data_u8(status: u8, raw: &mut &[u8]) -> Result<[u7; 2]> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub(crate) fn get_data_u7(status: u8, data: &[u7]) -> Result<[u7; 2]> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 380 | / restricted_int! {
[INFO] [stdout] 381 | |     /// A 2-bit integer type.
[INFO] [stdout] 382 | |     ///
[INFO] [stdout] 383 | |     /// Wraps the `u8` type and ensures that the top 6 bits are always zero.
[INFO] [stdout] 384 | |     u2: u8 => 2; read
[INFO] [stdout] 385 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn new(buffer: &mut [u8]) -> Cursor {
[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] 175 |     pub fn new(buffer: &mut [u8]) -> Cursor<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io.rs:188:31
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn from_parts(buffer: &mut [u8], cursor: usize) -> Cursor {
[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] 188 |     pub fn from_parts(buffer: &mut [u8], cursor: usize) -> Cursor<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/live.rs:63:42
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub(crate) fn read(status: u8, data: &[u7]) -> Result<LiveEvent> {
[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] 63 |     pub(crate) fn read(status: u8, data: &[u7]) -> Result<LiveEvent<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/loader.rs:1374:44
[INFO] [stdout]      |
[INFO] [stdout] 1374 | fn parse_fast_track_all_events(mut events: FastTrackIter, track_idx: u16) -> TrackAllEvents<'_> {
[INFO] [stdout]      |                                            ^^^^^^^^^^^^^ the lifetime is hidden here        ^^ the same 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: consistently use `'_`
[INFO] [stdout]      |
[INFO] [stdout] 1374 | fn parse_fast_track_all_events(mut events: FastTrackIter<'_>, track_idx: u16) -> TrackAllEvents<'_> {
[INFO] [stdout]      |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]     --> src/loader.rs:2143:1
[INFO] [stdout]      |
[INFO] [stdout] 2143 | pub fn scan_midi_file(path: &std::path::Path) -> crate::Result<MidiScanResult> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:168:9
[INFO] [stdout]      |
[INFO] [stdout]  168 | #![warn(missing_docs)]
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 | / restricted_int! {
[INFO] [stdout] 387 | |     /// A 24-bit integer type.
[INFO] [stdout] 388 | |     ///
[INFO] [stdout] 389 | |     /// Wraps the `u32` type and ensures that the top 8 bits are always zero.
[INFO] [stdout] 390 | |     u24: u32 => 24;
[INFO] [stdout] 391 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/smf.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn parse(raw: &[u8]) -> Result<Smf> {
[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] 84 |     pub fn parse(raw: &[u8]) -> Result<Smf<'_>> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:192:23
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn parse(raw: &[u8]) -> Result<SmfBytemap> {
[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] 192 |     pub fn parse(raw: &[u8]) -> Result<SmfBytemap<'_>> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:265:19
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn parse(raw: &[u8]) -> Result<(Header, TrackIter)> {
[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] 265 | pub fn parse(raw: &[u8]) -> Result<(Header, TrackIter<'_>)> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:418:30
[INFO] [stdout]     |
[INFO] [stdout] 418 |     fn new(raw: &'a [u8]) -> ChunkIter {
[INFO] [stdout]     |                  --          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is named 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] 418 |     fn new(raw: &'a [u8]) -> ChunkIter<'a> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:632:21
[INFO] [stdout]     |
[INFO] [stdout] 632 |     pub fn new(raw: &[u8]) -> TrackIter {
[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] 632 |     pub fn new(raw: &[u8]) -> TrackIter<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:742:17
[INFO] [stdout]     |
[INFO] [stdout] 742 |     fn new(raw: &[u8]) -> EventIterGeneric<T> {
[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] 742 |     fn new(raw: &[u8]) -> EventIterGeneric<'_, T> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:220:18
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 220 |                   &*( raw as *const [$inner] as *const [$name] )
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:219:13
[INFO] [stdout]     |
[INFO] [stdout] 219 |               pub unsafe fn slice_from_int_unchecked(raw: &[$inner]) -> &[$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:858:21
[INFO] [stdout]     |
[INFO] [stdout] 858 |     pub fn new(raw: &[u8]) -> EventIter {
[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] 858 |     pub fn new(raw: &[u8]) -> EventIter<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:940:21
[INFO] [stdout]     |
[INFO] [stdout] 940 |     pub fn new(raw: &[u8]) -> EventBytemapIter {
[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] 940 |     pub fn new(raw: &[u8]) -> EventBytemapIter<'_> {
[INFO] [stdout]     |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block
[INFO] [stdout]    --> src/primitive.rs:258:22
[INFO] [stdout]     |
[INFO] [stdout] 120 |   macro_rules! restricted_int {
[INFO] [stdout] ...
[INFO] [stdout] 258 |                   &mut *( raw as *mut [$inner] as *mut [$name] )
[INFO] [stdout]     |                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior
[INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default
[INFO] [stdout]    --> src/primitive.rs:257:13
[INFO] [stdout]     |
[INFO] [stdout] 257 |               pub unsafe fn slice_from_int_unchecked_mut(raw: &mut [$inner]) -> &mut [$name] {
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 406 | / restricted_int! {
[INFO] [stdout] 407 | |     /// Referred to in the MIDI spec as "variable length int".
[INFO] [stdout] 408 | |     u28: u32 => 28;
[INFO] [stdout] 409 | | }
[INFO] [stdout]     | |_- in this macro invocation
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mmap.rs:370:44
[INFO] [stdout]     |
[INFO] [stdout] 370 | fn parse_meta_message(meta_type: u8, data: &[u8]) -> crate::Result<MetaMessage> {
[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] 370 | fn parse_meta_message(meta_type: u8, data: &[u8]) -> crate::Result<MetaMessage<'_>> {
[INFO] [stdout]     |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `read_data_u8` and `get_data_u7` are never used
[INFO] [stdout]    --> src/event.rs:334:19
[INFO] [stdout]     |
[INFO] [stdout] 300 | impl MidiMessage {
[INFO] [stdout]     | ---------------- associated functions in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 334 |     pub(crate) fn read_data_u8(status: u8, raw: &mut &[u8]) -> Result<[u7; 2]> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 340 |     pub(crate) fn get_data_u7(status: u8, data: &[u7]) -> Result<[u7; 2]> {
[INFO] [stdout]     |                   ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `header` is never read
[INFO] [stdout]    --> src/test.rs:140:13
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub struct Smf<'a> {
[INFO] [stdout]     |                --- field in this struct
[INFO] [stdout] 140 |         pub header: crate::Header,
[INFO] [stdout]     |             ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io.rs:175:24
[INFO] [stdout]     |
[INFO] [stdout] 175 |     pub fn new(buffer: &mut [u8]) -> Cursor {
[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] 175 |     pub fn new(buffer: &mut [u8]) -> Cursor<'_> {
[INFO] [stdout]     |                                            ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/io.rs:188:31
[INFO] [stdout]     |
[INFO] [stdout] 188 |     pub fn from_parts(buffer: &mut [u8], cursor: usize) -> Cursor {
[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] 188 |     pub fn from_parts(buffer: &mut [u8], cursor: usize) -> Cursor<'_> {
[INFO] [stdout]     |                                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/live.rs:63:42
[INFO] [stdout]    |
[INFO] [stdout] 63 |     pub(crate) fn read(status: u8, data: &[u7]) -> Result<LiveEvent> {
[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] 63 |     pub(crate) fn read(status: u8, data: &[u7]) -> Result<LiveEvent<'_>> {
[INFO] [stdout]    |                                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]     --> src/loader.rs:1374:44
[INFO] [stdout]      |
[INFO] [stdout] 1374 | fn parse_fast_track_all_events(mut events: FastTrackIter, track_idx: u16) -> TrackAllEvents<'_> {
[INFO] [stdout]      |                                            ^^^^^^^^^^^^^ the lifetime is hidden here        ^^ the same 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: consistently use `'_`
[INFO] [stdout]      |
[INFO] [stdout] 1374 | fn parse_fast_track_all_events(mut events: FastTrackIter<'_>, track_idx: u16) -> TrackAllEvents<'_> {
[INFO] [stdout]      |                                                         ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]     --> src/loader.rs:2143:1
[INFO] [stdout]      |
[INFO] [stdout] 2143 | pub fn scan_midi_file(path: &std::path::Path) -> crate::Result<MidiScanResult> {
[INFO] [stdout]      | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]     --> src/lib.rs:168:9
[INFO] [stdout]      |
[INFO] [stdout]  168 | #![warn(missing_docs)]
[INFO] [stdout]      |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/smf.rs:84:23
[INFO] [stdout]    |
[INFO] [stdout] 84 |     pub fn parse(raw: &[u8]) -> Result<Smf> {
[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] 84 |     pub fn parse(raw: &[u8]) -> Result<Smf<'_>> {
[INFO] [stdout]    |                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:192:23
[INFO] [stdout]     |
[INFO] [stdout] 192 |     pub fn parse(raw: &[u8]) -> Result<SmfBytemap> {
[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] 192 |     pub fn parse(raw: &[u8]) -> Result<SmfBytemap<'_>> {
[INFO] [stdout]     |                                                  ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:265:19
[INFO] [stdout]     |
[INFO] [stdout] 265 | pub fn parse(raw: &[u8]) -> Result<(Header, TrackIter)> {
[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] 265 | pub fn parse(raw: &[u8]) -> Result<(Header, TrackIter<'_>)> {
[INFO] [stdout]     |                                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:418:30
[INFO] [stdout]     |
[INFO] [stdout] 418 |     fn new(raw: &'a [u8]) -> ChunkIter {
[INFO] [stdout]     |                  --          ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  the lifetime is named 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] 418 |     fn new(raw: &'a [u8]) -> ChunkIter<'a> {
[INFO] [stdout]     |                                       ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:632:21
[INFO] [stdout]     |
[INFO] [stdout] 632 |     pub fn new(raw: &[u8]) -> TrackIter {
[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] 632 |     pub fn new(raw: &[u8]) -> TrackIter<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:742:17
[INFO] [stdout]     |
[INFO] [stdout] 742 |     fn new(raw: &[u8]) -> EventIterGeneric<T> {
[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] 742 |     fn new(raw: &[u8]) -> EventIterGeneric<'_, T> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:858:21
[INFO] [stdout]     |
[INFO] [stdout] 858 |     pub fn new(raw: &[u8]) -> EventIter {
[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] 858 |     pub fn new(raw: &[u8]) -> EventIter<'_> {
[INFO] [stdout]     |                                        ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/smf.rs:940:21
[INFO] [stdout]     |
[INFO] [stdout] 940 |     pub fn new(raw: &[u8]) -> EventBytemapIter {
[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] 940 |     pub fn new(raw: &[u8]) -> EventBytemapIter<'_> {
[INFO] [stdout]     |                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/mmap.rs:370:44
[INFO] [stdout]     |
[INFO] [stdout] 370 | fn parse_meta_message(meta_type: u8, data: &[u8]) -> crate::Result<MetaMessage> {
[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] 370 | fn parse_meta_message(meta_type: u8, data: &[u8]) -> crate::Result<MetaMessage<'_>> {
[INFO] [stdout]     |                                                                               ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/test.rs:144:27
[INFO] [stdout]     |
[INFO] [stdout] 144 |         pub fn parse(raw: &[u8]) -> MidlyResult<Smf> {
[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] 144 |         pub fn parse(raw: &[u8]) -> MidlyResult<Smf<'_>> {
[INFO] [stdout]     |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0133`.
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.03s
[INFO] running `Command { std: "docker" "inspect" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879", kill_on_drop: false }`
[INFO] [stdout] 5f30312425fc1afdb27e81ad00b9449f2ae3c18536880e1cb018af38f7754879
