[INFO] fetching crate ruru 0.9.3...
[INFO] testing ruru-0.9.3 against 1.47.0 for beta-1.48-1
[INFO] extracting crate ruru 0.9.3 into /workspace/builds/worker-5/source
[INFO] validating manifest of crates.io crate ruru 0.9.3 on toolchain 1.47.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate ruru 0.9.3
[INFO] finished tweaking crates.io crate ruru 0.9.3
[INFO] tweaked toml for crates.io crate ruru 0.9.3 written to /workspace/builds/worker-5/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.47.0" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] da1dca0ea6e87eba3d8730caa2665141029da6370555c30e56f91bf1f1a7faff
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "da1dca0ea6e87eba3d8730caa2665141029da6370555c30e56f91bf1f1a7faff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "da1dca0ea6e87eba3d8730caa2665141029da6370555c30e56f91bf1f1a7faff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "da1dca0ea6e87eba3d8730caa2665141029da6370555c30e56f91bf1f1a7faff", kill_on_drop: false }`
[INFO] [stdout] da1dca0ea6e87eba3d8730caa2665141029da6370555c30e56f91bf1f1a7faff
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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=warn" "-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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] f1a447d56c99e16c7fcae7fdf9f0e252af5764e35ab6fe40f5c2a61f0d11e3d4
[INFO] running `Command { std: "docker" "start" "-a" "f1a447d56c99e16c7fcae7fdf9f0e252af5764e35ab6fe40f5c2a61f0d11e3d4", kill_on_drop: false }`
[INFO] [stderr]    Compiling ruby-sys v0.2.20
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling ruru v0.9.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/class.rs:92:54
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn wrap_data<T>(klass: Value, data: T, wrapper: &DataTypeWrapper<T>) -> Value {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/class.rs:98:45
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn get_data<T>(object: Value, wrapper: &DataTypeWrapper<T>) -> &mut T {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let fnbox = Box::new(func) as Box<FnOnce() -> R>;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnOnce() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut fnbox: Box<Box<FnMut() -> R>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:87:51
[INFO] [stdout]    |
[INFO] [stdout] 87 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> R>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let mut fnbox: Box<Box<FnMut() -> *const c_void>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:94:51
[INFO] [stdout]    |
[INFO] [stdout] 94 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> *const c_void>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/vm.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut fnbox: Box<Box<FnMut() -> *const c_void>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/vm.rs:96:51
[INFO] [stdout]    |
[INFO] [stdout] 96 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> *const c_void>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/class/class.rs:568:62
[INFO] [stdout]     |
[INFO] [stdout] 568 |     pub fn wrap_data<T, O: Object>(&self, data: T, wrapper: &DataTypeWrapper<T>) -> O {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/class/traits/object.rs:209:47
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn get_data<'a, T>(&'a self, wrapper: &'a DataTypeWrapper<T>) -> &mut T {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/util.rs:58:46
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let fnbox = Box::new(wrap_return) as Box<FnOnce() -> *const c_void>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnOnce() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/class/traits/object.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |         write!(f, "{}", <Error as error::Error>::description(&self))
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `class::any_object::AnyObject`, which is not FFI-safe
[INFO] [stdout]   --> src/binding/hash.rs:49:37
[INFO] [stdout]    |
[INFO] [stdout] 49 | extern "C" fn each_callback<F>(key: AnyObject, value: AnyObject, closure: CallbackMutPtr)
[INFO] [stdout]    |                                     ^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/class/any_object.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | / pub struct AnyObject {
[INFO] [stdout] 53 | |     value: Value,
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `class::any_object::AnyObject`, which is not FFI-safe
[INFO] [stdout]   --> src/binding/hash.rs:49:55
[INFO] [stdout]    |
[INFO] [stdout] 49 | extern "C" fn each_callback<F>(key: AnyObject, value: AnyObject, closure: CallbackMutPtr)
[INFO] [stdout]    |                                                       ^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/class/any_object.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | / pub struct AnyObject {
[INFO] [stdout] 53 | |     value: Value,
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.63s
[INFO] running `Command { std: "docker" "inspect" "f1a447d56c99e16c7fcae7fdf9f0e252af5764e35ab6fe40f5c2a61f0d11e3d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1a447d56c99e16c7fcae7fdf9f0e252af5764e35ab6fe40f5c2a61f0d11e3d4", kill_on_drop: false }`
[INFO] [stdout] f1a447d56c99e16c7fcae7fdf9f0e252af5764e35ab6fe40f5c2a61f0d11e3d4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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=warn" "-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" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+1.47.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 95097f912538657be418a7d158c3108ca906a4d485222ac68fe4df9bea98a46b
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "95097f912538657be418a7d158c3108ca906a4d485222ac68fe4df9bea98a46b", kill_on_drop: false }`
[INFO] [stderr]    Compiling ruru v0.9.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/class.rs:92:54
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn wrap_data<T>(klass: Value, data: T, wrapper: &DataTypeWrapper<T>) -> Value {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/class.rs:98:45
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn get_data<T>(object: Value, wrapper: &DataTypeWrapper<T>) -> &mut T {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let fnbox = Box::new(func) as Box<FnOnce() -> R>;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnOnce() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut fnbox: Box<Box<FnMut() -> R>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:87:51
[INFO] [stdout]    |
[INFO] [stdout] 87 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> R>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let mut fnbox: Box<Box<FnMut() -> *const c_void>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:94:51
[INFO] [stdout]    |
[INFO] [stdout] 94 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> *const c_void>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/vm.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut fnbox: Box<Box<FnMut() -> *const c_void>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/vm.rs:96:51
[INFO] [stdout]    |
[INFO] [stdout] 96 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> *const c_void>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/class/class.rs:568:62
[INFO] [stdout]     |
[INFO] [stdout] 568 |     pub fn wrap_data<T, O: Object>(&self, data: T, wrapper: &DataTypeWrapper<T>) -> O {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/class/traits/object.rs:209:47
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn get_data<'a, T>(&'a self, wrapper: &'a DataTypeWrapper<T>) -> &mut T {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/util.rs:58:46
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let fnbox = Box::new(wrap_return) as Box<FnOnce() -> *const c_void>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnOnce() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/class/traits/object.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |         write!(f, "{}", <Error as error::Error>::description(&self))
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `class::any_object::AnyObject`, which is not FFI-safe
[INFO] [stdout]   --> src/binding/hash.rs:49:37
[INFO] [stdout]    |
[INFO] [stdout] 49 | extern "C" fn each_callback<F>(key: AnyObject, value: AnyObject, closure: CallbackMutPtr)
[INFO] [stdout]    |                                     ^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/class/any_object.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | / pub struct AnyObject {
[INFO] [stdout] 53 | |     value: Value,
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `class::any_object::AnyObject`, which is not FFI-safe
[INFO] [stdout]   --> src/binding/hash.rs:49:55
[INFO] [stdout]    |
[INFO] [stdout] 49 | extern "C" fn each_callback<F>(key: AnyObject, value: AnyObject, closure: CallbackMutPtr)
[INFO] [stdout]    |                                                       ^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/class/any_object.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | / pub struct AnyObject {
[INFO] [stdout] 53 | |     value: Value,
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout]  --> src/lib.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | #[macro_use]
[INFO] [stdout]   | ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/class.rs:92:54
[INFO] [stdout]    |
[INFO] [stdout] 92 | pub fn wrap_data<T>(klass: Value, data: T, wrapper: &DataTypeWrapper<T>) -> Value {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/class.rs:98:45
[INFO] [stdout]    |
[INFO] [stdout] 98 | pub fn get_data<T>(object: Value, wrapper: &DataTypeWrapper<T>) -> &mut T {
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:17:39
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let fnbox = Box::new(func) as Box<FnOnce() -> R>;
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnOnce() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:86:28
[INFO] [stdout]    |
[INFO] [stdout] 86 |     let mut fnbox: Box<Box<FnMut() -> R>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:87:51
[INFO] [stdout]    |
[INFO] [stdout] 87 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> R>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> R`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:93:28
[INFO] [stdout]    |
[INFO] [stdout] 93 |     let mut fnbox: Box<Box<FnMut() -> *const c_void>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/thread.rs:94:51
[INFO] [stdout]    |
[INFO] [stdout] 94 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> *const c_void>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/vm.rs:95:28
[INFO] [stdout]    |
[INFO] [stdout] 95 |     let mut fnbox: Box<Box<FnMut() -> *const c_void>> =
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/binding/vm.rs:96:51
[INFO] [stdout]    |
[INFO] [stdout] 96 |         unsafe { Box::from_raw(boxptr as *mut Box<FnMut() -> *const c_void>) };
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/class/class.rs:568:62
[INFO] [stdout]     |
[INFO] [stdout] 568 |     pub fn wrap_data<T, O: Object>(&self, data: T, wrapper: &DataTypeWrapper<T>) -> O {
[INFO] [stdout]     |                                                              ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/class/traits/object.rs:209:47
[INFO] [stdout]     |
[INFO] [stdout] 209 |     fn get_data<'a, T>(&'a self, wrapper: &'a DataTypeWrapper<T>) -> &mut T {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn DataTypeWrapper<T>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/util.rs:58:46
[INFO] [stdout]    |
[INFO] [stdout] 58 |     let fnbox = Box::new(wrap_return) as Box<FnOnce() -> *const c_void>;
[INFO] [stdout]    |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn FnOnce() -> *const c_void`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `#[inline]` is ignored on function prototypes
[INFO] [stdout]   --> src/class/traits/object.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     #[inline]
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/result.rs:43:25
[INFO] [stdout]    |
[INFO] [stdout] 43 |         write!(f, "{}", <Error as error::Error>::description(&self))
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `class::any_object::AnyObject`, which is not FFI-safe
[INFO] [stdout]   --> src/binding/hash.rs:49:37
[INFO] [stdout]    |
[INFO] [stdout] 49 | extern "C" fn each_callback<F>(key: AnyObject, value: AnyObject, closure: CallbackMutPtr)
[INFO] [stdout]    |                                     ^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(improper_ctypes_definitions)]` on by default
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/class/any_object.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | / pub struct AnyObject {
[INFO] [stdout] 53 | |     value: Value,
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` fn uses type `class::any_object::AnyObject`, which is not FFI-safe
[INFO] [stdout]   --> src/binding/hash.rs:49:55
[INFO] [stdout]    |
[INFO] [stdout] 49 | extern "C" fn each_callback<F>(key: AnyObject, value: AnyObject, closure: CallbackMutPtr)
[INFO] [stdout]    |                                                       ^^^^^^^^^ not FFI-safe
[INFO] [stdout]    |
[INFO] [stdout]    = help: consider adding a `#[repr(C)]` or `#[repr(transparent)]` attribute to this struct
[INFO] [stdout]    = note: this struct has unspecified layout
[INFO] [stdout] note: the type is defined here
[INFO] [stdout]   --> src/class/any_object.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | / pub struct AnyObject {
[INFO] [stdout] 53 | |     value: Value,
[INFO] [stdout] 54 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: linking with `cc` failed: exit code: 1
[INFO] [stdout]   |
[INFO] [stdout]   = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-L" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.0.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.1.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.2.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.3.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.4.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.5.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.6.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.7.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.8.rcgu.o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.ruru.3m8sq4k5-cgu.9.rcgu.o" "-o" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9" "/opt/rustwide/target/debug/deps/ruru-3386710a85dc97a9.19g7blcvx5r8dz0w.rcgu.o" "-Wl,--gc-sections" "-pie" "-Wl,-zrelro" "-Wl,-znow" "-nodefaultlibs" "-L" "/opt/rustwide/target/debug/deps" "-L" "/usr/lib" "-L" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-Wl,-Bstatic" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libtest-1a99bd050f5bcac9.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libterm-c3c443d72de8b429.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgetopts-8b34c4c4a224fb59.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunicode_width-b247e4f3706e4767.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_std-45a697d9a5a880a0.rlib" "/opt/rustwide/target/debug/deps/libruby_sys-6bf38da1feca55d3.rlib" "/opt/rustwide/target/debug/deps/liblibc-0a43f320b0d2a047.rlib" "/opt/rustwide/target/debug/deps/liblazy_static-4b460a565d885068.rlib" "-Wl,--start-group" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libstd-f14aca24435a5414.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libpanic_unwind-48d342a8b48d1d01.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libminiz_oxide-14bc0820888c8eb3.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libadler-9cbd9e217bff06bc.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libobject-31826136df98934e.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libaddr2line-075976a117c8fd5d.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libgimli-2d5cbedfbf17a011.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_demangle-0474372ff08c5319.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libhashbrown-d437c34460d2315a.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_alloc-fb61ed1b8cc4de79.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libunwind-bf76d1b643bfc9f0.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcfg_if-a1b53aa7fddcf418.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liblibc-28585e57fac45c73.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/liballoc-64801769bc15ab28.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/librustc_std_workspace_core-541997b56bb98660.rlib" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcore-cdea3c81adab3d12.rlib" "-Wl,--end-group" "/opt/rustwide/rustup-home/toolchains/1.47.0-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-gnu/lib/libcompiler_builtins-cd9f15a39fb65cbc.rlib" "-Wl,-Bdynamic" "-lruby-2.7" "-ldl" "-lrt" "-lpthread" "-lgcc_s" "-lc" "-lm" "-lrt" "-lpthread" "-lutil" "-ldl" "-lutil"
[INFO] [stdout]   = note: /usr/bin/ld: cannot find -lruby-2.7
[INFO] [stdout]           collect2: error: ld returned 1 exit status
[INFO] [stdout]           
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to previous error; 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `ruru`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `Command { std: "docker" "inspect" "95097f912538657be418a7d158c3108ca906a4d485222ac68fe4df9bea98a46b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "95097f912538657be418a7d158c3108ca906a4d485222ac68fe4df9bea98a46b", kill_on_drop: false }`
[INFO] [stdout] 95097f912538657be418a7d158c3108ca906a4d485222ac68fe4df9bea98a46b
