[INFO] fetching crate nativeshell_core 0.1.3...
[INFO] checking nativeshell_core-0.1.3 against 52995a223f2919dd3e2e427231db90a257350ded for pr-129249-4
[INFO] extracting crate nativeshell_core 0.1.3 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate nativeshell_core 0.1.3
[INFO] finished tweaking crates.io crate nativeshell_core 0.1.3
[INFO] tweaked toml for crates.io crate nativeshell_core 0.1.3 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate nativeshell_core 0.1.3 on toolchain 52995a223f2919dd3e2e427231db90a257350ded
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "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" "+52995a223f2919dd3e2e427231db90a257350ded" "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 26 packages to highest compatible versions
[INFO] [stderr]       Adding core-foundation v0.9.4 (available: v0.10.1)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269
[INFO] running `Command { std: "docker" "start" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269" "/opt/rustwide/cargo-home/bin/cargo" "+52995a223f2919dd3e2e427231db90a257350ded" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking futures-util v0.3.34
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]     Checking futures v0.3.34
[INFO] [stderr]    Compiling async-trait v0.1.92
[INFO] [stderr]     Checking nativeshell_core v0.1.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated associated function `core::num::<impl u16>::max_value`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/message_channel/codec.rs:307:29
[INFO] [stdout]     |
[INFO] [stdout] 307 |         } else if n <= u16::max_value() as usize {
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::num::<impl u32>::max_value`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/message_channel/codec.rs:310:28
[INFO] [stdout]     |
[INFO] [stdout] 310 |         } else if n < u32::max_value() as usize {
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::num::<impl u16>::max_value`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/message_channel/codec.rs:307:29
[INFO] [stdout]     |
[INFO] [stdout] 307 |         } else if n <= u16::max_value() as usize {
[INFO] [stdout]     |                             ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::num::<impl u32>::max_value`: replaced by the `MAX` associated constant on this type
[INFO] [stdout]    --> src/message_channel/codec.rs:310:28
[INFO] [stdout]     |
[INFO] [stdout] 310 |         } else if n < u32::max_value() as usize {
[INFO] [stdout]     |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `bool`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 | impl_from!(DartValue::Bool, bool);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<bool as Into<bool>::into(val) to avoid triggering this lint
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `i32`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 | impl_from!(DartValue::I32, i32);
[INFO] [stdout]    | ------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<i32 as Into<i32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `i64`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 | impl_from!(DartValue::I64, i64);
[INFO] [stdout]    | ------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<i64 as Into<i64>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 | impl_from!(DartValue::Double, f64);
[INFO] [stdout]    | ---------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f64 as Into<f64>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `CString`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 | impl_from!(DartValue::String, CString);
[INFO] [stdout]    | -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<CString as Into<CString>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<ffi::value::DartValue>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 | impl_from!(DartValue::Array, Vec<DartValue>);
[INFO] [stdout]    | -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<ffi::value::DartValue> as Into<Vec<ffi::value::DartValue>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u8>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 | impl_from!(DartValue::U8List, Vec<u8>);
[INFO] [stdout]    | -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<u8> as Into<Vec<u8>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i8>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 | impl_from!(DartValue::I8List, Vec<i8>);
[INFO] [stdout]    | -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i8> as Into<Vec<i8>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u16>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 | impl_from!(DartValue::U16List, Vec<u16>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<u16> as Into<Vec<u16>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i16>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 | impl_from!(DartValue::I16List, Vec<i16>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i16> as Into<Vec<i16>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u32>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 | impl_from!(DartValue::U32List, Vec<u32>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<u32> as Into<Vec<u32>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i32>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 | impl_from!(DartValue::I32List, Vec<i32>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i32> as Into<Vec<i32>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i64>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 | impl_from!(DartValue::I64List, Vec<i64>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i64> as Into<Vec<i64>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<f32>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 | impl_from!(DartValue::F32List, Vec<f32>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<f32> as Into<Vec<f32>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<f64>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 | impl_from!(DartValue::F64List, Vec<f64>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<f64> as Into<Vec<f64>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DartCObjectSendPort`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 | impl_from!(DartValue::SendPort, raw::DartCObjectSendPort);
[INFO] [stdout]    | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<DartCObjectSendPort as Into<DartCObjectSendPort>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DartCObjectCapability`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 | impl_from!(DartValue::Capability, raw::DartCObjectCapability);
[INFO] [stdout]    | ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<DartCObjectCapability as Into<DartCObjectCapability>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DartCObjectNativePointer`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 | impl_from!(DartValue::NativePointer, raw::DartCObjectNativePointer);
[INFO] [stdout]    | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<DartCObjectNativePointer as Into<DartCObjectNativePointer>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/context.rs:57:53
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn get_attachment<T: Any, F: FnOnce() -> T>(&self, on_init: F) -> Ref<T> {
[INFO] [stdout]    |                                                     ^^^^^                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn get_attachment<T: Any, F: FnOnce() -> T>(&self, on_init: F) -> Ref<'_, T> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] 21 | pub struct DartFunctions {
[INFO] [stdout] 22 |     pub post_cobject: unsafe extern "C" fn(DartPort, *mut DartCObject) -> bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub post_integer: unsafe extern "C" fn(DartPort, i64) -> bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub new_native_port: unsafe extern "C" fn(*const c_char, DartPortHandler, bool) -> DartPort,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub close_native_port: unsafe extern "C" fn(DartPort) -> bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |   #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 27 | /     pub new_weak_persistent_handle: unsafe extern "C" fn(
[INFO] [stdout] 28 | |         object: DartHandle,
[INFO] [stdout] 29 | |         peer: *mut c_void,
[INFO] [stdout] 30 | |         external_allocation_size: isize,
[INFO] [stdout] 31 | |         finalizer: DartHandleFinalizer,
[INFO] [stdout] 32 | |     ) -> DartWeakPersistentHandle,
[INFO] [stdout]    | |_________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub delete_weak_persistent_handle: unsafe extern "C" fn(handle: DartWeakPersistentHandle),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |   #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 34 | /     pub handle_from_weak_persistent:
[INFO] [stdout] 35 | |         unsafe extern "C" fn(handle: DartWeakPersistentHandle) -> DartHandle,
[INFO] [stdout]    | |____________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub update_external_size: unsafe extern "C" fn(handle: DartWeakPersistentHandle, size: isize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/ffi/value.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[derive(Debug, Copy, Clone, PartialEq, Eq)]
[INFO] [stdout]     |                                  --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 262 |         pub callback: DartHandleFinalizer,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/ffi/value.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[derive(Debug, Copy, Clone, PartialEq, Eq)]
[INFO] [stdout]     |                                  --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 272 |         pub callback: DartHandleFinalizer,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]    --> src/ffi/value.rs:308:30
[INFO] [stdout]     |
[INFO] [stdout] 308 |                     unsafe { CString::from_raw(self.value.as_string) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(from_raw(ptr))` if you intend to drop the `CString`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 308 |                     unsafe { let _ = CString::from_raw(self.value.as_string); };
[INFO] [stdout]     |                              +++++++                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/finalizable_handle.rs:314:14
[INFO] [stdout]     |
[INFO] [stdout] 314 |     unsafe { COUNTER.fetch_add(1, Ordering::SeqCst) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout] 313 -     static mut COUNTER: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout] 313 +     static COUNTER: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/event_channel.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn borrow(&self) -> Ref<T> {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn borrow(&self) -> Ref<'_, T> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/event_channel.rs:80:23
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn borrow_mut(&self) -> RefMut<T> {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn borrow_mut(&self) -> RefMut<'_, T> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `bool`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 45 | impl_from!(DartValue::Bool, bool);
[INFO] [stdout]    | --------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<bool as Into<bool>::into(val) to avoid triggering this lint
[INFO] [stdout]    = note: `#[deny(self_type_conversion)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `i32`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 46 | impl_from!(DartValue::I32, i32);
[INFO] [stdout]    | ------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<i32 as Into<i32>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `i64`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 47 | impl_from!(DartValue::I64, i64);
[INFO] [stdout]    | ------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<i64 as Into<i64>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `f64`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 | impl_from!(DartValue::Double, f64);
[INFO] [stdout]    | ---------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<f64 as Into<f64>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `CString`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 49 | impl_from!(DartValue::String, CString);
[INFO] [stdout]    | -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<CString as Into<CString>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<ffi::value::DartValue>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 50 | impl_from!(DartValue::Array, Vec<DartValue>);
[INFO] [stdout]    | -------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<ffi::value::DartValue> as Into<Vec<ffi::value::DartValue>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u8>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 | impl_from!(DartValue::U8List, Vec<u8>);
[INFO] [stdout]    | -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<u8> as Into<Vec<u8>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i8>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 | impl_from!(DartValue::I8List, Vec<i8>);
[INFO] [stdout]    | -------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i8> as Into<Vec<i8>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u16>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 | impl_from!(DartValue::U16List, Vec<u16>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<u16> as Into<Vec<u16>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i16>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 54 | impl_from!(DartValue::I16List, Vec<i16>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i16> as Into<Vec<i16>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<u32>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 55 | impl_from!(DartValue::U32List, Vec<u32>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<u32> as Into<Vec<u32>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i32>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 56 | impl_from!(DartValue::I32List, Vec<i32>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i32> as Into<Vec<i32>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<i64>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 57 | impl_from!(DartValue::I64List, Vec<i64>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<i64> as Into<Vec<i64>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<f32>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 | impl_from!(DartValue::F32List, Vec<f32>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<f32> as Into<Vec<f32>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `Vec<f64>`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 | impl_from!(DartValue::F64List, Vec<f64>);
[INFO] [stdout]    | ---------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<Vec<f64> as Into<Vec<f64>>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/message_channel_common.rs:63:24
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn message_channel(&self) -> Ref<MessageChannel>;
[INFO] [stdout]    |                        ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn message_channel(&self) -> Ref<'_, MessageChannel>;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/message_channel_common.rs:67:24
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn message_channel(&self) -> Ref<MessageChannel> {
[INFO] [stdout]    |                        ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn message_channel(&self) -> Ref<'_, MessageChannel> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DartCObjectSendPort`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 | impl_from!(DartValue::SendPort, raw::DartCObjectSendPort);
[INFO] [stdout]    | --------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<DartCObjectSendPort as Into<DartCObjectSendPort>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DartCObjectCapability`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 61 | impl_from!(DartValue::Capability, raw::DartCObjectCapability);
[INFO] [stdout]    | ------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<DartCObjectCapability as Into<DartCObjectCapability>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: useless conversion to the same type: `DartCObjectNativePointer`
[INFO] [stdout]   --> src/ffi/value.rs:39:26
[INFO] [stdout]    |
[INFO] [stdout] 35 | macro_rules! impl_from {
[INFO] [stdout] ...
[INFO] [stdout] 39 |                 $variant(v.into())
[INFO] [stdout]    |                          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 62 | impl_from!(DartValue::NativePointer, raw::DartCObjectNativePointer);
[INFO] [stdout]    | ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout]    = note: this method call relies on the `impl<T> Into<T> for T` blanket implementation and type inference, which is a semver hazard as a new `impl Into<_>` that affects your type might be added in the future causing type inference errors
[INFO] [stdout]    = note: you can instead use the fully-qualified path `<DartCObjectNativePointer as Into<DartCObjectNativePointer>::into(val) to avoid triggering this lint
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/context.rs:57:53
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn get_attachment<T: Any, F: FnOnce() -> T>(&self, on_init: F) -> Ref<T> {
[INFO] [stdout]    |                                                     ^^^^^                 ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn get_attachment<T: Any, F: FnOnce() -> T>(&self, on_init: F) -> Ref<'_, T> {
[INFO] [stdout]    |                                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] 21 | pub struct DartFunctions {
[INFO] [stdout] 22 |     pub post_cobject: unsafe extern "C" fn(DartPort, *mut DartCObject) -> bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout]    = note: `#[warn(unpredictable_function_pointer_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub post_integer: unsafe extern "C" fn(DartPort, i64) -> bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/run_loop.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |     unsafe { COUNTER.fetch_add(1, Ordering::SeqCst) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout] 146 -     static mut COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout] 146 +     static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 24 |     pub new_native_port: unsafe extern "C" fn(*const c_char, DartPortHandler, bool) -> DartPort,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:25:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 25 |     pub close_native_port: unsafe extern "C" fn(DartPort) -> bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |   #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 27 | /     pub new_weak_persistent_handle: unsafe extern "C" fn(
[INFO] [stdout] 28 | |         object: DartHandle,
[INFO] [stdout] 29 | |         peer: *mut c_void,
[INFO] [stdout] 30 | |         external_allocation_size: isize,
[INFO] [stdout] 31 | |         finalizer: DartHandleFinalizer,
[INFO] [stdout] 32 | |     ) -> DartWeakPersistentHandle,
[INFO] [stdout]    | |_________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/util/capsule.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unsafe { COUNTER.fetch_add(1, Ordering::SeqCst) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout] 132 -     static mut COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout] 132 +     static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:33:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub delete_weak_persistent_handle: unsafe extern "C" fn(handle: DartWeakPersistentHandle),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:34:5
[INFO] [stdout]    |
[INFO] [stdout] 20 |   #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                          --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 34 | /     pub handle_from_weak_persistent:
[INFO] [stdout] 35 | |         unsafe extern "C" fn(handle: DartWeakPersistentHandle) -> DartHandle,
[INFO] [stdout]    | |____________________________________________________________________________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]   --> src/ffi/functions.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Clone, Debug, PartialEq, Eq)]
[INFO] [stdout]    |                        --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub update_external_size: unsafe extern "C" fn(handle: DartWeakPersistentHandle, size: isize),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: the address of the same function can vary between different codegen units
[INFO] [stdout]    = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]    = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/ffi/value.rs:262:9
[INFO] [stdout]     |
[INFO] [stdout] 256 |     #[derive(Debug, Copy, Clone, PartialEq, Eq)]
[INFO] [stdout]     |                                  --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 262 |         pub callback: DartHandleFinalizer,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function pointer comparisons do not produce meaningful results since their addresses are not guaranteed to be unique
[INFO] [stdout]    --> src/ffi/value.rs:272:9
[INFO] [stdout]     |
[INFO] [stdout] 268 |     #[derive(Debug, Copy, Clone, PartialEq, Eq)]
[INFO] [stdout]     |                                  --------- in this derive macro expansion
[INFO] [stdout] ...
[INFO] [stdout] 272 |         pub callback: DartHandleFinalizer,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: the address of the same function can vary between different codegen units
[INFO] [stdout]     = note: furthermore, different functions could have the same address after being merged together
[INFO] [stdout]     = note: for more information visit <https://doc.rust-lang.org/nightly/core/ptr/fn.fn_addr_eq.html>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]    --> src/ffi/value.rs:308:30
[INFO] [stdout]     |
[INFO] [stdout] 308 |                     unsafe { CString::from_raw(self.value.as_string) };
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: call `drop(from_raw(ptr))` if you intend to drop the `CString`
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 308 |                     unsafe { let _ = CString::from_raw(self.value.as_string); };
[INFO] [stdout]     |                              +++++++                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/finalizable_handle.rs:314:14
[INFO] [stdout]     |
[INFO] [stdout] 314 |     unsafe { COUNTER.fetch_add(1, Ordering::SeqCst) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[warn(static_mut_refs)]` (part of `#[warn(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout] 313 -     static mut COUNTER: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout] 313 +     static COUNTER: AtomicIsize = AtomicIsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/event_channel.rs:76:19
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn borrow(&self) -> Ref<T> {
[INFO] [stdout]    |                   ^^^^^     ^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn borrow(&self) -> Ref<'_, T> {
[INFO] [stdout]    |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/event_channel.rs:80:23
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn borrow_mut(&self) -> RefMut<T> {
[INFO] [stdout]    |                       ^^^^^     ^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn borrow_mut(&self) -> RefMut<'_, T> {
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/message_channel_common.rs:63:24
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn message_channel(&self) -> Ref<MessageChannel>;
[INFO] [stdout]    |                        ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 63 |     fn message_channel(&self) -> Ref<'_, MessageChannel>;
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/message_channel/message_channel_common.rs:67:24
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn message_channel(&self) -> Ref<MessageChannel> {
[INFO] [stdout]    |                        ^^^^^     ^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 67 |     fn message_channel(&self) -> Ref<'_, MessageChannel> {
[INFO] [stdout]    |                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/run_loop.rs:147:14
[INFO] [stdout]     |
[INFO] [stdout] 147 |     unsafe { COUNTER.fetch_add(1, Ordering::SeqCst) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout] 146 -     static mut COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout] 146 +     static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> src/util/capsule.rs:133:14
[INFO] [stdout]     |
[INFO] [stdout] 133 |     unsafe { COUNTER.fetch_add(1, Ordering::SeqCst) }
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable when borrowed with a shared reference
[INFO] [stdout]     |
[INFO] [stdout] 132 -     static mut COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout] 132 +     static COUNTER: AtomicUsize = AtomicUsize::new(0);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `nativeshell_core` (lib test) due to 18 previous errors; 21 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `nativeshell_core` (lib) due to 18 previous errors; 21 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269", kill_on_drop: false }`
[INFO] [stdout] 856fb5da72d2c0b107dc133cf713bea27d5a5ad3aeb475928452dd73abd7b269
