Remaining warnings from the `tail-expr-drop-order` and `if-let-rescope` lints:
warning: relative drop order changing in Rust 2024 --> crates/schema/src/def.rs:674:9 | 674 | self.columns().iter().find(|col_id| col_id.idx() == pos) | ^^^^^^^^^^^^^^------- | | | this temporary value will be dropped at the end of the block | a temporary with access to the borrow is created here ... 675 | } | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `impl Iterator<Item = spacetimedb_primitives::ColId> + '_` | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: the temporary is part of an expression at the end of a block; consider forcing this temporary to be dropped sooner, before the block's local variables are dropped = note: requested on the command line with `-W tail-expr-drop-order` help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block | 674 | let x = self.columns().iter().find(|col_id| col_id.idx() == pos); x | +++++++ +++ warning: `spacetimedb-schema` (lib) generated 1 warning warning: relative drop order changing in Rust 2024 --> crates/durability/src/imp/local.rs:201:23 | 189 | while let Some(txdata) = self.rx.recv().await { | -------------------- | | | | | this value will be stored in a temporary; let us call it `#1` | | `#1` will be dropped later as of Edition 2024 | `__awaitee` calls a custom destructor | `__awaitee` will be dropped later as of Edition 2024 ... 199 | self.flush_append(txdata, true).await; | ------------------------------------- | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 200 | } else { 201 | match self.clog.append(txdata) { | ^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#4` | up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024 202 | Err(retry) => self.flush_append(retry, false).await, | ------------------------------------- | | | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 ... 205 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/durability/src/imp/local.rs:189:34 | 189 | while let Some(txdata) = self.rx.recv().await { | ^^^^^^^^^^^^^^^----- | | | | | this value will be stored in a temporary; let us call it `#5` | | up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024 | | this value will be stored in a temporary; let us call it `#1` | | `#1` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#4` | up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024 | `__awaitee` calls a custom destructor | `__awaitee` will be dropped later as of Edition 2024 ... 199 | self.flush_append(txdata, true).await; | ------------------------------------- | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 202 | Err(retry) => self.flush_append(retry, false).await, | ------------------------------------- | | | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 ... 208 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/durability/src/imp/local.rs:219:64 | 217 | let mut retry = Some(txdata); | --------- | | | `retry` calls a custom destructor | `retry` will be dropped later as of Edition 2024 218 | while let Some(txdata) = retry.take() { 219 | if let Err(error::Append { txdata, source }) = clog.append_maybe_flush(txdata) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 223 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/durability/src/imp/local.rs:218:38 | 217 | let mut retry = Some(txdata); | --------- | | | `retry` calls a custom destructor | `retry` will be dropped later as of Edition 2024 218 | while let Some(txdata) = retry.take() { | ^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 223 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: `spacetimedb-durability` (lib) generated 4 warnings warning: relative drop order changing in Rust 2024 --> crates/snapshot/src/remote.rs:417:30 | 408 | let mut buf = self.buf_pool.get(); | ------- | | | `buf` calls a custom destructor | `buf` will be dropped later as of Edition 2024 409 | let mut src = InspectReader::new(src, |chunk| { | ------- | | | `src` calls a custom destructor | `src` will be dropped later as of Edition 2024 ... 417 | decompressor.await.unwrap()? | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 418 | }; | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1 | 354 | impl<T> Drop for JoinHandle<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `buf` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs:465:1 | 465 | / impl<T, F, S> Drop for ScopeGuard<T, F, S> 466 | | where 467 | | F: FnOnce(T), 468 | | S: Strategy, | |________________^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/snapshot/src/remote.rs:480:30 | 471 | let mut buf = self.buf_pool.get(); | ------- | | | `buf` calls a custom destructor | `buf` will be dropped later as of Edition 2024 ... 480 | decompressor.await.unwrap()? | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 481 | }; | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1 | 354 | impl<T> Drop for JoinHandle<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `buf` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs:465:1 | 465 | / impl<T, F, S> Drop for ScopeGuard<T, F, S> 466 | | where 467 | | F: FnOnce(T), 468 | | S: Strategy, | |________________^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: `spacetimedb-snapshot` (lib) generated 2 warnings Checking spacetimedb-datastore v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/datastore) warning: relative drop order changing in Rust 2024 --> crates/codegen/src/unrealcpp.rs:2482:17 | 2391 | let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string(); | ------------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 2417 | let type_str = cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string(); | ---------------------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 2482 | cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#3` | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 2483 | } else { | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/codegen/src/unrealcpp.rs:2484:17 | 2391 | let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string(); | ------------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 2417 | let type_str = cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string(); | ---------------------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 2484 | cpp_ty_fmt_with_module(module, param_type, module_name).to_string() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#3` | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 2485 | }; | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/codegen/src/unrealcpp.rs:2629:17 | 2598 | let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string(); | ------------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 2629 | cpp_ty_fmt_blueprint_compatible(module, param_type, module_name).to_string() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#2` | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 2630 | } else { | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/codegen/src/unrealcpp.rs:2631:17 | 2598 | let type_str = cpp_ty_fmt_with_module(module, param_type, module_name).to_string(); | ------------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 2631 | cpp_ty_fmt_with_module(module, param_type, module_name).to_string() | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#2` | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 2632 | }; | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: `spacetimedb-codegen` (lib) generated 4 warnings warning: relative drop order changing in Rust 2024 --> crates/cli/src/subcommands/build.rs:74:40 | 73 | let arg_matches = cli().get_matches_from(arg_string.split_whitespace()); | ----------- | | | `arg_matches` calls a custom destructor | `arg_matches` will be dropped later as of Edition 2024 74 | exec(config.clone(), &arg_matches).await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 75 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `arg_matches` may invoke a custom destructor because it contains a trait object = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/cli/src/subcommands/dev.rs:286:19 | 286 | match generate_build_and_publish( | ___________________- 287 | | &config, 288 | | &project_dir, 289 | | &spacetimedb_dir, ... | 296 | | .await | | ----^ | | | | | | | this value will be stored in a temporary; let us call it `#2` | | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 | |______________|___`__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#3` | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 299 | Err(e) => { | - | | | `e` calls a custom destructor | `e` will be dropped later as of Edition 2024 ... 304 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `e` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/cli/src/subcommands/dev.rs:559:29 | 559 | if let Err(e) = stream_logs(&host_url, &database_identity, &auth_header).await { | - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- | | | | | | | this value will be stored in a temporary; let us call it `#4` | | | up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024 | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#3` | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | `e` calls a custom destructor | `e` will be dropped later as of Edition 2024 ... 562 | tokio::time::sleep(Duration::from_secs(10)).await; | ------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 563 | } 564 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `e` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/time/entry.rs:280:1 | 280 | / pin_project! { ... | 310 | | } | |_^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: this warning originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info) warning: relative drop order changing in Rust 2024 --> crates/cli/src/subcommands/logs.rs:153:33 | 153 | while let Some(chunk) = res.chunk().await? { | ----- -----------------^ | | | | | | | this value will be stored in a temporary; let us call it `#4` | | | up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024 | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#2` | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 | | this value will be stored in a temporary; let us call it `#3` | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | `chunk` calls a custom destructor | `chunk` will be dropped later as of Edition 2024 154 | stdout.write_all(&chunk).await?; 155 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: `#3` may invoke a custom destructor because it contains a trait object note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `chunk` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/cli/src/subcommands/repl.rs:74:39 | 74 | if let Err(err) = run_sql(api.sql(), sql, true).await { | --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- | | | | | | | this value will be stored in a temporary; let us call it `#3` | | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#2` | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | `err` calls a custom destructor | `err` will be dropped later as of Edition 2024 ... 77 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `err` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/cli/src/subcommands/subscribe.rs:262:27 | 262 | while let Some(msg) = ws.try_next().await.map_err(|source| Error::Websocket { source })? { | --- ^^^^^^^^^^^^^^-----^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | | | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#5` | | up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024 | | this value will be stored in a temporary; let us call it `#6` | | up until Edition 2021 `#6` is dropped last but will be dropped earlier in Edition 2024 | `msg` calls a custom destructor | `msg` will be dropped later as of Edition 2024 263 | let Some(msg) = parse_msg_json(&msg) else { continue }; | --- -------------------- | | | | | this value will be stored in a temporary; let us call it `#3` | | `#3` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 264 | match msg { 265 | ws::ServerMessage::InitialSubscription(sub) => { | --- | | | `sub` calls a custom destructor | `sub` will be dropped later as of Edition 2024 266 | if let Some(module_def) = module_def { 267 | let output = format_output_json(&sub.database_update, module_def)?; | ----------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#4` | `#4` will be dropped later as of Edition 2024 ... 272 | ws::ServerMessage::TransactionUpdate(ws::TransactionUpdate { status, .. }) => { | ------ | | | `status` calls a custom destructor | `status` will be dropped later as of Edition 2024 ... 287 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#5` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#6` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ = note: `#6` may invoke a custom destructor because it contains a trait object note: `#6` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#6` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `sub` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ = note: `#4` may invoke a custom destructor because it contains a trait object note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `status` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/cli/src/util.rs:141:51 | 139 | let client = reqwest::Client::new(); | ------ | | | `client` calls a custom destructor | `client` will be dropped later as of Edition 2024 140 | let url = format!("{}/v1/database/{}/names", config.get_host_url(server)?, identity); 141 | client.get(url).send().await?.json_or_error().await | ----------------------------- ^^^^^ | | | | | | | this value will be stored in a temporary; let us call it `#1` | | | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 | | this value will be stored in a temporary; let us call it `#3` | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | this value will be stored in a temporary; let us call it `#2` | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 142 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#2` may invoke a custom destructor because it contains a trait object note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: `client` may invoke a custom destructor because it contains a trait object note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1 | 387 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1 | 387 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.74/src/ssl/mod.rs:1778:1 | 1778 | / foreign_type_and_impl_send_sync! { 1779 | | type CType = ffi::SSL_CTX; 1780 | | fn drop = ffi::SSL_CTX_free; ... | 1791 | | pub struct SslContextRef; 1792 | | } | |_^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: this warning originates in the macro `::foreign_types::foreign_type` which comes from the expansion of the macro `foreign_type_and_impl_send_sync` (in Nightly builds, run with -Z macro-backtrace for more info) warning: relative drop order changing in Rust 2024 --> crates/cli/src/util.rs:141:28 | 139 | let client = reqwest::Client::new(); | ------ | | | `client` calls a custom destructor | `client` will be dropped later as of Edition 2024 140 | let url = format!("{}/v1/database/{}/names", config.get_host_url(server)?, identity); 141 | client.get(url).send().await?.json_or_error().await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 142 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: `client` may invoke a custom destructor because it contains a trait object note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1 | 387 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/oneshot.rs:387:1 | 387 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `client` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/openssl-0.10.74/src/ssl/mod.rs:1778:1 | 1778 | / foreign_type_and_impl_send_sync! { 1779 | | type CType = ffi::SSL_CTX; 1780 | | fn drop = ffi::SSL_CTX_free; ... | 1791 | | pub struct SslContextRef; 1792 | | } | |_^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: this warning originates in the macro `::foreign_types::foreign_type` which comes from the expansion of the macro `foreign_type_and_impl_send_sync` (in Nightly builds, run with -Z macro-backtrace for more info) warning: `spacetimedb-cli` (lib) generated 8 warnings warning: relative drop order changing in Rust 2024 --> crates/cli/src/main.rs:46:69 | 32 | let matches = get_command().get_matches(); | ------- | | | `matches` calls a custom destructor | `matches` will be dropped later as of Edition 2024 ... 46 | exec_subcommand(config, &paths, root_dir, cmd, subcommand_args).await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 47 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `matches` may invoke a custom destructor because it contains a trait object = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: `spacetimedb-cli` (bin "spacetimedb-cli") generated 1 warning Checking spacetimedb-core v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/core) warning: relative drop order changing in Rust 2024 --> crates/core/src/db/snapshot.rs:190:31 | 189 | let mut database_state: Option<WeakDatabaseState> = None; | ------------------ | | | `database_state` calls a custom destructor | `database_state` will be dropped later as of Edition 2024 190 | while let Some(req) = self.snapshot_requests.next().await { | --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- | | | | | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#4` | | up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024 | `req` calls a custom destructor | `req` will be dropped later as of Edition 2024 ... 193 | let res = self | _________________________---___- | | | | | `res` calls a custom destructor | | `res` will be dropped later as of Edition 2024 194 | | .maybe_take_snapshot(database_state.as_ref()) 195 | | .await | | ----- | | | | | |__________________________|___`__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 198 | self.maybe_compress_snapshots(snapshot_offset).await; | ---------------------------------------------------- | | | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 ... 202 | Request::ReplaceState(new_state) => { | --------- | | | `new_state` calls a custom destructor | `new_state` will be dropped later as of Edition 2024 ... 206 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `database_state` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1 | 3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `req` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `req` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `req` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `req` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `req` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `res` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `new_state` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `new_state` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `new_state` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `new_state` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `new_state` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/core/src/client/client_connection.rs:723:17 | 715 | let _gauge_guard = module_info.metrics.connected_clients.inc_scope(); | ------------ | | | `_gauge_guard` calls a custom destructor | `_gauge_guard` will be dropped later as of Edition 2024 716 | module_info.metrics.ws_clients_spawned.inc(); 717 | / scopeguard::defer! { 718 | | let database_identity = module_info.database_identity; 719 | | log::warn!("websocket connection aborted for client identity `{client_identity}` and database identity `{database_identity}`"); 720 | | module_info.metrics.ws_clients_aborted.inc(); 721 | | }; | | - | | | | |_____________`_guard` calls a custom destructor | `_guard` will be dropped later as of Edition 2024 722 | 723 | fut.await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 724 | }) | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `_gauge_guard` invokes this custom destructor --> crates/core/src/util/prometheus_handle.rs:9:1 | 9 | impl Drop for GaugeInc { | ^^^^^^^^^^^^^^^^^^^^^^ note: `_guard` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/scopeguard-1.2.0/src/lib.rs:465:1 | 465 | / impl<T, F, S> Drop for ScopeGuard<T, F, S> 466 | | where 467 | | F: FnOnce(T), 468 | | S: Strategy, | |________________^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/client/client_connection.rs:870:9 | 857 | let CallProcedureReturn { result, tx_offset } = self | ------ | | | `result` calls a custom destructor | `result` will be dropped later as of Edition 2024 ... 870 | self.module() | ^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 873 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> crates/core/src/util/jobs.rs:351:1 | 351 | impl Drop for LoadBalanceOnDropGuard { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1 | 1013 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> crates/core/src/host/module_host.rs:743:1 | 743 | impl Drop for CreateInstanceTimeMetric { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1 | 1016 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1 | 822 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1 | 239 | impl Drop for RegisteredType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1 | 2687 | impl<T> Drop for Store<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1 | 933 | impl<T> Drop for UnboundedSenderInner<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1 | 1458 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1 | 1067 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1 | 1080 | impl Drop for TypeRegistryInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1 | 628 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1 | 31 | impl<T: ?Sized> Drop for StoreBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1 | 1083 | impl Drop for ModuleInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `result` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/client/client_connection.rs:886:22 | 883 | let host = me.module(); | ---- | | | `host` calls a custom destructor | `host` will be dropped later as of Edition 2024 ... 886 | .await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 887 | }) | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `host` invokes this custom destructor --> crates/core/src/util/jobs.rs:351:1 | 351 | impl Drop for LoadBalanceOnDropGuard { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1 | 1013 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> crates/core/src/host/module_host.rs:743:1 | 743 | impl Drop for CreateInstanceTimeMetric { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1 | 1016 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1 | 822 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `host` may invoke a custom destructor because it contains a trait object note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1 | 239 | impl Drop for RegisteredType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1 | 2687 | impl<T> Drop for Store<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1 | 933 | impl<T> Drop for UnboundedSenderInner<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1 | 1458 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1 | 1067 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1 | 1080 | impl Drop for TypeRegistryInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1 | 628 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1 | 31 | impl<T: ?Sized> Drop for StoreBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1 | 1083 | impl Drop for ModuleInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/util/jobs.rs:322:15 | 320 | let handle = runtime::Handle::clone(&*self.inner.runtime.borrow()); | ------ | | | `handle` calls a custom destructor | `handle` will be dropped later as of Edition 2024 321 | 322 | match handle.spawn(f).await { | ^^^^^^^^^^^^^^^^----- | | | | | this value will be stored in a temporary; let us call it `#2` | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 326 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#1` may invoke a custom destructor because it contains a trait object note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1 | 354 | impl<T> Drop for JoinHandle<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `handle` may invoke a custom destructor because it contains a trait object note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1 | 1726 | impl<'scope, T> Drop for Packet<'scope, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1 | 394 | impl Drop for Thread { | ^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1 | 844 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1 | 566 | impl<S: 'static> Drop for UnownedTask<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1 | 3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1 | 373 | impl Drop for ScheduledIo { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1 | 568 | impl<T> Drop for Local<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1 | 556 | impl<S: 'static> Drop for Task<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/util/jobs.rs:322:31 | 320 | let handle = runtime::Handle::clone(&*self.inner.runtime.borrow()); | ------ | | | `handle` calls a custom destructor | `handle` will be dropped later as of Edition 2024 321 | 322 | match handle.spawn(f).await { | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 326 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/join.rs:354:1 | 354 | impl<T> Drop for JoinHandle<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `handle` may invoke a custom destructor because it contains a trait object note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1 | 1726 | impl<'scope, T> Drop for Packet<'scope, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1 | 394 | impl Drop for Thread { | ^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1 | 844 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1 | 566 | impl<S: 'static> Drop for UnownedTask<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1 | 3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1 | 373 | impl Drop for ScheduledIo { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1 | 568 | impl<T> Drop for Local<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `handle` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1 | 556 | impl<S: 'static> Drop for Task<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/client/client_connection.rs:912:22 | 909 | let host = me.module(); | ---- | | | `host` calls a custom destructor | `host` will be dropped later as of Edition 2024 ... 912 | .await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 913 | }) | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `host` invokes this custom destructor --> crates/core/src/util/jobs.rs:351:1 | 351 | impl Drop for LoadBalanceOnDropGuard { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1 | 1013 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> crates/core/src/host/module_host.rs:743:1 | 743 | impl Drop for CreateInstanceTimeMetric { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1 | 1016 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1 | 822 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `host` may invoke a custom destructor because it contains a trait object note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1 | 239 | impl Drop for RegisteredType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1 | 2687 | impl<T> Drop for Store<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1 | 933 | impl<T> Drop for UnboundedSenderInner<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1 | 1458 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1 | 1067 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1 | 1080 | impl Drop for TypeRegistryInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1 | 628 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1 | 31 | impl<T: ?Sized> Drop for StoreBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1 | 1083 | impl Drop for ModuleInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/client/client_connection.rs:939:22 | 936 | let host = me.module(); | ---- | | | `host` calls a custom destructor | `host` will be dropped later as of Edition 2024 ... 939 | .await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 940 | }) | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `host` invokes this custom destructor --> crates/core/src/util/jobs.rs:351:1 | 351 | impl Drop for LoadBalanceOnDropGuard { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1013:1 | 1013 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> crates/core/src/host/module_host.rs:743:1 | 743 | impl Drop for CreateInstanceTimeMetric { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:1016:1 | 1016 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/flume-0.11.1/src/lib.rs:822:1 | 822 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `host` may invoke a custom destructor because it contains a trait object note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:239:1 | 239 | impl Drop for RegisteredType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/store.rs:2687:1 | 2687 | impl<T> Drop for Store<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/futures-channel-0.3.31/src/mpsc/mod.rs:933:1 | 933 | impl<T> Drop for UnboundedSenderInner<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/watch.rs:1458:1 | 1458 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/broadcast.rs:1067:1 | 1067 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1 | 1080 | impl Drop for TypeRegistryInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1 | 628 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/vm/store_box.rs:31:1 | 31 | impl<T: ?Sized> Drop for StoreBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/module.rs:1083:1 | 1083 | impl Drop for ModuleInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/util/mod.rs:29:35 | 27 | let _entered = span.entered(); | -------- | | | `_entered` calls a custom destructor | `_entered` will be dropped later as of Edition 2024 28 | let result = std::panic::catch_unwind(std::panic::AssertUnwindSafe(f)); 29 | if let Err(Err(_panic)) = tx.send(result) { | ^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 32 | }); | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#1` may invoke a custom destructor because it contains a trait object note: `_entered` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tracing-0.1.41/src/span.rs:1566:1 | 1566 | impl Drop for EnteredSpan { | ^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/host/host_controller.rs:459:54 | 456 | let guard = self.acquire_read_lock(replica_id).await; | ----- | | | `guard` calls a custom destructor | `guard` will be dropped later as of Edition 2024 ... 459 | host.migrate_plan(host_type, program, style).await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 460 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `guard` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/rwlock/owned_read_guard.rs:195:1 | 195 | impl<T: ?Sized, U: ?Sized> Drop for OwnedRwLockReadGuard<T, U> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/subscription/module_subscription_manager.rs:1461:35 | 1461 | while let Some(message) = self.rx.recv().await { | ------- ^^^^^^^^^^^^^^^----- | | | | | | | this value will be stored in a temporary; let us call it `#8` | | | up until Edition 2021 `#8` is dropped last but will be dropped earlier in Edition 2024 | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#7` | | up until Edition 2021 `#7` is dropped last but will be dropped earlier in Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | `message` calls a custom destructor | `message` will be dropped later as of Edition 2024 ... 1472 | / self.clients 1473 | | .insert(client_id, SendWorkerClient { dropped, outbound_ref }); | | - | | | | |______________________________________________________________________________________this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 1476 | recipient, | --------- | | | `recipient` calls a custom destructor | `recipient` will be dropped later as of Edition 2024 1477 | tx_offset, | --------- | | | `tx_offset` calls a custom destructor | `tx_offset` will be dropped later as of Edition 2024 1478 | message, | ------- | | | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 ... 1482 | let Ok(tx_offset) = tx_offset.await else { | --------------- | | | this value will be stored in a temporary; let us call it `#4` | `#4` will be dropped later as of Edition 2024 ... 1490 | self.clients.remove(&client_id); | ------------------------------- | | | this value will be stored in a temporary; let us call it `#5` | `#5` will be dropped later as of Edition 2024 1491 | } 1492 | SendWorkerMessage::Broadcast { tx_offset, queries } => { | ------- | | | `queries` calls a custom destructor | `queries` will be dropped later as of Edition 2024 1493 | let Ok(tx_offset) = tx_offset.await else { | --------------- | | | this value will be stored in a temporary; let us call it `#6` | `#6` will be dropped later as of Edition 2024 ... 1500 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#7` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#7` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#7` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#7` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#7` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#7` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1 | 1218 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1 | 1218 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1 | 1218 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `recipient` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `recipient` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx_offset` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1 | 1218 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1 | 1218 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#5` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#5` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `queries` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `queries` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `queries` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#6` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:1218:1 | 1218 | impl<T> Drop for Receiver<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/sql/ast.rs:518:17 | 514 | / self.tx 515 | | .iter_by_col_eq( 516 | | ST_ROW_LEVEL_SECURITY_ID, 517 | | StRowLevelSecurityFields::TableId, 518 | | &AlgebraicValue::from(table_id), | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this temporary value will be dropped at the end of the block 519 | | )? | |______________- a temporary with access to the borrow is created here ... ... 538 | } | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `ControlFlow<std::result::Result<Infallible, DatastoreError>, <T as StateView>::IterByColEq<'_, '_>>` | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: the temporary is part of an expression at the end of a block; consider forcing this temporary to be dropped sooner, before the block's local variables are dropped help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block | 514 ~ let x = self.tx 515 | .iter_by_col_eq( ... 536 | }) 537 ~ .collect::<anyhow::Result<_>>(); x | warning: relative drop order changing in Rust 2024 --> crates/core/src/auth/token_validation.rs:117:51 | 93 | #[async_trait] | - now the temporary value is dropped here, before the local variables in the block or statement ... 99 | let local_key_error = { | --------------- | | | `local_key_error` calls a custom destructor | `local_key_error` will be dropped later as of Edition 2024 ... 117 | self.oidc_validator.validate_token(token).await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#1` may invoke a custom destructor because it contains a trait object note: `local_key_error` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ = note: `local_key_error` may invoke a custom destructor because it contains a trait object = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/db/relational_db.rs:553:23 | 553 | match try_load_snapshot(&database_identity, snapshot_repo, snapshot_offset, &page_pool) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#2` | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 554 | Ok(snapshot) if snapshot.database_identity != database_identity => { | -------- | | | `snapshot` calls a custom destructor | `snapshot` will be dropped later as of Edition 2024 ... 570 | / path.rename_invalid().map_err(|e| RestoreSnapshotError::Invalidate { 571 | | offset: snapshot_offset, 572 | | source: Box::new(e.into()), 573 | | })?; | | - | | | | |_______________________________this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 586 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#2` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `snapshot` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1 | 150 | impl<T: ?Sized> Drop for Arc<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/db/relational_db.rs:1589:40 | 1589 | ty: fmt_algebraic_type(&name.type_of()).to_string(), | -------------------^^^^^^^^^^^^^^^- | | | | | this temporary value will be dropped at the end of the block | a temporary with access to the borrow is created here ... ... 1593 | }) | - ... and the borrow might be used here, when that temporary is dropped and runs the destructor for type `impl std::fmt::Display + '_` | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: the temporary is part of an expression at the end of a block; consider forcing this temporary to be dropped sooner, before the block's local variables are dropped help: for example, you could save the expression's value in a new local variable `x` and then make `x` be the expression at the end of the block | 1587 ~ let x = ErrorVm::Type(ErrorType::Parse { 1588 | value: literal.to_string(), ... 1591 | }) 1592 ~ .into(); x | warning: relative drop order changing in Rust 2024 --> crates/core/src/host/module_host.rs:630:11 | 628 | let mut tx = db.begin_mut_tx(IsolationLevel::Serializable, Workload::Internal); | ------ | | | `tx` calls a custom destructor | `tx` will be dropped later as of Edition 2024 629 | 630 | match handle_queued_call_reducer_params(&tx, module, db, item) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 662 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/abort.rs:93:1 | 93 | impl Drop for AbortHandle { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/mpsc/chan.rs:225:1 | 225 | impl<T, S> Drop for Tx<T, S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/mutex.rs:858:1 | 858 | impl<R: RawMutex, T: ?Sized> Drop for ArcMutexGuard<R, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:2019:1 | 2019 | impl<R: RawRwLock, T: ?Sized> Drop for ArcRwLockWriteGuard<R, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/thin-vec-0.2.14/src/lib.rs:1677:1 | 1677 | impl<T> Drop for ThinVec<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/table/src/fixed_bit_set.rs:92:5 | 92 | impl<B> Drop for FixedBitSet<B> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tx` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/data-structures/src/slim_slice.rs:299:5 | 299 | impl<T> Drop for SlimSliceBox<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/subscription/module_subscription_actor.rs:598:17 | 589 | let _compile_timer = subscription_metrics.compilation_time.start_timer(); | -------------- | | | `_compile_timer` calls a custom destructor | `_compile_timer` will be dropped later as of Edition 2024 590 | let mut subscriptions = { | ----------------- | | | `subscriptions` calls a custom destructor | `subscriptions` will be dropped later as of Edition 2024 ... 598 | subscriptions.remove_subscription((sender.id.identity, sender.id.connection_id), request.query_id), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 ... 602 | }; | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1 | 150 | impl<T: ?Sized> Drop for Arc<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `_compile_timer` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/prometheus-0.13.4/src/histogram.rs:644:1 | 644 | impl Drop for HistogramTimer { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `subscriptions` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lock_api-0.4.14/src/rwlock.rs:1827:1 | 1827 | impl<'a, R: RawRwLock + 'a, T: ?Sized + 'a> Drop for RwLockWriteGuard<'a, R, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/core/src/subscription/module_subscription_actor.rs:709:19 | 709 | match guard.query(&hash) { | ^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#3` | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 ... 713 | _ => match guard.query(&hash_with_param) { | ----------------------------- | | | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 ... 719 | / compile_query_with_hashes(&auth, &*mut_tx, sql, hash, hash_with_param).map_err(|err| { 720 | | DBError::WithSql { 721 | | error: Box::new(DBError::Other(err.into())), 722 | | sql: sql.into(), 723 | | } 724 | | })?, | | - | | | | |_______________________________this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 730 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#3` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/primitives/src/col_list.rs:291:1 | 291 | impl Drop for ColList { | ^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1 | 150 | impl<T: ?Sized> Drop for Arc<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: `spacetimedb-core` (lib) generated 18 warnings Checking spacetimedb-client-api v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/client-api) warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/database.rs:557:51 | 551 | let (host, database) = find_leader_and_database(&worker_ctx, name_or_identity).await?; | ---- | | | `host` calls a custom destructor | `host` will be dropped later as of Edition 2024 ... 557 | host.exec_sql(auth, database, confirmed, sql).await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 558 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `host` may invoke a custom destructor because it contains a trait object note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1 | 1726 | impl<'scope, T> Drop for Packet<'scope, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1 | 394 | impl Drop for Thread { | ^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1 | 844 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1 | 566 | impl<S: 'static> Drop for UnownedTask<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1 | 3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1 | 373 | impl Drop for ScheduledIo { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1 | 568 | impl<T> Drop for Local<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1 | 556 | impl<S: 'static> Drop for Task<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:495:1 | 495 | impl Drop for Runtime { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1 | 1080 | impl Drop for TypeRegistryInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1 | 628 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/core/src/host/host_controller.rs:1060:1 | 1060 | impl Drop for Host { | ^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:1087:41 | 1054 | / tokio::select! { 1055 | | // `biased` towards the unordered queue, 1056 | | // which may initiate a connection shutdown. 1057 | | biased; 1058 | | 1059 | | maybe_msg = unordered.recv() => { | | --------- | | | | | `maybe_msg` calls a custom destructor | | `maybe_msg` will be dropped later as of Edition 2024 1060 | | let Some(msg) = maybe_msg else { | | --- | | | | | `msg` calls a custom destructor | | `msg` will be dropped later as of Edition 2024 ... | 1073 | | if let Err(e) = ws.send(WsMessage::Close(Some(close_frame))).await { | | -------------------------------------------------- | | | | | | | this value will be stored in a temporary; let us call it `#3` | | | `#3` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#2` | | `#2` will be dropped later as of Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 ... | 1087 | | if let Err(e) = ws.feed(WsMessage::Ping(bytes)).await { | | - ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- | | | | | | | | | this value will be stored in a temporary; let us call it `#18` | | | | up until Edition 2021 `#18` is dropped last but will be dropped earlier in Edition 2024 | | | | this value will be stored in a temporary; let us call it `#5` | | | | `#5` will be dropped later as of Edition 2024 | | | this value will be stored in a temporary; let us call it `#17` | | | up until Edition 2021 `#17` is dropped last but will be dropped earlier in Edition 2024 | | | this value will be stored in a temporary; let us call it `#4` | | | `#4` will be dropped later as of Edition 2024 | | `e` calls a custom destructor | | `e` will be dropped later as of Edition 2024 ... | 1091 | | }, | | - now the temporary value is dropped here, before the local variables in the block or statement ... | 1094 | | let (msg_alloc, res) = send_message( | | _________________________________________---____- | | | | | | | `res` calls a custom destructor | | | `res` will be dropped later as of Edition 2024 1095 | | | &state.database, 1096 | | | config, 1097 | | | serialize_buf, ... | | 1100 | | | err 1101 | | | ).await; | | | ----- | | | | | | | | | this value will be stored in a temporary; let us call it `#6` | | | | `#6` will be dropped later as of Edition 2024 | | |___________________________|___this value will be stored in a temporary; let us call it `#7` | | | `#7` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#8` | | `#8` will be dropped later as of Edition 2024 ... | 1112 | | maybe_message = messages.recv(), if !closed => { | | ------------- | | | | | `maybe_message` calls a custom destructor | | `maybe_message` will be dropped later as of Edition 2024 ... | 1118 | | if let Err(e) = ws.send(WsMessage::Close(None)).await { | | ------------------------------------- | | | | | | | this value will be stored in a temporary; let us call it `#11` | | | `#11` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#9` | | `#9` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#10` | | `#10` will be dropped later as of Edition 2024 ... | 1128 | | let (msg_alloc, res) = send_message( | | _________________________________---____- | | _________________________________|______| | | _________________________________|______| | | _________________________________|______| | | | | | | | this value will be stored in a temporary; let us call it `#12` | | | `#12` will be dropped later as of Edition 2024 1129 | | | &state.database, 1130 | | | config, 1131 | | | serialize_buf, ... | | 1134 | | | message 1135 | | | ).await; | | | ----- | | |___________________|___| | | |___________________|___this value will be stored in a temporary; let us call it `#13` | | |___________________|___`#13` will be dropped later as of Edition 2024 | | |___________________|___this value will be stored in a temporary; let us call it `#14` | | | `#14` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#15` | | `#15` will be dropped later as of Edition 2024 ... | 1142 | | | }, 1143 | | | } | | | - | | | | | | | `output` calls a custom destructor | | | `output` will be dropped later as of Edition 2024 | | | `futures_init` calls a custom destructor | | | `futures_init` will be dropped later as of Edition 2024 | | | `futures` calls a custom destructor | | | `futures` will be dropped later as of Edition 2024 | |_______|_________this value will be stored in a temporary; let us call it `#1` | | `#1` will be dropped later as of Edition 2024 1144 | | 1145 | | if let Err(e) = ws.flush().await { | | ----- | | | | | this value will be stored in a temporary; let us call it `#16` | | `#16` will be dropped later as of Edition 2024 | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#18` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `maybe_msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `maybe_msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `__awaitee` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#6` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ note: `#8` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ note: `maybe_message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `maybe_message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `maybe_message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#10` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#13` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ note: `#15` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:1145:25 | 1054 | / tokio::select! { 1055 | | // `biased` towards the unordered queue, 1056 | | // which may initiate a connection shutdown. 1057 | | biased; 1058 | | 1059 | | maybe_msg = unordered.recv() => { | | --------- | | | | | `maybe_msg` calls a custom destructor | | `maybe_msg` will be dropped later as of Edition 2024 1060 | | let Some(msg) = maybe_msg else { | | --- | | | | | `msg` calls a custom destructor | | `msg` will be dropped later as of Edition 2024 ... | 1073 | | if let Err(e) = ws.send(WsMessage::Close(Some(close_frame))).await { | | -------------------------------------------------- | | | | | | | this value will be stored in a temporary; let us call it `#3` | | | `#3` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#2` | | `#2` will be dropped later as of Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 ... | 1087 | | if let Err(e) = ws.feed(WsMessage::Ping(bytes)).await { | | ------------------------------------- | | | | | | | this value will be stored in a temporary; let us call it `#5` | | | `#5` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#4` | | `#4` will be dropped later as of Edition 2024 ... | 1094 | | let (msg_alloc, res) = send_message( | | _________________________________________---____- | | | | | | | `res` calls a custom destructor | | | `res` will be dropped later as of Edition 2024 1095 | | | &state.database, 1096 | | | config, 1097 | | | serialize_buf, ... | | 1100 | | | err 1101 | | | ).await; | | | ----- | | | | | | | | | this value will be stored in a temporary; let us call it `#6` | | | | `#6` will be dropped later as of Edition 2024 | | |___________________________|___this value will be stored in a temporary; let us call it `#7` | | | `#7` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#8` | | `#8` will be dropped later as of Edition 2024 ... | 1112 | | maybe_message = messages.recv(), if !closed => { | | ------------- | | | | | `maybe_message` calls a custom destructor | | `maybe_message` will be dropped later as of Edition 2024 ... | 1118 | | if let Err(e) = ws.send(WsMessage::Close(None)).await { | | ------------------------------------- | | | | | | | this value will be stored in a temporary; let us call it `#11` | | | `#11` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#9` | | `#9` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#10` | | `#10` will be dropped later as of Edition 2024 ... | 1128 | | let (msg_alloc, res) = send_message( | | _________________________________---____- | | _________________________________|______| | | _________________________________|______| | | _________________________________|______| | | | | | | | this value will be stored in a temporary; let us call it `#12` | | | `#12` will be dropped later as of Edition 2024 1129 | | | &state.database, 1130 | | | config, 1131 | | | serialize_buf, ... | | 1134 | | | message 1135 | | | ).await; | | | ----- | | |___________________|___| | | |___________________|___this value will be stored in a temporary; let us call it `#13` | | |___________________|___`#13` will be dropped later as of Edition 2024 | | |___________________|___this value will be stored in a temporary; let us call it `#14` | | | `#14` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#15` | | `#15` will be dropped later as of Edition 2024 ... | 1142 | | | }, 1143 | | | } | | | - | | | | | | | `output` calls a custom destructor | | | `output` will be dropped later as of Edition 2024 | | | `futures_init` calls a custom destructor | | | `futures_init` will be dropped later as of Edition 2024 | | | `futures` calls a custom destructor | | | `futures` will be dropped later as of Edition 2024 | |_______|_________this value will be stored in a temporary; let us call it `#1` | | `#1` will be dropped later as of Edition 2024 1144 | | 1145 | | if let Err(e) = ws.flush().await { | | - ^^^^^^^^^^^----- | | | | | | | | | this value will be stored in a temporary; let us call it `#16` | | | | `#16` will be dropped later as of Edition 2024 | | | this value will be stored in a temporary; let us call it `#17` | | | up until Edition 2021 `#17` is dropped last but will be dropped earlier in Edition 2024 | | `e` calls a custom destructor | | `e` will be dropped later as of Edition 2024 ... | 1149 | | } | | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `output` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `maybe_msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `maybe_msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `msg` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `__awaitee` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#6` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ note: `#8` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ note: `maybe_message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `maybe_message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `maybe_message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#10` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#13` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ note: `#15` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes_mut.rs:1123:1 | 1123 | impl Drop for BytesMut { | ^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:869:29 | 868 | while let Some(item) = ws.next().await { | ----- | | | this value will be stored in a temporary; let us call it `#1` | `#1` will be dropped later as of Edition 2024 869 | if let Err(e) = tx.try_send(item) { | - ^^^^^^^^^^^^^^^^^ | | | | | this value will be stored in a temporary; let us call it `#5` | | up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024 | `e` calls a custom destructor | `e` will be dropped later as of Edition 2024 ... 872 | mpsc::error::TrySendError::Full(item) => { | ---- | | | `item` calls a custom destructor | `item` will be dropped later as of Edition 2024 ... 883 | if unordered_tx.send(CLOSE).is_err() { | ------------------------ | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 897 | if tx.send(item).await.is_err() { | ------------------- | | | | | this value will be stored in a temporary; let us call it `#4` | | `#4` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 | `__awaitee` calls a custom destructor | `__awaitee` will be dropped later as of Edition 2024 ... 910 | mpsc::error::TrySendError::Closed(_item) => { | ----- | | | `_item` calls a custom destructor | `_item` will be dropped later as of Edition 2024 ... 916 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#5` may invoke a custom destructor because it contains a trait object note: `#5` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#5` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `e` may invoke a custom destructor because it contains a trait object note: `e` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `e` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `item` may invoke a custom destructor because it contains a trait object note: `item` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `item` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: `#3` may invoke a custom destructor because it contains a trait object note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#4` may invoke a custom destructor because it contains a trait object note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `_item` may invoke a custom destructor because it contains a trait object note: `_item` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `_item` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:868:32 | 868 | while let Some(item) = ws.next().await { | ^^^^^^^^^^----- | | | | | this value will be stored in a temporary; let us call it `#1` | | `#1` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#5` | up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024 869 | if let Err(e) = tx.try_send(item) { | - | | | `e` calls a custom destructor | `e` will be dropped later as of Edition 2024 ... 872 | mpsc::error::TrySendError::Full(item) => { | ---- | | | `item` calls a custom destructor | `item` will be dropped later as of Edition 2024 ... 883 | if unordered_tx.send(CLOSE).is_err() { | ------------------------ | | | this value will be stored in a temporary; let us call it `#2` | `#2` will be dropped later as of Edition 2024 ... 897 | if tx.send(item).await.is_err() { | ------------------- | | | | | this value will be stored in a temporary; let us call it `#4` | | `#4` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 | `__awaitee` calls a custom destructor | `__awaitee` will be dropped later as of Edition 2024 ... 910 | mpsc::error::TrySendError::Closed(_item) => { | ----- | | | `_item` calls a custom destructor | `_item` will be dropped later as of Edition 2024 ... 916 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#5` may invoke a custom destructor because it contains a trait object note: `#5` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#5` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `e` may invoke a custom destructor because it contains a trait object note: `e` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `e` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `item` may invoke a custom destructor because it contains a trait object note: `item` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `item` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: `#3` may invoke a custom destructor because it contains a trait object note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#4` may invoke a custom destructor because it contains a trait object note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `_item` may invoke a custom destructor because it contains a trait object note: `_item` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `_item` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:713:37 | 713 | while let Some((data, timer)) = recv_handler.next().await { | ^^^^^^^^^^^^^^^^^^^^----- | | | | | this value will be stored in a temporary; let us call it `#1` | | `#1` will be dropped later as of Edition 2024 | this value will be stored in a temporary; let us call it `#5` | up until Edition 2021 `#5` is dropped last but will be dropped earlier in Edition 2024 714 | let result = message_handler(data, timer).await; | ------ ---------------------------------- | | | | | | | this value will be stored in a temporary; let us call it `#2` | | | `#2` will be dropped later as of Edition 2024 | | `__awaitee` calls a custom destructor | | `__awaitee` will be dropped later as of Edition 2024 | `result` calls a custom destructor | `result` will be dropped later as of Edition 2024 715 | if let Err(e) = result { | - | | | `e` calls a custom destructor | `e` will be dropped later as of Edition 2024 ... 719 | if unordered_tx.send(err.into()).is_err() { | ----------------------------- | | | this value will be stored in a temporary; let us call it `#3` | `#3` will be dropped later as of Edition 2024 ... 731 | if unordered_tx.send(close.into()).is_err() { | ------------------------------- | | | this value will be stored in a temporary; let us call it `#4` | `#4` will be dropped later as of Edition 2024 ... 735 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#5` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `result` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `e` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.100/src/error.rs:773:1 | 773 | impl Drop for Error { | ^^^^^^^^^^^^^^^^^^^ note: `#4` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:787:5 | 787 | / stream! { 788 | | loop { 789 | | let Some(res) = next_message(&state, &mut ws).await else { | | --- ----------------------------------- | | | | | | | | | this value will be stored in a temporary; let us call it `#2` | | | | `#2` will be dropped later as of Edition 2024 | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | | `__awaitee` calls a custom destructor | | | `__awaitee` will be dropped later as of Edition 2024 | | `res` calls a custom destructor | | `res` will be dropped later as of Edition 2024 790 | | log::trace!("recv stream exhausted"); ... | 794 | | Ok(m) => { | | - | | | | | `m` calls a custom destructor | | `m` will be dropped later as of Edition 2024 ... | 829 | | } | | ^ | | | | | this value will be stored in a temporary; let us call it `#4` | | up until Edition 2021 `#4` is dropped last but will be dropped earlier in Edition 2024 | | this value will be stored in a temporary; let us call it `#3` | |_____`#3` will be dropped later as of Edition 2024 | now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `res` may invoke a custom destructor because it contains a trait object note: `res` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `res` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#2` may invoke a custom destructor because it contains a trait object note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `m` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: this warning originates in the macro `stream` (in Nightly builds, run with -Z macro-backtrace for more info) warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:765:44 | 765 | while let Some(item) = ws.next().await { | ---- ^^^^^^^^^^----- | | | | | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | this value will be stored in a temporary; let us call it `#2` | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 | `item` calls a custom destructor | `item` will be dropped later as of Edition 2024 ... 770 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `#2` may invoke a custom destructor because it contains a trait object note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `#1` may invoke a custom destructor because it contains a trait object note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: `item` may invoke a custom destructor because it contains a trait object note: `item` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `item` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:950:5 | 950 | / stream! { 951 | | while let Some(message) = messages.next().await { | | ------- ----- | | | | | | | this value will be stored in a temporary; let us call it `#1` | | | `#1` will be dropped later as of Edition 2024 | | `message` calls a custom destructor | | `message` will be dropped later as of Edition 2024 952 | | match message { 953 | | ClientMessage::Message(message) => { ... | 957 | | ClientMessage::Ping(_bytes) => { | | ------ | | | | | `_bytes` calls a custom destructor | | `_bytes` will be dropped later as of Edition 2024 ... | 962 | | ClientMessage::Pong(_bytes) => { | | ------ | | | | | this value will be stored in a temporary; let us call it `#2` | | `#2` will be dropped later as of Edition 2024 ... | 966 | | ClientMessage::Close(close_frame) => { | | ----------- | | | | | `close_frame` calls a custom destructor | | `close_frame` will be dropped later as of Edition 2024 ... | 976 | | log::trace!("client message handler done"); 977 | | } | | ^ | | | | | this value will be stored in a temporary; let us call it `#3` | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | | `__awaitee` calls a custom destructor | |_____`__awaitee` will be dropped later as of Edition 2024 | now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `_bytes` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `close_frame` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: this warning originates in the macro `stream` (in Nightly builds, run with -Z macro-backtrace for more info) warning: relative drop order changing in Rust 2024 --> crates/client-api/src/routes/subscribe.rs:951:35 | 950 | / stream! { 951 | | while let Some(message) = messages.next().await { | | ------- ^^^^^^^^^^^^^^^^----- | | | | | | | | | this value will be stored in a temporary; let us call it `#1` | | | | `#1` will be dropped later as of Edition 2024 | | | this value will be stored in a temporary; let us call it `#3` | | | up until Edition 2021 `#3` is dropped last but will be dropped earlier in Edition 2024 | | `message` calls a custom destructor | | `message` will be dropped later as of Edition 2024 952 | | match message { 953 | | ClientMessage::Message(message) => { ... | 957 | | ClientMessage::Ping(_bytes) => { | | ------ | | | | | `_bytes` calls a custom destructor | | `_bytes` will be dropped later as of Edition 2024 ... | 962 | | ClientMessage::Pong(_bytes) => { | | ------ | | | | | this value will be stored in a temporary; let us call it `#2` | | `#2` will be dropped later as of Edition 2024 ... | 966 | | ClientMessage::Close(close_frame) => { | | ----------- | | | | | `close_frame` calls a custom destructor | | `close_frame` will be dropped later as of Edition 2024 ... | 975 | | } | | - now the temporary value is dropped here, before the local variables in the block or statement 976 | | log::trace!("client message handler done"); 977 | | } | | - | | | | |_____`__awaitee` calls a custom destructor | `__awaitee` will be dropped later as of Edition 2024 | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#3` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `message` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `_bytes` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ note: `close_frame` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/bytes-1.10.1/src/bytes.rs:684:1 | 684 | impl Drop for Bytes { | ^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: `spacetimedb-client-api` (lib) generated 10 warnings Checking spacetimedb-pg v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/pg) Checking spacetimedb-standalone v1.10.0 (/home/coolreader18/clockwork/spacetimedb/crates/standalone) warning: relative drop order changing in Rust 2024 --> crates/standalone/src/lib.rs:566:91 | 565 | let args = start::cli().try_get_matches_from(args)?; | ---- | | | `args` calls a custom destructor | `args` will be dropped later as of Edition 2024 566 | start::exec(&args, JobCores::without_pinned_cores(tokio::runtime::Handle::current())).await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 567 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `args` may invoke a custom destructor because it contains a trait object = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages = note: requested on the command line with `-W tail-expr-drop-order` warning: relative drop order changing in Rust 2024 --> crates/standalone/src/control_db.rs:323:15 | 322 | let tree = self.db.open_tree("top_level_domains")?; | ---- | | | `tree` calls a custom destructor | `tree` will be dropped later as of Edition 2024 323 | match tree.get(domain.as_ref().to_lowercase().as_bytes())? { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 | this value will be stored in a temporary; let us call it `#2` | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 ... 327 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> note: `#1` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1 | 150 | impl<T: ?Sized> Drop for Arc<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `#2` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1 | 150 | impl<T: ?Sized> Drop for Arc<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `tree` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/sled-0.34.7/src/arc.rs:150:1 | 150 | impl<T: ?Sized> Drop for Arc<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: relative drop order changing in Rust 2024 --> crates/standalone/src/lib.rs:341:22 | 329 | let host = self | ---- | | | `host` calls a custom destructor | `host` will be dropped later as of Edition 2024 ... 341 | .await | ^^^^^ | | | this value will be stored in a temporary; let us call it `#1` | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 342 | } | - now the temporary value is dropped here, before the local variables in the block or statement | = warning: this changes meaning in Rust 2024 = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/temporary-tail-expr-scope.html> = note: `host` may invoke a custom destructor because it contains a trait object note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/thread/mod.rs:1726:1 | 1726 | impl<'scope, T> Drop for Packet<'scope, T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/ffi/c_str.rs:698:1 | 698 | impl Drop for CString { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/pal/unix/thread.rs:394:1 | 394 | impl Drop for Thread { | ^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/sync/oneshot.rs:844:1 | 844 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:566:1 | 566 | impl<S: 'static> Drop for UnownedTask<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/sync.rs:3274:1 | 3274 | unsafe impl<#[may_dangle] T: ?Sized, A: Allocator> Drop for Weak<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/os/fd/owned.rs:170:1 | 170 | impl Drop for OwnedFd { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/io/scheduled_io.rs:373:1 | 373 | impl Drop for ScheduledIo { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/scheduler/multi_thread/queue.rs:568:1 | 568 | impl<T> Drop for Local<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/task/mod.rs:556:1 | 556 | impl<S: 'static> Drop for Task<S> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.48.0/src/runtime/runtime.rs:495:1 | 495 | impl Drop for Runtime { | ^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/smallvec-1.15.1/src/lib.rs:2147:1 | 2147 | impl<A: Array> Drop for SmallVec<A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wasmtime-25.0.3/src/runtime/type_registry.rs:1080:1 | 1080 | impl Drop for TypeRegistryInner { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.rustup/toolchains/1.90.0-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sync/mpmc/mod.rs:628:1 | 628 | impl<T> Drop for Sender<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/hashbrown-0.14.5/src/raw/mod.rs:3679:1 | 3679 | impl<T, A: Allocator> Drop for RawTable<T, A> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/crossbeam-queue-0.3.12/src/array_queue.rs:448:1 | 448 | impl<T> Drop for ArrayQueue<T> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ note: `host` invokes this custom destructor --> /home/coolreader18/clockwork/spacetimedb/crates/core/src/host/host_controller.rs:1060:1 | 1060 | impl Drop for Host { | ^^^^^^^^^^^^^^^^^^ = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages warning: `spacetimedb-standalone` (lib) generated 3 warnings Finished `dev` profile [unoptimized + debuginfo] target(s) in 2.83s