[INFO] fetching crate concordium-std 10.1.0... [INFO] checking concordium-std-10.1.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate concordium-std 10.1.0 into /workspace/builds/worker-0-tc2/source [INFO] validating manifest of crates.io crate concordium-std 10.1.0 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate concordium-std 10.1.0 [INFO] finished tweaking crates.io crate concordium-std 10.1.0 [INFO] tweaked toml for crates.io crate concordium-std 10.1.0 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 79 packages to latest compatible versions [INFO] [stderr] Adding base64 v0.21.7 (available: v0.22.1) [INFO] [stderr] Adding block-buffer v0.9.0 (available: v0.10.4) [INFO] [stderr] Adding curve25519-dalek v3.2.1 (available: v4.1.3) [INFO] [stderr] Adding digest v0.9.0 (available: v0.10.7) [INFO] [stderr] Adding ed25519-zebra v2.2.0 (available: v4.0.3) [INFO] [stderr] Adding env_logger v0.8.4 (available: v0.11.5) [INFO] [stderr] Adding generic-array v0.14.7 (available: v1.1.0) [INFO] [stderr] Adding getrandom v0.1.16 (available: v0.2.15) [INFO] [stderr] Adding hashbrown v0.11.2 (available: v0.14.5) [INFO] [stderr] Adding rand_core v0.5.1 (available: v0.6.4) [INFO] [stderr] Adding secp256k1 v0.22.2 (available: v0.29.1) [INFO] [stderr] Adding secp256k1-sys v0.5.2 (available: v0.10.1) [INFO] [stderr] Adding sha2 v0.9.9 (available: v0.10.8) [INFO] [stderr] Adding wasi v0.9.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding zeroize v1.3.0 (available: v1.8.1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ab639df6cd1c98d6e9b0b845975d76560ee7eac6e884abe01d1cb9237b59dea0 [INFO] running `Command { std: "docker" "start" "-a" "ab639df6cd1c98d6e9b0b845975d76560ee7eac6e884abe01d1cb9237b59dea0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ab639df6cd1c98d6e9b0b845975d76560ee7eac6e884abe01d1cb9237b59dea0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ab639df6cd1c98d6e9b0b845975d76560ee7eac6e884abe01d1cb9237b59dea0", kill_on_drop: false }` [INFO] [stdout] ab639df6cd1c98d6e9b0b845975d76560ee7eac6e884abe01d1cb9237b59dea0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3485729e2c209ff72f513606a22b1c8366acd579e7404f935fafe8e27b349a78 [INFO] running `Command { std: "docker" "start" "-a" "3485729e2c209ff72f513606a22b1c8366acd579e7404f935fafe8e27b349a78", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Fixed Cargo.toml (6 fixes) [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking hashbrown v0.11.2 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling concordium-contracts-common-derive v4.1.0 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Checking concordium-contracts-common v9.2.0 [INFO] [stderr] Checking concordium-std v10.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Checking trybuild v1.0.99 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `concordium_std` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/types.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:820:6 [INFO] [stderr] | [INFO] [stderr] 820 | ($arg:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:832:6 [INFO] [stderr] | [INFO] [stderr] 832 | ($p:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:837:6 [INFO] [stderr] | [INFO] [stderr] 837 | ($p:expr_2021, $arg:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:837:20 [INFO] [stderr] | [INFO] [stderr] 837 | ($p:expr_2021, $arg:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:848:6 [INFO] [stderr] | [INFO] [stderr] 848 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:848:20 [INFO] [stderr] | [INFO] [stderr] 848 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:851:6 [INFO] [stderr] | [INFO] [stderr] 851 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:851:20 [INFO] [stderr] | [INFO] [stderr] 851 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:851:34 [INFO] [stderr] | [INFO] [stderr] 851 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:859:6 [INFO] [stderr] | [INFO] [stderr] 859 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:859:20 [INFO] [stderr] | [INFO] [stderr] 859 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:862:6 [INFO] [stderr] | [INFO] [stderr] 862 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:862:20 [INFO] [stderr] | [INFO] [stderr] 862 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:862:34 [INFO] [stderr] | [INFO] [stderr] 862 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:923:6 [INFO] [stderr] | [INFO] [stderr] 923 | ($cond:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:928:6 [INFO] [stderr] | [INFO] [stderr] 928 | ($cond:expr_2021,) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:933:6 [INFO] [stderr] | [INFO] [stderr] 933 | ($cond:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:946:6 [INFO] [stderr] | [INFO] [stderr] 946 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:946:23 [INFO] [stderr] | [INFO] [stderr] 946 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:957:6 [INFO] [stderr] | [INFO] [stderr] 957 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:957:23 [INFO] [stderr] | [INFO] [stderr] 957 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:968:6 [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:317:7 [INFO] [stdout] | [INFO] [stdout] 317 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 317 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 968 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:321:7 [INFO] [stdout] | [INFO] [stdout] 321 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 321 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:325:7 [INFO] [stdout] | [INFO] [stdout] 325 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 325 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:329:7 [INFO] [stdout] | [INFO] [stdout] 329 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 329 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:333:7 [INFO] [stdout] | [INFO] [stdout] 333 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 333 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:342:7 [INFO] [stdout] | [INFO] [stdout] 342 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 342 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:346:7 [INFO] [stdout] | [INFO] [stdout] 346 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 346 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:350:7 [INFO] [stdout] | [INFO] [stdout] 350 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 350 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:968:23 [INFO] [stderr] | [INFO] [stderr] 968 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:354:7 [INFO] [stdout] | [INFO] [stdout] 354 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 354 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/types.rs:979:6 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:358:7 [INFO] [stdout] | [INFO] [stdout] 358 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 358 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stderr] 979 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:979:23 [INFO] [stderr] | [INFO] [stderr] 979 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 25 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:362:7 [INFO] [stdout] | [INFO] [stdout] 362 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 362 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:366:7 [INFO] [stdout] | [INFO] [stdout] 366 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 366 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:370:7 [INFO] [stdout] | [INFO] [stdout] 370 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 370 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:374:7 [INFO] [stdout] | [INFO] [stdout] 374 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 374 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:378:7 [INFO] [stdout] | [INFO] [stdout] 378 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 378 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:382:7 [INFO] [stdout] | [INFO] [stdout] 382 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 382 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:391:7 [INFO] [stdout] | [INFO] [stdout] 391 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 391 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:400:7 [INFO] [stdout] | [INFO] [stdout] 400 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 400 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:409:7 [INFO] [stdout] | [INFO] [stdout] 409 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 409 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:413:7 [INFO] [stdout] | [INFO] [stdout] 413 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 413 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:417:7 [INFO] [stdout] | [INFO] [stdout] 417 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 417 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:421:7 [INFO] [stdout] | [INFO] [stdout] 421 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 421 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:425:7 [INFO] [stdout] | [INFO] [stdout] 425 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 425 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:429:7 [INFO] [stdout] | [INFO] [stdout] 429 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 429 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:433:7 [INFO] [stdout] | [INFO] [stdout] 433 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 433 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:437:7 [INFO] [stdout] | [INFO] [stdout] 437 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 437 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:441:7 [INFO] [stdout] | [INFO] [stdout] 441 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 441 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:445:7 [INFO] [stdout] | [INFO] [stdout] 445 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 445 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:450:7 [INFO] [stdout] | [INFO] [stdout] 450 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 450 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:453:7 [INFO] [stdout] | [INFO] [stdout] 453 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 453 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:463:7 [INFO] [stdout] | [INFO] [stdout] 463 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 463 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:472:7 [INFO] [stdout] | [INFO] [stdout] 472 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 472 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:477:7 [INFO] [stdout] | [INFO] [stdout] 477 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 477 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:482:7 [INFO] [stdout] | [INFO] [stdout] 482 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 482 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:487:7 [INFO] [stdout] | [INFO] [stdout] 487 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 487 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:499:7 [INFO] [stdout] | [INFO] [stdout] 499 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 499 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:511:7 [INFO] [stdout] | [INFO] [stdout] 511 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 511 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/prims.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 19 | | /// Invoke a host instruction. The arguments are [INFO] [stdout] 20 | | /// [INFO] [stdout] 21 | | /// - `tag`, which instruction to invoke [INFO] [stdout] ... | [INFO] [stdout] 310 | | pub(crate) fn get_random(dest: *mut u8, size: u32); [INFO] [stdout] 311 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:820:11 [INFO] [stdout] | [INFO] [stdout] 820 | ($arg:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 820 | ($arg:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:832:9 [INFO] [stdout] | [INFO] [stdout] 832 | ($p:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 832 | ($p:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:837:9 [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr, $arg:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr_2021, $arg:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:837:20 [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr, $arg:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr, $arg:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:848:9 [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr_2021, $r:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:848:18 [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr, $r:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:851:9 [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr_2021, $r:expr, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:851:18 [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr_2021, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:851:29 [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:859:9 [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr_2021, $r:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:859:18 [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr, $r:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:862:9 [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr_2021, $r:expr, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:862:18 [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr_2021, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:862:29 [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:923:12 [INFO] [stdout] | [INFO] [stdout] 923 | ($cond:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 923 | ($cond:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:928:12 [INFO] [stdout] | [INFO] [stdout] 928 | ($cond:expr,) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 928 | ($cond:expr_2021,) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:933:12 [INFO] [stdout] | [INFO] [stdout] 933 | ($cond:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 933 | ($cond:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:946:12 [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr_2021, $right:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:946:25 [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr, $right:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:957:12 [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr_2021, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:957:25 [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr, $right:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:968:12 [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr_2021, $right:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:968:25 [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr, $right:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:979:12 [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr_2021, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:979:25 [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr, $right:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1035:12 [INFO] [stdout] | [INFO] [stdout] 1035 | if let Some(v) = self.remove_and_get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1037:9 [INFO] [stdout] | [INFO] [stdout] 1037 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1035 ~ match self.remove_and_get(key) { Some(v) => { [INFO] [stdout] 1036 | v.delete() [INFO] [stdout] 1037 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1051:12 [INFO] [stdout] | [INFO] [stdout] 1051 | if let Some(valid) = self.state_iter.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1053:9 [INFO] [stdout] | [INFO] [stdout] 1053 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1051 ~ match self.state_iter.take() { Some(valid) => { [INFO] [stdout] 1052 | self.state_api.delete_iterator(valid); [INFO] [stdout] 1053 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1253:12 [INFO] [stdout] | [INFO] [stdout] 1253 | if let Some(value) = self.lazy_value.get_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^---------------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1259:9 [INFO] [stdout] | [INFO] [stdout] 1259 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1253 ~ match self.lazy_value.get_mut() { Some(value) => { [INFO] [stdout] 1254 | // Safe to unwrap below, since the entry can only be `None`, using methods which [INFO] [stdout] ... [INFO] [stdout] 1258 | value.serial(entry).unwrap_abort(); [INFO] [stdout] 1259 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1404:12 [INFO] [stdout] | [INFO] [stdout] 1404 | if let StateBoxInner::Loaded { [INFO] [stdout] | ____________^ [INFO] [stdout] 1405 | | entry, [INFO] [stdout] 1406 | | modified, [INFO] [stdout] 1407 | | value, [INFO] [stdout] 1408 | | } = self.inner.get_mut() [INFO] [stdout] | |_____________----------_________^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1414:9 [INFO] [stdout] | [INFO] [stdout] 1414 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1404 ~ match self.inner.get_mut() [INFO] [stdout] 1405 ~ { StateBoxInner::Loaded { [INFO] [stdout] 1406 + entry, [INFO] [stdout] 1407 + modified, [INFO] [stdout] 1408 + value, [INFO] [stdout] 1409 ~ } => { [INFO] [stdout] 1410 | if *modified { [INFO] [stdout] ... [INFO] [stdout] 1413 | } [INFO] [stdout] 1414 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1562:12 [INFO] [stdout] | [INFO] [stdout] 1562 | if let Some(valid) = self.state_iter.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1564:9 [INFO] [stdout] | [INFO] [stdout] 1564 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1562 ~ match self.state_iter.take() { Some(valid) => { [INFO] [stdout] 1563 | self.state_api.delete_iterator(valid); [INFO] [stdout] 1564 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:2484:16 [INFO] [stdout] | [INFO] [stdout] 2484 | if let Ok(new_state) = S::deserial_with_state( [INFO] [stdout] | ________________^ - [INFO] [stdout] | |____________________________________| [INFO] [stdout] 2485 | || &self.state_builder.state_api, [INFO] [stdout] 2486 | || &mut self.state_builder.state_api.lookup_entry(&[]).unwrap_abort(), [INFO] [stdout] 2487 | || ) { [INFO] [stdout] | ||_____________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |_____________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:2489:13 [INFO] [stdout] | [INFO] [stdout] 2489 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2484 ~ match S::deserial_with_state( [INFO] [stdout] 2485 | &self.state_builder.state_api, [INFO] [stdout] 2486 | &mut self.state_builder.state_api.lookup_entry(&[]).unwrap_abort(), [INFO] [stdout] 2487 ~ ) { Ok(new_state) => { [INFO] [stdout] 2488 | self.state = new_state; [INFO] [stdout] 2489 ~ } _ => { [INFO] [stdout] 2490 | crate::trap() [INFO] [stdout] 2491 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:2946:12 [INFO] [stdout] | [INFO] [stdout] 2946 | if let Some(x) = self { [INFO] [stdout] | ^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:2948:9 [INFO] [stdout] | [INFO] [stdout] 2948 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2946 ~ match self { Some(x) => { [INFO] [stdout] 2947 | crate::fail!("{}: {:?}", msg, x) [INFO] [stdout] 2948 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/state_btree.rs:861:12 [INFO] [stdout] | [INFO] [stdout] 861 | if let Some(sibling) = larger_sibling { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 864 | } else if let Some(mut sibling) = smaller_sibling { [INFO] [stdout] | --------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/state_btree.rs:864:9 [INFO] [stdout] | [INFO] [stdout] 864 | } else if let Some(mut sibling) = smaller_sibling { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/state_btree.rs:867:9 [INFO] [stdout] | [INFO] [stdout] 867 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 861 ~ match larger_sibling { Some(sibling) => { [INFO] [stdout] 862 | self.merge(&mut node, index, &mut child, sibling); [INFO] [stdout] 863 | child [INFO] [stdout] 864 ~ } _ => { match smaller_sibling { Some(mut sibling) => { [INFO] [stdout] 865 | self.merge(&mut node, index - 1, &mut sibling, child); [INFO] [stdout] 866 | sibling [INFO] [stdout] 867 ~ } _ => { [INFO] [stdout] 868 | // Unreachable code, since M must be 2 or larger (the minimum degree), a [INFO] [stdout] 869 | // child node must have at least one sibling. [INFO] [stdout] 870 | crate::trap(); [INFO] [stdout] 871 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:922:16 [INFO] [stdout] | [INFO] [stdout] 922 | if let Some(ref mut mock) = *self.verify_ed25519_signature_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:924:13 [INFO] [stdout] | [INFO] [stdout] 924 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 922 ~ match *self.verify_ed25519_signature_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 923 | mock(public_key, signature, message) [INFO] [stdout] 924 ~ } _ => { [INFO] [stdout] 925 | Self::fail_with_crypto_primitives_error("verify_ed25519_signature") [INFO] [stdout] 926 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:951:16 [INFO] [stdout] | [INFO] [stdout] 951 | if let Some(ref mut mock) = *self.verify_ecdsa_secp256k1_signature_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:953:13 [INFO] [stdout] | [INFO] [stdout] 953 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 951 ~ match *self.verify_ecdsa_secp256k1_signature_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 952 | mock(public_key, signature, message_hash) [INFO] [stdout] 953 ~ } _ => { [INFO] [stdout] 954 | Self::fail_with_crypto_primitives_error("verify_ecdsa_secp256k1") [INFO] [stdout] 955 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:967:16 [INFO] [stdout] | [INFO] [stdout] 967 | if let Some(ref mut mock) = *self.hash_sha2_256_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:969:13 [INFO] [stdout] | [INFO] [stdout] 969 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 967 ~ match *self.hash_sha2_256_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 968 | mock(data) [INFO] [stdout] 969 ~ } _ => { [INFO] [stdout] 970 | Self::fail_with_crypto_primitives_error("hash_sha2_256") [INFO] [stdout] 971 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:983:16 [INFO] [stdout] | [INFO] [stdout] 983 | if let Some(ref mut mock) = *self.hash_sha3_256_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:985:13 [INFO] [stdout] | [INFO] [stdout] 985 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 983 ~ match *self.hash_sha3_256_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 984 | mock(data) [INFO] [stdout] 985 ~ } _ => { [INFO] [stdout] 986 | Self::fail_with_crypto_primitives_error("hash_sha3_256") [INFO] [stdout] 987 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:999:16 [INFO] [stdout] | [INFO] [stdout] 999 | if let Some(ref mut mock) = *self.hash_keccak_256_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1001:13 [INFO] [stdout] | [INFO] [stdout] 1001 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 999 ~ match *self.hash_keccak_256_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 1000 | mock(data) [INFO] [stdout] 1001 ~ } _ => { [INFO] [stdout] 1002 | Self::fail_with_crypto_primitives_error("hash_keccak_256") [INFO] [stdout] 1003 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1189:28 [INFO] [stdout] | [INFO] [stdout] 1189 | if let Some(return_value) = return_value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1191:25 [INFO] [stdout] | [INFO] [stdout] 1191 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1189 ~ match return_value { Some(return_value) => { [INFO] [stdout] 1190 | Ok((modified, Some(Cursor::new(to_bytes(&return_value))))) [INFO] [stdout] 1191 ~ } _ => { [INFO] [stdout] 1192 | Ok((modified, None)) [INFO] [stdout] 1193 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1488:19 [INFO] [stdout] | [INFO] [stdout] 1488 | } else if let Some(balances) = self.query_account_balances.borrow().get(&address) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1490:9 [INFO] [stdout] | [INFO] [stdout] 1490 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1488 ~ } else { match self.query_account_balances.borrow().get(&address) { Some(balances) => { [INFO] [stdout] 1489 | Ok(*balances) [INFO] [stdout] 1490 ~ } _ => { [INFO] [stdout] 1491 | fail!("No account balance for {:?} has been set up.", address) [INFO] [stdout] 1492 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1502:19 [INFO] [stdout] | [INFO] [stdout] 1502 | } else if let Some(balances) = self.query_contract_balances.borrow().get(&address) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1504:9 [INFO] [stdout] | [INFO] [stdout] 1504 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1502 ~ } else { match self.query_contract_balances.borrow().get(&address) { Some(balances) => { [INFO] [stdout] 1503 | Ok(*balances) [INFO] [stdout] 1504 ~ } _ => { [INFO] [stdout] 1505 | fail!("No contract balance for {:?} has been set up.", address) [INFO] [stdout] 1506 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1518:12 [INFO] [stdout] | [INFO] [stdout] 1518 | if let Some(result) = self.mocking_upgrades.borrow().get(&module) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------------------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1520:9 [INFO] [stdout] | [INFO] [stdout] 1520 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1518 ~ match self.mocking_upgrades.borrow().get(&module) { Some(result) => { [INFO] [stdout] 1519 | result.to_owned() [INFO] [stdout] 1520 ~ } _ => { [INFO] [stdout] 1521 | fail!( [INFO] [stdout] ... [INFO] [stdout] 1525 | ) [INFO] [stdout] 1526 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure/trie.rs:212:20 [INFO] [stdout] | [INFO] [stdout] 212 | if let Some(child) = &node.children[idx] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure/trie.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 212 ~ match &node.children[idx] { Some(child) => { [INFO] [stdout] 213 | // Push current index. [INFO] [stdout] ... [INFO] [stdout] 227 | indexes.pop(); [INFO] [stdout] 228 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 81 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/derives.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `concordium_std` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/test_infrastructure.rs [INFO] [stderr] * src/test_infrastructure/trie.rs [INFO] [stderr] * src/types.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:820:6 [INFO] [stderr] | [INFO] [stderr] 820 | ($arg:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:832:6 [INFO] [stderr] | [INFO] [stderr] 832 | ($p:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:837:6 [INFO] [stderr] | [INFO] [stderr] 837 | ($p:expr_2021, $arg:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:837:20 [INFO] [stderr] | [INFO] [stderr] 837 | ($p:expr_2021, $arg:expr_2021) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:848:6 [INFO] [stderr] | [INFO] [stderr] 848 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:848:20 [INFO] [stderr] | [INFO] [stderr] 848 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:851:6 [INFO] [stderr] | [INFO] [stderr] 851 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:851:20 [INFO] [stderr] | [INFO] [stderr] 851 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:851:34 [INFO] [stderr] | [INFO] [stderr] 851 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:859:6 [INFO] [stderr] | [INFO] [stderr] 859 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:859:20 [INFO] [stderr] | [INFO] [stderr] 859 | ($l:expr_2021, $r:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:862:6 [INFO] [stderr] | [INFO] [stderr] 862 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:862:20 [INFO] [stderr] | [INFO] [stderr] 862 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:862:34 [INFO] [stderr] | [INFO] [stderr] 862 | ($l:expr_2021, $r:expr_2021, $arg:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:923:6 [INFO] [stderr] | [INFO] [stderr] 923 | ($cond:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:928:6 [INFO] [stderr] | [INFO] [stderr] 928 | ($cond:expr_2021,) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:933:6 [INFO] [stderr] | [INFO] [stderr] 933 | ($cond:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:946:6 [INFO] [stderr] | [INFO] [stderr] 946 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:946:23 [INFO] [stderr] | [INFO] [stderr] 946 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:957:6 [INFO] [stderr] | [INFO] [stderr] 957 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:957:23 [INFO] [stderr] | [INFO] [stderr] 957 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:968:6 [INFO] [stderr] | [INFO] [stderr] 968 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:968:23 [INFO] [stderr] | [INFO] [stderr] 968 | ($left:expr_2021, $right:expr_2021 $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:979:6 [INFO] [stderr] | [INFO] [stderr] 979 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/types.rs:979:23 [INFO] [stderr] | [INFO] [stderr] 979 | ($left:expr_2021, $right:expr_2021, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::test::test_contract_state`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure.rs:2000:5 [INFO] [stderr] | [INFO] [stderr] 2000 | / fn test_contract_state() { [INFO] [stderr] 2001 | | let data = Rc::new(RefCell::new(vec![1; 100].into())); [INFO] [stderr] 2002 | | let mut state = TestStateEntry::open(data, Vec::new(), 0); [INFO] [stderr] 2003 | | assert_eq!(state.seek(SeekFrom::Start(100)), Ok(100), "Seeking to the end failed."); [INFO] [stderr] ... | [INFO] [stderr] 2057 | | ); [INFO] [stderr] 2058 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::test::test_contract_state_write`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure.rs:2061:5 [INFO] [stderr] | [INFO] [stderr] 2061 | / fn test_contract_state_write() { [INFO] [stderr] 2062 | | let data = Rc::new(RefCell::new(vec![0u8; 10].into())); [INFO] [stderr] 2063 | | let mut state = TestStateEntry::open(data, Vec::new(), 0); [INFO] [stderr] 2064 | | assert_eq!(state.write(&1u64.to_le_bytes()), Ok(8), "Incorrect number of bytes written."); [INFO] [stderr] ... | [INFO] [stderr] 2075 | | ); [INFO] [stderr] 2076 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::test::test_testhost_balance_queries_reflect_invoke`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure.rs:1966:5 [INFO] [stderr] | [INFO] [stderr] 1966 | / fn test_testhost_balance_queries_reflect_invoke() { [INFO] [stderr] 1967 | | use super::*; [INFO] [stderr] 1968 | | let mut host = TestHost::new((), TestStateBuilder::new()); [INFO] [stderr] ... | [INFO] [stderr] 1993 | | assert_eq!(self_new_balance, Amount::from_micro_ccd(2000)); [INFO] [stderr] 1994 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::test::test_testhost_balance_queries_reflect_transfers`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure.rs:1942:5 [INFO] [stderr] | [INFO] [stderr] 1942 | / fn test_testhost_balance_queries_reflect_transfers() { [INFO] [stderr] 1943 | | use super::*; [INFO] [stderr] 1944 | | let mut host = TestHost::new((), TestStateBuilder::new()); [INFO] [stderr] ... | [INFO] [stderr] 1962 | | assert_eq!(self_new_balance, Amount::from_micro_ccd(1000)); [INFO] [stderr] 1963 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::delete_entry_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:389:5 [INFO] [stderr] | [INFO] [stderr] 389 | / fn delete_entry_test() { [INFO] [stderr] 390 | | let key1 = [0]; [INFO] [stderr] 391 | | let key2 = [0, 0]; // A leaf, which is the child of the key1 node. [INFO] [stderr] 392 | | let mut trie = StateTrie::new(); [INFO] [stderr] ... | [INFO] [stderr] 402 | | assert!(trie.lookup(&key2).is_some()); // The child should still exist. [INFO] [stderr] 403 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::delete_prefix_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:406:5 [INFO] [stderr] | [INFO] [stderr] 406 | / fn delete_prefix_test() { [INFO] [stderr] 407 | | let key1 = [0]; [INFO] [stderr] 408 | | let key2 = [0, 0]; [INFO] [stderr] 409 | | let key3 = [0, 0, 0]; [INFO] [stderr] ... | [INFO] [stderr] 420 | | assert!(trie.lookup(&key3).is_none()); [INFO] [stderr] 421 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::double_create_overwrites_data`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:424:5 [INFO] [stderr] | [INFO] [stderr] 424 | / fn double_create_overwrites_data() { [INFO] [stderr] 425 | | let key = []; [INFO] [stderr] 426 | | let mut trie = StateTrie::new(); [INFO] [stderr] 427 | | create_entry(&mut trie, &key) [INFO] [stderr] ... | [INFO] [stderr] 434 | | assert!(res.is_err()) [INFO] [stderr] 435 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::index_conversion`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:475:5 [INFO] [stderr] | [INFO] [stderr] 475 | / fn index_conversion() { [INFO] [stderr] 476 | | let expected_key1 = [1, 2, 3, 4, 5, 6, 7]; [INFO] [stderr] 477 | | let expected_key2 = [92, 255, 23, 5]; [INFO] [stderr] 478 | | let index1 = super::to_indexes(&expected_key1); [INFO] [stderr] ... | [INFO] [stderr] 483 | | assert_eq!(expected_key2, &actual_key2[..]); [INFO] [stderr] 484 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::insert_get_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:374:5 [INFO] [stderr] | [INFO] [stderr] 374 | / fn insert_get_test() { [INFO] [stderr] 375 | | let expected_value = "hello"; [INFO] [stderr] 376 | | let key = [0, 1, 2]; [INFO] [stderr] 377 | | let mut trie = StateTrie::new(); [INFO] [stderr] ... | [INFO] [stderr] 385 | | assert_eq!(&expected_value, &actual_value); [INFO] [stderr] 386 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::iterator_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:438:5 [INFO] [stderr] | [INFO] [stderr] 438 | / fn iterator_test() { [INFO] [stderr] 439 | | let mut trie = StateTrie::new(); [INFO] [stderr] 440 | | [INFO] [stderr] 441 | | create_entry(&mut trie, b"a").write_u8(42).unwrap(); [INFO] [stderr] ... | [INFO] [stderr] 471 | | assert!(new_trie.next().is_none()); [INFO] [stderr] 472 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::read_from_deleted_aliased_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:516:5 [INFO] [stderr] | [INFO] [stderr] 516 | / fn read_from_deleted_aliased_entry_should_fail() { [INFO] [stderr] 517 | | let mut trie = StateTrie::new(); [INFO] [stderr] 518 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stderr] 519 | | let mut alias_entry = create_entry(&mut trie, b"ab"); [INFO] [stderr] ... | [INFO] [stderr] 522 | | assert!(alias_entry.read_u8().is_err()); [INFO] [stderr] 523 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::read_from_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:505:5 [INFO] [stderr] | [INFO] [stderr] 505 | / fn read_from_deleted_entry_should_fail() { [INFO] [stderr] 506 | | let mut trie = StateTrie::new(); [INFO] [stderr] 507 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stderr] 508 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stderr] ... | [INFO] [stderr] 512 | | assert!(entry.read_u8().is_err()); [INFO] [stderr] 513 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::seek_on_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:496:5 [INFO] [stderr] | [INFO] [stderr] 496 | / fn seek_on_deleted_entry_should_fail() { [INFO] [stderr] 497 | | let mut trie = StateTrie::new(); [INFO] [stderr] 498 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stderr] 499 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stderr] 500 | | trie.delete_prefix(&[]).unwrap(); [INFO] [stderr] 501 | | assert!(entry.seek(SeekFrom::Start(0)).is_err()); [INFO] [stderr] 502 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::test_deep_clone`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:526:5 [INFO] [stderr] | [INFO] [stderr] 526 | / fn test_deep_clone() { [INFO] [stderr] 527 | | let mut trie = StateTrie::new(); [INFO] [stderr] 528 | | [INFO] [stderr] 529 | | // Create two entries [INFO] [stderr] ... | [INFO] [stderr] 565 | | assert!(trie_clone.lookup(b"qq").is_none()); [INFO] [stderr] 566 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated constant `test_infrastructure::trie::tests::write_to_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stderr] --> src/test_infrastructure/trie.rs:487:5 [INFO] [stderr] | [INFO] [stderr] 487 | / fn write_to_deleted_entry_should_fail() { [INFO] [stderr] 488 | | let mut trie = StateTrie::new(); [INFO] [stderr] 489 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stderr] 490 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stderr] 491 | | trie.delete_prefix(&[]).unwrap(); [INFO] [stderr] 492 | | assert!(entry.write_u8(1).is_err()); [INFO] [stderr] 493 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 25 previous errors; 15 warnings emitted [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:317:7 [INFO] [stdout] | [INFO] [stdout] 317 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] = note: `--force-warn unsafe-attr-outside-unsafe` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 317 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:321:7 [INFO] [stdout] | [INFO] [stdout] 321 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 321 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:325:7 [INFO] [stdout] | [INFO] [stdout] 325 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 325 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:329:7 [INFO] [stdout] | [INFO] [stdout] 329 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 329 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:333:7 [INFO] [stdout] | [INFO] [stdout] 333 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 333 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:342:7 [INFO] [stdout] | [INFO] [stdout] 342 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 342 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:346:7 [INFO] [stdout] | [INFO] [stdout] 346 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 346 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:350:7 [INFO] [stdout] | [INFO] [stdout] 350 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 350 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:354:7 [INFO] [stdout] | [INFO] [stdout] 354 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 354 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:358:7 [INFO] [stdout] | [INFO] [stdout] 358 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 358 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:362:7 [INFO] [stdout] | [INFO] [stdout] 362 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 362 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:366:7 [INFO] [stdout] | [INFO] [stdout] 366 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 366 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:370:7 [INFO] [stdout] | [INFO] [stdout] 370 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 370 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:374:7 [INFO] [stdout] | [INFO] [stdout] 374 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 374 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:378:7 [INFO] [stdout] | [INFO] [stdout] 378 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 378 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:382:7 [INFO] [stdout] | [INFO] [stdout] 382 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 382 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:391:7 [INFO] [stdout] | [INFO] [stdout] 391 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 391 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:400:7 [INFO] [stdout] | [INFO] [stdout] 400 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 400 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:409:7 [INFO] [stdout] | [INFO] [stdout] 409 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 409 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:413:7 [INFO] [stdout] | [INFO] [stdout] 413 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 413 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:417:7 [INFO] [stdout] | [INFO] [stdout] 417 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 417 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:421:7 [INFO] [stdout] | [INFO] [stdout] 421 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 421 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:425:7 [INFO] [stdout] | [INFO] [stdout] 425 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 425 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:429:7 [INFO] [stdout] | [INFO] [stdout] 429 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 429 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:433:7 [INFO] [stdout] | [INFO] [stdout] 433 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 433 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:437:7 [INFO] [stdout] | [INFO] [stdout] 437 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 437 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:441:7 [INFO] [stdout] | [INFO] [stdout] 441 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 441 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:445:7 [INFO] [stdout] | [INFO] [stdout] 445 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 445 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:450:7 [INFO] [stdout] | [INFO] [stdout] 450 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 450 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:453:7 [INFO] [stdout] | [INFO] [stdout] 453 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 453 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:463:7 [INFO] [stdout] | [INFO] [stdout] 463 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 463 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:472:7 [INFO] [stdout] | [INFO] [stdout] 472 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 472 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:477:7 [INFO] [stdout] | [INFO] [stdout] 477 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 477 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:482:7 [INFO] [stdout] | [INFO] [stdout] 482 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 482 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:487:7 [INFO] [stdout] | [INFO] [stdout] 487 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 487 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:499:7 [INFO] [stdout] | [INFO] [stdout] 499 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 499 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:511:7 [INFO] [stdout] | [INFO] [stdout] 511 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123757 [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 511 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: extern blocks should be unsafe [INFO] [stdout] --> src/prims.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | extern "C" { [INFO] [stdout] | ^ [INFO] [stdout] | | [INFO] [stdout] | _help: needs `unsafe` before the extern keyword: `unsafe` [INFO] [stdout] | | [INFO] [stdout] 19 | | /// Invoke a host instruction. The arguments are [INFO] [stdout] 20 | | /// [INFO] [stdout] 21 | | /// - `tag`, which instruction to invoke [INFO] [stdout] ... | [INFO] [stdout] 310 | | pub(crate) fn get_random(dest: *mut u8, size: u32); [INFO] [stdout] 311 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #123743 [INFO] [stdout] = note: `--force-warn missing-unsafe-on-extern` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:820:11 [INFO] [stdout] | [INFO] [stdout] 820 | ($arg:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 820 | ($arg:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:832:9 [INFO] [stdout] | [INFO] [stdout] 832 | ($p:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 832 | ($p:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:837:9 [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr, $arg:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr_2021, $arg:expr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:837:20 [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr, $arg:expr) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 837 | ($p:expr, $arg:expr_2021) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:848:9 [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr_2021, $r:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:848:18 [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 848 | ($l:expr, $r:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:851:9 [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr_2021, $r:expr, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:851:18 [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr_2021, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:851:29 [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 851 | ($l:expr, $r:expr, $arg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:859:9 [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr_2021, $r:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:859:18 [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr, $r:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 859 | ($l:expr, $r:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:862:9 [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr_2021, $r:expr, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:862:18 [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr_2021, $arg:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:862:29 [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 862 | ($l:expr, $r:expr, $arg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:923:12 [INFO] [stdout] | [INFO] [stdout] 923 | ($cond:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 923 | ($cond:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:928:12 [INFO] [stdout] | [INFO] [stdout] 928 | ($cond:expr,) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 928 | ($cond:expr_2021,) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:933:12 [INFO] [stdout] | [INFO] [stdout] 933 | ($cond:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 933 | ($cond:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:946:12 [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr_2021, $right:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:946:25 [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 946 | ($left:expr, $right:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:957:12 [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr_2021, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:957:25 [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 957 | ($left:expr, $right:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:968:12 [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr_2021, $right:expr $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:968:25 [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr, $right:expr $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 968 | ($left:expr, $right:expr_2021 $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:979:12 [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr_2021, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/types.rs:979:25 [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr, $right:expr, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 979 | ($left:expr, $right:expr_2021, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::TestStateApi` [INFO] [stdout] --> src/test_infrastructure.rs:1933:9 [INFO] [stdout] | [INFO] [stdout] 1933 | use super::TestStateApi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deletable`, `EntryRaw`, `HasStateApi`, `INITIAL_NEXT_ITEM_PREFIX`, `StateBTreeSet`, `StateMap`, `StateSet`, and `TestStateBuilder` [INFO] [stdout] --> src/test_infrastructure.rs:1937:31 [INFO] [stdout] | [INFO] [stdout] 1937 | test_infrastructure::{TestStateBuilder, TestStateEntry}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 1938 | Deletable, EntryRaw, HasStateApi, HasStateEntry, StateBTreeSet, StateMap, StateSet, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 1939 | INITIAL_NEXT_ITEM_PREFIX, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserial` and `to_bytes` [INFO] [stdout] --> src/test_infrastructure.rs:1941:39 [INFO] [stdout] | [INFO] [stdout] 1941 | use concordium_contracts_common::{to_bytes, Deserial, Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_contract_state`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:2002:5 [INFO] [stdout] | [INFO] [stdout] 2002 | / fn test_contract_state() { [INFO] [stdout] 2003 | | let data = Rc::new(RefCell::new(vec![1; 100].into())); [INFO] [stdout] 2004 | | let mut state = TestStateEntry::open(data, Vec::new(), 0); [INFO] [stdout] 2005 | | assert_eq!(state.seek(SeekFrom::Start(100)), Ok(100), "Seeking to the end failed."); [INFO] [stdout] ... | [INFO] [stdout] 2059 | | ); [INFO] [stdout] 2060 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_contract_state_write`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:2063:5 [INFO] [stdout] | [INFO] [stdout] 2063 | / fn test_contract_state_write() { [INFO] [stdout] 2064 | | let data = Rc::new(RefCell::new(vec![0u8; 10].into())); [INFO] [stdout] 2065 | | let mut state = TestStateEntry::open(data, Vec::new(), 0); [INFO] [stdout] 2066 | | assert_eq!(state.write(&1u64.to_le_bytes()), Ok(8), "Incorrect number of bytes written."); [INFO] [stdout] ... | [INFO] [stdout] 2077 | | ); [INFO] [stdout] 2078 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_testhost_balance_queries_reflect_invoke`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:1968:5 [INFO] [stdout] | [INFO] [stdout] 1968 | / fn test_testhost_balance_queries_reflect_invoke() { [INFO] [stdout] 1969 | | use super::*; [INFO] [stdout] 1970 | | let mut host = TestHost::new((), TestStateBuilder::new()); [INFO] [stdout] ... | [INFO] [stdout] 1995 | | assert_eq!(self_new_balance, Amount::from_micro_ccd(2000)); [INFO] [stdout] 1996 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_testhost_balance_queries_reflect_transfers`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:1944:5 [INFO] [stdout] | [INFO] [stdout] 1944 | / fn test_testhost_balance_queries_reflect_transfers() { [INFO] [stdout] 1945 | | use super::*; [INFO] [stdout] 1946 | | let mut host = TestHost::new((), TestStateBuilder::new()); [INFO] [stdout] ... | [INFO] [stdout] 1964 | | assert_eq!(self_new_balance, Amount::from_micro_ccd(1000)); [INFO] [stdout] 1965 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::delete_entry_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 389 | / fn delete_entry_test() { [INFO] [stdout] 390 | | let key1 = [0]; [INFO] [stdout] 391 | | let key2 = [0, 0]; // A leaf, which is the child of the key1 node. [INFO] [stdout] 392 | | let mut trie = StateTrie::new(); [INFO] [stdout] ... | [INFO] [stdout] 402 | | assert!(trie.lookup(&key2).is_some()); // The child should still exist. [INFO] [stdout] 403 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::delete_prefix_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | / fn delete_prefix_test() { [INFO] [stdout] 407 | | let key1 = [0]; [INFO] [stdout] 408 | | let key2 = [0, 0]; [INFO] [stdout] 409 | | let key3 = [0, 0, 0]; [INFO] [stdout] ... | [INFO] [stdout] 420 | | assert!(trie.lookup(&key3).is_none()); [INFO] [stdout] 421 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::double_create_overwrites_data`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:424:5 [INFO] [stdout] | [INFO] [stdout] 424 | / fn double_create_overwrites_data() { [INFO] [stdout] 425 | | let key = []; [INFO] [stdout] 426 | | let mut trie = StateTrie::new(); [INFO] [stdout] 427 | | create_entry(&mut trie, &key) [INFO] [stdout] ... | [INFO] [stdout] 434 | | assert!(res.is_err()) [INFO] [stdout] 435 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::index_conversion`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:475:5 [INFO] [stdout] | [INFO] [stdout] 475 | / fn index_conversion() { [INFO] [stdout] 476 | | let expected_key1 = [1, 2, 3, 4, 5, 6, 7]; [INFO] [stdout] 477 | | let expected_key2 = [92, 255, 23, 5]; [INFO] [stdout] 478 | | let index1 = super::to_indexes(&expected_key1); [INFO] [stdout] ... | [INFO] [stdout] 483 | | assert_eq!(expected_key2, &actual_key2[..]); [INFO] [stdout] 484 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::insert_get_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:374:5 [INFO] [stdout] | [INFO] [stdout] 374 | / fn insert_get_test() { [INFO] [stdout] 375 | | let expected_value = "hello"; [INFO] [stdout] 376 | | let key = [0, 1, 2]; [INFO] [stdout] 377 | | let mut trie = StateTrie::new(); [INFO] [stdout] ... | [INFO] [stdout] 385 | | assert_eq!(&expected_value, &actual_value); [INFO] [stdout] 386 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::iterator_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:438:5 [INFO] [stdout] | [INFO] [stdout] 438 | / fn iterator_test() { [INFO] [stdout] 439 | | let mut trie = StateTrie::new(); [INFO] [stdout] 440 | | [INFO] [stdout] 441 | | create_entry(&mut trie, b"a").write_u8(42).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 471 | | assert!(new_trie.next().is_none()); [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::read_from_deleted_aliased_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:516:5 [INFO] [stdout] | [INFO] [stdout] 516 | / fn read_from_deleted_aliased_entry_should_fail() { [INFO] [stdout] 517 | | let mut trie = StateTrie::new(); [INFO] [stdout] 518 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 519 | | let mut alias_entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] ... | [INFO] [stdout] 522 | | assert!(alias_entry.read_u8().is_err()); [INFO] [stdout] 523 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::read_from_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:505:5 [INFO] [stdout] | [INFO] [stdout] 505 | / fn read_from_deleted_entry_should_fail() { [INFO] [stdout] 506 | | let mut trie = StateTrie::new(); [INFO] [stdout] 507 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 508 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stdout] ... | [INFO] [stdout] 512 | | assert!(entry.read_u8().is_err()); [INFO] [stdout] 513 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::seek_on_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | / fn seek_on_deleted_entry_should_fail() { [INFO] [stdout] 497 | | let mut trie = StateTrie::new(); [INFO] [stdout] 498 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 499 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stdout] 500 | | trie.delete_prefix(&[]).unwrap(); [INFO] [stdout] 501 | | assert!(entry.seek(SeekFrom::Start(0)).is_err()); [INFO] [stdout] 502 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::test_deep_clone`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:526:5 [INFO] [stdout] | [INFO] [stdout] 526 | / fn test_deep_clone() { [INFO] [stdout] 527 | | let mut trie = StateTrie::new(); [INFO] [stdout] 528 | | [INFO] [stdout] 529 | | // Create two entries [INFO] [stdout] ... | [INFO] [stdout] 565 | | assert!(trie_clone.lookup(b"qq").is_none()); [INFO] [stdout] 566 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::write_to_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:487:5 [INFO] [stdout] | [INFO] [stdout] 487 | / fn write_to_deleted_entry_should_fail() { [INFO] [stdout] 488 | | let mut trie = StateTrie::new(); [INFO] [stdout] 489 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 490 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stdout] 491 | | trie.delete_prefix(&[]).unwrap(); [INFO] [stdout] 492 | | assert!(entry.write_u8(1).is_err()); [INFO] [stdout] 493 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1035:12 [INFO] [stdout] | [INFO] [stdout] 1035 | if let Some(v) = self.remove_and_get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1037:9 [INFO] [stdout] | [INFO] [stdout] 1037 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1035 ~ match self.remove_and_get(key) { Some(v) => { [INFO] [stdout] 1036 | v.delete() [INFO] [stdout] 1037 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1051:12 [INFO] [stdout] | [INFO] [stdout] 1051 | if let Some(valid) = self.state_iter.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1053:9 [INFO] [stdout] | [INFO] [stdout] 1053 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1051 ~ match self.state_iter.take() { Some(valid) => { [INFO] [stdout] 1052 | self.state_api.delete_iterator(valid); [INFO] [stdout] 1053 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1253:12 [INFO] [stdout] | [INFO] [stdout] 1253 | if let Some(value) = self.lazy_value.get_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^---------------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1259:9 [INFO] [stdout] | [INFO] [stdout] 1259 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1253 ~ match self.lazy_value.get_mut() { Some(value) => { [INFO] [stdout] 1254 | // Safe to unwrap below, since the entry can only be `None`, using methods which [INFO] [stdout] ... [INFO] [stdout] 1258 | value.serial(entry).unwrap_abort(); [INFO] [stdout] 1259 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1404:12 [INFO] [stdout] | [INFO] [stdout] 1404 | if let StateBoxInner::Loaded { [INFO] [stdout] | ____________^ [INFO] [stdout] 1405 | | entry, [INFO] [stdout] 1406 | | modified, [INFO] [stdout] 1407 | | value, [INFO] [stdout] 1408 | | } = self.inner.get_mut() [INFO] [stdout] | |_____________----------_________^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1414:9 [INFO] [stdout] | [INFO] [stdout] 1414 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1404 ~ match self.inner.get_mut() [INFO] [stdout] 1405 ~ { StateBoxInner::Loaded { [INFO] [stdout] 1406 + entry, [INFO] [stdout] 1407 + modified, [INFO] [stdout] 1408 + value, [INFO] [stdout] 1409 ~ } => { [INFO] [stdout] 1410 | if *modified { [INFO] [stdout] ... [INFO] [stdout] 1413 | } [INFO] [stdout] 1414 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:1562:12 [INFO] [stdout] | [INFO] [stdout] 1562 | if let Some(valid) = self.state_iter.take() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:1564:9 [INFO] [stdout] | [INFO] [stdout] 1564 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1562 ~ match self.state_iter.take() { Some(valid) => { [INFO] [stdout] 1563 | self.state_api.delete_iterator(valid); [INFO] [stdout] 1564 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:2484:16 [INFO] [stdout] | [INFO] [stdout] 2484 | if let Ok(new_state) = S::deserial_with_state( [INFO] [stdout] | ________________^ - [INFO] [stdout] | |____________________________________| [INFO] [stdout] 2485 | || &self.state_builder.state_api, [INFO] [stdout] 2486 | || &mut self.state_builder.state_api.lookup_entry(&[]).unwrap_abort(), [INFO] [stdout] 2487 | || ) { [INFO] [stdout] | ||_____________^ this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | |_____________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:2489:13 [INFO] [stdout] | [INFO] [stdout] 2489 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2484 ~ match S::deserial_with_state( [INFO] [stdout] 2485 | &self.state_builder.state_api, [INFO] [stdout] 2486 | &mut self.state_builder.state_api.lookup_entry(&[]).unwrap_abort(), [INFO] [stdout] 2487 ~ ) { Ok(new_state) => { [INFO] [stdout] 2488 | self.state = new_state; [INFO] [stdout] 2489 ~ } _ => { [INFO] [stdout] 2490 | crate::trap() [INFO] [stdout] 2491 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/impls.rs:2946:12 [INFO] [stdout] | [INFO] [stdout] 2946 | if let Some(x) = self { [INFO] [stdout] | ^^^^^^^^^^^^^^---- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/impls.rs:2948:9 [INFO] [stdout] | [INFO] [stdout] 2948 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 2946 ~ match self { Some(x) => { [INFO] [stdout] 2947 | crate::fail!("{}: {:?}", msg, x) [INFO] [stdout] 2948 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/state_btree.rs:861:12 [INFO] [stdout] | [INFO] [stdout] 861 | if let Some(sibling) = larger_sibling { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 864 | } else if let Some(mut sibling) = smaller_sibling { [INFO] [stdout] | --------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/state_btree.rs:864:9 [INFO] [stdout] | [INFO] [stdout] 864 | } else if let Some(mut sibling) = smaller_sibling { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/state_btree.rs:867:9 [INFO] [stdout] | [INFO] [stdout] 867 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 861 ~ match larger_sibling { Some(sibling) => { [INFO] [stdout] 862 | self.merge(&mut node, index, &mut child, sibling); [INFO] [stdout] 863 | child [INFO] [stdout] 864 ~ } _ => { match smaller_sibling { Some(mut sibling) => { [INFO] [stdout] 865 | self.merge(&mut node, index - 1, &mut sibling, child); [INFO] [stdout] 866 | sibling [INFO] [stdout] 867 ~ } _ => { [INFO] [stdout] 868 | // Unreachable code, since M must be 2 or larger (the minimum degree), a [INFO] [stdout] 869 | // child node must have at least one sibling. [INFO] [stdout] 870 | crate::trap(); [INFO] [stdout] 871 ~ }}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:922:16 [INFO] [stdout] | [INFO] [stdout] 922 | if let Some(ref mut mock) = *self.verify_ed25519_signature_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:924:13 [INFO] [stdout] | [INFO] [stdout] 924 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 922 ~ match *self.verify_ed25519_signature_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 923 | mock(public_key, signature, message) [INFO] [stdout] 924 ~ } _ => { [INFO] [stdout] 925 | Self::fail_with_crypto_primitives_error("verify_ed25519_signature") [INFO] [stdout] 926 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:951:16 [INFO] [stdout] | [INFO] [stdout] 951 | if let Some(ref mut mock) = *self.verify_ecdsa_secp256k1_signature_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:953:13 [INFO] [stdout] | [INFO] [stdout] 953 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 951 ~ match *self.verify_ecdsa_secp256k1_signature_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 952 | mock(public_key, signature, message_hash) [INFO] [stdout] 953 ~ } _ => { [INFO] [stdout] 954 | Self::fail_with_crypto_primitives_error("verify_ecdsa_secp256k1") [INFO] [stdout] 955 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:967:16 [INFO] [stdout] | [INFO] [stdout] 967 | if let Some(ref mut mock) = *self.hash_sha2_256_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:969:13 [INFO] [stdout] | [INFO] [stdout] 969 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 967 ~ match *self.hash_sha2_256_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 968 | mock(data) [INFO] [stdout] 969 ~ } _ => { [INFO] [stdout] 970 | Self::fail_with_crypto_primitives_error("hash_sha2_256") [INFO] [stdout] 971 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:983:16 [INFO] [stdout] | [INFO] [stdout] 983 | if let Some(ref mut mock) = *self.hash_sha3_256_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:985:13 [INFO] [stdout] | [INFO] [stdout] 985 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 983 ~ match *self.hash_sha3_256_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 984 | mock(data) [INFO] [stdout] 985 ~ } _ => { [INFO] [stdout] 986 | Self::fail_with_crypto_primitives_error("hash_sha3_256") [INFO] [stdout] 987 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:999:16 [INFO] [stdout] | [INFO] [stdout] 999 | if let Some(ref mut mock) = *self.hash_keccak_256_mock.borrow_mut() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^--------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1001:13 [INFO] [stdout] | [INFO] [stdout] 1001 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 999 ~ match *self.hash_keccak_256_mock.borrow_mut() { Some(ref mut mock) => { [INFO] [stdout] 1000 | mock(data) [INFO] [stdout] 1001 ~ } _ => { [INFO] [stdout] 1002 | Self::fail_with_crypto_primitives_error("hash_keccak_256") [INFO] [stdout] 1003 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1189:28 [INFO] [stdout] | [INFO] [stdout] 1189 | if let Some(return_value) = return_value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1191:25 [INFO] [stdout] | [INFO] [stdout] 1191 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1189 ~ match return_value { Some(return_value) => { [INFO] [stdout] 1190 | Ok((modified, Some(Cursor::new(to_bytes(&return_value))))) [INFO] [stdout] 1191 ~ } _ => { [INFO] [stdout] 1192 | Ok((modified, None)) [INFO] [stdout] 1193 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1488:19 [INFO] [stdout] | [INFO] [stdout] 1488 | } else if let Some(balances) = self.query_account_balances.borrow().get(&address) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^------------------------------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1490:9 [INFO] [stdout] | [INFO] [stdout] 1490 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1488 ~ } else { match self.query_account_balances.borrow().get(&address) { Some(balances) => { [INFO] [stdout] 1489 | Ok(*balances) [INFO] [stdout] 1490 ~ } _ => { [INFO] [stdout] 1491 | fail!("No account balance for {:?} has been set up.", address) [INFO] [stdout] 1492 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1502:19 [INFO] [stdout] | [INFO] [stdout] 1502 | } else if let Some(balances) = self.query_contract_balances.borrow().get(&address) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^-------------------------------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1504:9 [INFO] [stdout] | [INFO] [stdout] 1504 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1502 ~ } else { match self.query_contract_balances.borrow().get(&address) { Some(balances) => { [INFO] [stdout] 1503 | Ok(*balances) [INFO] [stdout] 1504 ~ } _ => { [INFO] [stdout] 1505 | fail!("No contract balance for {:?} has been set up.", address) [INFO] [stdout] 1506 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1518:12 [INFO] [stdout] | [INFO] [stdout] 1518 | if let Some(result) = self.mocking_upgrades.borrow().get(&module) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------------------^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure.rs:1520:9 [INFO] [stdout] | [INFO] [stdout] 1520 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1518 ~ match self.mocking_upgrades.borrow().get(&module) { Some(result) => { [INFO] [stdout] 1519 | result.to_owned() [INFO] [stdout] 1520 ~ } _ => { [INFO] [stdout] 1521 | fail!( [INFO] [stdout] ... [INFO] [stdout] 1525 | ) [INFO] [stdout] 1526 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/test_infrastructure/trie.rs:212:20 [INFO] [stdout] | [INFO] [stdout] 212 | if let Some(child) = &node.children[idx] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/test_infrastructure/trie.rs:228:17 [INFO] [stdout] | [INFO] [stdout] 228 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 212 ~ match &node.children[idx] { Some(child) => { [INFO] [stdout] 213 | // Push current index. [INFO] [stdout] ... [INFO] [stdout] 227 | indexes.pop(); [INFO] [stdout] 228 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 99 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/dbg.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.26s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking concordium-std v10.1.0 (/tmp/fixit) [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/prims.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / extern "C" { [INFO] [stdout] 19 | | /// Invoke a host instruction. The arguments are [INFO] [stdout] 20 | | /// [INFO] [stdout] 21 | | /// - `tag`, which instruction to invoke [INFO] [stdout] ... | [INFO] [stdout] 310 | | pub(crate) fn get_random(dest: *mut u8, size: u32); [INFO] [stdout] 311 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:317:7 [INFO] [stdout] | [INFO] [stdout] 317 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 317 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:321:7 [INFO] [stdout] | [INFO] [stdout] 321 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 321 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:325:7 [INFO] [stdout] | [INFO] [stdout] 325 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 325 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:329:7 [INFO] [stdout] | [INFO] [stdout] 329 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 329 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:333:7 [INFO] [stdout] | [INFO] [stdout] 333 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 333 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:342:7 [INFO] [stdout] | [INFO] [stdout] 342 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 342 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:346:7 [INFO] [stdout] | [INFO] [stdout] 346 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 346 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:350:7 [INFO] [stdout] | [INFO] [stdout] 350 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 350 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:354:7 [INFO] [stdout] | [INFO] [stdout] 354 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 354 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:358:7 [INFO] [stdout] | [INFO] [stdout] 358 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 358 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:362:7 [INFO] [stdout] | [INFO] [stdout] 362 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 362 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:366:7 [INFO] [stdout] | [INFO] [stdout] 366 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 366 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:370:7 [INFO] [stdout] | [INFO] [stdout] 370 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 370 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:374:7 [INFO] [stdout] | [INFO] [stdout] 374 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 374 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:378:7 [INFO] [stdout] | [INFO] [stdout] 378 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 378 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:382:7 [INFO] [stdout] | [INFO] [stdout] 382 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 382 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:391:7 [INFO] [stdout] | [INFO] [stdout] 391 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 391 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:400:7 [INFO] [stdout] | [INFO] [stdout] 400 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 400 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:409:7 [INFO] [stdout] | [INFO] [stdout] 409 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 409 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:413:7 [INFO] [stdout] | [INFO] [stdout] 413 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 413 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:417:7 [INFO] [stdout] | [INFO] [stdout] 417 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 417 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:421:7 [INFO] [stdout] | [INFO] [stdout] 421 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 421 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:425:7 [INFO] [stdout] | [INFO] [stdout] 425 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 425 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:429:7 [INFO] [stdout] | [INFO] [stdout] 429 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 429 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:433:7 [INFO] [stdout] | [INFO] [stdout] 433 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 433 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:437:7 [INFO] [stdout] | [INFO] [stdout] 437 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 437 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: extern blocks must be unsafe [INFO] [stdout] --> src/prims.rs:18:1 [INFO] [stdout] | [INFO] [stdout] 18 | / extern "C" { [INFO] [stdout] 19 | | /// Invoke a host instruction. The arguments are [INFO] [stdout] 20 | | /// [INFO] [stdout] 21 | | /// - `tag`, which instruction to invoke [INFO] [stdout] ... | [INFO] [stdout] 310 | | pub(crate) fn get_random(dest: *mut u8, size: u32); [INFO] [stdout] 311 | | } [INFO] [stdout] | |_^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:441:7 [INFO] [stdout] | [INFO] [stdout] 441 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 441 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:445:7 [INFO] [stdout] | [INFO] [stdout] 445 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 445 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:450:7 [INFO] [stdout] | [INFO] [stdout] 450 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 450 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:317:7 [INFO] [stdout] | [INFO] [stdout] 317 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 317 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:453:7 [INFO] [stdout] | [INFO] [stdout] 453 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 453 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:321:7 [INFO] [stdout] | [INFO] [stdout] 321 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 321 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:463:7 [INFO] [stdout] | [INFO] [stdout] 463 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 463 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:325:7 [INFO] [stdout] | [INFO] [stdout] 325 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 325 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:472:7 [INFO] [stdout] | [INFO] [stdout] 472 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 472 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:329:7 [INFO] [stdout] | [INFO] [stdout] 329 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 329 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:477:7 [INFO] [stdout] | [INFO] [stdout] 477 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 477 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:333:7 [INFO] [stdout] | [INFO] [stdout] 333 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 333 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:482:7 [INFO] [stdout] | [INFO] [stdout] 482 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 482 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:342:7 [INFO] [stdout] | [INFO] [stdout] 342 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 342 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:487:7 [INFO] [stdout] | [INFO] [stdout] 487 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 487 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:346:7 [INFO] [stdout] | [INFO] [stdout] 346 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 346 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:350:7 [INFO] [stdout] | [INFO] [stdout] 350 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 350 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:499:7 [INFO] [stdout] | [INFO] [stdout] 499 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 499 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:354:7 [INFO] [stdout] | [INFO] [stdout] 354 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 354 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:511:7 [INFO] [stdout] | [INFO] [stdout] 511 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 511 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:358:7 [INFO] [stdout] | [INFO] [stdout] 358 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 358 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:362:7 [INFO] [stdout] | [INFO] [stdout] 362 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 362 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:366:7 [INFO] [stdout] | [INFO] [stdout] 366 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 366 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:370:7 [INFO] [stdout] | [INFO] [stdout] 370 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 370 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:374:7 [INFO] [stdout] | [INFO] [stdout] 374 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 374 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:378:7 [INFO] [stdout] | [INFO] [stdout] 378 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 378 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:382:7 [INFO] [stdout] | [INFO] [stdout] 382 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 382 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:391:7 [INFO] [stdout] | [INFO] [stdout] 391 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 391 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:400:7 [INFO] [stdout] | [INFO] [stdout] 400 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 400 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:409:7 [INFO] [stdout] | [INFO] [stdout] 409 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 409 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:413:7 [INFO] [stdout] | [INFO] [stdout] 413 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 413 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:417:7 [INFO] [stdout] | [INFO] [stdout] 417 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 417 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:421:7 [INFO] [stdout] | [INFO] [stdout] 421 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 421 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:425:7 [INFO] [stdout] | [INFO] [stdout] 425 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 425 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:429:7 [INFO] [stdout] | [INFO] [stdout] 429 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 429 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:433:7 [INFO] [stdout] | [INFO] [stdout] 433 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 433 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:437:7 [INFO] [stdout] | [INFO] [stdout] 437 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 437 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:441:7 [INFO] [stdout] | [INFO] [stdout] 441 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 441 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:445:7 [INFO] [stdout] | [INFO] [stdout] 445 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 445 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:450:7 [INFO] [stdout] | [INFO] [stdout] 450 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 450 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:453:7 [INFO] [stdout] | [INFO] [stdout] 453 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 453 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:463:7 [INFO] [stdout] | [INFO] [stdout] 463 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 463 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:472:7 [INFO] [stdout] | [INFO] [stdout] 472 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 472 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:477:7 [INFO] [stdout] | [INFO] [stdout] 477 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 477 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:482:7 [INFO] [stdout] | [INFO] [stdout] 482 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 482 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:487:7 [INFO] [stdout] | [INFO] [stdout] 487 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 487 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:499:7 [INFO] [stdout] | [INFO] [stdout] 499 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 499 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/prims.rs:511:7 [INFO] [stdout] | [INFO] [stdout] 511 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 511 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `super::TestStateApi` [INFO] [stdout] --> src/test_infrastructure.rs:1933:9 [INFO] [stdout] | [INFO] [stdout] 1933 | use super::TestStateApi; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deletable`, `EntryRaw`, `HasStateApi`, `INITIAL_NEXT_ITEM_PREFIX`, `StateBTreeSet`, `StateMap`, `StateSet`, and `TestStateBuilder` [INFO] [stdout] --> src/test_infrastructure.rs:1937:31 [INFO] [stdout] | [INFO] [stdout] 1937 | test_infrastructure::{TestStateBuilder, TestStateEntry}, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 1938 | Deletable, EntryRaw, HasStateApi, HasStateEntry, StateBTreeSet, StateMap, StateSet, [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ ^^^^^^^^^^^ ^^^^^^^^^^^^^ ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] 1939 | INITIAL_NEXT_ITEM_PREFIX, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Deserial` and `to_bytes` [INFO] [stdout] --> src/test_infrastructure.rs:1941:39 [INFO] [stdout] | [INFO] [stdout] 1941 | use concordium_contracts_common::{to_bytes, Deserial, Read, Seek, SeekFrom, Write}; [INFO] [stdout] | ^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_contract_state`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:2002:5 [INFO] [stdout] | [INFO] [stdout] 2002 | / fn test_contract_state() { [INFO] [stdout] 2003 | | let data = Rc::new(RefCell::new(vec![1; 100].into())); [INFO] [stdout] 2004 | | let mut state = TestStateEntry::open(data, Vec::new(), 0); [INFO] [stdout] 2005 | | assert_eq!(state.seek(SeekFrom::Start(100)), Ok(100), "Seeking to the end failed."); [INFO] [stdout] ... | [INFO] [stdout] 2059 | | ); [INFO] [stdout] 2060 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_contract_state_write`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:2063:5 [INFO] [stdout] | [INFO] [stdout] 2063 | / fn test_contract_state_write() { [INFO] [stdout] 2064 | | let data = Rc::new(RefCell::new(vec![0u8; 10].into())); [INFO] [stdout] 2065 | | let mut state = TestStateEntry::open(data, Vec::new(), 0); [INFO] [stdout] 2066 | | assert_eq!(state.write(&1u64.to_le_bytes()), Ok(8), "Incorrect number of bytes written."); [INFO] [stdout] ... | [INFO] [stdout] 2077 | | ); [INFO] [stdout] 2078 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_testhost_balance_queries_reflect_invoke`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:1968:5 [INFO] [stdout] | [INFO] [stdout] 1968 | / fn test_testhost_balance_queries_reflect_invoke() { [INFO] [stdout] 1969 | | use super::*; [INFO] [stdout] 1970 | | let mut host = TestHost::new((), TestStateBuilder::new()); [INFO] [stdout] ... | [INFO] [stdout] 1995 | | assert_eq!(self_new_balance, Amount::from_micro_ccd(2000)); [INFO] [stdout] 1996 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::test::test_testhost_balance_queries_reflect_transfers`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure.rs:1944:5 [INFO] [stdout] | [INFO] [stdout] 1944 | / fn test_testhost_balance_queries_reflect_transfers() { [INFO] [stdout] 1945 | | use super::*; [INFO] [stdout] 1946 | | let mut host = TestHost::new((), TestStateBuilder::new()); [INFO] [stdout] ... | [INFO] [stdout] 1964 | | assert_eq!(self_new_balance, Amount::from_micro_ccd(1000)); [INFO] [stdout] 1965 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::delete_entry_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:389:5 [INFO] [stdout] | [INFO] [stdout] 389 | / fn delete_entry_test() { [INFO] [stdout] 390 | | let key1 = [0]; [INFO] [stdout] 391 | | let key2 = [0, 0]; // A leaf, which is the child of the key1 node. [INFO] [stdout] 392 | | let mut trie = StateTrie::new(); [INFO] [stdout] ... | [INFO] [stdout] 402 | | assert!(trie.lookup(&key2).is_some()); // The child should still exist. [INFO] [stdout] 403 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::delete_prefix_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:406:5 [INFO] [stdout] | [INFO] [stdout] 406 | / fn delete_prefix_test() { [INFO] [stdout] 407 | | let key1 = [0]; [INFO] [stdout] 408 | | let key2 = [0, 0]; [INFO] [stdout] 409 | | let key3 = [0, 0, 0]; [INFO] [stdout] ... | [INFO] [stdout] 420 | | assert!(trie.lookup(&key3).is_none()); [INFO] [stdout] 421 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::double_create_overwrites_data`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:424:5 [INFO] [stdout] | [INFO] [stdout] 424 | / fn double_create_overwrites_data() { [INFO] [stdout] 425 | | let key = []; [INFO] [stdout] 426 | | let mut trie = StateTrie::new(); [INFO] [stdout] 427 | | create_entry(&mut trie, &key) [INFO] [stdout] ... | [INFO] [stdout] 434 | | assert!(res.is_err()) [INFO] [stdout] 435 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::index_conversion`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:475:5 [INFO] [stdout] | [INFO] [stdout] 475 | / fn index_conversion() { [INFO] [stdout] 476 | | let expected_key1 = [1, 2, 3, 4, 5, 6, 7]; [INFO] [stdout] 477 | | let expected_key2 = [92, 255, 23, 5]; [INFO] [stdout] 478 | | let index1 = super::to_indexes(&expected_key1); [INFO] [stdout] ... | [INFO] [stdout] 483 | | assert_eq!(expected_key2, &actual_key2[..]); [INFO] [stdout] 484 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::insert_get_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:374:5 [INFO] [stdout] | [INFO] [stdout] 374 | / fn insert_get_test() { [INFO] [stdout] 375 | | let expected_value = "hello"; [INFO] [stdout] 376 | | let key = [0, 1, 2]; [INFO] [stdout] 377 | | let mut trie = StateTrie::new(); [INFO] [stdout] ... | [INFO] [stdout] 385 | | assert_eq!(&expected_value, &actual_value); [INFO] [stdout] 386 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::iterator_test`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:438:5 [INFO] [stdout] | [INFO] [stdout] 438 | / fn iterator_test() { [INFO] [stdout] 439 | | let mut trie = StateTrie::new(); [INFO] [stdout] 440 | | [INFO] [stdout] 441 | | create_entry(&mut trie, b"a").write_u8(42).unwrap(); [INFO] [stdout] ... | [INFO] [stdout] 471 | | assert!(new_trie.next().is_none()); [INFO] [stdout] 472 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::read_from_deleted_aliased_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:516:5 [INFO] [stdout] | [INFO] [stdout] 516 | / fn read_from_deleted_aliased_entry_should_fail() { [INFO] [stdout] 517 | | let mut trie = StateTrie::new(); [INFO] [stdout] 518 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 519 | | let mut alias_entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] ... | [INFO] [stdout] 522 | | assert!(alias_entry.read_u8().is_err()); [INFO] [stdout] 523 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::read_from_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:505:5 [INFO] [stdout] | [INFO] [stdout] 505 | / fn read_from_deleted_entry_should_fail() { [INFO] [stdout] 506 | | let mut trie = StateTrie::new(); [INFO] [stdout] 507 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 508 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stdout] ... | [INFO] [stdout] 512 | | assert!(entry.read_u8().is_err()); [INFO] [stdout] 513 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::seek_on_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:496:5 [INFO] [stdout] | [INFO] [stdout] 496 | / fn seek_on_deleted_entry_should_fail() { [INFO] [stdout] 497 | | let mut trie = StateTrie::new(); [INFO] [stdout] 498 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 499 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stdout] 500 | | trie.delete_prefix(&[]).unwrap(); [INFO] [stdout] 501 | | assert!(entry.seek(SeekFrom::Start(0)).is_err()); [INFO] [stdout] 502 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::test_deep_clone`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:526:5 [INFO] [stdout] | [INFO] [stdout] 526 | / fn test_deep_clone() { [INFO] [stdout] 527 | | let mut trie = StateTrie::new(); [INFO] [stdout] 528 | | [INFO] [stdout] 529 | | // Create two entries [INFO] [stdout] ... | [INFO] [stdout] 565 | | assert!(trie_clone.lookup(b"qq").is_none()); [INFO] [stdout] 566 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated constant `test_infrastructure::trie::tests::write_to_deleted_entry_should_fail`: Deprecated in favor of [concordium-smart-contract-testing](https://docs.rs/concordium-smart-contract-testing). [INFO] [stdout] --> src/test_infrastructure/trie.rs:487:5 [INFO] [stdout] | [INFO] [stdout] 487 | / fn write_to_deleted_entry_should_fail() { [INFO] [stdout] 488 | | let mut trie = StateTrie::new(); [INFO] [stdout] 489 | | let mut entry = create_entry(&mut trie, b"ab"); [INFO] [stdout] 490 | | assert!(entry.write_u8(1).is_ok()); [INFO] [stdout] 491 | | trie.delete_prefix(&[]).unwrap(); [INFO] [stdout] 492 | | assert!(entry.write_u8(1).is_err()); [INFO] [stdout] 493 | | } [INFO] [stdout] | |_____^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 38 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `concordium-std` (lib) due to 39 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 38 previous errors; 18 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `concordium-std` (lib test) due to 39 previous errors; 18 warnings emitted [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "3485729e2c209ff72f513606a22b1c8366acd579e7404f935fafe8e27b349a78", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3485729e2c209ff72f513606a22b1c8366acd579e7404f935fafe8e27b349a78", kill_on_drop: false }` [INFO] [stdout] 3485729e2c209ff72f513606a22b1c8366acd579e7404f935fafe8e27b349a78