[INFO] fetching crate mokapot 0.16.2... [INFO] checking mokapot-0.16.2 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate mokapot 0.16.2 into /workspace/builds/worker-3-tc2/source [INFO] validating manifest of crates.io crate mokapot 0.16.2 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 mokapot 0.16.2 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate mokapot 0.16.2 [INFO] tweaked toml for crates.io crate mokapot 0.16.2 written to /workspace/builds/worker-3-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 97 packages to latest compatible versions [INFO] [stderr] Adding bit-set v0.5.3 (available: v0.8.0) [INFO] [stderr] Adding bit-vec v0.6.3 (available: v0.8.0) [INFO] [stderr] Adding convert_case v0.4.0 (available: v0.6.0) [INFO] [stderr] Adding derive_more v0.99.18 (available: v1.0.0) [INFO] [stderr] Adding fixedbitset v0.4.2 (available: v0.5.7) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (available: v0.6.5) [INFO] [stderr] Adding quick-error v1.2.3 (available: v2.0.1) [INFO] [stderr] Adding rand v0.4.6 (available: v0.8.5) [INFO] [stderr] Adding rand_core v0.3.1 (available: v0.6.4) [INFO] [stderr] Adding rand_core v0.4.2 (available: v0.6.4) [INFO] [stderr] Adding rdrand v0.4.0 (available: v0.8.3) [INFO] [stderr] Adding remove_dir_all v0.5.3 (available: v0.8.4) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding windows-sys v0.52.0 (available: v0.59.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-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] 26a93681c9c7ba3a194982cba0c1cfd97ecde763ef4a0263b12c3af89a2d11d9 [INFO] running `Command { std: "docker" "start" "-a" "26a93681c9c7ba3a194982cba0c1cfd97ecde763ef4a0263b12c3af89a2d11d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "26a93681c9c7ba3a194982cba0c1cfd97ecde763ef4a0263b12c3af89a2d11d9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "26a93681c9c7ba3a194982cba0c1cfd97ecde763ef4a0263b12c3af89a2d11d9", kill_on_drop: false }` [INFO] [stdout] 26a93681c9c7ba3a194982cba0c1cfd97ecde763ef4a0263b12c3af89a2d11d9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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] e36eb10683b4c5f7ff4f1db163c885c05e2daf7a97c90d305526f3f812f670a5 [INFO] running `Command { std: "docker" "start" "-a" "e36eb10683b4c5f7ff4f1db163c885c05e2daf7a97c90d305526f3f812f670a5", 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 rustix v0.38.37 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking linux-raw-sys v0.4.14 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Checking lockfree-object-pool v0.1.6 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Checking fastrand v2.1.1 [INFO] [stderr] Compiling zip v2.2.0 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking wait-timeout v0.2.0 [INFO] [stderr] Checking quick-error v1.2.3 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Compiling litrs v0.4.1 [INFO] [stderr] Checking same-file v1.0.6 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Checking fixedbitset v0.4.2 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking zopfli v0.8.1 [INFO] [stderr] Checking walkdir v2.5.0 [INFO] [stderr] Checking itertools v0.13.0 [INFO] [stderr] Compiling mokapot v0.16.2 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Checking remove_dir_all v0.5.3 [INFO] [stderr] Checking cesu8 v1.1.0 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Checking unarray v0.1.4 [INFO] [stderr] Checking rand_xorshift v0.3.0 [INFO] [stderr] Checking flate2 v1.0.33 [INFO] [stderr] Compiling document-features v0.2.10 [INFO] [stderr] warning: mokapot@0.16.2: Can not find javac, test compilation will fail [INFO] [stderr] Checking tempdir v0.3.7 [INFO] [stderr] Checking indexmap v2.5.0 [INFO] [stderr] Checking petgraph v0.6.5 [INFO] [stderr] Checking tempfile v3.12.0 [INFO] [stderr] Checking rusty-fork v0.3.0 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling derive_more v0.99.18 [INFO] [stderr] Compiling proptest-derive v0.5.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking thiserror v1.0.64 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] Checking proptest v1.5.0 [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/ir/control_flow/path_condition/mod.rs:293:33 [INFO] [stdout] | [INFO] [stdout] 293 | .map(|it| (*it, rng.gen::())) [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] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `mokapot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/jvm/parsing/attribute.rs [INFO] [stderr] * src/macros.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/jvm/parsing/attribute.rs:124:6 [INFO] [stderr] | [INFO] [stderr] 124 | ($reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | ($reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:128:20 [INFO] [stderr] | [INFO] [stderr] 128 | ($len_type:ty; $reader:expr_2021, || $with:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | ($reader:expr, $ctx:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 124 | ($reader:expr_2021, $ctx:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:124:25 [INFO] [stdout] | [INFO] [stdout] 124 | ($reader:expr, $ctx:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 124 | ($reader:expr, $ctx:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:128:28 [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr, || $with:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr_2021, || $with:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:128:43 [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr, || $with:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr, || $with:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:132:28 [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr, $ctx:expr $(=> $attr:ident )?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr_2021, $ctx:expr $(=> $attr:ident )?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:132:39 [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr, $ctx:expr $(=> $attr:ident )?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr, $ctx:expr_2021 $(=> $attr:ident )?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/macros.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | ($msg: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] 51 | ($msg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:128:42 [INFO] [stderr] | [INFO] [stderr] 128 | ($len_type:ty; $reader:expr_2021, || $with:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:132:20 [INFO] [stderr] | [INFO] [stderr] 132 | ($len_type:ty; $reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/analysis/fixed_point.rs:57:15 [INFO] [stdout] | [INFO] [stdout] 57 | while let Some((location, incoming_facts)) = dirty_nodes.pop_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/analysis/fixed_point.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:132:39 [INFO] [stderr] | [INFO] [stderr] 132 | ($len_type:ty; $reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/macros.rs:51:6 [INFO] [stderr] | [INFO] [stderr] 51 | ($msg: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 7 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/analysis/fixed_point.rs:63:24 [INFO] [stdout] | [INFO] [stdout] 63 | if let Some(ref merged) = merged_fact { [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/analysis/fixed_point.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | } 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] 63 ~ match merged_fact { Some(ref merged) => { [INFO] [stdout] 64 | let new = self.merge_facts(merged, incoming_fact)?; [INFO] [stdout] 65 | merged_fact.replace(new); [INFO] [stdout] 66 ~ } _ => { [INFO] [stdout] 67 | merged_fact.replace(incoming_fact); [INFO] [stdout] 68 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/analysis/fixed_point.rs:80:16 [INFO] [stdout] | [INFO] [stdout] 80 | if let Some(fact) = maybe_updated_fact { [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/analysis/fixed_point.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 80 ~ match maybe_updated_fact { Some(fact) => { [INFO] [stdout] 81 | for (loc, new_fact) in self.analyze_location(&location, &fact)? { [INFO] [stdout] ... [INFO] [stdout] 84 | facts.insert(location, fact); [INFO] [stdout] 85 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/control_flow/path_condition/analyzer.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(outgoing_edges) = self.cfg.edges_from(*location) { [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/ir/control_flow/path_condition/analyzer.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } 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 self.cfg.edges_from(*location) { Some(outgoing_edges) => { [INFO] [stdout] 47 | let result = outgoing_edges [INFO] [stdout] ... [INFO] [stdout] 56 | Ok(result) [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | panic!( [INFO] [stdout] ... [INFO] [stdout] 61 | ); [INFO] [stdout] 62 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/generator/execution.rs:433:32 [INFO] [stdout] | [INFO] [stdout] 433 | let value = if let FieldType::Base(Double | Long) = field.field_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/ir/generator/execution.rs:435:17 [INFO] [stdout] | [INFO] [stdout] 435 | } 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] 433 ~ let value = match field.field_type { FieldType::Base(Double | Long) => { [INFO] [stdout] 434 | frame.pop_dual_slot_value()? [INFO] [stdout] 435 ~ } _ => { [INFO] [stdout] 436 | frame.pop_value()? [INFO] [stdout] 437 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/generator/execution.rs:449:32 [INFO] [stdout] | [INFO] [stdout] 449 | let value = if let FieldType::Base(Double | Long) = field.field_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/ir/generator/execution.rs:451:17 [INFO] [stdout] | [INFO] [stdout] 451 | } 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] 449 ~ let value = match field.field_type { FieldType::Base(Double | Long) => { [INFO] [stdout] 450 | frame.pop_dual_slot_value()? [INFO] [stdout] 451 ~ } _ => { [INFO] [stdout] 452 | frame.pop_value()? [INFO] [stdout] 453 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/petgraph/du_chain.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | if let Some(insn) = self.method.instructions.get(&pc) { [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/ir/petgraph/du_chain.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | } [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 ~ match self.method.instructions.get(&pc) { Some(insn) => { [INFO] [stdout] 20 | return insn.uses().into_iter(); [INFO] [stdout] 21 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/jvm/parsing/class_file.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | if let Ok(0) = reader.read(&mut [0; 1]) { [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/jvm/parsing/class_file.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | } 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 reader.read(&mut [0; 1]) { Ok(0) => { [INFO] [stdout] 87 | Ok(Self { [INFO] [stdout] ... [INFO] [stdout] 98 | }) [INFO] [stdout] 99 ~ } _ => { [INFO] [stdout] 100| Err(io::Error::new(io::ErrorKind::InvalidData, "Extra data")) [INFO] [stdout] 101~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/jvm/parsing/code/raw_instruction.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | while let Some((pc, instruction)) = RawInstruction::parse(&mut cursor)? { [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/jvm/parsing/code/raw_instruction.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | let item = if let Some(b) = cache.get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^-----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:36:9 [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] 31 ~ let item = match cache.get(key) { Some(b) => { [INFO] [stdout] 32 | // SAFETY: We never remove elements from the cache so the `Box` is not dropped until [INFO] [stdout] ... [INFO] [stdout] 35 | unsafe { transmute::<&V, &'c V>(b.as_ref()) } [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | drop(cache); [INFO] [stdout] ... [INFO] [stdout] 57 | unsafe { transmute::<&V, &'c V>(item_box.as_ref()) } [INFO] [stdout] 58 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:44:31 [INFO] [stdout] | [INFO] [stdout] 44 | let item_box = if let Some(b) = cache.get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^-----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | } 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] 44 ~ let item_box = match cache.get(key) { Some(b) => { [INFO] [stdout] 45 | b [INFO] [stdout] 46 ~ } _ => { [INFO] [stdout] 47 | let owned_key = key.to_owned(); [INFO] [stdout] ... [INFO] [stdout] 52 | .or_insert(Box::new(item)) [INFO] [stdout] 53 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 19 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/jdk_classes.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `mokapot` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/jvm/parsing/attribute.rs [INFO] [stderr] * src/macros.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/jvm/parsing/attribute.rs:124:6 [INFO] [stderr] | [INFO] [stderr] 124 | ($reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:124:25 [INFO] [stderr] | [INFO] [stderr] 124 | ($reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:128:20 [INFO] [stderr] | [INFO] [stderr] 128 | ($len_type:ty; $reader:expr_2021, || $with:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:128:42 [INFO] [stderr] | [INFO] [stderr] 128 | ($len_type:ty; $reader:expr_2021, || $with:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:132:20 [INFO] [stderr] | [INFO] [stderr] 132 | ($len_type:ty; $reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/jvm/parsing/attribute.rs:132:39 [INFO] [stderr] | [INFO] [stderr] 132 | ($len_type:ty; $reader:expr_2021, $ctx:expr_2021 $(=> $attr:ident )?) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/macros.rs:51:6 [INFO] [stderr] | [INFO] [stderr] 51 | ($msg: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 7 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/ir/control_flow/path_condition/mod.rs:293:33 [INFO] [stdout] | [INFO] [stdout] 293 | .map(|it| (*it, rng.gen::())) [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: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:124:14 [INFO] [stdout] | [INFO] [stdout] 124 | ($reader:expr, $ctx:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = 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] 124 | ($reader:expr_2021, $ctx:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:124:25 [INFO] [stdout] | [INFO] [stdout] 124 | ($reader:expr, $ctx:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 124 | ($reader:expr, $ctx:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:128:28 [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr, || $with:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr_2021, || $with:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:128:43 [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr, || $with:expr $(=> $attr:ident )?) => {{ [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 128 | ($len_type:ty; $reader:expr, || $with:expr_2021 $(=> $attr:ident )?) => {{ [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:132:28 [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr, $ctx:expr $(=> $attr:ident )?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr_2021, $ctx:expr $(=> $attr:ident )?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/jvm/parsing/attribute.rs:132:39 [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr, $ctx:expr $(=> $attr:ident )?) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 132 | ($len_type:ty; $reader:expr, $ctx:expr_2021 $(=> $attr:ident )?) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/macros.rs:51:11 [INFO] [stdout] | [INFO] [stdout] 51 | ($msg: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] 51 | ($msg:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a module [INFO] [stdout] --> src/lib.rs:26:1 [INFO] [stdout] | [INFO] [stdout] 26 | pub mod tests; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: the lint level is defined here [INFO] [stdout] --> src/lib.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | missing_docs, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/analysis/fixed_point.rs:57:15 [INFO] [stdout] | [INFO] [stdout] 57 | while let Some((location, incoming_facts)) = dirty_nodes.pop_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/analysis/fixed_point.rs:86:9 [INFO] [stdout] | [INFO] [stdout] 86 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/analysis/fixed_point.rs:63:24 [INFO] [stdout] | [INFO] [stdout] 63 | if let Some(ref merged) = merged_fact { [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/analysis/fixed_point.rs:66:21 [INFO] [stdout] | [INFO] [stdout] 66 | } 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] 63 ~ match merged_fact { Some(ref merged) => { [INFO] [stdout] 64 | let new = self.merge_facts(merged, incoming_fact)?; [INFO] [stdout] 65 | merged_fact.replace(new); [INFO] [stdout] 66 ~ } _ => { [INFO] [stdout] 67 | merged_fact.replace(incoming_fact); [INFO] [stdout] 68 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/analysis/fixed_point.rs:80:16 [INFO] [stdout] | [INFO] [stdout] 80 | if let Some(fact) = maybe_updated_fact { [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/analysis/fixed_point.rs:85:13 [INFO] [stdout] | [INFO] [stdout] 85 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 80 ~ match maybe_updated_fact { Some(fact) => { [INFO] [stdout] 81 | for (loc, new_fact) in self.analyze_location(&location, &fact)? { [INFO] [stdout] ... [INFO] [stdout] 84 | facts.insert(location, fact); [INFO] [stdout] 85 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/control_flow/path_condition/analyzer.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | if let Some(outgoing_edges) = self.cfg.edges_from(*location) { [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/ir/control_flow/path_condition/analyzer.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } 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 self.cfg.edges_from(*location) { Some(outgoing_edges) => { [INFO] [stdout] 47 | let result = outgoing_edges [INFO] [stdout] ... [INFO] [stdout] 56 | Ok(result) [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | panic!( [INFO] [stdout] ... [INFO] [stdout] 61 | ); [INFO] [stdout] 62 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/generator/execution.rs:433:32 [INFO] [stdout] | [INFO] [stdout] 433 | let value = if let FieldType::Base(Double | Long) = field.field_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/ir/generator/execution.rs:435:17 [INFO] [stdout] | [INFO] [stdout] 435 | } 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] 433 ~ let value = match field.field_type { FieldType::Base(Double | Long) => { [INFO] [stdout] 434 | frame.pop_dual_slot_value()? [INFO] [stdout] 435 ~ } _ => { [INFO] [stdout] 436 | frame.pop_value()? [INFO] [stdout] 437 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/generator/execution.rs:449:32 [INFO] [stdout] | [INFO] [stdout] 449 | let value = if let FieldType::Base(Double | Long) = field.field_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/ir/generator/execution.rs:451:17 [INFO] [stdout] | [INFO] [stdout] 451 | } 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] 449 ~ let value = match field.field_type { FieldType::Base(Double | Long) => { [INFO] [stdout] 450 | frame.pop_dual_slot_value()? [INFO] [stdout] 451 ~ } _ => { [INFO] [stdout] 452 | frame.pop_value()? [INFO] [stdout] 453 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/ir/petgraph/du_chain.rs:19:20 [INFO] [stdout] | [INFO] [stdout] 19 | if let Some(insn) = self.method.instructions.get(&pc) { [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/ir/petgraph/du_chain.rs:21:17 [INFO] [stdout] | [INFO] [stdout] 21 | } [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 ~ match self.method.instructions.get(&pc) { Some(insn) => { [INFO] [stdout] 20 | return insn.uses().into_iter(); [INFO] [stdout] 21 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/jvm/parsing/class_file.rs:86:12 [INFO] [stdout] | [INFO] [stdout] 86 | if let Ok(0) = reader.read(&mut [0; 1]) { [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/jvm/parsing/class_file.rs:99:9 [INFO] [stdout] | [INFO] [stdout] 99 | } 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 reader.read(&mut [0; 1]) { Ok(0) => { [INFO] [stdout] 87 | Ok(Self { [INFO] [stdout] ... [INFO] [stdout] 98 | }) [INFO] [stdout] 99 ~ } _ => { [INFO] [stdout] 100| Err(io::Error::new(io::ErrorKind::InvalidData, "Extra data")) [INFO] [stdout] 101~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/jvm/parsing/code/raw_instruction.rs:19:15 [INFO] [stdout] | [INFO] [stdout] 19 | while let Some((pc, instruction)) = RawInstruction::parse(&mut cursor)? { [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/jvm/parsing/code/raw_instruction.rs:21:9 [INFO] [stdout] | [INFO] [stdout] 21 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/types/field_type.rs:293:20 [INFO] [stdout] | [INFO] [stdout] 293 | if let FieldType::Array(element_type) = parsed { [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/types/field_type.rs:299:17 [INFO] [stdout] | [INFO] [stdout] 299 | } 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] 293 ~ match parsed { FieldType::Array(element_type) => { [INFO] [stdout] 294 | // TODO: change to the following line [INFO] [stdout] ... [INFO] [stdout] 298 | parsed = *element_type; [INFO] [stdout] 299 ~ } _ => { [INFO] [stdout] 300 | panic!("Expected array type, got: {parsed:?}"); [INFO] [stdout] 301 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:31:23 [INFO] [stdout] | [INFO] [stdout] 31 | let item = if let Some(b) = cache.get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^-----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:36:9 [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] 31 ~ let item = match cache.get(key) { Some(b) => { [INFO] [stdout] 32 | // SAFETY: We never remove elements from the cache so the `Box` is not dropped until [INFO] [stdout] ... [INFO] [stdout] 35 | unsafe { transmute::<&V, &'c V>(b.as_ref()) } [INFO] [stdout] 36 ~ } _ => { [INFO] [stdout] 37 | drop(cache); [INFO] [stdout] ... [INFO] [stdout] 57 | unsafe { transmute::<&V, &'c V>(item_box.as_ref()) } [INFO] [stdout] 58 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/utils.rs:44:31 [INFO] [stdout] | [INFO] [stdout] 44 | let item_box = if let Some(b) = cache.get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^-----^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/utils.rs:46:13 [INFO] [stdout] | [INFO] [stdout] 46 | } 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] 44 ~ let item_box = match cache.get(key) { Some(b) => { [INFO] [stdout] 45 | b [INFO] [stdout] 46 ~ } _ => { [INFO] [stdout] 47 | let owned_key = key.to_owned(); [INFO] [stdout] ... [INFO] [stdout] 52 | .or_insert(Box::new(item)) [INFO] [stdout] 53 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: missing documentation for a function [INFO] [stdout] --> src/tests/mod.rs:10:1 [INFO] [stdout] | [INFO] [stdout] 10 | pub const fn empty_class_with_version(major: u16, minor: u16) -> [u8;40] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 22 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/resolution_ctx.rs from 2021 edition to 2024 [INFO] [stderr] Migrating tests/class_parsing.rs from 2021 edition to 2024 [INFO] [stderr] Migrating tests/moka_ir.rs from 2021 edition to 2024 [INFO] [stderr] Migrating tests/class_loader.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 14.58s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling mokapot v0.16.2 (/tmp/fixit) [INFO] [stderr] warning: mokapot@0.16.2: Can not find javac, test compilation will fail [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/ir/control_flow/path_condition/mod.rs:293:33 [INFO] [stdout] | [INFO] [stdout] 293 | .map(|it| (*it, rng.gen::())) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 293 | .map(|it| (*it, rng.r#gen::())) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/ir/control_flow/path_condition/mod.rs:293:33 [INFO] [stdout] | [INFO] [stdout] 293 | .map(|it| (*it, rng.gen::())) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 293 | .map(|it| (*it, rng.r#gen::())) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] The following warnings were emitted during compilation: [INFO] [stderr] [INFO] [stderr] warning: mokapot@0.16.2: Can not find javac, test compilation will fail [INFO] [stderr] [INFO] [stderr] error: could not compile `mokapot` (lib) due to 2 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 1 previous error [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] The following warnings were emitted during compilation: [INFO] [stderr] [INFO] [stderr] warning: mokapot@0.16.2: Can not find javac, test compilation will fail [INFO] [stderr] [INFO] [stderr] error: could not compile `mokapot` (lib test) due to 2 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" "e36eb10683b4c5f7ff4f1db163c885c05e2daf7a97c90d305526f3f812f670a5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e36eb10683b4c5f7ff4f1db163c885c05e2daf7a97c90d305526f3f812f670a5", kill_on_drop: false }` [INFO] [stdout] e36eb10683b4c5f7ff4f1db163c885c05e2daf7a97c90d305526f3f812f670a5