[INFO] fetching crate multiversx-sc-derive 0.53.0... [INFO] checking multiversx-sc-derive-0.53.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate multiversx-sc-derive 0.53.0 into /workspace/builds/worker-7-tc2/source [INFO] validating manifest of crates.io crate multiversx-sc-derive 0.53.0 on toolchain ccf408f4326a858c00dd845a64a86b16f360a801 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate multiversx-sc-derive 0.53.0 [INFO] finished tweaking crates.io crate multiversx-sc-derive 0.53.0 [INFO] tweaked toml for crates.io crate multiversx-sc-derive 0.53.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 9 packages to latest compatible versions [INFO] [stderr] Adding endian-type v0.1.2 (available: v0.2.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 95b6c880bc6c6d0063726977b478878914f8689e37f0585e47739a3fecfeaa35 [INFO] running `Command { std: "docker" "start" "-a" "95b6c880bc6c6d0063726977b478878914f8689e37f0585e47739a3fecfeaa35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "95b6c880bc6c6d0063726977b478878914f8689e37f0585e47739a3fecfeaa35", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "95b6c880bc6c6d0063726977b478878914f8689e37f0585e47739a3fecfeaa35", kill_on_drop: false }` [INFO] [stdout] 95b6c880bc6c6d0063726977b478878914f8689e37f0585e47739a3fecfeaa35 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:ceb6ea022f8a89cebbe621bb4987e73a935bd40dfbb726f832cfff4742a5b95a" "/opt/rustwide/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c6939fa315a4f7bc52c2fab5aff9ec8124bb47a12199b3332b9242169c723655 [INFO] running `Command { std: "docker" "start" "-a" "c6939fa315a4f7bc52c2fab5aff9ec8124bb47a12199b3332b9242169c723655", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Checking unicode-ident v1.0.13 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking endian-type v0.1.2 [INFO] [stderr] Checking hex v0.4.3 [INFO] [stderr] Checking proc-macro2 v1.0.86 [INFO] [stderr] Checking nibble_vec v0.1.0 [INFO] [stderr] Checking radix_trie v0.2.1 [INFO] [stderr] Checking quote v1.0.37 [INFO] [stderr] Checking syn v2.0.77 [INFO] [stderr] Checking multiversx-sc-derive v0.53.0 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `multiversx_sc_derive` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/generate/util.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/generate/util.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | ($ident:expr_2021, $fstr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/generate/util.rs:4:24 [INFO] [stderr] | [INFO] [stderr] 4 | ($ident:expr_2021, $fstr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | let gen = quote! { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | gen.into() [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let gen = quote! { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | gen.into() [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/generate/util.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr, $fstr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr_2021, $fstr:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/generate/util.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr, $fstr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr, $fstr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/format/format_args_macro.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | let format_string = if let proc_macro2::TokenTree::Literal(lit) = format_string_token { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/format/format_args_macro.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 18 ~ let format_string = match format_string_token { proc_macro2::TokenTree::Literal(lit) => { [INFO] [stdout] 19 | lit.to_string() [INFO] [stdout] 20 ~ } _ => { [INFO] [stdout] 21 | panic!( [INFO] [stdout] 22 | "Formatting requires that the first argument is a string. Found: {format_string_token}" [INFO] [stdout] 23 | ); [INFO] [stdout] 24 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/abi_gen.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | if let MethodImpl::Generated(AutoImpl::Event { identifier }) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/abi_gen.rs:182:13 [INFO] [stdout] | [INFO] [stdout] 182 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 176 ~ match &m.implementation { MethodImpl::Generated(AutoImpl::Event { identifier }) => { [INFO] [stdout] 177 | let event_def = generate_event_snippet(m, identifier); [INFO] [stdout] ... [INFO] [stdout] 181 | }) [INFO] [stdout] 182 ~ } _ => { [INFO] [stdout] 183 | None [INFO] [stdout] 184 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:23:20 [INFO] [stdout] | [INFO] [stdout] 23 | if let Some((leading_segments, last_segment)) = split_path_last(&type_path.path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 23 ~ match split_path_last(&type_path.path) { Some((leading_segments, last_segment)) => { [INFO] [stdout] 24 | ProxyGetterReturnType { [INFO] [stdout] ... [INFO] [stdout] 27 | } [INFO] [stdout] 28 ~ } _ => { [INFO] [stdout] 29 | panic!("Proxy getter return type must be specfied with some module specifier (e.g. `path::to::module::Proxy`)"); [INFO] [stdout] 30 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | if let Some(address_arg_name) = proxy_getter_address_arg_name(m) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 60 ~ match proxy_getter_address_arg_name(m) { Some(address_arg_name) => { [INFO] [stdout] 61 | quote! { [INFO] [stdout] 62 | .contract(#address_arg_name) [INFO] [stdout] 63 | } [INFO] [stdout] 64 ~ } _ => { [INFO] [stdout] 65 | quote! {} [INFO] [stdout] 66 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:86:16 [INFO] [stdout] | [INFO] [stdout] 86 | if let MethodImpl::Generated(AutoImpl::ProxyGetter) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 86 ~ match &m.implementation { MethodImpl::Generated(AutoImpl::ProxyGetter) => { [INFO] [stdout] 87 | let parsed_return_type = proxy_getter_return_type(m); [INFO] [stdout] ... [INFO] [stdout] 91 | }) [INFO] [stdout] 92 ~ } _ => { [INFO] [stdout] 93 | None [INFO] [stdout] 94 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | if let Some(raw) = raw_decl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^-------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 23 ~ match raw_decl { Some(raw) => { [INFO] [stdout] 24 | let as_call_method = generate_endpoint_call_method_body(&raw); [INFO] [stdout] ... [INFO] [stdout] 35 | (cb_selector_body, cb_main_body) [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | let match_arms: Vec = match_arms(contract.methods.as_slice()); [INFO] [stdout] ... [INFO] [stdout] 60 | } [INFO] [stdout] 61 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:90:16 [INFO] [stdout] | [INFO] [stdout] 90 | if let PublicRole::Callback(callback) = &m.public_role { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 90 ~ match &m.public_role { PublicRole::Callback(callback) => { [INFO] [stdout] 91 | let payable_snippet = generate_payable_snippet(m); [INFO] [stdout] ... [INFO] [stdout] 112 | Some(match_arm) [INFO] [stdout] 113 ~ } _ => { [INFO] [stdout] 114 | None [INFO] [stdout] 115 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | if let MethodImpl::Explicit(body) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 12 ~ match &m.implementation { MethodImpl::Explicit(body) => { [INFO] [stdout] 13 | let msig = method_gen::generate_sig_with_attributes(m); [INFO] [stdout] ... [INFO] [stdout] 17 | }) [INFO] [stdout] 18 ~ } _ => { [INFO] [stdout] 19 | None [INFO] [stdout] 20 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | if let MethodImpl::Generated(_) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 47 ~ match &m.implementation { MethodImpl::Generated(_) => { [INFO] [stdout] 48 | let sig = method_gen::generate_sig_with_attributes(m); [INFO] [stdout] 49 | Some(quote! { #sig ; }) [INFO] [stdout] 50 ~ } _ => { [INFO] [stdout] 51 | None [INFO] [stdout] 52 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/convert_to_owned_type.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | if let syn::Type::Slice(slice_type) = &*type_reference.elem { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 21 | } else if let syn::Type::Path(syn::TypePath { path, .. }) = &*type_reference.elem { [INFO] [stdout] | -------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/convert_to_owned_type.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | } else if let syn::Type::Path(syn::TypePath { path, .. }) = &*type_reference.elem { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/convert_to_owned_type.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 15 ~ match &*type_reference.elem { syn::Type::Slice(slice_type) => { [INFO] [stdout] 16 | // deserialize as boxed slice, so we have an owned object that we can reference [INFO] [stdout] ... [INFO] [stdout] 20 | }; [INFO] [stdout] 21 ~ } _ => { match &*type_reference.elem { syn::Type::Path(syn::TypePath { path, .. }) => { [INFO] [stdout] 22 | if let Some(ident) = path.get_ident() { [INFO] [stdout] ... [INFO] [stdout] 29 | } [INFO] [stdout] 30 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/proxy_callback_gen.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | if let PublicRole::Callback(callback) | PublicRole::CallbackPromise(callback) = [INFO] [stdout] | ________________^ [INFO] [stdout] 68 | | &m.public_role [INFO] [stdout] | |__________________------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/proxy_callback_gen.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 67 ~ match &m.public_role [INFO] [stdout] 68 ~ { PublicRole::Callback(callback) | PublicRole::CallbackPromise(callback) => { [INFO] [stdout] 69 | Some(generate_callback_proxy_method(m, callback)) [INFO] [stdout] 70 ~ } _ => { [INFO] [stdout] 71 | None [INFO] [stdout] 72 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/util.rs:71:20 [INFO] [stdout] | [INFO] [stdout] 71 | if let syn::PathArguments::AngleBracketed(angle_backeted) = &mut path_segm.arguments [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/util.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 71 ~ match &mut path_segm.arguments [INFO] [stdout] 72 ~ { syn::PathArguments::AngleBracketed(angle_backeted) => { [INFO] [stdout] 73 | angle_backeted.args.iter_mut().for_each(|gen_arg| { [INFO] [stdout] ... [INFO] [stdout] 77 | }); [INFO] [stdout] 78 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/util.rs:74:28 [INFO] [stdout] | [INFO] [stdout] 74 | if let syn::GenericArgument::Type(gen_ty) = &mut *gen_arg { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/util.rs:76:25 [INFO] [stdout] | [INFO] [stdout] 76 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 74 ~ match &mut *gen_arg { syn::GenericArgument::Type(gen_ty) => { [INFO] [stdout] 75 | clear_all_type_lifetimes(gen_ty); [INFO] [stdout] 76 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 15 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 16 | first_seg.ident == ATTR_DOC [INFO] [stdout] 17 ~ } _ => { [INFO] [stdout] 18 | false [INFO] [stdout] 19 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | if let syn::Expr::Lit(lit_str) = meta_name_value.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 25 ~ match meta_name_value.value { syn::Expr::Lit(lit_str) => { [INFO] [stdout] 26 | if meta_name_value.path.is_ident("doc") { [INFO] [stdout] ... [INFO] [stdout] 39 | } [INFO] [stdout] 40 ~ } _ => { [INFO] [stdout] 41 | panic!("Value is not a string literal"); [INFO] [stdout] 42 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | if let Some(tuple) = value [INFO] [stdout] | _____________________________^ - [INFO] [stdout] | | ______________________________________________| [INFO] [stdout] 29 | || .to_token_stream() [INFO] [stdout] | ||______________________________________________- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 30 | | .to_string() [INFO] [stdout] 31 | | .split_once(char::is_whitespace) [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:34:25 [INFO] [stdout] | [INFO] [stdout] 34 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 28 ~ match value [INFO] [stdout] 29 | .to_token_stream() [INFO] [stdout] 30 | .to_string() [INFO] [stdout] 31 | .split_once(char::is_whitespace) [INFO] [stdout] 32 ~ { Some(tuple) => { [INFO] [stdout] 33 | remove_backslashes(tuple.1) [INFO] [stdout] 34 ~ } _ => { [INFO] [stdout] 35 | String::new() [INFO] [stdout] 36 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | if let syn::Meta::List(list) = &a.meta { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 52 ~ match &a.meta { syn::Meta::List(list) => { [INFO] [stdout] 53 | if list.path.is_ident("derive") { [INFO] [stdout] ... [INFO] [stdout] 59 | } [INFO] [stdout] 60 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 55 | if let proc_macro2::TokenTree::Ident(ident) = token { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match token { proc_macro2::TokenTree::Ident(ident) => { [INFO] [stdout] 56 | macro_attributes.push(ident.to_string()); [INFO] [stdout] 57 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/payable_attr.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/payable_attr.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 11 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 12 | if first_seg.ident == ATTR_PAYABLE { [INFO] [stdout] ... [INFO] [stdout] 18 | } [INFO] [stdout] 19 ~ } _ => { [INFO] [stdout] 20 | None [INFO] [stdout] 21 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:146:5 [INFO] [stdout] | [INFO] [stdout] 146 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 140 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 141 | if first_seg.ident == attr_name { [INFO] [stdout] ... [INFO] [stdout] 145 | } [INFO] [stdout] 146 ~ } _ => { [INFO] [stdout] 147 | None [INFO] [stdout] 148 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 199 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 200 | if first_seg.ident == attr_name { [INFO] [stdout] ... [INFO] [stdout] 204 | } [INFO] [stdout] 205 ~ } _ => { [INFO] [stdout] 206 | None [INFO] [stdout] 207 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/method_parse.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | let implementation = if let Some(body) = m.default.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/method_parse.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 30 ~ let implementation = match m.default.clone() { Some(body) => { [INFO] [stdout] 31 | MethodImpl::Explicit(body) [INFO] [stdout] 32 ~ } _ => { [INFO] [stdout] 33 | MethodImpl::NoImplementation [INFO] [stdout] 34 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/supertrait_parse.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some((leading_segments, last_segment)) = split_path_last(&t.path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/supertrait_parse.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 13 ~ match split_path_last(&t.path) { Some((leading_segments, last_segment)) => { [INFO] [stdout] 14 | assert!( [INFO] [stdout] ... [INFO] [stdout] 22 | } [INFO] [stdout] 23 ~ } _ => { [INFO] [stdout] 24 | panic!("All contract module supertraits must be specfied with some module specifier (e.g. `path::to::module::ContractName`)"); [INFO] [stdout] 25 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/trait_argument_parse.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(esdt_attribute) = get_esdt_attribute_prop(attr) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/trait_argument_parse.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 46 ~ match get_esdt_attribute_prop(attr) { Some(esdt_attribute) => { [INFO] [stdout] 47 | arg_metadata.esdt_attribute.push(esdt_attribute); [INFO] [stdout] 48 | true [INFO] [stdout] 49 ~ } _ => { [INFO] [stdout] 50 | false [INFO] [stdout] 51 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/preprocessing/substitution_algorithm.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | if let Some(tt) = tt_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/preprocessing/substitution_algorithm.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 28 ~ match tt_iter.next() { Some(tt) => { [INFO] [stdout] 29 | match tt { [INFO] [stdout] ... [INFO] [stdout] 40 | } [INFO] [stdout] 41 ~ } _ => { [INFO] [stdout] 42 | break; [INFO] [stdout] 43 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_abi_derive.rs:13:29 [INFO] [stdout] | [INFO] [stdout] 13 | let field_name_str = if let Some(ident) = &field.ident { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_abi_derive.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 13 ~ let field_name_str = match &field.ident { Some(ident) => { [INFO] [stdout] 14 | ident.to_string() [INFO] [stdout] 15 ~ } _ => { [INFO] [stdout] 16 | index.to_string() [INFO] [stdout] 17 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 21 ~ match &m.public_role { PublicRole::Endpoint(endpoint_metadata) => { [INFO] [stdout] 22 | let endpoint_name_str = endpoint_metadata.public_name.to_string(); [INFO] [stdout] ... [INFO] [stdout] 31 | assert!(!reserved::is_reserved(endpoint_name_str.as_str()), "Cannot declare endpoint with name '{endpoint_name_str}', because that name is reserved by the Arwen API."); [INFO] [stdout] 32 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | if let Some(payment_arg) = m.payment_amount_arg() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 91 ~ match m.payment_amount_arg() { Some(payment_arg) => { [INFO] [stdout] 92 | match &payment_arg.ty { [INFO] [stdout] ... [INFO] [stdout] 98 | } [INFO] [stdout] 99 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 34 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `multiversx_sc_derive` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/generate/util.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/generate/util.rs:4:6 [INFO] [stderr] | [INFO] [stderr] 4 | ($ident:expr_2021, $fstr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/generate/util.rs:4:24 [INFO] [stderr] | [INFO] [stderr] 4 | ($ident:expr_2021, $fstr:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | let gen = quote! { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | gen.into() [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let gen = quote! { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/managed_vec_item_derive.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | gen.into() [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/generate/util.rs:4:13 [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr, $fstr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr_2021, $fstr:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/generate/util.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr, $fstr:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 4 | ($ident:expr, $fstr:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/format/format_args_macro.rs:18:28 [INFO] [stdout] | [INFO] [stdout] 18 | let format_string = if let proc_macro2::TokenTree::Literal(lit) = format_string_token { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/format/format_args_macro.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 18 ~ let format_string = match format_string_token { proc_macro2::TokenTree::Literal(lit) => { [INFO] [stdout] 19 | lit.to_string() [INFO] [stdout] 20 ~ } _ => { [INFO] [stdout] 21 | panic!( [INFO] [stdout] 22 | "Formatting requires that the first argument is a string. Found: {format_string_token}" [INFO] [stdout] 23 | ); [INFO] [stdout] 24 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/abi_gen.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | if let MethodImpl::Generated(AutoImpl::Event { identifier }) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/abi_gen.rs:182:13 [INFO] [stdout] | [INFO] [stdout] 182 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 176 ~ match &m.implementation { MethodImpl::Generated(AutoImpl::Event { identifier }) => { [INFO] [stdout] 177 | let event_def = generate_event_snippet(m, identifier); [INFO] [stdout] ... [INFO] [stdout] 181 | }) [INFO] [stdout] 182 ~ } _ => { [INFO] [stdout] 183 | None [INFO] [stdout] 184 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:23:20 [INFO] [stdout] | [INFO] [stdout] 23 | if let Some((leading_segments, last_segment)) = split_path_last(&type_path.path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:28:17 [INFO] [stdout] | [INFO] [stdout] 28 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 23 ~ match split_path_last(&type_path.path) { Some((leading_segments, last_segment)) => { [INFO] [stdout] 24 | ProxyGetterReturnType { [INFO] [stdout] ... [INFO] [stdout] 27 | } [INFO] [stdout] 28 ~ } _ => { [INFO] [stdout] 29 | panic!("Proxy getter return type must be specfied with some module specifier (e.g. `path::to::module::Proxy`)"); [INFO] [stdout] 30 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:60:8 [INFO] [stdout] | [INFO] [stdout] 60 | if let Some(address_arg_name) = proxy_getter_address_arg_name(m) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:64:5 [INFO] [stdout] | [INFO] [stdout] 64 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 60 ~ match proxy_getter_address_arg_name(m) { Some(address_arg_name) => { [INFO] [stdout] 61 | quote! { [INFO] [stdout] 62 | .contract(#address_arg_name) [INFO] [stdout] 63 | } [INFO] [stdout] 64 ~ } _ => { [INFO] [stdout] 65 | quote! {} [INFO] [stdout] 66 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:86:16 [INFO] [stdout] | [INFO] [stdout] 86 | if let MethodImpl::Generated(AutoImpl::ProxyGetter) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/auto_impl_proxy.rs:92:13 [INFO] [stdout] | [INFO] [stdout] 92 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 86 ~ match &m.implementation { MethodImpl::Generated(AutoImpl::ProxyGetter) => { [INFO] [stdout] 87 | let parsed_return_type = proxy_getter_return_type(m); [INFO] [stdout] ... [INFO] [stdout] 91 | }) [INFO] [stdout] 92 ~ } _ => { [INFO] [stdout] 93 | None [INFO] [stdout] 94 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:23:8 [INFO] [stdout] | [INFO] [stdout] 23 | if let Some(raw) = raw_decl { [INFO] [stdout] | ^^^^^^^^^^^^^^^^-------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:36:5 [INFO] [stdout] | [INFO] [stdout] 36 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 23 ~ match raw_decl { Some(raw) => { [INFO] [stdout] 24 | let as_call_method = generate_endpoint_call_method_body(&raw); [INFO] [stdout] ... [INFO] [stdout] 35 | (cb_selector_body, cb_main_body) [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | let match_arms: Vec = match_arms(contract.methods.as_slice()); [INFO] [stdout] ... [INFO] [stdout] 60 | } [INFO] [stdout] 61 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:90:16 [INFO] [stdout] | [INFO] [stdout] 90 | if let PublicRole::Callback(callback) = &m.public_role { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/callback_gen.rs:113:13 [INFO] [stdout] | [INFO] [stdout] 113 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 90 ~ match &m.public_role { PublicRole::Callback(callback) => { [INFO] [stdout] 91 | let payable_snippet = generate_payable_snippet(m); [INFO] [stdout] ... [INFO] [stdout] 112 | Some(match_arm) [INFO] [stdout] 113 ~ } _ => { [INFO] [stdout] 114 | None [INFO] [stdout] 115 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:12:16 [INFO] [stdout] | [INFO] [stdout] 12 | if let MethodImpl::Explicit(body) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:18:13 [INFO] [stdout] | [INFO] [stdout] 18 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 12 ~ match &m.implementation { MethodImpl::Explicit(body) => { [INFO] [stdout] 13 | let msig = method_gen::generate_sig_with_attributes(m); [INFO] [stdout] ... [INFO] [stdout] 17 | }) [INFO] [stdout] 18 ~ } _ => { [INFO] [stdout] 19 | None [INFO] [stdout] 20 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:47:16 [INFO] [stdout] | [INFO] [stdout] 47 | if let MethodImpl::Generated(_) = &m.implementation { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/contract_gen.rs:50:13 [INFO] [stdout] | [INFO] [stdout] 50 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 47 ~ match &m.implementation { MethodImpl::Generated(_) => { [INFO] [stdout] 48 | let sig = method_gen::generate_sig_with_attributes(m); [INFO] [stdout] 49 | Some(quote! { #sig ; }) [INFO] [stdout] 50 ~ } _ => { [INFO] [stdout] 51 | None [INFO] [stdout] 52 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/convert_to_owned_type.rs:15:12 [INFO] [stdout] | [INFO] [stdout] 15 | if let syn::Type::Slice(slice_type) = &*type_reference.elem { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] ... [INFO] [stdout] 21 | } else if let syn::Type::Path(syn::TypePath { path, .. }) = &*type_reference.elem { [INFO] [stdout] | -------------------- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/convert_to_owned_type.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | } else if let syn::Type::Path(syn::TypePath { path, .. }) = &*type_reference.elem { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/convert_to_owned_type.rs:30:9 [INFO] [stdout] | [INFO] [stdout] 30 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 15 ~ match &*type_reference.elem { syn::Type::Slice(slice_type) => { [INFO] [stdout] 16 | // deserialize as boxed slice, so we have an owned object that we can reference [INFO] [stdout] ... [INFO] [stdout] 20 | }; [INFO] [stdout] 21 ~ } _ => { match &*type_reference.elem { syn::Type::Path(syn::TypePath { path, .. }) => { [INFO] [stdout] 22 | if let Some(ident) = path.get_ident() { [INFO] [stdout] ... [INFO] [stdout] 29 | } [INFO] [stdout] 30 ~ } _ => {}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/proxy_callback_gen.rs:67:16 [INFO] [stdout] | [INFO] [stdout] 67 | if let PublicRole::Callback(callback) | PublicRole::CallbackPromise(callback) = [INFO] [stdout] | ________________^ [INFO] [stdout] 68 | | &m.public_role [INFO] [stdout] | |__________________------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/proxy_callback_gen.rs:71:13 [INFO] [stdout] | [INFO] [stdout] 71 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 67 ~ match &m.public_role [INFO] [stdout] 68 ~ { PublicRole::Callback(callback) | PublicRole::CallbackPromise(callback) => { [INFO] [stdout] 69 | Some(generate_callback_proxy_method(m, callback)) [INFO] [stdout] 70 ~ } _ => { [INFO] [stdout] 71 | None [INFO] [stdout] 72 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/util.rs:71:20 [INFO] [stdout] | [INFO] [stdout] 71 | if let syn::PathArguments::AngleBracketed(angle_backeted) = &mut path_segm.arguments [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/util.rs:78:17 [INFO] [stdout] | [INFO] [stdout] 78 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 71 ~ match &mut path_segm.arguments [INFO] [stdout] 72 ~ { syn::PathArguments::AngleBracketed(angle_backeted) => { [INFO] [stdout] 73 | angle_backeted.args.iter_mut().for_each(|gen_arg| { [INFO] [stdout] ... [INFO] [stdout] 77 | }); [INFO] [stdout] 78 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/generate/util.rs:74:28 [INFO] [stdout] | [INFO] [stdout] 74 | if let syn::GenericArgument::Type(gen_ty) = &mut *gen_arg { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/generate/util.rs:76:25 [INFO] [stdout] | [INFO] [stdout] 76 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 74 ~ match &mut *gen_arg { syn::GenericArgument::Type(gen_ty) => { [INFO] [stdout] 75 | clear_all_type_lifetimes(gen_ty); [INFO] [stdout] 76 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:15:16 [INFO] [stdout] | [INFO] [stdout] 15 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:17:13 [INFO] [stdout] | [INFO] [stdout] 17 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 15 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 16 | first_seg.ident == ATTR_DOC [INFO] [stdout] 17 ~ } _ => { [INFO] [stdout] 18 | false [INFO] [stdout] 19 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | if let syn::Expr::Lit(lit_str) = meta_name_value.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 40 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 25 ~ match meta_name_value.value { syn::Expr::Lit(lit_str) => { [INFO] [stdout] 26 | if meta_name_value.path.is_ident("doc") { [INFO] [stdout] ... [INFO] [stdout] 39 | } [INFO] [stdout] 40 ~ } _ => { [INFO] [stdout] 41 | panic!("Value is not a string literal"); [INFO] [stdout] 42 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:28:28 [INFO] [stdout] | [INFO] [stdout] 28 | if let Some(tuple) = value [INFO] [stdout] | _____________________________^ - [INFO] [stdout] | | ______________________________________________| [INFO] [stdout] 29 | || .to_token_stream() [INFO] [stdout] | ||______________________________________________- this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] 30 | | .to_string() [INFO] [stdout] 31 | | .split_once(char::is_whitespace) [INFO] [stdout] | |_____________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:34:25 [INFO] [stdout] | [INFO] [stdout] 34 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 28 ~ match value [INFO] [stdout] 29 | .to_token_stream() [INFO] [stdout] 30 | .to_string() [INFO] [stdout] 31 | .split_once(char::is_whitespace) [INFO] [stdout] 32 ~ { Some(tuple) => { [INFO] [stdout] 33 | remove_backslashes(tuple.1) [INFO] [stdout] 34 ~ } _ => { [INFO] [stdout] 35 | String::new() [INFO] [stdout] 36 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:52:12 [INFO] [stdout] | [INFO] [stdout] 52 | if let syn::Meta::List(list) = &a.meta { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:60:9 [INFO] [stdout] | [INFO] [stdout] 60 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 52 ~ match &a.meta { syn::Meta::List(list) => { [INFO] [stdout] 53 | if list.path.is_ident("derive") { [INFO] [stdout] ... [INFO] [stdout] 59 | } [INFO] [stdout] 60 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:55:24 [INFO] [stdout] | [INFO] [stdout] 55 | if let proc_macro2::TokenTree::Ident(ident) = token { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/doc_attr.rs:57:21 [INFO] [stdout] | [INFO] [stdout] 57 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match token { proc_macro2::TokenTree::Ident(ident) => { [INFO] [stdout] 56 | macro_attributes.push(ident.to_string()); [INFO] [stdout] 57 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/payable_attr.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/payable_attr.rs:19:9 [INFO] [stdout] | [INFO] [stdout] 19 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 11 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 12 | if first_seg.ident == ATTR_PAYABLE { [INFO] [stdout] ... [INFO] [stdout] 18 | } [INFO] [stdout] 19 ~ } _ => { [INFO] [stdout] 20 | None [INFO] [stdout] 21 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:140:8 [INFO] [stdout] | [INFO] [stdout] 140 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:146:5 [INFO] [stdout] | [INFO] [stdout] 146 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 140 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 141 | if first_seg.ident == attr_name { [INFO] [stdout] ... [INFO] [stdout] 145 | } [INFO] [stdout] 146 ~ } _ => { [INFO] [stdout] 147 | None [INFO] [stdout] 148 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:199:8 [INFO] [stdout] | [INFO] [stdout] 199 | if let Some(first_seg) = attr.path().segments.first() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^--------------------^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/attributes/util.rs:205:5 [INFO] [stdout] | [INFO] [stdout] 205 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 199 ~ match attr.path().segments.first() { Some(first_seg) => { [INFO] [stdout] 200 | if first_seg.ident == attr_name { [INFO] [stdout] ... [INFO] [stdout] 204 | } [INFO] [stdout] 205 ~ } _ => { [INFO] [stdout] 206 | None [INFO] [stdout] 207 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/method_parse.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | let implementation = if let Some(body) = m.default.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^----------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/method_parse.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 30 ~ let implementation = match m.default.clone() { Some(body) => { [INFO] [stdout] 31 | MethodImpl::Explicit(body) [INFO] [stdout] 32 ~ } _ => { [INFO] [stdout] 33 | MethodImpl::NoImplementation [INFO] [stdout] 34 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/supertrait_parse.rs:13:16 [INFO] [stdout] | [INFO] [stdout] 13 | if let Some((leading_segments, last_segment)) = split_path_last(&t.path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/supertrait_parse.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 13 ~ match split_path_last(&t.path) { Some((leading_segments, last_segment)) => { [INFO] [stdout] 14 | assert!( [INFO] [stdout] ... [INFO] [stdout] 22 | } [INFO] [stdout] 23 ~ } _ => { [INFO] [stdout] 24 | panic!("All contract module supertraits must be specfied with some module specifier (e.g. `path::to::module::ContractName`)"); [INFO] [stdout] 25 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parse/trait_argument_parse.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(esdt_attribute) = get_esdt_attribute_prop(attr) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parse/trait_argument_parse.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 46 ~ match get_esdt_attribute_prop(attr) { Some(esdt_attribute) => { [INFO] [stdout] 47 | arg_metadata.esdt_attribute.push(esdt_attribute); [INFO] [stdout] 48 | true [INFO] [stdout] 49 ~ } _ => { [INFO] [stdout] 50 | false [INFO] [stdout] 51 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/preprocessing/substitution_algorithm.rs:28:12 [INFO] [stdout] | [INFO] [stdout] 28 | if let Some(tt) = tt_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^-------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/preprocessing/substitution_algorithm.rs:41:9 [INFO] [stdout] | [INFO] [stdout] 41 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 28 ~ match tt_iter.next() { Some(tt) => { [INFO] [stdout] 29 | match tt { [INFO] [stdout] ... [INFO] [stdout] 40 | } [INFO] [stdout] 41 ~ } _ => { [INFO] [stdout] 42 | break; [INFO] [stdout] 43 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_abi_derive.rs:13:29 [INFO] [stdout] | [INFO] [stdout] 13 | let field_name_str = if let Some(ident) = &field.ident { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^----------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_abi_derive.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 13 ~ let field_name_str = match &field.ident { Some(ident) => { [INFO] [stdout] 14 | ident.to_string() [INFO] [stdout] 15 ~ } _ => { [INFO] [stdout] 16 | index.to_string() [INFO] [stdout] 17 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | if let PublicRole::Endpoint(endpoint_metadata) = &m.public_role { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:32:5 [INFO] [stdout] | [INFO] [stdout] 32 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 21 ~ match &m.public_role { PublicRole::Endpoint(endpoint_metadata) => { [INFO] [stdout] 22 | let endpoint_name_str = endpoint_metadata.public_name.to_string(); [INFO] [stdout] ... [INFO] [stdout] 31 | assert!(!reserved::is_reserved(endpoint_name_str.as_str()), "Cannot declare endpoint with name '{endpoint_name_str}', because that name is reserved by the Arwen API."); [INFO] [stdout] 32 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:91:8 [INFO] [stdout] | [INFO] [stdout] 91 | if let Some(payment_arg) = m.payment_amount_arg() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^---------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/validate/validate_method.rs:99:5 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 91 ~ match m.payment_amount_arg() { Some(payment_arg) => { [INFO] [stdout] 92 | match &payment_arg.ty { [INFO] [stdout] ... [INFO] [stdout] 98 | } [INFO] [stdout] 99 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 34 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.19s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking multiversx-sc-derive v0.53.0 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | let gen = quote! { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 122 | let r#gen = quote! { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:122:9 [INFO] [stdout] | [INFO] [stdout] 122 | let gen = quote! { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 122 | let r#gen = quote! { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | gen.into() [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let gen = quote! { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 163 | let r#gen = quote! { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | gen.into() [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:149:5 [INFO] [stdout] | [INFO] [stdout] 149 | gen.into() [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:163:9 [INFO] [stdout] | [INFO] [stdout] 163 | let gen = quote! { [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 163 | let r#gen = quote! { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/managed_vec_item_derive.rs:193:5 [INFO] [stdout] | [INFO] [stdout] 193 | gen.into() [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `multiversx-sc-derive` (lib) due to 5 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 4 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `multiversx-sc-derive` (lib test) due to 5 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "c6939fa315a4f7bc52c2fab5aff9ec8124bb47a12199b3332b9242169c723655", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c6939fa315a4f7bc52c2fab5aff9ec8124bb47a12199b3332b9242169c723655", kill_on_drop: false }` [INFO] [stdout] c6939fa315a4f7bc52c2fab5aff9ec8124bb47a12199b3332b9242169c723655