[INFO] cloning repository https://github.com/vitobasso/rust-synth
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/vitobasso/rust-synth" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvitobasso%2Frust-synth", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvitobasso%2Frust-synth'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] a3970f40703c39ef51fd7ba421a3bde60be8e3d2
[INFO] checking vitobasso/rust-synth against master#09a371361240e42b0d69438fd1179efcf212e576 for pr-157814-crater-rollup
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fvitobasso%2Frust-synth" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/vitobasso/rust-synth
[INFO] finished tweaking git repo https://github.com/vitobasso/rust-synth
[INFO] tweaked toml for git repo https://github.com/vitobasso/rust-synth written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/vitobasso/rust-synth on toolchain 09a371361240e42b0d69438fd1179efcf212e576
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "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" "+09a371361240e42b0d69438fd1179efcf212e576" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Updating git repository `https://github.com/RustAudio/rimd.git`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 59 packages to latest compatible versions
[INFO] [stderr]       Adding cpal v0.8.2 (available: v0.18.1)
[INFO] [stderr]       Adding num-derive v0.2.5 (available: v0.4.2)
[INFO] [stderr]       Adding rand v0.5.6 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cpal v0.8.2
[INFO] [stderr]   Downloaded coreaudio-sys v0.2.18
[INFO] [stderr]   Downloaded alsa-sys v0.1.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:7cf07dcec6eec8f91d8fcff9552b5c74122c05467aaf1800be6da9d6f61e2ab2" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d
[INFO] running `Command { std: "docker" "start" "3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d", 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" "3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d" "/opt/rustwide/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d", 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" "3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d" "/opt/rustwide/cargo-home/bin/cargo" "+09a371361240e42b0d69438fd1179efcf212e576" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling proc-macro2 v0.4.30
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling unicode-xid v0.1.0
[INFO] [stderr]    Compiling syn v0.15.44
[INFO] [stderr]     Checking rand_core v0.4.2
[INFO] [stderr]    Compiling num-derive v0.2.5
[INFO] [stderr]    Compiling alsa-sys v0.1.2
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]     Checking encoding-index-japanese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-korean v1.20141219.5
[INFO] [stderr]     Checking rand_core v0.3.1
[INFO] [stderr]     Checking rand v0.5.6
[INFO] [stderr]     Checking encoding v0.2.33
[INFO] [stderr]     Checking cpal v0.8.2
[INFO] [stderr]    Compiling quote v0.6.13
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking rimd v0.0.3 (https://github.com/RustAudio/rimd.git#59def932)
[INFO] [stderr]     Checking rust-synth v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/io/midi/patch.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Clone, Copy, FromPrimitive, Debug)]
[INFO] [stdout]    |                       ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/pitch_class.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Hash, FromPrimitive, Debug)]
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/diatonic_scale.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/diatonic_scale.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/rhythm.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/io/midi/patch.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Clone, Copy, FromPrimitive, Debug)]
[INFO] [stdout]    |                       ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/pitch_class.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Hash, FromPrimitive, Debug)]
[INFO] [stdout]   |                                            ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/diatonic_scale.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/diatonic_scale.rs:9:45
[INFO] [stdout]   |
[INFO] [stdout] 9 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]  --> src/core/music_theory/rhythm.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: no expected values for `feature`
[INFO] [stdout]   = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]   = help: try referring to `FromPrimitive` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]   = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `specific` is never read
[INFO] [stdout]   --> src/io/midi/patch.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Patch {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 29 |     category: PatchCategory,
[INFO] [stdout] 30 |     specific: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Patch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/io/midi/meta_events.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     InstrumentName(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     InstrumentName(String),
[INFO] [stdout] 10 +     InstrumentName(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `denominator`, `metronome_period`, and `rate_32ths` are never read
[INFO] [stdout]   --> src/io/midi/meta_events.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     TimeSignature {
[INFO] [stdout]    |     ------------- fields in this variant
[INFO] [stdout] 12 |         numerator: u8, //beats per measure
[INFO] [stdout] 13 |         denominator: u8, //quarter notes per beat
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 14 |         metronome_period: u8, //MIDI ticks per metronome quarter. Default: 24
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |         rate_32ths: u8 //32th notes per MIDI quarter note. Default: 8
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/io/midi/patch.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Clone, Copy, FromPrimitive, Debug)]
[INFO] [stdout]    |                       ^------------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `FromPrimitive` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PatchCategory`
[INFO] [stdout] 34 | enum PatchCategory {
[INFO] [stdout]    |      ------------- `PatchCategory` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/io/midi/meta_events.rs:45:59
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let microsecs_per_quarternote: u32 = unsafe { mem::transmute(array) };
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 45 -             let microsecs_per_quarternote: u32 = unsafe { mem::transmute(array) };
[INFO] [stdout] 45 +             let microsecs_per_quarternote: u32 = unsafe { u32::from_ne_bytes(array) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/io/midi/meta_events.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 sharps: unsafe { mem::transmute(*byte1) },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 59 -                 sharps: unsafe { mem::transmute(*byte1) },
[INFO] [stdout] 59 +                 sharps: unsafe { u8::cast_signed(*byte1) },
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/core/music_theory/pitch_class.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Hash, FromPrimitive, Debug)]
[INFO] [stdout]   |                                            ^------------
[INFO] [stdout]   |                                            |
[INFO] [stdout]   |                                            `FromPrimitive` is not local
[INFO] [stdout]   |                                            move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PitchClass`
[INFO] [stdout] 6 | pub enum PitchClass {
[INFO] [stdout]   |          ---------- `PitchClass` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/core/music_theory/diatonic_scale.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^------------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `FromPrimitive` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ScaleDegree`
[INFO] [stdout] 6 | pub enum ScaleDegree {
[INFO] [stdout]   |          ----------- `ScaleDegree` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/music_theory/diatonic_scale.rs:9:45
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OctaveShift`
[INFO] [stdout] 10 | pub enum OctaveShift {
[INFO] [stdout]    |          ----------- `OctaveShift` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/core/music_theory/rhythm.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^------------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `FromPrimitive` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_NoteDuration`
[INFO] [stdout] 5 | pub enum NoteDuration {
[INFO] [stdout]   |          ------------ `NoteDuration` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/sheet_music/playing_music.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn next(&mut self) -> Reading {
[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] 25 |     pub fn next(&mut self) -> Reading<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `specific` is never read
[INFO] [stdout]   --> src/io/midi/patch.rs:30:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct Patch {
[INFO] [stdout]    |        ----- field in this struct
[INFO] [stdout] 29 |     category: PatchCategory,
[INFO] [stdout] 30 |     specific: u8,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Patch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/io/midi/meta_events.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 |     InstrumentName(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 10 -     InstrumentName(String),
[INFO] [stdout] 10 +     InstrumentName(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `denominator`, `metronome_period`, and `rate_32ths` are never read
[INFO] [stdout]   --> src/io/midi/meta_events.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 11 |     TimeSignature {
[INFO] [stdout]    |     ------------- fields in this variant
[INFO] [stdout] 12 |         numerator: u8, //beats per measure
[INFO] [stdout] 13 |         denominator: u8, //quarter notes per beat
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 14 |         metronome_period: u8, //MIDI ticks per metronome quarter. Default: 24
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 |         rate_32ths: u8 //32th notes per MIDI quarter note. Default: 8
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Meta` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/io/midi/patch.rs:33:23
[INFO] [stdout]    |
[INFO] [stdout] 33 | #[derive(Clone, Copy, FromPrimitive, Debug)]
[INFO] [stdout]    |                       ^------------
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       `FromPrimitive` is not local
[INFO] [stdout]    |                       move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PatchCategory`
[INFO] [stdout] 34 | enum PatchCategory {
[INFO] [stdout]    |      ------------- `PatchCategory` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/io/midi/meta_events.rs:45:59
[INFO] [stdout]    |
[INFO] [stdout] 45 |             let microsecs_per_quarternote: u32 = unsafe { mem::transmute(array) };
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: there's also `from_le_bytes` and `from_be_bytes` if you expect a particular byte order
[INFO] [stdout]    = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 45 -             let microsecs_per_quarternote: u32 = unsafe { mem::transmute(array) };
[INFO] [stdout] 45 +             let microsecs_per_quarternote: u32 = unsafe { u32::from_ne_bytes(array) };
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]   --> src/io/midi/meta_events.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 59 |                 sharps: unsafe { mem::transmute(*byte1) },
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace this with
[INFO] [stdout]    |
[INFO] [stdout] 59 -                 sharps: unsafe { mem::transmute(*byte1) },
[INFO] [stdout] 59 +                 sharps: unsafe { u8::cast_signed(*byte1) },
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/core/music_theory/pitch_class.rs:5:44
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Hash, FromPrimitive, Debug)]
[INFO] [stdout]   |                                            ^------------
[INFO] [stdout]   |                                            |
[INFO] [stdout]   |                                            `FromPrimitive` is not local
[INFO] [stdout]   |                                            move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_PitchClass`
[INFO] [stdout] 6 | pub enum PitchClass {
[INFO] [stdout]   |          ---------- `PitchClass` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/core/music_theory/diatonic_scale.rs:5:45
[INFO] [stdout]   |
[INFO] [stdout] 5 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^------------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `FromPrimitive` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_ScaleDegree`
[INFO] [stdout] 6 | pub enum ScaleDegree {
[INFO] [stdout]   |          ----------- `ScaleDegree` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/core/music_theory/diatonic_scale.rs:9:45
[INFO] [stdout]    |
[INFO] [stdout]  9 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]    |                                             ^------------
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             `FromPrimitive` is not local
[INFO] [stdout]    |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_OctaveShift`
[INFO] [stdout] 10 | pub enum OctaveShift {
[INFO] [stdout]    |          ----------- `OctaveShift` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]  --> src/core/music_theory/rhythm.rs:4:45
[INFO] [stdout]   |
[INFO] [stdout] 4 | #[derive(Clone, Copy, PartialEq, Eq, Debug, FromPrimitive)]
[INFO] [stdout]   |                                             ^------------
[INFO] [stdout]   |                                             |
[INFO] [stdout]   |                                             `FromPrimitive` is not local
[INFO] [stdout]   |                                             move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_NoteDuration`
[INFO] [stdout] 5 | pub enum NoteDuration {
[INFO] [stdout]   |          ------------ `NoteDuration` is not local
[INFO] [stdout]   |
[INFO] [stdout]   = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]   = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]   = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]   = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]   = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/core/sheet_music/playing_music.rs:25:17
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn next(&mut self) -> Reading {
[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] 25 |     pub fn next(&mut self) -> Reading<'_> {
[INFO] [stdout]    |                                      ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.53s
[INFO] running `Command { std: "docker" "inspect" "3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d", kill_on_drop: false }`
[INFO] [stdout] 3cc20059ea6e0d2955f0c5209ac340391651268a1c2b6a9acf19f76854833a5d
