[INFO] fetching crate test-strategy 0.4.0... [INFO] checking test-strategy-0.4.0 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate test-strategy 0.4.0 into /workspace/builds/worker-2-tc2/source [INFO] validating manifest of crates.io crate test-strategy 0.4.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 test-strategy 0.4.0 [INFO] finished tweaking crates.io crate test-strategy 0.4.0 [INFO] tweaked toml for crates.io crate test-strategy 0.4.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate crates.io crate test-strategy 0.4.0 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 0314bdf2173e2c1b2bd17558605c8bc32fa23e662c0c0bd3116fd17f889503b2 [INFO] running `Command { std: "docker" "start" "-a" "0314bdf2173e2c1b2bd17558605c8bc32fa23e662c0c0bd3116fd17f889503b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "0314bdf2173e2c1b2bd17558605c8bc32fa23e662c0c0bd3116fd17f889503b2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0314bdf2173e2c1b2bd17558605c8bc32fa23e662c0c0bd3116fd17f889503b2", kill_on_drop: false }` [INFO] [stdout] 0314bdf2173e2c1b2bd17558605c8bc32fa23e662c0c0bd3116fd17f889503b2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-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] 8184bac9def733908d9146d7eae9aacb87fb4bf5e6701fb59cf1f2974ddd66dd [INFO] running `Command { std: "docker" "start" "-a" "8184bac9def733908d9146d7eae9aacb87fb4bf5e6701fb59cf1f2974ddd66dd", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling libc v0.2.155 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling rustix v0.38.34 [INFO] [stderr] Checking unicode-ident v1.0.12 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Checking winnow v0.6.13 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Checking indexmap v2.2.6 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking fastrand v2.1.0 [INFO] [stderr] Checking quick-error v1.2.3 [INFO] [stderr] Compiling trybuild v1.0.96 [INFO] [stderr] Checking unarray v0.1.4 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking quote v1.0.36 [INFO] [stderr] Checking syn v2.0.68 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking num_cpus v1.16.0 [INFO] [stderr] Checking tokio v1.38.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_xorshift v0.3.0 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking tempfile v3.10.1 [INFO] [stderr] Checking rusty-fork v0.3.0 [INFO] [stderr] Checking proptest v1.5.0 [INFO] [stderr] Checking toml_datetime v0.6.6 [INFO] [stderr] Checking serde_spanned v0.6.6 [INFO] [stderr] Checking toml_edit v0.22.14 [INFO] [stderr] Checking toml v0.8.14 [INFO] [stderr] Compiling structmeta-derive v0.3.0 [INFO] [stderr] Compiling serde_derive v1.0.203 [INFO] [stderr] Checking structmeta v0.3.0 [INFO] [stderr] Checking test-strategy v0.4.0 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/syn_utils.rs:26:12 [INFO] [stdout] | [INFO] [stdout] 26 | ($span:expr, $fmt:literal $(,)?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 26 | ($span:expr_2021, $fmt:literal $(,)?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `test_strategy` [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/syn_utils.rs:29:12 [INFO] [stdout] | [INFO] [stdout] 29 | ($span:expr, $fmt:literal, $($arg:tt)*) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 29 | ($span:expr_2021, $fmt:literal, $($arg:tt)*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syn_utils.rs:136:15 [INFO] [stdout] | [INFO] [stdout] 136 | while let Some(t) = 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/syn_utils.rs:177:9 [INFO] [stdout] | [INFO] [stdout] 177 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syn_utils.rs:147:28 [INFO] [stdout] | [INFO] [stdout] 147 | if let Some(token) = iter.peek() { [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/syn_utils.rs:171:25 [INFO] [stdout] | [INFO] [stdout] 171 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 147 ~ match iter.peek() { Some(token) => { [INFO] [stdout] 148 | if let Some(key) = FieldKey::try_from_token(token) { [INFO] [stdout] ... [INFO] [stdout] 170 | } [INFO] [stdout] 171 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syn_utils.rs:212:12 [INFO] [stdout] | [INFO] [stdout] 212 | 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/syn_utils.rs:214:9 [INFO] [stdout] | [INFO] [stdout] 214 | } 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] 212 ~ match &field.ident { Some(ident) => { [INFO] [stdout] 213 | Self::from_ident(ident) [INFO] [stdout] 214 ~ } _ => { [INFO] [stdout] 215 | Self::Unnamed(idx) [INFO] [stdout] 216 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] * src/syn_utils.rs [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syn_utils.rs:224:28 [INFO] [stdout] | [INFO] [stdout] 224 | if let Ok(idx) = lit.base10_parse() { [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/syn_utils.rs:226:25 [INFO] [stdout] | [INFO] [stdout] 226 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 224 ~ match lit.base10_parse() { Ok(idx) => { [INFO] [stdout] 225 | return Some(Self::Unnamed(idx)); [INFO] [stdout] 226 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syn_utils.rs:294:24 [INFO] [stdout] | [INFO] [stdout] 294 | if let Some(s) = i.segments.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/syn_utils.rs:298:21 [INFO] [stdout] | [INFO] [stdout] 298 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 294 ~ match i.segments.iter().next() { Some(s) => { [INFO] [stdout] 295 | if self.generics.contains(&s.ident) { [INFO] [stdout] 296 | self.result = true; [INFO] [stdout] 297 | } [INFO] [stdout] 298 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/syn_utils.rs:351:8 [INFO] [stdout] | [INFO] [stdout] 351 | if let Ok(ident) = parse_str(s) { [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/syn_utils.rs:353:5 [INFO] [stdout] | [INFO] [stdout] 353 | } 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] 351 ~ match parse_str(s) { Ok(ident) => { [INFO] [stdout] 352 | Ok(ident) [INFO] [stdout] 353 ~ } _ => { [INFO] [stdout] 354 | parse_str(&format!("r#{s}")) [INFO] [stdout] 355 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:19:30 [INFO] [stdout] | [INFO] [stdout] 19 | let type_parameters = if let Some(ty) = &args.args { [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/arbitrary.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | } 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] 19 ~ let type_parameters = match &args.args { Some(ty) => { [INFO] [stdout] 20 | quote_spanned!(ty.span()=> type Parameters = #ty;) [INFO] [stdout] 21 ~ } _ => { [INFO] [stdout] 22 | quote! { [INFO] [stdout] 23 | type Parameters = (); [INFO] [stdout] 24 | } [INFO] [stdout] 25 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:124:25 [INFO] [stdout] | [INFO] [stdout] 124 | let weight = if let Some(arg) = weight { [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/arbitrary.rs:131:9 [INFO] [stdout] | [INFO] [stdout] 131 | } 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] 124 ~ let weight = match weight { Some(arg) => { [INFO] [stdout] 125 | if arg.is_zero() { [INFO] [stdout] ... [INFO] [stdout] 130 | } [INFO] [stdout] 131 ~ } _ => { [INFO] [stdout] 132 | quote!(1) [INFO] [stdout] 133 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:176:16 [INFO] [stdout] | [INFO] [stdout] 176 | if let Lit::Int(lit) = &lit.lit { [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/arbitrary.rs:180:13 [INFO] [stdout] | [INFO] [stdout] 180 | } [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 &lit.lit { Lit::Int(lit) => { [INFO] [stdout] 177 | if let Ok(value) = lit.base10_parse::() { [INFO] [stdout] 178 | return value == 0; [INFO] [stdout] 179 | } [INFO] [stdout] 180 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [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/syn_utils.rs:26:6 [INFO] [stderr] | [INFO] [stderr] 26 | ($span:expr_2021, $fmt:literal $(,)?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/syn_utils.rs:29:6 [INFO] [stderr] | [INFO] [stderr] 29 | ($span:expr_2021, $fmt:literal, $($arg:tt)*) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error: aborting due to 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: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:557:40 [INFO] [stdout] | [INFO] [stdout] 557 | let mut expr_strategy = if let Some(expr_strategy) = expr_strategy { [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/arbitrary.rs:559:13 [INFO] [stdout] | [INFO] [stdout] 559 | } 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] 557 ~ let mut expr_strategy = match expr_strategy { Some(expr_strategy) => { [INFO] [stdout] 558 | expr_strategy [INFO] [stdout] 559 ~ } _ => { [INFO] [stdout] 560 | is_any = true; [INFO] [stdout] ... [INFO] [stdout] 566 | ) [INFO] [stdout] 567 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:570:20 [INFO] [stdout] | [INFO] [stdout] 570 | if let StrategyValueType::Type(ty) = strategy_value_type { [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/arbitrary.rs:572:17 [INFO] [stdout] | [INFO] [stdout] 572 | } 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] 570 ~ match strategy_value_type { StrategyValueType::Type(ty) => { [INFO] [stdout] 571 | Some(ty) [INFO] [stdout] 572 ~ } _ => { [INFO] [stdout] 573 | None [INFO] [stdout] 574 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:578:16 [INFO] [stdout] | [INFO] [stdout] 578 | if let Some(mut expr_map) = expr_map { [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/arbitrary.rs:603:13 [INFO] [stdout] | [INFO] [stdout] 603 | } 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] 578 ~ match expr_map { Some(mut expr_map) => { [INFO] [stdout] 579 | let base_idx = fields.len() + items_other.len(); [INFO] [stdout] ... [INFO] [stdout] 602 | )); [INFO] [stdout] 603 ~ } _ => { [INFO] [stdout] 604 | expr_strategy.filters = filters_field; [INFO] [stdout] ... [INFO] [stdout] 614 | )); [INFO] [stdout] 615 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:658:20 [INFO] [stdout] | [INFO] [stdout] 658 | if let Some(ty) = &self.items[idx].arbitrary_type { [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/arbitrary.rs:662:17 [INFO] [stdout] | [INFO] [stdout] 662 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 658 ~ match &self.items[idx].arbitrary_type { Some(ty) => { [INFO] [stdout] 659 | if generics.contains_in_type(ty) { [INFO] [stdout] 660 | bounds.ty.push(ty.clone()); [INFO] [stdout] 661 | } [INFO] [stdout] 662 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:708:26 [INFO] [stdout] | [INFO] [stdout] 708 | args.push(if let Some(key) = key.to_valid_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/arbitrary.rs:710:13 [INFO] [stdout] | [INFO] [stdout] 710 | } 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] 708 ~ args.push(match key.to_valid_ident() { Some(key) => { [INFO] [stdout] 709 | quote!(#key : #value) [INFO] [stdout] 710 ~ } _ => { [INFO] [stdout] 711 | quote!(#value) [INFO] [stdout] 712 ~ }}); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:905:12 [INFO] [stdout] | [INFO] [stdout] 905 | if let Some(group_next) = self.items[idx].group_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/arbitrary.rs:910:9 [INFO] [stdout] | [INFO] [stdout] 910 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 905 ~ match self.items[idx].group_next { Some(group_next) => { [INFO] [stdout] 906 | if self.is_group(idx) { [INFO] [stdout] ... [INFO] [stdout] 909 | } [INFO] [stdout] 910 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/arbitrary.rs:1222:16 [INFO] [stdout] | [INFO] [stdout] 1222 | if let Pat::Type(t) = &inputs[0] { [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/arbitrary.rs:1224:13 [INFO] [stdout] | [INFO] [stdout] 1224 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1222 ~ match &inputs[0] { Pat::Type(t) => { [INFO] [stdout] 1223 | return Some(&t.ty); [INFO] [stdout] 1224 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/bound.rs:29:20 [INFO] [stdout] | [INFO] [stdout] 29 | if let Ok(ty) = input.parse() { [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/bound.rs:31:17 [INFO] [stdout] | [INFO] [stdout] 31 | } 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] 29 ~ match input.parse() { Ok(ty) => { [INFO] [stdout] 30 | Ok(Self::Type(ty)) [INFO] [stdout] 31 ~ } _ => { [INFO] [stdout] 32 | Err(e) [INFO] [stdout] 33 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/bound.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | if let Some(bound) = bound { [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/bound.rs:59:9 [INFO] [stdout] | [INFO] [stdout] 59 | } 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] 53 ~ match bound { Some(bound) => { [INFO] [stdout] 54 | let mut bs = Self::new(false); [INFO] [stdout] ... [INFO] [stdout] 58 | bs [INFO] [stdout] 59 ~ } _ => { [INFO] [stdout] 60 | Self::new(true) [INFO] [stdout] 61 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/proptest_fn.rs:38:20 [INFO] [stdout] | [INFO] [stdout] 38 | let block = if let Some(a) = attr_args.r#async { [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/proptest_fn.rs:41:5 [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] 38 ~ let block = match attr_args.r#async { Some(a) => { [INFO] [stdout] 39 | item_fn.sig.asyncness = None; [INFO] [stdout] 40 | a.apply(block) [INFO] [stdout] 41 ~ } _ => { [INFO] [stdout] 42 | quote!(#block) [INFO] [stdout] 43 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/proptest_fn.rs:102:16 [INFO] [stdout] | [INFO] [stdout] 102 | if let Pat::Ident(ident) = arg.pat.as_ref() { [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/proptest_fn.rs:116:13 [INFO] [stdout] | [INFO] [stdout] 116 | } 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] 102 ~ match arg.pat.as_ref() { Pat::Ident(ident) => { [INFO] [stdout] 103 | if ident.attrs.is_empty() && ident.by_ref.is_none() && ident.subpat.is_none() { [INFO] [stdout] ... [INFO] [stdout] 115 | } [INFO] [stdout] 116 ~ } _ => { [INFO] [stdout] 117 | bail!(arg.pat.span(), "argument pattern not supported."); [INFO] [stdout] 118 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 22 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] --> src/syn_utils.rs:26:6 [INFO] [stdout] | [INFO] [stdout] 26 | ($span:expr_2021, $fmt:literal $(,)?) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #123742 for more information [INFO] [stdout] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] --> src/syn_utils.rs:29:6 [INFO] [stdout] | [INFO] [stdout] 29 | ($span:expr_2021, $fmt:literal, $($arg:tt)*) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: see issue #123742 for more information [INFO] [stdout] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0658`. [INFO] [stdout] [INFO] [stderr] error: could not compile `test-strategy` (lib) due to 3 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] error: failed to migrate to next edition [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo fix --edition --allow-no-vcs --allow-dirty --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "8184bac9def733908d9146d7eae9aacb87fb4bf5e6701fb59cf1f2974ddd66dd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8184bac9def733908d9146d7eae9aacb87fb4bf5e6701fb59cf1f2974ddd66dd", kill_on_drop: false }` [INFO] [stdout] 8184bac9def733908d9146d7eae9aacb87fb4bf5e6701fb59cf1f2974ddd66dd