[INFO] cloning repository https://github.com/uponup/libsignal-client
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/uponup/libsignal-client" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuponup%2Flibsignal-client", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuponup%2Flibsignal-client'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 7556d0acefba39b978451af8a052197f38ff6e24
[INFO] checking uponup/libsignal-client against master#bca37a20bd376ce3fd138e7cdee7fe704e0f8814 for pr-139493-3
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fuponup%2Flibsignal-client" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc1/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/uponup/libsignal-client
[INFO] finished tweaking git repo https://github.com/uponup/libsignal-client
[INFO] tweaked toml for git repo https://github.com/uponup/libsignal-client written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/uponup/libsignal-client on toolchain bca37a20bd376ce3fd138e7cdee7fe704e0f8814
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/uponup/libsignal-client already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating git repository `https://github.com/signalapp/curve25519-dalek`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cslice v0.2.0
[INFO] [stderr]   Downloaded zeroize_derive v1.0.1
[INFO] [stderr]   Downloaded neon-runtime v0.7.1
[INFO] [stderr]   Downloaded zeroize v1.2.0
[INFO] [stderr]   Downloaded neon-build v0.7.1
[INFO] [stderr]   Downloaded neon-macros v0.7.1
[INFO] [stderr]   Downloaded packed_simd v0.3.3
[INFO] [stderr]   Downloaded universal-hash v0.4.0
[INFO] [stderr]   Downloaded linkme-impl v0.2.4
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.2
[INFO] [stderr]   Downloaded aes-soft v0.6.4
[INFO] [stderr]   Downloaded js-sys v0.3.47
[INFO] [stderr]   Downloaded aesni v0.10.0
[INFO] [stderr]   Downloaded aes v0.6.0
[INFO] [stderr]   Downloaded criterion v0.3.4
[INFO] [stderr]   Downloaded itertools v0.10.0
[INFO] [stderr]   Downloaded neon v0.7.1
[INFO] [stderr]   Downloaded half v1.7.1
[INFO] [stderr]   Downloaded prost-types v0.7.0
[INFO] [stderr]   Downloaded loom v0.4.0
[INFO] [stderr]   Downloaded crossbeam-utils v0.8.2
[INFO] [stderr]   Downloaded tinytemplate v1.2.0
[INFO] [stderr]   Downloaded x25519-dalek v1.1.0
[INFO] [stderr]   Downloaded generator v0.6.24
[INFO] [stderr]   Downloaded ctr v0.6.0
[INFO] [stderr]   Downloaded crypto-mac v0.9.1
[INFO] [stderr]   Downloaded hmac v0.9.0
[INFO] [stderr]   Downloaded multimap v0.8.2
[INFO] [stderr]   Downloaded prost-derive v0.7.0
[INFO] [stderr]   Downloaded prost v0.7.0
[INFO] [stderr]   Downloaded which v4.0.2
[INFO] [stderr]   Downloaded polyval v0.4.2
[INFO] [stderr]   Downloaded syn-mid v0.5.3
[INFO] [stderr]   Downloaded unzip3 v1.0.0
[INFO] [stderr]   Downloaded linkme v0.2.4
[INFO] [stderr]   Downloaded paste v1.0.4
[INFO] [stderr]   Downloaded block-modes v0.7.0
[INFO] [stderr]   Downloaded plotters-backend v0.3.0
[INFO] [stderr]   Downloaded plotters-svg v0.3.0
[INFO] [stderr]   Downloaded web-sys v0.3.47
[INFO] [stderr]   Downloaded csv v1.1.5
[INFO] [stderr]   Downloaded plotters v0.3.0
[INFO] [stderr]   Downloaded prost-build v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a4d2eeb81ab54c1e3c1df8766d17d643b7a72e415352ce452c24071c1e93e729
[INFO] running `Command { std: "docker" "start" "-a" "a4d2eeb81ab54c1e3c1df8766d17d643b7a72e415352ce452c24071c1e93e729", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a4d2eeb81ab54c1e3c1df8766d17d643b7a72e415352ce452c24071c1e93e729", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a4d2eeb81ab54c1e3c1df8766d17d643b7a72e415352ce452c24071c1e93e729", kill_on_drop: false }`
[INFO] [stdout] a4d2eeb81ab54c1e3c1df8766d17d643b7a72e415352ce452c24071c1e93e729
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:aa71247004a7fa38d13ec170f48f06cdedf5bc50b2a8645e56ed7e992e6fa513" "/opt/rustwide/cargo-home/bin/cargo" "+bca37a20bd376ce3fd138e7cdee7fe704e0f8814" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] dadd6e926d30eafed13493a0ed7f0639baf082abcfe03d5ff763fff195d91a0c
[INFO] running `Command { std: "docker" "start" "-a" "dadd6e926d30eafed13493a0ed7f0639baf082abcfe03d5ff763fff195d91a0c", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v1.0.60
[INFO] [stderr]    Compiling libc v0.2.86
[INFO] [stderr]     Checking subtle v2.4.0
[INFO] [stderr]     Checking byteorder v1.4.2
[INFO] [stderr]    Compiling generic-array v0.14.4
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling anyhow v1.0.38
[INFO] [stderr]     Checking futures-core v0.3.13
[INFO] [stderr]    Compiling either v1.6.1
[INFO] [stderr]     Checking futures-io v0.3.13
[INFO] [stderr]     Checking scopeguard v1.1.0
[INFO] [stderr]     Checking pin-project-lite v0.2.4
[INFO] [stderr]    Compiling indexmap v1.6.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.10
[INFO] [stderr]    Compiling hashbrown v0.9.1
[INFO] [stderr]    Compiling bytes v1.0.1
[INFO] [stderr]    Compiling remove_dir_all v0.5.3
[INFO] [stderr]    Compiling itertools v0.9.0
[INFO] [stderr]     Checking hex v0.4.2
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]     Checking cpuid-bool v0.1.2
[INFO] [stderr]     Checking futures-channel v0.3.13
[INFO] [stderr]    Compiling multimap v0.8.2
[INFO] [stderr]    Compiling crossbeam-utils v0.8.2
[INFO] [stderr]    Compiling neon-build v0.7.1
[INFO] [stderr]    Compiling memoffset v0.6.1
[INFO] [stderr]     Checking arrayref v0.3.6
[INFO] [stderr]     Checking semver-parser v0.7.0
[INFO] [stderr]    Compiling rayon-core v1.9.0
[INFO] [stderr]     Checking neon-runtime v0.7.1
[INFO] [stderr]     Checking semver v0.9.0
[INFO] [stderr]    Compiling cast v0.2.3
[INFO] [stderr]     Checking cipher v0.2.5
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking crypto-mac v0.9.1
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]    Compiling neon v0.7.1
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling serde_json v1.0.62
[INFO] [stderr]     Checking cslice v0.2.0
[INFO] [stderr]     Checking universal-hash v0.4.0
[INFO] [stderr]     Checking hmac v0.9.0
[INFO] [stderr]     Checking sha2 v0.9.3
[INFO] [stderr]     Checking regex-automata v0.1.9
[INFO] [stderr]    Compiling rayon v1.5.0
[INFO] [stderr]     Checking plotters-backend v0.3.0
[INFO] [stderr]     Checking getrandom v0.1.16
[INFO] [stderr]     Checking aes-soft v0.6.4
[INFO] [stderr]     Checking ctr v0.6.0
[INFO] [stderr]     Checking block-modes v0.7.0
[INFO] [stderr]     Checking num_cpus v1.13.0
[INFO] [stderr]     Checking polyval v0.4.2
[INFO] [stderr]     Checking aesni v0.10.0
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking aes v0.6.0
[INFO] [stderr]     Checking csv-core v0.1.10
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]     Checking regex-syntax v0.6.22
[INFO] [stderr]     Checking half v1.7.1
[INFO] [stderr]    Compiling walkdir v2.3.1
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking plotters-svg v0.3.0
[INFO] [stderr]     Checking crossbeam-epoch v0.9.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking crossbeam-channel v0.5.0
[INFO] [stderr]     Checking itertools v0.10.0
[INFO] [stderr]     Checking oorandom v11.1.3
[INFO] [stderr]    Compiling jni v0.19.0
[INFO] [stderr]    Compiling rand_core v0.6.2
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking combine v4.5.2
[INFO] [stderr]     Checking cesu8 v1.1.0
[INFO] [stderr]    Compiling unzip3 v1.0.0
[INFO] [stderr]     Checking jni-sys v0.3.0
[INFO] [stderr]    Compiling paste v1.0.4
[INFO] [stderr]     Checking unicode-xid v0.2.1
[INFO] [stderr]     Checking crossbeam-deque v0.8.0
[INFO] [stderr]     Checking unicode-segmentation v1.7.1
[INFO] [stderr]     Checking proc-macro2 v1.0.24
[INFO] [stderr]    Compiling rand_chacha v0.3.0
[INFO] [stderr]     Checking aes-gcm-siv v0.1.0 (/opt/rustwide/workdir/rust/aes-gcm-siv)
[INFO] [stderr]    Compiling rand v0.8.3
[INFO] [stderr]     Checking plotters v0.3.0
[INFO] [stderr]     Checking criterion-plot v0.4.3
[INFO] [stderr]     Checking heck v0.3.2
[INFO] [stderr]     Checking quote v1.0.9
[INFO] [stderr]     Checking regex v1.4.3
[INFO] [stderr]    Compiling tempfile v3.2.0
[INFO] [stderr]    Compiling synstructure v0.12.4
[INFO] [stderr]    Compiling syn-mid v0.5.3
[INFO] [stderr]     Checking libsignal-bridge-macros v0.1.0 (/opt/rustwide/workdir/rust/bridge/shared/macros)
[INFO] [stderr]    Compiling serde_derive v1.0.123
[INFO] [stderr]    Compiling thiserror-impl v1.0.24
[INFO] [stderr]    Compiling futures-macro v0.3.13
[INFO] [stderr]    Compiling prost-derive v0.7.0
[INFO] [stderr]    Compiling zeroize_derive v1.0.1
[INFO] [stderr]    Compiling async-trait v0.1.42
[INFO] [stderr]    Compiling neon-macros v0.7.1
[INFO] [stderr]    Compiling linkme-impl v0.2.4
[INFO] [stderr]     Checking zeroize v1.2.0
[INFO] [stderr]     Checking linkme v0.2.4
[INFO] [stderr]     Checking futures-util v0.3.13
[INFO] [stderr]    Compiling thiserror v1.0.24
[INFO] [stderr]    Compiling which v4.0.2
[INFO] [stderr]    Compiling prost-build v0.7.0
[INFO] [stderr]    Compiling prost v0.7.0
[INFO] [stderr]    Compiling prost-types v0.7.0
[INFO] [stderr]     Checking futures-executor v0.3.13
[INFO] [stderr]     Checking futures v0.3.13
[INFO] [stderr]     Checking signal-neon-futures v0.1.0 (/opt/rustwide/workdir/rust/bridge/node/futures)
[INFO] [stdout] warning: the feature `wake_trait` has been stable since 1.51.0 and no longer requires an attribute to enable
[INFO] [stdout]   --> rust/bridge/node/futures/src/lib.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![feature(wake_trait)]
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> rust/bridge/node/futures/src/future.rs:187:34
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn get_promise<F>(queue: &EventQueue, get_promise: F) -> JsFutureBuilder<F, 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] 187 |     pub fn get_promise<F>(queue: &EventQueue, get_promise: F) -> JsFutureBuilder<'_, F, T>
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking signal-neon-futures-tests v0.1.0 (/opt/rustwide/workdir/rust/bridge/node/futures/tests-node-module)
[INFO] [stdout] warning: value captured by `future` is never read
[INFO] [stdout]   --> rust/bridge/node/futures/tests-node-module/src/panics_and_throws.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         future.await?;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `future` is never read
[INFO] [stdout]   --> rust/bridge/node/futures/tests-node-module/src/panics_and_throws.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |         future.await?;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `future` is never read
[INFO] [stdout]   --> rust/bridge/node/futures/tests-node-module/src/panics_and_throws.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         future.await?;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: the feature `wake_trait` has been stable since 1.51.0 and no longer requires an attribute to enable
[INFO] [stdout]   --> rust/bridge/node/futures/src/lib.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | #![feature(wake_trait)]
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(stable_features)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value captured by `future` is never read
[INFO] [stdout]   --> rust/bridge/node/futures/tests-node-module/src/panics_and_throws.rs:99:9
[INFO] [stdout]    |
[INFO] [stdout] 99 |         future.await?;
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: did you mean to capture by reference instead?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> rust/bridge/node/futures/src/future.rs:187:34
[INFO] [stdout]     |
[INFO] [stdout] 187 |     pub fn get_promise<F>(queue: &EventQueue, get_promise: F) -> JsFutureBuilder<F, 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] 187 |     pub fn get_promise<F>(queue: &EventQueue, get_promise: F) -> JsFutureBuilder<'_, F, T>
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking serde v1.0.123
[INFO] [stderr]    Compiling libsignal-protocol v0.1.0 (/opt/rustwide/workdir/rust/protocol)
[INFO] [stderr]     Checking curve25519-dalek v3.0.0 (https://github.com/signalapp/curve25519-dalek?branch=3.0.0-lizard2#2694ad3b)
[INFO] [stderr]     Checking bstr v0.2.15
[INFO] [stderr]     Checking serde_cbor v0.11.1
[INFO] [stderr]     Checking csv v1.1.5
[INFO] [stderr]     Checking x25519-dalek v1.1.0
[INFO] [stderr]     Checking poksho v0.7.0 (/opt/rustwide/workdir/rust/poksho)
[INFO] [stderr]     Checking tinytemplate v1.2.0
[INFO] [stderr]     Checking criterion v0.3.4
[INFO] [stderr]     Checking libsignal-bridge v0.1.0 (/opt/rustwide/workdir/rust/bridge/shared)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rust/bridge/shared/src/jni/mod.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |             if Error::is::<ThrownException>(&*exception) {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |             if <dyn Error>::is::<ThrownException>(&*exception) {
[INFO] [stdout]    |                ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rust/bridge/shared/src/jni/mod.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     Error::downcast::<ThrownException>(exception).expect("just checked");
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     <dyn Error>::downcast::<ThrownException>(exception).expect("just checked");
[INFO] [stdout]    |                     ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rust/bridge/shared/src/jni/mod.rs:49:16
[INFO] [stdout]    |
[INFO] [stdout] 49 |             if Error::is::<ThrownException>(&*exception) {
[INFO] [stdout]    |                ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 |             if <dyn Error>::is::<ThrownException>(&*exception) {
[INFO] [stdout]    |                ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> rust/bridge/shared/src/jni/mod.rs:51:21
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     Error::downcast::<ThrownException>(exception).expect("just checked");
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 51 |                     <dyn Error>::downcast::<ThrownException>(exception).expect("just checked");
[INFO] [stdout]    |                     ++++      +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tc_id`, `comment`, and `flags` are never read
[INFO] [stdout]   --> rust/aes-gcm-siv/tests/aes_gcm_siv.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | struct WycheproofTest {
[INFO] [stdout]    |        -------------- fields in this struct
[INFO] [stdout] 12 |     #[serde(rename = "tcId")]
[INFO] [stdout] 13 |     tc_id: usize,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 14 |     comment: String,
[INFO] [stdout]    |     ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     flags: Vec<String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WycheproofTest` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `typ` is never read
[INFO] [stdout]   --> rust/aes-gcm-siv/tests/aes_gcm_siv.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | struct WycheproofTestGroup {
[INFO] [stdout]    |        ------------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 36 |     typ: String,
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WycheproofTestGroup` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `generator_version`, `number_of_tests`, `header`, `notes`, and `schema` are never read
[INFO] [stdout]   --> rust/aes-gcm-siv/tests/aes_gcm_siv.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 41 | struct WycheproofTestSet {
[INFO] [stdout]    |        ----------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 44 |     generator_version: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 45 |     #[serde(rename = "numberOfTests")]
[INFO] [stdout] 46 |     number_of_tests: usize,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 47 |     header: Vec<String>,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 48 |     notes: HashMap<String, String>,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 49 |     schema: String,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WycheproofTestSet` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/aes_gcm_siv.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | bridge_handle!(Aes256GcmSiv, clone = false);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[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] 14 | let _ = bridge_handle!(Aes256GcmSiv, clone = false);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | bridge_handle!(CiphertextMessage, clone = false, jni = false);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 15 | let _ = bridge_handle!(CiphertextMessage, clone = false, jni = false);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | bridge_handle!(Fingerprint, jni = NumericFingerprintGenerator);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 | let _ = bridge_handle!(Fingerprint, jni = NumericFingerprintGenerator);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | bridge_handle!(PreKeyBundle);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 17 | let _ = bridge_handle!(PreKeyBundle);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | bridge_handle!(PreKeyRecord);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 | let _ = bridge_handle!(PreKeyRecord);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | bridge_handle!(PreKeySignalMessage);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 | let _ = bridge_handle!(PreKeySignalMessage);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | bridge_handle!(PrivateKey, ffi = privatekey, jni = ECPrivateKey);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 20 | let _ = bridge_handle!(PrivateKey, ffi = privatekey, jni = ECPrivateKey);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | bridge_handle!(ProtocolAddress, ffi = address);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 | let _ = bridge_handle!(ProtocolAddress, ffi = address);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | bridge_handle!(PublicKey, ffi = publickey, jni = ECPublicKey);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 22 | let _ = bridge_handle!(PublicKey, ffi = publickey, jni = ECPublicKey);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | bridge_handle!(SenderCertificate);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 23 | let _ = bridge_handle!(SenderCertificate);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | bridge_handle!(SenderKeyDistributionMessage);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 24 | let _ = bridge_handle!(SenderKeyDistributionMessage);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | bridge_handle!(SenderKeyMessage);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 | let _ = bridge_handle!(SenderKeyMessage);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | bridge_handle!(SenderKeyName);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 | let _ = bridge_handle!(SenderKeyName);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | bridge_handle!(SenderKeyRecord);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 27 | let _ = bridge_handle!(SenderKeyRecord);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | bridge_handle!(ServerCertificate);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 28 | let _ = bridge_handle!(ServerCertificate);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | bridge_handle!(SessionRecord, mut = true);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 29 | let _ = bridge_handle!(SessionRecord, mut = true);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | bridge_handle!(SignalMessage, ffi = message);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 | let _ = bridge_handle!(SignalMessage, ffi = message);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | bridge_handle!(SignedPreKeyRecord);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 31 | let _ = bridge_handle!(SignedPreKeyRecord);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | bridge_handle!(UnidentifiedSenderMessageContent, clone = false);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 | let _ = bridge_handle!(UnidentifiedSenderMessageContent, clone = false);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking libsignal-jni v0.2.3 (/opt/rustwide/workdir/rust/bridge/jni)
[INFO] [stderr]     Checking libsignal-node v0.3.1 (/opt/rustwide/workdir/rust/bridge/node)
[INFO] [stderr]     Checking libsignal-ffi v0.3.1 (/opt/rustwide/workdir/rust/bridge/ffi)
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/aes_gcm_siv.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | bridge_handle!(Aes256GcmSiv, clone = false);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[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] 14 | let _ = bridge_handle!(Aes256GcmSiv, clone = false);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | bridge_handle!(CiphertextMessage, clone = false, jni = false);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 15 | let _ = bridge_handle!(CiphertextMessage, clone = false, jni = false);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | bridge_handle!(Fingerprint, jni = NumericFingerprintGenerator);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 16 | let _ = bridge_handle!(Fingerprint, jni = NumericFingerprintGenerator);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | bridge_handle!(PreKeyBundle);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 17 | let _ = bridge_handle!(PreKeyBundle);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:18:1
[INFO] [stdout]    |
[INFO] [stdout] 18 | bridge_handle!(PreKeyRecord);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 18 | let _ = bridge_handle!(PreKeyRecord);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:19:1
[INFO] [stdout]    |
[INFO] [stdout] 19 | bridge_handle!(PreKeySignalMessage);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 | let _ = bridge_handle!(PreKeySignalMessage);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | bridge_handle!(PrivateKey, ffi = privatekey, jni = ECPrivateKey);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 20 | let _ = bridge_handle!(PrivateKey, ffi = privatekey, jni = ECPrivateKey);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | bridge_handle!(ProtocolAddress, ffi = address);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 21 | let _ = bridge_handle!(ProtocolAddress, ffi = address);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:22:1
[INFO] [stdout]    |
[INFO] [stdout] 22 | bridge_handle!(PublicKey, ffi = publickey, jni = ECPublicKey);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 22 | let _ = bridge_handle!(PublicKey, ffi = publickey, jni = ECPublicKey);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | bridge_handle!(SenderCertificate);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 23 | let _ = bridge_handle!(SenderCertificate);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | bridge_handle!(SenderKeyDistributionMessage);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 24 | let _ = bridge_handle!(SenderKeyDistributionMessage);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:25:1
[INFO] [stdout]    |
[INFO] [stdout] 25 | bridge_handle!(SenderKeyMessage);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 25 | let _ = bridge_handle!(SenderKeyMessage);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:26:1
[INFO] [stdout]    |
[INFO] [stdout] 26 | bridge_handle!(SenderKeyName);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 26 | let _ = bridge_handle!(SenderKeyName);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | bridge_handle!(SenderKeyRecord);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 27 | let _ = bridge_handle!(SenderKeyRecord);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | bridge_handle!(ServerCertificate);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 28 | let _ = bridge_handle!(ServerCertificate);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:29:1
[INFO] [stdout]    |
[INFO] [stdout] 29 | bridge_handle!(SessionRecord, mut = true);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 29 | let _ = bridge_handle!(SessionRecord, mut = true);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | bridge_handle!(SignalMessage, ffi = message);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 30 | let _ = bridge_handle!(SignalMessage, ffi = message);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | bridge_handle!(SignedPreKeyRecord);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 31 | let _ = bridge_handle!(SignedPreKeyRecord);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/shared/src/protocol.rs:33:1
[INFO] [stdout]    |
[INFO] [stdout] 33 | bridge_handle!(UnidentifiedSenderMessageContent, clone = false);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 33 | let _ = bridge_handle!(UnidentifiedSenderMessageContent, clone = false);
[INFO] [stdout]    | +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/ffi/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     CString::from_raw(buf as _);
[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] 29 |     let _ = CString::from_raw(buf as _);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/ffi/src/lib.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     Box::from_raw(std::slice::from_raw_parts_mut(buf as *mut c_uchar, buf_len));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let _ = Box::from_raw(std::slice::from_raw_parts_mut(buf as *mut c_uchar, buf_len));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `CString::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/ffi/src/lib.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     CString::from_raw(buf as _);
[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] 29 |     let _ = CString::from_raw(buf as _);
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused return value of `Box::<T>::from_raw` that must be used
[INFO] [stdout]   --> rust/bridge/ffi/src/lib.rs:37:5
[INFO] [stdout]    |
[INFO] [stdout] 37 |     Box::from_raw(std::slice::from_raw_parts_mut(buf as *mut c_uchar, buf_len));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: call `drop(Box::from_raw(ptr))` if you intend to drop the `Box`
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 37 |     let _ = Box::from_raw(std::slice::from_raw_parts_mut(buf as *mut c_uchar, buf_len));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 40.63s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: criterion v0.3.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 7`
[INFO] running `Command { std: "docker" "inspect" "dadd6e926d30eafed13493a0ed7f0639baf082abcfe03d5ff763fff195d91a0c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dadd6e926d30eafed13493a0ed7f0639baf082abcfe03d5ff763fff195d91a0c", kill_on_drop: false }`
[INFO] [stdout] dadd6e926d30eafed13493a0ed7f0639baf082abcfe03d5ff763fff195d91a0c
