[INFO] fetching crate vst2 0.0.1...
[INFO] testing vst2-0.0.1 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-8
[INFO] extracting crate vst2 0.0.1 into /workspace/builds/worker-3-tc1/source
[INFO] started tweaking crates.io crate vst2 0.0.1
[INFO] finished tweaking crates.io crate vst2 0.0.1
[INFO] tweaked toml for crates.io crate vst2 0.0.1 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate vst2 0.0.1 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 48 packages to latest compatible versions
[INFO] [stderr]       Adding bitflags v0.7.0 (available: v2.10.0)
[INFO] [stderr]       Adding libloading v0.3.4 (available: v0.9.0)
[INFO] [stderr]       Adding log v0.3.9 (available: v0.4.28)
[INFO] [stderr]       Adding num v0.1.43 (available: v0.4.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded siphasher v0.2.3
[INFO] [stderr]   Downloaded itoa v0.3.4
[INFO] [stderr]   Downloaded serde_json v0.9.10
[INFO] [stderr]   Downloaded phf_generator v0.7.24
[INFO] [stderr]   Downloaded phf_shared v0.7.24
[INFO] [stderr]   Downloaded phf v0.7.24
[INFO] [stderr]   Downloaded libloading v0.3.4
[INFO] [stderr]   Downloaded bitflags v0.7.0
[INFO] [stderr]   Downloaded target_build_utils v0.3.1
[INFO] [stderr]   Downloaded serde v0.9.15
[INFO] [stderr]   Downloaded phf_codegen v0.7.24
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 687f4cf8540bf0597db43d516d2622e00c847fe1fc5850f207d883bb0a420b83
[INFO] running `Command { std: "docker" "start" "-a" "687f4cf8540bf0597db43d516d2622e00c847fe1fc5850f207d883bb0a420b83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "687f4cf8540bf0597db43d516d2622e00c847fe1fc5850f207d883bb0a420b83", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "687f4cf8540bf0597db43d516d2622e00c847fe1fc5850f207d883bb0a420b83", kill_on_drop: false }`
[INFO] [stdout] 687f4cf8540bf0597db43d516d2622e00c847fe1fc5850f207d883bb0a420b83
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0b6b76f07a2b2336a9d98fba636911e3a303e7f8ad31432760397b620f0bfc9d
[INFO] running `Command { std: "docker" "start" "-a" "0b6b76f07a2b2336a9d98fba636911e3a303e7f8ad31432760397b620f0bfc9d", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling autocfg v0.1.8
[INFO] [stderr]    Compiling rand_core v0.4.2
[INFO] [stderr]    Compiling siphasher v0.2.3
[INFO] [stderr]    Compiling itoa v0.3.4
[INFO] [stderr]    Compiling serde v0.9.15
[INFO] [stderr]    Compiling dtoa v0.4.8
[INFO] [stderr]    Compiling num-traits v0.1.43
[INFO] [stderr]    Compiling num-bigint v0.1.45
[INFO] [stderr]    Compiling num-rational v0.1.43
[INFO] [stderr]    Compiling rand_pcg v0.1.2
[INFO] [stderr]    Compiling rand_chacha v0.1.1
[INFO] [stderr]    Compiling rand_core v0.3.1
[INFO] [stderr]    Compiling rand v0.6.5
[INFO] [stderr]    Compiling rand_os v0.1.3
[INFO] [stderr]    Compiling rand_jitter v0.1.4
[INFO] [stderr]    Compiling rand_isaac v0.1.1
[INFO] [stderr]    Compiling rand_xorshift v0.1.1
[INFO] [stderr]    Compiling rand_hc v0.1.0
[INFO] [stderr]    Compiling phf_shared v0.7.24
[INFO] [stderr]    Compiling num-complex v0.1.44
[INFO] [stderr]    Compiling num-iter v0.1.45
[INFO] [stderr]    Compiling phf v0.7.24
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling phf_generator v0.7.24
[INFO] [stderr]    Compiling phf_codegen v0.7.24
[INFO] [stderr]    Compiling num v0.1.43
[INFO] [stderr]    Compiling target_build_utils v0.3.1
[INFO] [stderr]    Compiling serde_json v0.9.10
[INFO] [stderr]    Compiling libloading v0.3.4
[INFO] [stderr]    Compiling vst2 v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | /     bitflags! {
[INFO] [stdout] 567 | |         /// Flags for VST channels.
[INFO] [stdout] 568 | |         pub flags Channel: i32 {
[INFO] [stdout] 569 | |             /// Indicates channel is active. Ignored by host.
[INFO] [stdout] ...   |
[INFO] [stdout] 576 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | /     bitflags! {
[INFO] [stdout] 567 | |         /// Flags for VST channels.
[INFO] [stdout] 568 | |         pub flags Channel: i32 {
[INFO] [stdout] 569 | |             /// Indicates channel is active. Ignored by host.
[INFO] [stdout] ...   |
[INFO] [stdout] 576 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 578 | /     bitflags! {
[INFO] [stdout] 579 | |         /// Flags for VST plugins.
[INFO] [stdout] 580 | |         pub flags Plugin: i32 {
[INFO] [stdout] 581 | |             /// Plugin has an editor.
[INFO] [stdout] ...   |
[INFO] [stdout] 594 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 578 | /     bitflags! {
[INFO] [stdout] 579 | |         /// Flags for VST plugins.
[INFO] [stdout] 580 | |         pub flags Plugin: i32 {
[INFO] [stdout] 581 | |             /// Plugin has an editor.
[INFO] [stdout] ...   |
[INFO] [stdout] 594 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     bitflags!{
[INFO] [stdout] 597 | |         /// Cross platform modifier key flags.
[INFO] [stdout] 598 | |         pub flags ModifierKey: u8 {
[INFO] [stdout] 599 | |             /// Shift key.
[INFO] [stdout] ...   |
[INFO] [stdout] 608 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     bitflags!{
[INFO] [stdout] 597 | |         /// Cross platform modifier key flags.
[INFO] [stdout] 598 | |         pub flags ModifierKey: u8 {
[INFO] [stdout] 599 | |             /// Shift key.
[INFO] [stdout] ...   |
[INFO] [stdout] 608 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     bitflags! {
[INFO] [stdout] 611 | |         /// MIDI event flags.
[INFO] [stdout] 612 | |         pub flags MidiEvent: i32 {
[INFO] [stdout] 613 | |             /// This event is played live (not in playback from a sequencer track). This allows the
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     bitflags! {
[INFO] [stdout] 611 | |         /// MIDI event flags.
[INFO] [stdout] 612 | |         pub flags MidiEvent: i32 {
[INFO] [stdout] 613 | |             /// This event is played live (not in playback from a sequencer track). This allows the
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/host.rs:693:39
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/host.rs:702:39
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/plugin.rs:657:45
[INFO] [stdout]     |
[INFO] [stdout] 657 |     fn get_editor(&mut self) -> Option<&mut Editor> { None }
[INFO] [stdout]     |                                             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 657 |     fn get_editor(&mut self) -> Option<&mut dyn Editor> { None }
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/interfaces.rs:266:33
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub fn host_dispatch(host: &mut Host,
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub fn host_dispatch(host: &mut dyn Host,
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:138:53
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub unsafe fn get_plugin(&mut self) -> &mut Box<Plugin> {
[INFO] [stdout]     |                                                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub unsafe fn get_plugin(&mut self) -> &mut Box<dyn Plugin> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:139:38
[INFO] [stdout]     |
[INFO] [stdout] 139 |         mem::transmute::<_, &mut Box<Plugin>>(self.object)
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 139 |         mem::transmute::<_, &mut Box<dyn Plugin>>(self.object)
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:145:42
[INFO] [stdout]     |
[INFO] [stdout] 145 |         drop(mem::transmute::<_, Box<Box<Plugin>>>(self.object))
[INFO] [stdout]     |                                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 145 |         drop(mem::transmute::<_, Box<Box<dyn Plugin>>>(self.object))
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/host.rs:233:30
[INFO] [stdout]     |
[INFO] [stdout] 233 |         write!(f, "{}", self.description())
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:236:65
[INFO] [stdout]     |
[INFO] [stdout] 236 |         object: mem::transmute(Box::new(Box::new(plugin) as Box<Plugin>)),
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 236 |         object: mem::transmute(Box::new(Box::new(plugin) as Box<dyn Plugin>)),
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Plugin`
[INFO] [stdout]   --> src/interfaces.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 |     use plugin::{CanDo, OpCode, Plugin};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `AEffect` does not permit zero-initialization
[INFO] [stdout]    --> src/lib.rs:173:51
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let effect = unsafe { mem::transmute(Box::new(mem::zeroed::<AEffect>())) };
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this code causes undefined behavior when executed
[INFO] [stdout]     |                                                   help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout] note: function pointers must be non-null (in this struct field)
[INFO] [stdout]    --> src/api.rs:57:5
[INFO] [stdout]     |
[INFO] [stdout]  57 |     pub dispatcher: DispatcherProc,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointers are not nullable, so checking them for null will always return false
[INFO] [stdout]    --> src/host.rs:428:12
[INFO] [stdout]     |
[INFO] [stdout] 428 |         if (dispatcher as *mut u8).is_null() {
[INFO] [stdout]     |            ^----------^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expression has type `fn(*mut AEffect, i32, i32, isize, *mut c_void, f32) -> isize`
[INFO] [stdout]     |
[INFO] [stdout]     = help: wrap the function pointer inside an `Option` and use `Option::is_none` to check for null pointer value
[INFO] [stdout]     = note: `#[warn(useless_ptr_null_checks)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `ChannelProperties` does not permit being left uninitialized
[INFO] [stdout]    --> src/host.rs:693:34
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this code causes undefined behavior when executed
[INFO] [stdout]     |                                  help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]    --> src/api.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub name: [u8; MAX_LABEL as usize],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `ChannelProperties` does not permit being left uninitialized
[INFO] [stdout]    --> src/host.rs:702:34
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this code causes undefined behavior when executed
[INFO] [stdout]     |                                  help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]    --> src/api.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub name: [u8; MAX_LABEL as usize],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `load_pointer` should have an upper case name
[INFO] [stdout]    --> src/host.rs:724:12
[INFO] [stdout]     |
[INFO] [stdout] 724 | static mut load_pointer: *mut c_void = 0 as *mut c_void;
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 724 - static mut load_pointer: *mut c_void = 0 as *mut c_void;
[INFO] [stdout] 724 + static mut LOAD_POINTER: *mut c_void = 0 as *mut c_void;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `Box<[u8]>` will be dropped
[INFO] [stdout]    --> src/interfaces.rs:165:47
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     chunks.into_boxed_slice().as_ptr() as *mut c_void;
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `Box<[u8]>` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `Box<[u8]>` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: you must make sure that the variable you bind the `Box<[u8]>` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]     = help: in particular, if this pointer is returned from the current function, binding the `Box<[u8]>` inside the function will not suffice
[INFO] [stdout]     = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/interfaces.rs:238:40
[INFO] [stdout]     |
[INFO] [stdout] 238 |                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 238 -                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout] 238 +                     modifier: unsafe { f32::to_bits(opt).cast_signed() } as u8
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/interfaces.rs:247:40
[INFO] [stdout]     |
[INFO] [stdout] 247 |                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 247 -                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout] 247 +                     modifier: unsafe { f32::to_bits(opt).cast_signed() } as u8
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.18s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: bitflags v0.7.0
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "0b6b76f07a2b2336a9d98fba636911e3a303e7f8ad31432760397b620f0bfc9d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0b6b76f07a2b2336a9d98fba636911e3a303e7f8ad31432760397b620f0bfc9d", kill_on_drop: false }`
[INFO] [stdout] 0b6b76f07a2b2336a9d98fba636911e3a303e7f8ad31432760397b620f0bfc9d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2de8fc285207da97973d98804026c9359901cf14d904d266d65cc338c27b6c87
[INFO] running `Command { std: "docker" "start" "-a" "2de8fc285207da97973d98804026c9359901cf14d904d266d65cc338c27b6c87", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | /     bitflags! {
[INFO] [stdout] 567 | |         /// Flags for VST channels.
[INFO] [stdout] 568 | |         pub flags Channel: i32 {
[INFO] [stdout] 569 | |             /// Indicates channel is active. Ignored by host.
[INFO] [stdout] ...   |
[INFO] [stdout] 576 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | /     bitflags! {
[INFO] [stdout] 567 | |         /// Flags for VST channels.
[INFO] [stdout] 568 | |         pub flags Channel: i32 {
[INFO] [stdout] 569 | |             /// Indicates channel is active. Ignored by host.
[INFO] [stdout] ...   |
[INFO] [stdout] 576 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 578 | /     bitflags! {
[INFO] [stdout] 579 | |         /// Flags for VST plugins.
[INFO] [stdout] 580 | |         pub flags Plugin: i32 {
[INFO] [stdout] 581 | |             /// Plugin has an editor.
[INFO] [stdout] ...   |
[INFO] [stdout] 594 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 578 | /     bitflags! {
[INFO] [stdout] 579 | |         /// Flags for VST plugins.
[INFO] [stdout] 580 | |         pub flags Plugin: i32 {
[INFO] [stdout] 581 | |             /// Plugin has an editor.
[INFO] [stdout] ...   |
[INFO] [stdout] 594 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     bitflags!{
[INFO] [stdout] 597 | |         /// Cross platform modifier key flags.
[INFO] [stdout] 598 | |         pub flags ModifierKey: u8 {
[INFO] [stdout] 599 | |             /// Shift key.
[INFO] [stdout] ...   |
[INFO] [stdout] 608 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     bitflags!{
[INFO] [stdout] 597 | |         /// Cross platform modifier key flags.
[INFO] [stdout] 598 | |         pub flags ModifierKey: u8 {
[INFO] [stdout] 599 | |             /// Shift key.
[INFO] [stdout] ...   |
[INFO] [stdout] 608 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     bitflags! {
[INFO] [stdout] 611 | |         /// MIDI event flags.
[INFO] [stdout] 612 | |         pub flags MidiEvent: i32 {
[INFO] [stdout] 613 | |             /// This event is played live (not in playback from a sequencer track). This allows the
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     bitflags! {
[INFO] [stdout] 611 | |         /// MIDI event flags.
[INFO] [stdout] 612 | |         pub flags MidiEvent: i32 {
[INFO] [stdout] 613 | |             /// This event is played live (not in playback from a sequencer track). This allows the
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/host.rs:693:39
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/host.rs:702:39
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/plugin.rs:657:45
[INFO] [stdout]     |
[INFO] [stdout] 657 |     fn get_editor(&mut self) -> Option<&mut Editor> { None }
[INFO] [stdout]     |                                             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 657 |     fn get_editor(&mut self) -> Option<&mut dyn Editor> { None }
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/interfaces.rs:266:33
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub fn host_dispatch(host: &mut Host,
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub fn host_dispatch(host: &mut dyn Host,
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:138:53
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub unsafe fn get_plugin(&mut self) -> &mut Box<Plugin> {
[INFO] [stdout]     |                                                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub unsafe fn get_plugin(&mut self) -> &mut Box<dyn Plugin> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:139:38
[INFO] [stdout]     |
[INFO] [stdout] 139 |         mem::transmute::<_, &mut Box<Plugin>>(self.object)
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 139 |         mem::transmute::<_, &mut Box<dyn Plugin>>(self.object)
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:145:42
[INFO] [stdout]     |
[INFO] [stdout] 145 |         drop(mem::transmute::<_, Box<Box<Plugin>>>(self.object))
[INFO] [stdout]     |                                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 145 |         drop(mem::transmute::<_, Box<Box<dyn Plugin>>>(self.object))
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling vst2 v0.0.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/host.rs:233:30
[INFO] [stdout]     |
[INFO] [stdout] 233 |         write!(f, "{}", self.description())
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:236:65
[INFO] [stdout]     |
[INFO] [stdout] 236 |         object: mem::transmute(Box::new(Box::new(plugin) as Box<Plugin>)),
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 236 |         object: mem::transmute(Box::new(Box::new(plugin) as Box<dyn Plugin>)),
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Plugin`
[INFO] [stdout]   --> src/interfaces.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 |     use plugin::{CanDo, OpCode, Plugin};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `AEffect` does not permit zero-initialization
[INFO] [stdout]    --> src/lib.rs:173:51
[INFO] [stdout]     |
[INFO] [stdout] 173 |     let effect = unsafe { mem::transmute(Box::new(mem::zeroed::<AEffect>())) };
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this code causes undefined behavior when executed
[INFO] [stdout]     |                                                   help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout] note: function pointers must be non-null (in this struct field)
[INFO] [stdout]    --> src/api.rs:57:5
[INFO] [stdout]     |
[INFO] [stdout]  57 |     pub dispatcher: DispatcherProc,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(invalid_value)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointers are not nullable, so checking them for null will always return false
[INFO] [stdout]    --> src/host.rs:428:12
[INFO] [stdout]     |
[INFO] [stdout] 428 |         if (dispatcher as *mut u8).is_null() {
[INFO] [stdout]     |            ^----------^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             expression has type `fn(*mut AEffect, i32, i32, isize, *mut c_void, f32) -> isize`
[INFO] [stdout]     |
[INFO] [stdout]     = help: wrap the function pointer inside an `Option` and use `Option::is_none` to check for null pointer value
[INFO] [stdout]     = note: `#[warn(useless_ptr_null_checks)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `ChannelProperties` does not permit being left uninitialized
[INFO] [stdout]    --> src/host.rs:693:34
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this code causes undefined behavior when executed
[INFO] [stdout]     |                                  help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]    --> src/api.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub name: [u8; MAX_LABEL as usize],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the type `ChannelProperties` does not permit being left uninitialized
[INFO] [stdout]    --> src/host.rs:702:34
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this code causes undefined behavior when executed
[INFO] [stdout]     |                                  help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done
[INFO] [stdout]     |
[INFO] [stdout] note: integers must be initialized (in this struct field)
[INFO] [stdout]    --> src/api.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub name: [u8; MAX_LABEL as usize],
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `load_pointer` should have an upper case name
[INFO] [stdout]    --> src/host.rs:724:12
[INFO] [stdout]     |
[INFO] [stdout] 724 | static mut load_pointer: *mut c_void = 0 as *mut c_void;
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 724 - static mut load_pointer: *mut c_void = 0 as *mut c_void;
[INFO] [stdout] 724 + static mut LOAD_POINTER: *mut c_void = 0 as *mut c_void;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: a dangling pointer will be produced because the temporary `Box<[u8]>` will be dropped
[INFO] [stdout]    --> src/interfaces.rs:165:47
[INFO] [stdout]     |
[INFO] [stdout] 165 |                     chunks.into_boxed_slice().as_ptr() as *mut c_void;
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will immediately be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `Box<[u8]>` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `Box<[u8]>` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: you must make sure that the variable you bind the `Box<[u8]>` to lives at least as long as the pointer returned by the call to `as_ptr`
[INFO] [stdout]     = help: in particular, if this pointer is returned from the current function, binding the `Box<[u8]>` inside the function will not suffice
[INFO] [stdout]     = help: for more information, see <https://doc.rust-lang.org/reference/destructors.html>
[INFO] [stdout]     = note: `#[warn(dangling_pointers_from_temporaries)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/interfaces.rs:238:40
[INFO] [stdout]     |
[INFO] [stdout] 238 |                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unnecessary_transmutes)]` on by default
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 238 -                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout] 238 +                     modifier: unsafe { f32::to_bits(opt).cast_signed() } as u8
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary transmute
[INFO] [stdout]    --> src/interfaces.rs:247:40
[INFO] [stdout]     |
[INFO] [stdout] 247 |                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: replace this with
[INFO] [stdout]     |
[INFO] [stdout] 247 -                     modifier: unsafe { mem::transmute::<f32, i32>(opt) } as u8
[INFO] [stdout] 247 +                     modifier: unsafe { f32::to_bits(opt).cast_signed() } as u8
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | /     bitflags! {
[INFO] [stdout] 567 | |         /// Flags for VST channels.
[INFO] [stdout] 568 | |         pub flags Channel: i32 {
[INFO] [stdout] 569 | |             /// Indicates channel is active. Ignored by host.
[INFO] [stdout] ...   |
[INFO] [stdout] 576 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:566:5
[INFO] [stdout]     |
[INFO] [stdout] 566 | /     bitflags! {
[INFO] [stdout] 567 | |         /// Flags for VST channels.
[INFO] [stdout] 568 | |         pub flags Channel: i32 {
[INFO] [stdout] 569 | |             /// Indicates channel is active. Ignored by host.
[INFO] [stdout] ...   |
[INFO] [stdout] 576 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 578 | /     bitflags! {
[INFO] [stdout] 579 | |         /// Flags for VST plugins.
[INFO] [stdout] 580 | |         pub flags Plugin: i32 {
[INFO] [stdout] 581 | |             /// Plugin has an editor.
[INFO] [stdout] ...   |
[INFO] [stdout] 594 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:578:5
[INFO] [stdout]     |
[INFO] [stdout] 578 | /     bitflags! {
[INFO] [stdout] 579 | |         /// Flags for VST plugins.
[INFO] [stdout] 580 | |         pub flags Plugin: i32 {
[INFO] [stdout] 581 | |             /// Plugin has an editor.
[INFO] [stdout] ...   |
[INFO] [stdout] 594 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     bitflags!{
[INFO] [stdout] 597 | |         /// Cross platform modifier key flags.
[INFO] [stdout] 598 | |         pub flags ModifierKey: u8 {
[INFO] [stdout] 599 | |             /// Shift key.
[INFO] [stdout] ...   |
[INFO] [stdout] 608 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:596:5
[INFO] [stdout]     |
[INFO] [stdout] 596 | /     bitflags!{
[INFO] [stdout] 597 | |         /// Cross platform modifier key flags.
[INFO] [stdout] 598 | |         pub flags ModifierKey: u8 {
[INFO] [stdout] 599 | |             /// Shift key.
[INFO] [stdout] ...   |
[INFO] [stdout] 608 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     bitflags! {
[INFO] [stdout] 611 | |         /// MIDI event flags.
[INFO] [stdout] 612 | |         pub flags MidiEvent: i32 {
[INFO] [stdout] 613 | |             /// This event is played live (not in playback from a sequencer track). This allows the
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/api.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     bitflags! {
[INFO] [stdout] 611 | |         /// MIDI event flags.
[INFO] [stdout] 612 | |         pub flags MidiEvent: i32 {
[INFO] [stdout] 613 | |             /// This event is played live (not in playback from a sequencer track). This allows the
[INFO] [stdout] ...   |
[INFO] [stdout] 618 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: lint `private_no_mangle_fns` has been removed: no longer a warning, `#[no_mangle]` functions always exported
[INFO] [stdout]    --> src/lib.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 | #[allow(private_no_mangle_fns)] // For `plugin_main!`
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(renamed_and_removed_lints)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/host.rs:693:39
[INFO] [stdout]     |
[INFO] [stdout] 693 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead
[INFO] [stdout]    --> src/host.rs:702:39
[INFO] [stdout]     |
[INFO] [stdout] 702 |         let mut props = unsafe { mem::uninitialized() };
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/plugin.rs:657:45
[INFO] [stdout]     |
[INFO] [stdout] 657 |     fn get_editor(&mut self) -> Option<&mut Editor> { None }
[INFO] [stdout]     |                                             ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]     = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 657 |     fn get_editor(&mut self) -> Option<&mut dyn Editor> { None }
[INFO] [stdout]     |                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> examples/simple_host.rs:32:64
[INFO] [stdout]    |
[INFO] [stdout] 32 | ...                   e.description()));
[INFO] [stdout]    |                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/interfaces.rs:266:33
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub fn host_dispatch(host: &mut Host,
[INFO] [stdout]     |                                 ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 266 | pub fn host_dispatch(host: &mut dyn Host,
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:138:53
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub unsafe fn get_plugin(&mut self) -> &mut Box<Plugin> {
[INFO] [stdout]     |                                                     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 138 |     pub unsafe fn get_plugin(&mut self) -> &mut Box<dyn Plugin> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:139:38
[INFO] [stdout]     |
[INFO] [stdout] 139 |         mem::transmute::<_, &mut Box<Plugin>>(self.object)
[INFO] [stdout]     |                                      ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 139 |         mem::transmute::<_, &mut Box<dyn Plugin>>(self.object)
[INFO] [stdout]     |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/api.rs:145:42
[INFO] [stdout]     |
[INFO] [stdout] 145 |         drop(mem::transmute::<_, Box<Box<Plugin>>>(self.object))
[INFO] [stdout]     |                                          ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 145 |         drop(mem::transmute::<_, Box<Box<dyn Plugin>>>(self.object))
[INFO] [stdout]     |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]    --> src/host.rs:233:30
[INFO] [stdout]     |
[INFO] [stdout] 233 |         write!(f, "{}", self.description())
[INFO] [stdout]     |                              ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:236:65
[INFO] [stdout]     |
[INFO] [stdout] 236 |         object: mem::transmute(Box::new(Box::new(plugin) as Box<Plugin>)),
[INFO] [stdout]     |                                                                 ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 236 |         object: mem::transmute(Box::new(Box::new(plugin) as Box<dyn Plugin>)),
[INFO] [stdout]     |                                                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Plugin`
[INFO] [stdout]   --> src/interfaces.rs:65:33
[INFO] [stdout]    |
[INFO] [stdout] 65 |     use plugin::{CanDo, OpCode, Plugin};
[INFO] [stdout]    |                                 ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout] 38 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/interfaces.rs:70:9
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let mut plugin = unsafe { (*effect).get_plugin() };
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0591]: can't transmute zero-sized type
[INFO] [stdout]    --> src/lib.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |                         mem::transmute::<_, usize>($b)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 372 |         assert_fn_eq!(aeffect.dispatcher, interfaces::dispatch);
[INFO] [stdout]     |         ------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: source type: fn(*mut AEffect, i32, i32, isize, *mut c_void, f32) -> isize {dispatch}
[INFO] [stdout]     = note: target type: usize
[INFO] [stdout]     = help: cast with `as` to a pointer instead
[INFO] [stdout]     = note: this error originates in the macro `assert_fn_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0591]: can't transmute zero-sized type
[INFO] [stdout]    --> src/lib.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |                         mem::transmute::<_, usize>($b)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 373 |         assert_fn_eq!(aeffect._process, interfaces::process_deprecated);
[INFO] [stdout]     |         --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: source type: fn(*mut AEffect, *mut *mut f32, *mut *mut f32, i32) {process_deprecated}
[INFO] [stdout]     = note: target type: usize
[INFO] [stdout]     = help: cast with `as` to a pointer instead
[INFO] [stdout]     = note: this error originates in the macro `assert_fn_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0591]: can't transmute zero-sized type
[INFO] [stdout]    --> src/lib.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |                         mem::transmute::<_, usize>($b)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 374 |         assert_fn_eq!(aeffect.setParameter, interfaces::set_parameter);
[INFO] [stdout]     |         -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: source type: fn(*mut AEffect, i32, f32) {set_parameter}
[INFO] [stdout]     = note: target type: usize
[INFO] [stdout]     = help: cast with `as` to a pointer instead
[INFO] [stdout]     = note: this error originates in the macro `assert_fn_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0591]: can't transmute zero-sized type
[INFO] [stdout]    --> src/lib.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |                         mem::transmute::<_, usize>($b)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 375 |         assert_fn_eq!(aeffect.getParameter, interfaces::get_parameter);
[INFO] [stdout]     |         -------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: source type: fn(*mut AEffect, i32) -> f32 {get_parameter}
[INFO] [stdout]     = note: target type: usize
[INFO] [stdout]     = help: cast with `as` to a pointer instead
[INFO] [stdout]     = note: this error originates in the macro `assert_fn_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0591]: can't transmute zero-sized type
[INFO] [stdout]    --> src/lib.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |                         mem::transmute::<_, usize>($b)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 385 |         assert_fn_eq!(aeffect.processReplacing, interfaces::process_replacing);
[INFO] [stdout]     |         ---------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: source type: fn(*mut AEffect, *mut *mut f32, *mut *mut f32, i32) {process_replacing}
[INFO] [stdout]     = note: target type: usize
[INFO] [stdout]     = help: cast with `as` to a pointer instead
[INFO] [stdout]     = note: this error originates in the macro `assert_fn_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0591]: can't transmute zero-sized type
[INFO] [stdout]    --> src/lib.rs:363:25
[INFO] [stdout]     |
[INFO] [stdout] 363 |                         mem::transmute::<_, usize>($b)
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 386 |         assert_fn_eq!(aeffect.processReplacingF64, interfaces::process_replacing_f64);
[INFO] [stdout]     |         ----------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: source type: fn(*mut AEffect, *mut *mut f64, *mut *mut f64, i32) {process_replacing_f64}
[INFO] [stdout]     = note: target type: usize
[INFO] [stdout]     = help: cast with `as` to a pointer instead
[INFO] [stdout]     = note: this error originates in the macro `assert_fn_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0591`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `vst2` (lib test) due to 6 previous errors; 22 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "2de8fc285207da97973d98804026c9359901cf14d904d266d65cc338c27b6c87", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2de8fc285207da97973d98804026c9359901cf14d904d266d65cc338c27b6c87", kill_on_drop: false }`
[INFO] [stdout] 2de8fc285207da97973d98804026c9359901cf14d904d266d65cc338c27b6c87
