[INFO] fetching crate mmkv 0.5.3... [INFO] checking mmkv-0.5.3 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate mmkv 0.5.3 into /workspace/builds/worker-5-tc2/source [INFO] validating manifest of crates.io crate mmkv 0.5.3 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] removed /workspace/builds/worker-5-tc2/source/.cargo/config.toml [INFO] started tweaking crates.io crate mmkv 0.5.3 [INFO] finished tweaking crates.io crate mmkv 0.5.3 [INFO] tweaked toml for crates.io crate mmkv 0.5.3 written to /workspace/builds/worker-5-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 115 packages to latest compatible versions [INFO] [stderr] Adding generic-array v0.14.7 (available: v1.1.0) [INFO] [stderr] Adding jni-sys v0.3.0 (available: v0.4.0) [INFO] [stderr] Adding libloading v0.7.4 (available: v0.8.5) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding which v4.4.2 (available: v6.0.3) [INFO] [stderr] Adding windows-core v0.52.0 (available: v0.58.0) [INFO] [stderr] Adding windows-sys v0.45.0 (available: v0.59.0) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.0) [INFO] [stderr] Adding windows-targets v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_aarch64_gnullvm v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_aarch64_msvc v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_i686_gnu v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_i686_msvc v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_x86_64_gnu v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_x86_64_gnullvm v0.42.2 (available: v0.52.6) [INFO] [stderr] Adding windows_x86_64_msvc v0.42.2 (available: v0.52.6) [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-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] adb4a8b3a168520be5d9ab20fe1e653233c1dd7f92ec600008287909441bb2ff [INFO] running `Command { std: "docker" "start" "-a" "adb4a8b3a168520be5d9ab20fe1e653233c1dd7f92ec600008287909441bb2ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "adb4a8b3a168520be5d9ab20fe1e653233c1dd7f92ec600008287909441bb2ff", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "adb4a8b3a168520be5d9ab20fe1e653233c1dd7f92ec600008287909441bb2ff", kill_on_drop: false }` [INFO] [stdout] adb4a8b3a168520be5d9ab20fe1e653233c1dd7f92ec600008287909441bb2ff [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] b130bddfe455f2b34bb166aea929381fe472424ad9ed584362e8bec6daa6f738 [INFO] running `Command { std: "docker" "start" "-a" "b130bddfe455f2b34bb166aea929381fe472424ad9ed584362e8bec6daa6f738", 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] Compiling protobuf v3.5.1 [INFO] [stderr] Compiling rustix v0.38.37 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling anyhow v1.0.89 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling fastrand v2.1.1 [INFO] [stderr] Compiling protoc-bin-vendored-linux-x86_64 v3.0.0 [INFO] [stderr] Compiling protoc-bin-vendored-linux-aarch_64 v3.0.0 [INFO] [stderr] Compiling protoc-bin-vendored-macos-x86_64 v3.0.0 [INFO] [stderr] Compiling protoc-bin-vendored-linux-ppcle_64 v3.0.0 [INFO] [stderr] Compiling protoc-bin-vendored-linux-x86_32 v3.0.0 [INFO] [stderr] Compiling protoc-bin-vendored-win32 v3.0.0 [INFO] [stderr] Checking crc-catalog v2.4.0 [INFO] [stderr] Compiling protoc-bin-vendored v3.0.0 [INFO] [stderr] Checking crc v3.2.1 [INFO] [stderr] Compiling which v4.4.2 [INFO] [stderr] Compiling tempfile v3.12.0 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Compiling mmkv-proc-macro-lib v0.0.3 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Compiling thiserror v1.0.64 [INFO] [stderr] Compiling protobuf-support v3.5.1 [INFO] [stderr] Compiling protobuf-parse v3.5.1 [INFO] [stderr] Compiling protobuf-codegen v3.5.1 [INFO] [stderr] Compiling mmkv v0.5.3 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `mmkv` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/core/buffer.rs [INFO] [stderr] * src/ffi/ffi_buffer.rs [INFO] [stderr] * src/ffi/mod.rs [INFO] [stderr] * src/lib.rs [INFO] [stderr] * src/mmkv.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/lib.rs:37:6 [INFO] [stderr] | [INFO] [stderr] 37 | ($level:expr_2021, $tag: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/lib.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | ($level:expr_2021, $tag: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/lib.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | ($tag: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/lib.rs:50:6 [INFO] [stderr] | [INFO] [stderr] 50 | ($tag: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/lib.rs:56:6 [INFO] [stderr] | [INFO] [stderr] 56 | ($tag: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/lib.rs:62:6 [INFO] [stderr] | [INFO] [stderr] 62 | ($tag: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/lib.rs:68:6 [INFO] [stderr] | [INFO] [stderr] 68 | ($tag: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/core/buffer.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:50:26 [INFO] [stderr] | [INFO] [stderr] 50 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:65:26 [INFO] [stderr] | [INFO] [stderr] 65 | ($name:ident, $t:ty, $kv_type: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/ffi/ffi_buffer.rs:111:6 [INFO] [stderr] | [INFO] [stderr] 111 | ($target:expr_2021, $type:ty) => {{ [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/ffi/mod.rs:119:19 [INFO] [stderr] | [INFO] [stderr] 119 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, RawCStr) => {{ [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/ffi/mod.rs:119:35 [INFO] [stderr] | [INFO] [stderr] 119 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, RawCStr) => {{ [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/ffi/mod.rs:123:19 [INFO] [stderr] | [INFO] [stderr] 123 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, bool) => { [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/ffi/mod.rs:123:35 [INFO] [stderr] | [INFO] [stderr] 123 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, bool) => { [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/ffi/mod.rs:126:19 [INFO] [stderr] | [INFO] [stderr] 126 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i32) => { [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/ffi/mod.rs:126:35 [INFO] [stderr] | [INFO] [stderr] 126 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i32) => { [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/ffi/mod.rs:129:19 [INFO] [stderr] | [INFO] [stderr] 129 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i64) => { [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/ffi/mod.rs:129:35 [INFO] [stderr] | [INFO] [stderr] 129 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i64) => { [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/ffi/mod.rs:132:19 [INFO] [stderr] | [INFO] [stderr] 132 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f32) => { [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/ffi/mod.rs:132:35 [INFO] [stderr] | [INFO] [stderr] 132 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f32) => { [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/ffi/mod.rs:135:19 [INFO] [stderr] | [INFO] [stderr] 135 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f64) => { [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/ffi/mod.rs:135:35 [INFO] [stderr] | [INFO] [stderr] 135 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f64) => { [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/ffi/mod.rs:138:19 [INFO] [stderr] | [INFO] [stderr] 138 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CByteArray) => { [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/ffi/mod.rs:138:35 [INFO] [stderr] | [INFO] [stderr] 138 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CByteArray) => { [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/ffi/mod.rs:138:53 [INFO] [stderr] | [INFO] [stderr] 138 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CByteArray) => { [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/ffi/mod.rs:141:19 [INFO] [stderr] | [INFO] [stderr] 141 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI32Array) => { [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/ffi/mod.rs:141:35 [INFO] [stderr] | [INFO] [stderr] 141 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI32Array) => { [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/ffi/mod.rs:141:53 [INFO] [stderr] | [INFO] [stderr] 141 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI32Array) => { [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/ffi/mod.rs:144:19 [INFO] [stderr] | [INFO] [stderr] 144 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI64Array) => { [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/ffi/mod.rs:144:35 [INFO] [stderr] | [INFO] [stderr] 144 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI64Array) => { [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/ffi/mod.rs:144:53 [INFO] [stderr] | [INFO] [stderr] 144 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI64Array) => { [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/ffi/mod.rs:147:19 [INFO] [stderr] | [INFO] [stderr] 147 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF32Array) => { [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/ffi/mod.rs:147:35 [INFO] [stderr] | [INFO] [stderr] 147 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF32Array) => { [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/ffi/mod.rs:147:53 [INFO] [stderr] | [INFO] [stderr] 147 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF32Array) => { [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/ffi/mod.rs:150:19 [INFO] [stderr] | [INFO] [stderr] 150 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF64Array) => { [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/ffi/mod.rs:150:35 [INFO] [stderr] | [INFO] [stderr] 150 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF64Array) => { [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/ffi/mod.rs:150:53 [INFO] [stderr] | [INFO] [stderr] 150 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF64Array) => { [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/ffi/mod.rs:156:19 [INFO] [stderr] | [INFO] [stderr] 156 | ($mmkv:ident, $key:expr_2021, ByteSlice) => { [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/ffi/mod.rs:159:19 [INFO] [stderr] | [INFO] [stderr] 159 | ($mmkv:ident, $key:expr_2021, bool) => { [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/ffi/mod.rs:162:19 [INFO] [stderr] | [INFO] [stderr] 162 | ($mmkv:ident, $key:expr_2021, i32) => { [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/ffi/mod.rs:165:19 [INFO] [stderr] | [INFO] [stderr] 165 | ($mmkv:ident, $key:expr_2021, i64) => { [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/ffi/mod.rs:168:19 [INFO] [stderr] | [INFO] [stderr] 168 | ($mmkv:ident, $key:expr_2021, f32) => { [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/ffi/mod.rs:171:19 [INFO] [stderr] | [INFO] [stderr] 171 | ($mmkv:ident, $key:expr_2021, f64) => { [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/ffi/mod.rs:174:19 [INFO] [stderr] | [INFO] [stderr] 174 | ($mmkv:ident, $key:expr_2021, CByteArray) => { [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/ffi/mod.rs:179:19 [INFO] [stderr] | [INFO] [stderr] 179 | ($mmkv:ident, $key:expr_2021, CI32Array) => { [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/ffi/mod.rs:184:19 [INFO] [stderr] | [INFO] [stderr] 184 | ($mmkv:ident, $key:expr_2021, CI64Array) => { [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/ffi/mod.rs:189:19 [INFO] [stderr] | [INFO] [stderr] 189 | ($mmkv:ident, $key:expr_2021, CF32Array) => { [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/ffi/mod.rs:194:19 [INFO] [stderr] | [INFO] [stderr] 194 | ($mmkv:ident, $key:expr_2021, CF64Array) => { [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/ffi/mod.rs:211:35 [INFO] [stderr] | [INFO] [stderr] 211 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [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/ffi/mod.rs:233:35 [INFO] [stderr] | [INFO] [stderr] 233 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [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/ffi/mod.rs:256:35 [INFO] [stderr] | [INFO] [stderr] 256 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [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/mmkv.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | ($self:ident, $key:expr_2021, $decode:ident) => { [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] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:274:3 [INFO] [stdout] | [INFO] [stdout] 274 | #[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] 274 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:281:3 [INFO] [stdout] | [INFO] [stdout] 281 | #[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] 281 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/mmkv.rs:67:19 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:286:3 [INFO] [stdout] | [INFO] [stdout] 286 | #[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] 286 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:291:3 [INFO] [stdout] | [INFO] [stdout] 291 | #[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] 291 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 67 | ($self:ident, $key:expr_2021, $value:expr_2021) => { [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:296:3 [INFO] [stdout] | [INFO] [stdout] 296 | #[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] 296 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:301:3 [INFO] [stdout] | [INFO] [stdout] 301 | #[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] 301 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:307:3 [INFO] [stdout] | [INFO] [stdout] 307 | #[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] 307 | #[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/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[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/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[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/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/mmkv.rs:67:35 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 67 | ($self:ident, $key:expr_2021, $value:expr_2021) => { [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[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/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[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/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[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/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/mmkv.rs:76:19 [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] 76 | ($self:ident, $key: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] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/ffi/mod.rs:310:19 [INFO] [stderr] | [INFO] [stderr] 308 | pub unsafe extern "C" fn delete(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] 309 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stderr] 310 | let key_str = unsafe { CStr::from_ptr(key) }.to_str().unwrap(); [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 57 previous errors; 1 warning 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/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lib.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | ($level:expr, $tag: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] = 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] 37 | ($level:expr_2021, $tag: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/lib.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | ($level:expr, $tag: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] 37 | ($level:expr, $tag: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/lib.rs:43:11 [INFO] [stdout] | [INFO] [stdout] 43 | ($tag: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] 43 | ($tag: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/lib.rs:50:11 [INFO] [stdout] | [INFO] [stdout] 50 | ($tag: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] 50 | ($tag: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/lib.rs:56:11 [INFO] [stdout] | [INFO] [stdout] 56 | ($tag: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] 56 | ($tag: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/lib.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | ($tag: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] 62 | ($tag: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/lib.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | ($tag: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] 68 | ($tag: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/core/buffer.rs:30:35 [INFO] [stdout] | [INFO] [stdout] 30 | ($name:ident, $t:ty, $kv_type: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] 30 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:42:35 [INFO] [stdout] | [INFO] [stdout] 42 | ($name:ident, $t:ty, $kv_type: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] 42 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | ($name:ident, $t:ty, $kv_type: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] 50 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:65:35 [INFO] [stdout] | [INFO] [stdout] 65 | ($name:ident, $t:ty, $kv_type: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] 65 | ($name:ident, $t:ty, $kv_type: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/ffi/ffi_buffer.rs:111:14 [INFO] [stdout] | [INFO] [stdout] 111 | ($target:expr, $type:ty) => {{ [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] 111 | ($target:expr_2021, $type:ty) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | ($mmkv:ident, $key:expr, $value:expr, RawCStr) => {{ [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] 119 | ($mmkv:ident, $key:expr_2021, $value:expr, RawCStr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:119:37 [INFO] [stdout] | [INFO] [stdout] 119 | ($mmkv:ident, $key:expr, $value:expr, RawCStr) => {{ [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] 119 | ($mmkv:ident, $key:expr, $value:expr_2021, RawCStr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:123:24 [INFO] [stdout] | [INFO] [stdout] 123 | ($mmkv:ident, $key:expr, $value:expr, bool) => { [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] 123 | ($mmkv:ident, $key:expr_2021, $value:expr, bool) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:123:37 [INFO] [stdout] | [INFO] [stdout] 123 | ($mmkv:ident, $key:expr, $value:expr, bool) => { [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] 123 | ($mmkv:ident, $key:expr, $value:expr_2021, bool) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:126:24 [INFO] [stdout] | [INFO] [stdout] 126 | ($mmkv:ident, $key:expr, $value:expr, i32) => { [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] 126 | ($mmkv:ident, $key:expr_2021, $value:expr, i32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:126:37 [INFO] [stdout] | [INFO] [stdout] 126 | ($mmkv:ident, $key:expr, $value:expr, i32) => { [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] 126 | ($mmkv:ident, $key:expr, $value:expr_2021, i32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:129:24 [INFO] [stdout] | [INFO] [stdout] 129 | ($mmkv:ident, $key:expr, $value:expr, i64) => { [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] 129 | ($mmkv:ident, $key:expr_2021, $value:expr, i64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:129:37 [INFO] [stdout] | [INFO] [stdout] 129 | ($mmkv:ident, $key:expr, $value:expr, i64) => { [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] 129 | ($mmkv:ident, $key:expr, $value:expr_2021, i64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:132:24 [INFO] [stdout] | [INFO] [stdout] 132 | ($mmkv:ident, $key:expr, $value:expr, f32) => { [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] 132 | ($mmkv:ident, $key:expr_2021, $value:expr, f32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:132:37 [INFO] [stdout] | [INFO] [stdout] 132 | ($mmkv:ident, $key:expr, $value:expr, f32) => { [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] 132 | ($mmkv:ident, $key:expr, $value:expr_2021, f32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:135:24 [INFO] [stdout] | [INFO] [stdout] 135 | ($mmkv:ident, $key:expr, $value:expr, f64) => { [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] 135 | ($mmkv:ident, $key:expr_2021, $value:expr, f64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:135:37 [INFO] [stdout] | [INFO] [stdout] 135 | ($mmkv:ident, $key:expr, $value:expr, f64) => { [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] 135 | ($mmkv:ident, $key:expr, $value:expr_2021, f64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:138:24 [INFO] [stdout] | [INFO] [stdout] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CByteArray) => { [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] 138 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:138:37 [INFO] [stdout] | [INFO] [stdout] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CByteArray) => { [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] 138 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:138:48 [INFO] [stdout] | [INFO] [stdout] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CByteArray) => { [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] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:141:24 [INFO] [stdout] | [INFO] [stdout] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI32Array) => { [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] 141 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:141:37 [INFO] [stdout] | [INFO] [stdout] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI32Array) => { [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] 141 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:141:48 [INFO] [stdout] | [INFO] [stdout] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI32Array) => { [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] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI64Array) => { [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] 144 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:144:37 [INFO] [stdout] | [INFO] [stdout] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI64Array) => { [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] 144 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:144:48 [INFO] [stdout] | [INFO] [stdout] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI64Array) => { [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] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:147:24 [INFO] [stdout] | [INFO] [stdout] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF32Array) => { [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] 147 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:147:37 [INFO] [stdout] | [INFO] [stdout] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF32Array) => { [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] 147 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:147:48 [INFO] [stdout] | [INFO] [stdout] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF32Array) => { [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] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:150:24 [INFO] [stdout] | [INFO] [stdout] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF64Array) => { [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] 150 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF64Array) => { [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] 150 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:150:48 [INFO] [stdout] | [INFO] [stdout] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF64Array) => { [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] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:156:24 [INFO] [stdout] | [INFO] [stdout] 156 | ($mmkv:ident, $key:expr, ByteSlice) => { [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] 156 | ($mmkv:ident, $key:expr_2021, ByteSlice) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:159:24 [INFO] [stdout] | [INFO] [stdout] 159 | ($mmkv:ident, $key:expr, bool) => { [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] 159 | ($mmkv:ident, $key:expr_2021, bool) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:162:24 [INFO] [stdout] | [INFO] [stdout] 162 | ($mmkv:ident, $key:expr, i32) => { [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] 162 | ($mmkv:ident, $key:expr_2021, i32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:165:24 [INFO] [stdout] | [INFO] [stdout] 165 | ($mmkv:ident, $key:expr, i64) => { [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] 165 | ($mmkv:ident, $key:expr_2021, i64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:168:24 [INFO] [stdout] | [INFO] [stdout] 168 | ($mmkv:ident, $key:expr, f32) => { [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] 168 | ($mmkv:ident, $key:expr_2021, f32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:171:24 [INFO] [stdout] | [INFO] [stdout] 171 | ($mmkv:ident, $key:expr, f64) => { [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] 171 | ($mmkv:ident, $key:expr_2021, f64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | ($mmkv:ident, $key:expr, CByteArray) => { [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] 174 | ($mmkv:ident, $key:expr_2021, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:179:24 [INFO] [stdout] | [INFO] [stdout] 179 | ($mmkv:ident, $key:expr, CI32Array) => { [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] 179 | ($mmkv:ident, $key:expr_2021, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:184:24 [INFO] [stdout] | [INFO] [stdout] 184 | ($mmkv:ident, $key:expr, CI64Array) => { [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] 184 | ($mmkv:ident, $key:expr_2021, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:189:24 [INFO] [stdout] | [INFO] [stdout] 189 | ($mmkv:ident, $key:expr, CF32Array) => { [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] 189 | ($mmkv:ident, $key:expr_2021, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:194:24 [INFO] [stdout] | [INFO] [stdout] 194 | ($mmkv:ident, $key:expr, CF64Array) => { [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] 194 | ($mmkv:ident, $key:expr_2021, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:211:47 [INFO] [stdout] | [INFO] [stdout] 211 | ($name:ident, $value_type:tt, $type_token:expr, $log:literal) => { [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] 211 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:233:47 [INFO] [stdout] | [INFO] [stdout] 233 | ($name:ident, $value_type:tt, $type_token:expr, $log:literal) => { [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] 233 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:256:47 [INFO] [stdout] | [INFO] [stdout] 256 | ($name:ident, $value_type:tt, $type_token:expr, $log:literal) => { [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] 256 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/mmkv.rs:58:24 [INFO] [stdout] | [INFO] [stdout] 58 | ($self:ident, $key:expr, $decode:ident) => { [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] 58 | ($self:ident, $key:expr_2021, $decode:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/mmkv.rs:67:24 [INFO] [stdout] | [INFO] [stdout] 67 | ($self:ident, $key:expr, $value: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] 67 | ($self:ident, $key:expr_2021, $value: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/mmkv.rs:67:37 [INFO] [stdout] | [INFO] [stdout] 67 | ($self:ident, $key:expr, $value: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] 67 | ($self:ident, $key:expr, $value: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/mmkv.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | ($self:ident, $key: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] 76 | ($self:ident, $key:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | Types::I32 => (self.raw_data as *mut i32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | unsafe fn drop_data(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:153:27 [INFO] [stdout] | [INFO] [stdout] 153 | Types::Str => (self.raw_data as *mut ByteSlice).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:154:28 [INFO] [stdout] | [INFO] [stdout] 154 | Types::Bool => (self.raw_data as *mut bool).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:155:27 [INFO] [stdout] | [INFO] [stdout] 155 | Types::I64 => (self.raw_data as *mut i64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | Types::F32 => (self.raw_data as *mut f32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:157:27 [INFO] [stdout] | [INFO] [stdout] 157 | Types::F64 => (self.raw_data as *mut f64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:162:34 [INFO] [stdout] | [INFO] [stdout] 162 | | Types::F64Array => (self.raw_data as *mut RawTypedArray).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | self.err.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | unsafe fn drop_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_data` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | self.drop_data(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_error` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | self.drop_error(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | (*self.reason).bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | (*self.reason).len, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | self.reason.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | (ptr as *mut RawBuffer).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:292:1 [INFO] [stdout] | [INFO] [stdout] 292 | pub unsafe extern "C" fn free_buffer(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:298:10 [INFO] [stdout] | [INFO] [stdout] 298 | drop(Box::from_raw(ptr as *mut MMKV)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:297:1 [INFO] [stdout] | [INFO] [stdout] 297 | pub unsafe extern "C" fn close_instance(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:303:16 [INFO] [stdout] | [INFO] [stdout] 303 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:302:1 [INFO] [stdout] | [INFO] [stdout] 302 | pub unsafe extern "C" fn clear_data(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:309:16 [INFO] [stdout] | [INFO] [stdout] 309 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:308:1 [INFO] [stdout] | [INFO] [stdout] 308 | pub unsafe extern "C" fn delete(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:120:25 [INFO] [stdout] | [INFO] [stdout] 120 | let value_str = CStr::from_ptr($value).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:139:36 [INFO] [stdout] | [INFO] [stdout] 139 | $mmkv.put_byte_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:142:35 [INFO] [stdout] | [INFO] [stdout] 142 | $mmkv.put_i32_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | $mmkv.put_i64_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:148:35 [INFO] [stdout] | [INFO] [stdout] 148 | $mmkv.put_f32_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:151:35 [INFO] [stdout] | [INFO] [stdout] 151 | $mmkv.put_f64_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/buffer.rs:147:12 [INFO] [stdout] | [INFO] [stdout] 147 | if let Ok(buffer_type) = self.0.type_.enum_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/core/buffer.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | } else { [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] 147 ~ match self.0.type_.enum_value() { Ok(buffer_type) => { [INFO] [stdout] 148 | buffer_type == Types::DELETED [INFO] [stdout] 149 ~ } _ => { [INFO] [stdout] 150 | false [INFO] [stdout] 151 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/buffer.rs:175:12 [INFO] [stdout] | [INFO] [stdout] 175 | if let Ok(str) = String::from_utf8(self.0.value.to_vec()) { [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/core/buffer.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | } 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] 175 ~ match String::from_utf8(self.0.value.to_vec()) { Ok(str) => { [INFO] [stdout] 176 | Ok(str) [INFO] [stdout] 177 ~ } _ => { [INFO] [stdout] 178 | Err(DataInvalid) [INFO] [stdout] 179 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> /opt/rustwide/target/debug/build/mmkv-113e9f8c1e46a559/out/protos/kv.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | while let Some(tag) = is.read_raw_tag_or_eof()? { [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] --> /opt/rustwide/target/debug/build/mmkv-113e9f8c1e46a559/out/protos/kv.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/io_looper.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(handle) = self.executor.join_handle.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/core/io_looper.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 57 ~ match self.executor.join_handle.take() { Some(handle) => { [INFO] [stdout] 58 | debug!(LOG_TAG, "kill io thread"); [INFO] [stdout] 59 | handle.join().unwrap(); [INFO] [stdout] 60 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/io_looper.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | if let Some(handle) = self.executor.join_handle.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/core/io_looper.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 103 ~ match self.executor.join_handle.take() { Some(handle) => { [INFO] [stdout] 104 | handle.join().unwrap(); [INFO] [stdout] 105 | verbose!(LOG_TAG, "io thread finished"); [INFO] [stdout] 106 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/io_looper.rs:127:27 [INFO] [stdout] | [INFO] [stdout] 127 | while let Some(job) = buffer.pop_front() { [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/core/io_looper.rs:129:21 [INFO] [stdout] | [INFO] [stdout] 129 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/iter.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | if let Some(data) = buffer { [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/core/iter.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 44 ~ match buffer { Some(data) => { [INFO] [stdout] 45 | if data.is_deleting() { [INFO] [stdout] ... [INFO] [stdout] 49 | } [INFO] [stdout] 50 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 172 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Migrating tests/integration_test.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `mmkv` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/core/buffer.rs [INFO] [stderr] * src/ffi/ffi_buffer.rs [INFO] [stderr] * src/ffi/mod.rs [INFO] [stderr] * src/lib.rs [INFO] [stderr] * src/mmkv.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/lib.rs:37:6 [INFO] [stderr] | [INFO] [stderr] 37 | ($level:expr_2021, $tag: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/lib.rs:37:24 [INFO] [stderr] | [INFO] [stderr] 37 | ($level:expr_2021, $tag: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/lib.rs:43:6 [INFO] [stderr] | [INFO] [stderr] 43 | ($tag: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/lib.rs:50:6 [INFO] [stderr] | [INFO] [stderr] 50 | ($tag: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/lib.rs:56:6 [INFO] [stderr] | [INFO] [stderr] 56 | ($tag: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/lib.rs:62:6 [INFO] [stderr] | [INFO] [stderr] 62 | ($tag: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/lib.rs:68:6 [INFO] [stderr] | [INFO] [stderr] 68 | ($tag: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/core/buffer.rs:30:26 [INFO] [stderr] | [INFO] [stderr] 30 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:42:26 [INFO] [stderr] | [INFO] [stderr] 42 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:50:26 [INFO] [stderr] | [INFO] [stderr] 50 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:65:26 [INFO] [stderr] | [INFO] [stderr] 65 | ($name:ident, $t:ty, $kv_type: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/ffi/ffi_buffer.rs:111:6 [INFO] [stderr] | [INFO] [stderr] 111 | ($target:expr_2021, $type:ty) => {{ [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/ffi/mod.rs:119:19 [INFO] [stderr] | [INFO] [stderr] 119 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, RawCStr) => {{ [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/ffi/mod.rs:119:35 [INFO] [stderr] | [INFO] [stderr] 119 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, RawCStr) => {{ [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/ffi/mod.rs:123:19 [INFO] [stderr] | [INFO] [stderr] 123 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, bool) => { [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/ffi/mod.rs:123:35 [INFO] [stderr] | [INFO] [stderr] 123 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, bool) => { [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/ffi/mod.rs:126:19 [INFO] [stderr] | [INFO] [stderr] 126 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i32) => { [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/ffi/mod.rs:126:35 [INFO] [stderr] | [INFO] [stderr] 126 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i32) => { [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/ffi/mod.rs:129:19 [INFO] [stderr] | [INFO] [stderr] 129 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i64) => { [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/ffi/mod.rs:129:35 [INFO] [stderr] | [INFO] [stderr] 129 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, i64) => { [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/ffi/mod.rs:132:19 [INFO] [stderr] | [INFO] [stderr] 132 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f32) => { [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/ffi/mod.rs:132:35 [INFO] [stderr] | [INFO] [stderr] 132 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f32) => { [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/ffi/mod.rs:135:19 [INFO] [stderr] | [INFO] [stderr] 135 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f64) => { [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/ffi/mod.rs:135:35 [INFO] [stderr] | [INFO] [stderr] 135 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, f64) => { [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/ffi/mod.rs:138:19 [INFO] [stderr] | [INFO] [stderr] 138 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CByteArray) => { [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/ffi/mod.rs:138:35 [INFO] [stderr] | [INFO] [stderr] 138 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CByteArray) => { [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/ffi/mod.rs:138:53 [INFO] [stderr] | [INFO] [stderr] 138 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CByteArray) => { [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/ffi/mod.rs:141:19 [INFO] [stderr] | [INFO] [stderr] 141 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI32Array) => { [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/ffi/mod.rs:141:35 [INFO] [stderr] | [INFO] [stderr] 141 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI32Array) => { [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/ffi/mod.rs:141:53 [INFO] [stderr] | [INFO] [stderr] 141 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI32Array) => { [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/ffi/mod.rs:144:19 [INFO] [stderr] | [INFO] [stderr] 144 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI64Array) => { [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/ffi/mod.rs:144:35 [INFO] [stderr] | [INFO] [stderr] 144 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI64Array) => { [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/ffi/mod.rs:144:53 [INFO] [stderr] | [INFO] [stderr] 144 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CI64Array) => { [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/ffi/mod.rs:147:19 [INFO] [stderr] | [INFO] [stderr] 147 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF32Array) => { [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/ffi/mod.rs:147:35 [INFO] [stderr] | [INFO] [stderr] 147 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF32Array) => { [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/ffi/mod.rs:147:53 [INFO] [stderr] | [INFO] [stderr] 147 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF32Array) => { [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/ffi/mod.rs:150:19 [INFO] [stderr] | [INFO] [stderr] 150 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF64Array) => { [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/ffi/mod.rs:150:35 [INFO] [stderr] | [INFO] [stderr] 150 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF64Array) => { [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/ffi/mod.rs:150:53 [INFO] [stderr] | [INFO] [stderr] 150 | ($mmkv:ident, $key:expr_2021, $value:expr_2021, $len:expr_2021, CF64Array) => { [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/ffi/mod.rs:156:19 [INFO] [stderr] | [INFO] [stderr] 156 | ($mmkv:ident, $key:expr_2021, ByteSlice) => { [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/ffi/mod.rs:159:19 [INFO] [stderr] | [INFO] [stderr] 159 | ($mmkv:ident, $key:expr_2021, bool) => { [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/ffi/mod.rs:162:19 [INFO] [stderr] | [INFO] [stderr] 162 | ($mmkv:ident, $key:expr_2021, i32) => { [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/ffi/mod.rs:165:19 [INFO] [stderr] | [INFO] [stderr] 165 | ($mmkv:ident, $key:expr_2021, i64) => { [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/ffi/mod.rs:168:19 [INFO] [stderr] | [INFO] [stderr] 168 | ($mmkv:ident, $key:expr_2021, f32) => { [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/ffi/mod.rs:171:19 [INFO] [stderr] | [INFO] [stderr] 171 | ($mmkv:ident, $key:expr_2021, f64) => { [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/ffi/mod.rs:174:19 [INFO] [stderr] | [INFO] [stderr] 174 | ($mmkv:ident, $key:expr_2021, CByteArray) => { [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/ffi/mod.rs:179:19 [INFO] [stderr] | [INFO] [stderr] 179 | ($mmkv:ident, $key:expr_2021, CI32Array) => { [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/ffi/mod.rs:184:19 [INFO] [stderr] | [INFO] [stderr] 184 | ($mmkv:ident, $key:expr_2021, CI64Array) => { [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/ffi/mod.rs:189:19 [INFO] [stderr] | [INFO] [stderr] 189 | ($mmkv:ident, $key:expr_2021, CF32Array) => { [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/ffi/mod.rs:194:19 [INFO] [stderr] | [INFO] [stderr] 194 | ($mmkv:ident, $key:expr_2021, CF64Array) => { [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/ffi/mod.rs:211:35 [INFO] [stderr] | [INFO] [stderr] 211 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [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/ffi/mod.rs:233:35 [INFO] [stderr] | [INFO] [stderr] 233 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [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/ffi/mod.rs:256:35 [INFO] [stderr] | [INFO] [stderr] 256 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [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/mmkv.rs:58:19 [INFO] [stderr] | [INFO] [stderr] 58 | ($self:ident, $key:expr_2021, $decode:ident) => { [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/mmkv.rs:67:19 [INFO] [stderr] | [INFO] [stderr] 67 | ($self:ident, $key:expr_2021, $value: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/mmkv.rs:67:35 [INFO] [stderr] | [INFO] [stderr] 67 | ($self:ident, $key:expr_2021, $value: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/mmkv.rs:76:19 [INFO] [stderr] | [INFO] [stderr] 76 | ($self:ident, $key: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] warning: unnecessary `unsafe` block [INFO] [stderr] --> src/ffi/mod.rs:310:19 [INFO] [stderr] | [INFO] [stderr] 308 | pub unsafe extern "C" fn delete(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { unsafe { [INFO] [stderr] | ------ because it's nested under this `unsafe` block [INFO] [stderr] 309 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stderr] 310 | let key_str = unsafe { CStr::from_ptr(key) }.to_str().unwrap(); [INFO] [stderr] | ^^^^^^ unnecessary `unsafe` block [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_unsafe)]` on by default [INFO] [stderr] [INFO] [stderr] error: aborting due to 57 previous errors; 1 warning 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/ffi/mod.rs:274:3 [INFO] [stdout] | [INFO] [stdout] 274 | #[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] 274 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:281:3 [INFO] [stdout] | [INFO] [stdout] 281 | #[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] 281 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:286:3 [INFO] [stdout] | [INFO] [stdout] 286 | #[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] 286 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:291:3 [INFO] [stdout] | [INFO] [stdout] 291 | #[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] 291 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:296:3 [INFO] [stdout] | [INFO] [stdout] 296 | #[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] 296 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:301:3 [INFO] [stdout] | [INFO] [stdout] 301 | #[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] 301 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:307:3 [INFO] [stdout] | [INFO] [stdout] 307 | #[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] 307 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [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: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/lib.rs:37:13 [INFO] [stdout] | [INFO] [stdout] 37 | ($level:expr, $tag: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] = 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] 37 | ($level:expr_2021, $tag: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/lib.rs:37:24 [INFO] [stdout] | [INFO] [stdout] 37 | ($level:expr, $tag: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] 37 | ($level:expr, $tag: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/lib.rs:43:11 [INFO] [stdout] | [INFO] [stdout] 43 | ($tag: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] 43 | ($tag: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/lib.rs:50:11 [INFO] [stdout] | [INFO] [stdout] 50 | ($tag: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] 50 | ($tag: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/lib.rs:56:11 [INFO] [stdout] | [INFO] [stdout] 56 | ($tag: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] 56 | ($tag: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/lib.rs:62:11 [INFO] [stdout] | [INFO] [stdout] 62 | ($tag: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] 62 | ($tag: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/lib.rs:68:11 [INFO] [stdout] | [INFO] [stdout] 68 | ($tag: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] 68 | ($tag: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/core/buffer.rs:30:35 [INFO] [stdout] | [INFO] [stdout] 30 | ($name:ident, $t:ty, $kv_type: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] 30 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:42:35 [INFO] [stdout] | [INFO] [stdout] 42 | ($name:ident, $t:ty, $kv_type: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] 42 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:50:35 [INFO] [stdout] | [INFO] [stdout] 50 | ($name:ident, $t:ty, $kv_type: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] 50 | ($name:ident, $t:ty, $kv_type: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/core/buffer.rs:65:35 [INFO] [stdout] | [INFO] [stdout] 65 | ($name:ident, $t:ty, $kv_type: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] 65 | ($name:ident, $t:ty, $kv_type: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/ffi/ffi_buffer.rs:111:14 [INFO] [stdout] | [INFO] [stdout] 111 | ($target:expr, $type:ty) => {{ [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] 111 | ($target:expr_2021, $type:ty) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:119:24 [INFO] [stdout] | [INFO] [stdout] 119 | ($mmkv:ident, $key:expr, $value:expr, RawCStr) => {{ [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] 119 | ($mmkv:ident, $key:expr_2021, $value:expr, RawCStr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:119:37 [INFO] [stdout] | [INFO] [stdout] 119 | ($mmkv:ident, $key:expr, $value:expr, RawCStr) => {{ [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] 119 | ($mmkv:ident, $key:expr, $value:expr_2021, RawCStr) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:123:24 [INFO] [stdout] | [INFO] [stdout] 123 | ($mmkv:ident, $key:expr, $value:expr, bool) => { [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] 123 | ($mmkv:ident, $key:expr_2021, $value:expr, bool) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:123:37 [INFO] [stdout] | [INFO] [stdout] 123 | ($mmkv:ident, $key:expr, $value:expr, bool) => { [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] 123 | ($mmkv:ident, $key:expr, $value:expr_2021, bool) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:126:24 [INFO] [stdout] | [INFO] [stdout] 126 | ($mmkv:ident, $key:expr, $value:expr, i32) => { [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] 126 | ($mmkv:ident, $key:expr_2021, $value:expr, i32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:126:37 [INFO] [stdout] | [INFO] [stdout] 126 | ($mmkv:ident, $key:expr, $value:expr, i32) => { [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] 126 | ($mmkv:ident, $key:expr, $value:expr_2021, i32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:129:24 [INFO] [stdout] | [INFO] [stdout] 129 | ($mmkv:ident, $key:expr, $value:expr, i64) => { [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] 129 | ($mmkv:ident, $key:expr_2021, $value:expr, i64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:129:37 [INFO] [stdout] | [INFO] [stdout] 129 | ($mmkv:ident, $key:expr, $value:expr, i64) => { [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] 129 | ($mmkv:ident, $key:expr, $value:expr_2021, i64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:132:24 [INFO] [stdout] | [INFO] [stdout] 132 | ($mmkv:ident, $key:expr, $value:expr, f32) => { [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] 132 | ($mmkv:ident, $key:expr_2021, $value:expr, f32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:132:37 [INFO] [stdout] | [INFO] [stdout] 132 | ($mmkv:ident, $key:expr, $value:expr, f32) => { [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] 132 | ($mmkv:ident, $key:expr, $value:expr_2021, f32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:135:24 [INFO] [stdout] | [INFO] [stdout] 135 | ($mmkv:ident, $key:expr, $value:expr, f64) => { [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] 135 | ($mmkv:ident, $key:expr_2021, $value:expr, f64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:135:37 [INFO] [stdout] | [INFO] [stdout] 135 | ($mmkv:ident, $key:expr, $value:expr, f64) => { [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] 135 | ($mmkv:ident, $key:expr, $value:expr_2021, f64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:138:24 [INFO] [stdout] | [INFO] [stdout] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CByteArray) => { [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] 138 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:138:37 [INFO] [stdout] | [INFO] [stdout] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CByteArray) => { [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] 138 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:138:48 [INFO] [stdout] | [INFO] [stdout] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CByteArray) => { [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] 138 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:141:24 [INFO] [stdout] | [INFO] [stdout] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI32Array) => { [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] 141 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:141:37 [INFO] [stdout] | [INFO] [stdout] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI32Array) => { [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] 141 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:141:48 [INFO] [stdout] | [INFO] [stdout] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI32Array) => { [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] 141 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:144:24 [INFO] [stdout] | [INFO] [stdout] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI64Array) => { [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] 144 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:144:37 [INFO] [stdout] | [INFO] [stdout] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI64Array) => { [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] 144 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:144:48 [INFO] [stdout] | [INFO] [stdout] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CI64Array) => { [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] 144 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:147:24 [INFO] [stdout] | [INFO] [stdout] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF32Array) => { [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] 147 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:147:37 [INFO] [stdout] | [INFO] [stdout] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF32Array) => { [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] 147 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:147:48 [INFO] [stdout] | [INFO] [stdout] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF32Array) => { [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] 147 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:150:24 [INFO] [stdout] | [INFO] [stdout] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF64Array) => { [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] 150 | ($mmkv:ident, $key:expr_2021, $value:expr, $len:expr, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:150:37 [INFO] [stdout] | [INFO] [stdout] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF64Array) => { [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] 150 | ($mmkv:ident, $key:expr, $value:expr_2021, $len:expr, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:150:48 [INFO] [stdout] | [INFO] [stdout] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr, CF64Array) => { [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] 150 | ($mmkv:ident, $key:expr, $value:expr, $len:expr_2021, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:156:24 [INFO] [stdout] | [INFO] [stdout] 156 | ($mmkv:ident, $key:expr, ByteSlice) => { [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] 156 | ($mmkv:ident, $key:expr_2021, ByteSlice) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:159:24 [INFO] [stdout] | [INFO] [stdout] 159 | ($mmkv:ident, $key:expr, bool) => { [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] 159 | ($mmkv:ident, $key:expr_2021, bool) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:162:24 [INFO] [stdout] | [INFO] [stdout] 162 | ($mmkv:ident, $key:expr, i32) => { [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] 162 | ($mmkv:ident, $key:expr_2021, i32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:165:24 [INFO] [stdout] | [INFO] [stdout] 165 | ($mmkv:ident, $key:expr, i64) => { [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] 165 | ($mmkv:ident, $key:expr_2021, i64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:168:24 [INFO] [stdout] | [INFO] [stdout] 168 | ($mmkv:ident, $key:expr, f32) => { [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] 168 | ($mmkv:ident, $key:expr_2021, f32) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:171:24 [INFO] [stdout] | [INFO] [stdout] 171 | ($mmkv:ident, $key:expr, f64) => { [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] 171 | ($mmkv:ident, $key:expr_2021, f64) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:174:24 [INFO] [stdout] | [INFO] [stdout] 174 | ($mmkv:ident, $key:expr, CByteArray) => { [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] 174 | ($mmkv:ident, $key:expr_2021, CByteArray) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:179:24 [INFO] [stdout] | [INFO] [stdout] 179 | ($mmkv:ident, $key:expr, CI32Array) => { [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] 179 | ($mmkv:ident, $key:expr_2021, CI32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:184:24 [INFO] [stdout] | [INFO] [stdout] 184 | ($mmkv:ident, $key:expr, CI64Array) => { [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] 184 | ($mmkv:ident, $key:expr_2021, CI64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:189:24 [INFO] [stdout] | [INFO] [stdout] 189 | ($mmkv:ident, $key:expr, CF32Array) => { [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] 189 | ($mmkv:ident, $key:expr_2021, CF32Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:194:24 [INFO] [stdout] | [INFO] [stdout] 194 | ($mmkv:ident, $key:expr, CF64Array) => { [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] 194 | ($mmkv:ident, $key:expr_2021, CF64Array) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:211:47 [INFO] [stdout] | [INFO] [stdout] 211 | ($name:ident, $value_type:tt, $type_token:expr, $log:literal) => { [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] 211 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:233:47 [INFO] [stdout] | [INFO] [stdout] 233 | ($name:ident, $value_type:tt, $type_token:expr, $log:literal) => { [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] 233 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/ffi/mod.rs:256:47 [INFO] [stdout] | [INFO] [stdout] 256 | ($name:ident, $value_type:tt, $type_token:expr, $log:literal) => { [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] 256 | ($name:ident, $value_type:tt, $type_token:expr_2021, $log:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/mmkv.rs:58:24 [INFO] [stdout] | [INFO] [stdout] 58 | ($self:ident, $key:expr, $decode:ident) => { [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] 58 | ($self:ident, $key:expr_2021, $decode:ident) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/mmkv.rs:67:24 [INFO] [stdout] | [INFO] [stdout] 67 | ($self:ident, $key:expr, $value: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] 67 | ($self:ident, $key:expr_2021, $value: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/mmkv.rs:67:37 [INFO] [stdout] | [INFO] [stdout] 67 | ($self:ident, $key:expr, $value: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] 67 | ($self:ident, $key:expr, $value: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/mmkv.rs:76:24 [INFO] [stdout] | [INFO] [stdout] 76 | ($self:ident, $key: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] 76 | ($self:ident, $key:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `--force-warn unsafe-op-in-unsafe-fn` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | Types::I32 => (self.raw_data as *mut i32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | unsafe fn drop_data(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:153:27 [INFO] [stdout] | [INFO] [stdout] 153 | Types::Str => (self.raw_data as *mut ByteSlice).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:154:28 [INFO] [stdout] | [INFO] [stdout] 154 | Types::Bool => (self.raw_data as *mut bool).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:155:27 [INFO] [stdout] | [INFO] [stdout] 155 | Types::I64 => (self.raw_data as *mut i64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | Types::F32 => (self.raw_data as *mut f32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:157:27 [INFO] [stdout] | [INFO] [stdout] 157 | Types::F64 => (self.raw_data as *mut f64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:162:34 [INFO] [stdout] | [INFO] [stdout] 162 | | Types::F64Array => (self.raw_data as *mut RawTypedArray).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | self.err.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | unsafe fn drop_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_data` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | self.drop_data(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_error` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | self.drop_error(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | (*self.reason).bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | (*self.reason).len, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | self.reason.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | (ptr as *mut RawBuffer).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:292:1 [INFO] [stdout] | [INFO] [stdout] 292 | pub unsafe extern "C" fn free_buffer(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:298:10 [INFO] [stdout] | [INFO] [stdout] 298 | drop(Box::from_raw(ptr as *mut MMKV)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:297:1 [INFO] [stdout] | [INFO] [stdout] 297 | pub unsafe extern "C" fn close_instance(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:303:16 [INFO] [stdout] | [INFO] [stdout] 303 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:302:1 [INFO] [stdout] | [INFO] [stdout] 302 | pub unsafe extern "C" fn clear_data(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:309:16 [INFO] [stdout] | [INFO] [stdout] 309 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:308:1 [INFO] [stdout] | [INFO] [stdout] 308 | pub unsafe extern "C" fn delete(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:120:25 [INFO] [stdout] | [INFO] [stdout] 120 | let value_str = CStr::from_ptr($value).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:139:36 [INFO] [stdout] | [INFO] [stdout] 139 | $mmkv.put_byte_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:142:35 [INFO] [stdout] | [INFO] [stdout] 142 | $mmkv.put_i32_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | $mmkv.put_i64_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:148:35 [INFO] [stdout] | [INFO] [stdout] 148 | $mmkv.put_f32_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:151:35 [INFO] [stdout] | [INFO] [stdout] 151 | $mmkv.put_f64_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/buffer.rs:147:12 [INFO] [stdout] | [INFO] [stdout] 147 | if let Ok(buffer_type) = self.0.type_.enum_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/core/buffer.rs:149:9 [INFO] [stdout] | [INFO] [stdout] 149 | } else { [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] 147 ~ match self.0.type_.enum_value() { Ok(buffer_type) => { [INFO] [stdout] 148 | buffer_type == Types::DELETED [INFO] [stdout] 149 ~ } _ => { [INFO] [stdout] 150 | false [INFO] [stdout] 151 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/buffer.rs:175:12 [INFO] [stdout] | [INFO] [stdout] 175 | if let Ok(str) = String::from_utf8(self.0.value.to_vec()) { [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/core/buffer.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | } 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] 175 ~ match String::from_utf8(self.0.value.to_vec()) { Ok(str) => { [INFO] [stdout] 176 | Ok(str) [INFO] [stdout] 177 ~ } _ => { [INFO] [stdout] 178 | Err(DataInvalid) [INFO] [stdout] 179 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> /opt/rustwide/target/debug/build/mmkv-113e9f8c1e46a559/out/protos/kv.rs:87:15 [INFO] [stdout] | [INFO] [stdout] 87 | while let Some(tag) = is.read_raw_tag_or_eof()? { [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] --> /opt/rustwide/target/debug/build/mmkv-113e9f8c1e46a559/out/protos/kv.rs:102:9 [INFO] [stdout] | [INFO] [stdout] 102 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/io_looper.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 57 | if let Some(handle) = self.executor.join_handle.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/core/io_looper.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 57 ~ match self.executor.join_handle.take() { Some(handle) => { [INFO] [stdout] 58 | debug!(LOG_TAG, "kill io thread"); [INFO] [stdout] 59 | handle.join().unwrap(); [INFO] [stdout] 60 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/io_looper.rs:103:12 [INFO] [stdout] | [INFO] [stdout] 103 | if let Some(handle) = self.executor.join_handle.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/core/io_looper.rs:106:9 [INFO] [stdout] | [INFO] [stdout] 106 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 103 ~ match self.executor.join_handle.take() { Some(handle) => { [INFO] [stdout] 104 | handle.join().unwrap(); [INFO] [stdout] 105 | verbose!(LOG_TAG, "io thread finished"); [INFO] [stdout] 106 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/io_looper.rs:127:27 [INFO] [stdout] | [INFO] [stdout] 127 | while let Some(job) = buffer.pop_front() { [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/core/io_looper.rs:129:21 [INFO] [stdout] | [INFO] [stdout] 129 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/core/iter.rs:44:16 [INFO] [stdout] | [INFO] [stdout] 44 | if let Some(data) = buffer { [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/core/iter.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 44 ~ match buffer { Some(data) => { [INFO] [stdout] 45 | if data.is_deleting() { [INFO] [stdout] ... [INFO] [stdout] 49 | } [INFO] [stdout] 50 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 172 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.26s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling mmkv v0.5.3 (/tmp/fixit) [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:274:3 [INFO] [stdout] | [INFO] [stdout] 274 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 274 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:281:3 [INFO] [stdout] | [INFO] [stdout] 281 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 281 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:286:3 [INFO] [stdout] | [INFO] [stdout] 286 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 286 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:291:3 [INFO] [stdout] | [INFO] [stdout] 291 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 291 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:296:3 [INFO] [stdout] | [INFO] [stdout] 296 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 296 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:301:3 [INFO] [stdout] | [INFO] [stdout] 301 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 301 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:307:3 [INFO] [stdout] | [INFO] [stdout] 307 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 307 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:274:3 [INFO] [stdout] | [INFO] [stdout] 274 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 274 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:281:3 [INFO] [stdout] | [INFO] [stdout] 281 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 281 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:286:3 [INFO] [stdout] | [INFO] [stdout] 286 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 286 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:291:3 [INFO] [stdout] | [INFO] [stdout] 291 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 291 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:296:3 [INFO] [stdout] | [INFO] [stdout] 296 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 296 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:301:3 [INFO] [stdout] | [INFO] [stdout] 301 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 301 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:307:3 [INFO] [stdout] | [INFO] [stdout] 307 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] | [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 307 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:212:11 [INFO] [stdout] | [INFO] [stdout] 212 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 212 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:234:11 [INFO] [stdout] | [INFO] [stdout] 234 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 234 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: unsafe attribute used without unsafe [INFO] [stdout] --> src/ffi/mod.rs:257:11 [INFO] [stdout] | [INFO] [stdout] 257 | #[no_mangle] [INFO] [stdout] | ^^^^^^^^^ usage of unsafe attribute [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this error originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] help: wrap the attribute in `unsafe(...)` [INFO] [stdout] | [INFO] [stdout] 257 | #[unsafe(no_mangle)] [INFO] [stdout] | +++++++ + [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | Types::I32 => (self.raw_data as *mut i32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | unsafe fn drop_data(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:153:27 [INFO] [stdout] | [INFO] [stdout] 153 | Types::Str => (self.raw_data as *mut ByteSlice).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:154:28 [INFO] [stdout] | [INFO] [stdout] 154 | Types::Bool => (self.raw_data as *mut bool).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:155:27 [INFO] [stdout] | [INFO] [stdout] 155 | Types::I64 => (self.raw_data as *mut i64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | Types::F32 => (self.raw_data as *mut f32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:157:27 [INFO] [stdout] | [INFO] [stdout] 157 | Types::F64 => (self.raw_data as *mut f64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:162:34 [INFO] [stdout] | [INFO] [stdout] 162 | | Types::F64Array => (self.raw_data as *mut RawTypedArray).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | self.err.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | unsafe fn drop_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_data` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | self.drop_data(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_error` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | self.drop_error(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | (*self.reason).bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | (*self.reason).len, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | self.reason.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | (ptr as *mut RawBuffer).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:292:1 [INFO] [stdout] | [INFO] [stdout] 292 | pub unsafe extern "C" fn free_buffer(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:298:10 [INFO] [stdout] | [INFO] [stdout] 298 | drop(Box::from_raw(ptr as *mut MMKV)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:297:1 [INFO] [stdout] | [INFO] [stdout] 297 | pub unsafe extern "C" fn close_instance(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:303:16 [INFO] [stdout] | [INFO] [stdout] 303 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:302:1 [INFO] [stdout] | [INFO] [stdout] 302 | pub unsafe extern "C" fn clear_data(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:309:16 [INFO] [stdout] | [INFO] [stdout] 309 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:308:1 [INFO] [stdout] | [INFO] [stdout] 308 | pub unsafe extern "C" fn delete(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:120:25 [INFO] [stdout] | [INFO] [stdout] 120 | let value_str = CStr::from_ptr($value).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:139:36 [INFO] [stdout] | [INFO] [stdout] 139 | $mmkv.put_byte_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 343 | / impl_put_typed_array!( [INFO] [stdout] 344 | | put_byte_array, [INFO] [stdout] 345 | | CByteArray, [INFO] [stdout] 346 | | Types::ByteArray, [INFO] [stdout] 347 | | "put byte array" [INFO] [stdout] 348 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 350 | / impl_get!( [INFO] [stdout] 351 | | get_byte_array, [INFO] [stdout] 352 | | CByteArray, [INFO] [stdout] 353 | | Types::ByteArray, [INFO] [stdout] 354 | | "get byte array" [INFO] [stdout] 355 | | ); [INFO] [stdout] | |_- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:142:35 [INFO] [stdout] | [INFO] [stdout] 142 | $mmkv.put_i32_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 357 | impl_put_typed_array!(put_i32_array, CI32Array, Types::I32Array, "put i32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 359 | impl_get!(get_i32_array, CI32Array, Types::I32Array, "get i32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:145:35 [INFO] [stdout] | [INFO] [stdout] 145 | $mmkv.put_i64_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 361 | impl_put_typed_array!(put_i64_array, CI64Array, Types::I64Array, "put i64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 363 | impl_get!(get_i64_array, CI64Array, Types::I64Array, "get i64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:148:35 [INFO] [stdout] | [INFO] [stdout] 148 | $mmkv.put_f32_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 365 | impl_put_typed_array!(put_f32_array, CF32Array, Types::F32Array, "put f32 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 367 | impl_get!(get_f32_array, CF32Array, Types::F32Array, "get f32 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:241:24 [INFO] [stdout] | [INFO] [stdout] 241 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:235:9 [INFO] [stdout] | [INFO] [stdout] 235 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 236 | | ptr: *const c_void, [INFO] [stdout] 237 | | key: RawCStr, [INFO] [stdout] 238 | | value: $value_type, [INFO] [stdout] 239 | | len: usize, [INFO] [stdout] 240 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:242:27 [INFO] [stdout] | [INFO] [stdout] 242 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:151:35 [INFO] [stdout] | [INFO] [stdout] 151 | $mmkv.put_f64_array($key, std::slice::from_raw_parts($value, $len)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 369 | impl_put_typed_array!(put_f64_array, CF64Array, Types::F64Array, "put f64 array"); [INFO] [stdout] | --------------------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put_typed_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 371 | impl_get!(get_f64_array, CF64Array, Types::F64Array, "get f64 array"); [INFO] [stdout] | --------------------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 29 previous errors; 79 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0133`. [INFO] [stdout] [INFO] [stderr] error: could not compile `mmkv` (lib) due to 30 previous errors; 79 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:37:21 [INFO] [stdout] | [INFO] [stdout] 37 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | let boxed = Box::from_raw(ptr); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:117:5 [INFO] [stdout] | [INFO] [stdout] 117 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 119 | Types::ByteArray => release_array!(self, u8), [INFO] [stdout] | ------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 120 | Types::I32Array => release_array!(self, i32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 121 | Types::I64Array => release_array!(self, i64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 122 | Types::F32Array => release_array!(self, f32), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::slice::from_raw_parts_mut` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:112:9 [INFO] [stdout] | [INFO] [stdout] 112 | std::slice::from_raw_parts_mut($target.array as *mut $type, $target.len).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 123 | Types::F64Array => release_array!(self, f64), [INFO] [stdout] | ------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `release_array` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:152:27 [INFO] [stdout] | [INFO] [stdout] 152 | Types::I32 => (self.raw_data as *mut i32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:147:5 [INFO] [stdout] | [INFO] [stdout] 147 | unsafe fn drop_data(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:153:27 [INFO] [stdout] | [INFO] [stdout] 153 | Types::Str => (self.raw_data as *mut ByteSlice).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:154:28 [INFO] [stdout] | [INFO] [stdout] 154 | Types::Bool => (self.raw_data as *mut bool).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:155:27 [INFO] [stdout] | [INFO] [stdout] 155 | Types::I64 => (self.raw_data as *mut i64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:156:27 [INFO] [stdout] | [INFO] [stdout] 156 | Types::F32 => (self.raw_data as *mut f32).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:157:27 [INFO] [stdout] | [INFO] [stdout] 157 | Types::F64 => (self.raw_data as *mut f64).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:162:34 [INFO] [stdout] | [INFO] [stdout] 162 | | Types::F64Array => (self.raw_data as *mut RawTypedArray).release(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:172:13 [INFO] [stdout] | [INFO] [stdout] 172 | self.err.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:170:5 [INFO] [stdout] | [INFO] [stdout] 170 | unsafe fn drop_error(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_data` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:179:9 [INFO] [stdout] | [INFO] [stdout] 179 | self.drop_data(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:178:5 [INFO] [stdout] | [INFO] [stdout] 178 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::::drop_error` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:180:9 [INFO] [stdout] | [INFO] [stdout] 180 | self.drop_error(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:224:17 [INFO] [stdout] | [INFO] [stdout] 224 | (*self.reason).bytes, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/ffi_buffer.rs:219:5 [INFO] [stdout] | [INFO] [stdout] 219 | unsafe fn release(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: dereference of raw pointer is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | (*self.reason).len, [INFO] [stdout] | ^^^^^^^^^^^^^^ dereference of raw pointer [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: raw pointers may be null, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/ffi_buffer.rs:228:13 [INFO] [stdout] | [INFO] [stdout] 228 | self.reason.cast_mut().release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `ffi::ffi_buffer::Releasable::release` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:293:5 [INFO] [stdout] | [INFO] [stdout] 293 | (ptr as *mut RawBuffer).release(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:292:1 [INFO] [stdout] | [INFO] [stdout] 292 | pub unsafe extern "C" fn free_buffer(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::boxed::Box::::from_raw` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:298:10 [INFO] [stdout] | [INFO] [stdout] 298 | drop(Box::from_raw(ptr as *mut MMKV)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:297:1 [INFO] [stdout] | [INFO] [stdout] 297 | pub unsafe extern "C" fn close_instance(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:303:16 [INFO] [stdout] | [INFO] [stdout] 303 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:302:1 [INFO] [stdout] | [INFO] [stdout] 302 | pub unsafe extern "C" fn clear_data(ptr: *const c_void) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:309:16 [INFO] [stdout] | [INFO] [stdout] 309 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:308:1 [INFO] [stdout] | [INFO] [stdout] 308 | pub unsafe extern "C" fn delete(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:120:25 [INFO] [stdout] | [INFO] [stdout] 120 | let value_str = CStr::from_ptr($value).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 319 | impl_put!(put_str, RawCStr, Types::Str, "put string"); [INFO] [stdout] | ----------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `mmkv_put` which comes from the expansion of the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 321 | impl_get!(get_str, ByteSlice, Types::Str, "get string"); [INFO] [stdout] | ------------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 323 | impl_put!(put_bool, bool, Types::Bool, "put bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 325 | impl_get!(get_bool, bool, Types::Bool, "get bool"); [INFO] [stdout] | -------------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 327 | impl_put!(put_i32, i32, Types::I32, "put i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 329 | impl_get!(get_i32, i32, Types::I32, "get i32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 331 | impl_put!(put_i64, i64, Types::I64, "put i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 333 | impl_get!(get_i64, i64, Types::I64, "get i64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 335 | impl_put!(put_f32, f32, Types::F32, "put f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:260:27 [INFO] [stdout] | [INFO] [stdout] 260 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 337 | impl_get!(get_f32, f32, Types::F32, "get f32"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:218:24 [INFO] [stdout] | [INFO] [stdout] 218 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | / pub unsafe extern "C" fn $name( [INFO] [stdout] 214 | | ptr: *const c_void, [INFO] [stdout] 215 | | key: RawCStr, [INFO] [stdout] 216 | | value: $value_type, [INFO] [stdout] 217 | | ) -> *const RawBuffer { [INFO] [stdout] | |_____________________________^ [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ffi::CStr::from_ptr` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:219:27 [INFO] [stdout] | [INFO] [stdout] 219 | let key_str = CStr::from_ptr(key).to_str().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 339 | impl_put!(put_f64, f64, Types::F64, "put f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] = note: this warning originates in the macro `impl_put` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning[E0133]: call to unsafe function `std::ptr::const_ptr::::as_ref` is unsafe and requires unsafe block [INFO] [stdout] --> src/ffi/mod.rs:259:24 [INFO] [stdout] | [INFO] [stdout] 259 | let mmkv = (ptr as *const MMKV).as_ref().unwrap(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: for more information, see issue #71668 [INFO] [stdout] = note: consult the function's documentation for information on how to avoid undefined behavior [INFO] [stdout] note: an unsafe function restricts its caller, but its body is safe by default [INFO] [stdout] --> src/ffi/mod.rs:258:9 [INFO] [stdout] | [INFO] [stdout] 258 | pub unsafe extern "C" fn $name(ptr: *const c_void, key: RawCStr) -> *const RawBuffer { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 341 | impl_get!(get_f64, f64, Types::F64, "get f64"); [INFO] [stdout] | ---------------------------------------------- in this macro invocation [INFO] [stdout] = note: this warning originates in the macro `impl_get` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [WARN] too many lines in the log, truncating it