[INFO] fetching crate jsonata-rs 0.1.7... [INFO] checking jsonata-rs-0.1.7 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate jsonata-rs 0.1.7 into /workspace/builds/worker-4-tc2/source [INFO] validating manifest of crates.io crate jsonata-rs 0.1.7 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 jsonata-rs 0.1.7 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate jsonata-rs 0.1.7 [INFO] tweaked toml for crates.io crate jsonata-rs 0.1.7 written to /workspace/builds/worker-4-tc2/source/Cargo.toml [INFO] crate crates.io crate jsonata-rs 0.1.7 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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] cf859765daaab902ce1ea43ffcaffd138a0419d7a803248e7d304e9831e3daa9 [INFO] running `Command { std: "docker" "start" "-a" "cf859765daaab902ce1ea43ffcaffd138a0419d7a803248e7d304e9831e3daa9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "cf859765daaab902ce1ea43ffcaffd138a0419d7a803248e7d304e9831e3daa9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cf859765daaab902ce1ea43ffcaffd138a0419d7a803248e7d304e9831e3daa9", kill_on_drop: false }` [INFO] [stdout] cf859765daaab902ce1ea43ffcaffd138a0419d7a803248e7d304e9831e3daa9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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] 31ce47e657ed66900061526545a371c6168f74df6584f322186f1dfa7ef155c7 [INFO] running `Command { std: "docker" "start" "-a" "31ce47e657ed66900061526545a371c6168f74df6584f322186f1dfa7ef155c7", 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.81 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Compiling glob v0.3.1 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Compiling serde v1.0.203 [INFO] [stderr] Compiling ahash v0.8.11 [INFO] [stderr] Compiling num-traits v0.2.18 [INFO] [stderr] Checking allocator-api2 v0.2.18 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling unicode-xid v0.1.0 [INFO] [stderr] Compiling serde_json v1.0.117 [INFO] [stderr] Checking arrayvec v0.7.6 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking clap_builder v4.5.2 [INFO] [stderr] Compiling syn v0.15.44 [INFO] [stderr] Compiling cfg-if v1.0.0 [INFO] [stderr] Checking dtoa v1.0.9 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Checking num-format v0.4.4 [INFO] [stderr] Compiling jsonata-rs v0.1.7 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Checking bumpalo v3.16.0 [INFO] [stderr] Compiling quote v0.6.13 [INFO] [stderr] Compiling quote v1.0.36 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Compiling syn v2.0.60 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Compiling test-generator v0.3.1 [INFO] [stderr] Compiling test-case-core v3.3.1 [INFO] [stderr] Compiling zerocopy-derive v0.7.34 [INFO] [stderr] Compiling clap_derive v4.5.4 [INFO] [stderr] Compiling test-case-macros v3.3.1 [INFO] [stderr] Checking test-case v3.3.1 [INFO] [stderr] Checking zerocopy v0.7.34 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking clap v4.5.4 [INFO] [stderr] Checking hashbrown v0.14.5 [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] warning: failed to automatically apply fixes suggested by rustc to crate `jsonata_rs` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/evaluator/functions.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/evaluator/functions.rs:55:6 [INFO] [stderr] | [INFO] [stderr] 55 | ($condition: expr_2021, $context:ident, $index: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/evaluator/functions.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | ($condition:expr_2021, $context:ident, $index:literal, $t: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: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/evaluator/functions.rs:927:37 [INFO] [stdout] | [INFO] [stdout] 927 | let v: f32 = rand::thread_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: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/evaluator/value/impls.rs:137:49 [INFO] [stdout] | [INFO] [stdout] 137 | let random_number: u64 = rand::thread_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] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/evaluator/functions.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 55 | ($condition: expr, $context:ident, $index: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] 55 | ($condition: expr_2021, $context:ident, $index:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/evaluator/functions.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | ($condition:expr, $context:ident, $index:literal, $t:literal) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 63 | ($condition:expr_2021, $context:ident, $index:literal, $t:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | if let Some(started_at) = internal.started_at { [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/evaluator.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 74 ~ match internal.started_at { Some(started_at) => { [INFO] [stdout] 75 | if let Some(time_limit) = internal.time_limit { [INFO] [stdout] ... [INFO] [stdout] 79 | } [INFO] [stdout] 80 ~ } _ => { [INFO] [stdout] 81 | internal.started_at = Some(Instant::now()); [INFO] [stdout] 82 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:75:16 [INFO] [stdout] | [INFO] [stdout] 75 | if let Some(time_limit) = internal.time_limit { [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/evaluator.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 75 ~ match internal.time_limit { Some(time_limit) => { [INFO] [stdout] 76 | if started_at.elapsed().as_millis() >= time_limit as u128 { [INFO] [stdout] 77 | return Err(Error::U1001Timeout); [INFO] [stdout] 78 | } [INFO] [stdout] 79 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:140:20 [INFO] [stdout] | [INFO] [stdout] 140 | if let AstKind::Filter(ref expr) = filter.kind { [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/evaluator.rs:142:17 [INFO] [stdout] | [INFO] [stdout] 142 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 140 ~ match filter.kind { AstKind::Filter(ref expr) => { [INFO] [stdout] 141 | result = self.evaluate_filter(expr, result, frame)? [INFO] [stdout] 142 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | if let AstKind::Unary(UnaryOp::ArrayConstructor(..)) = item.kind { [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/evaluator.rs:239:21 [INFO] [stdout] | [INFO] [stdout] 239 | } 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] 237 ~ match item.kind { AstKind::Unary(UnaryOp::ArrayConstructor(..)) => { [INFO] [stdout] 238 | values.push(value); [INFO] [stdout] 239 ~ } _ => { [INFO] [stdout] 240 | fn_append_internal(&mut values, value); [INFO] [stdout] 241 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:557:20 [INFO] [stdout] | [INFO] [stdout] 557 | if let AstKind::Function { [INFO] [stdout] | ____________________^ [INFO] [stdout] 558 | | ref proc, [INFO] [stdout] 559 | | ref args, [INFO] [stdout] 560 | | is_partial, [INFO] [stdout] 561 | | .. [INFO] [stdout] 562 | | } = rhs_ast.kind [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/evaluator.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | } 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 ~ match rhs_ast.kind [INFO] [stdout] 558 ~ { AstKind::Function { [INFO] [stdout] 559 + ref proc, [INFO] [stdout] 560 + ref args, [INFO] [stdout] 561 + is_partial, [INFO] [stdout] 562 + .. [INFO] [stdout] 563 ~ } => { [INFO] [stdout] 564 | // Function invocation with lhs as the first argument [INFO] [stdout] 565 | Ok(self.evaluate_function(input, proc, args, is_partial, frame, Some(lhs))?) [INFO] [stdout] 566 ~ } _ => { [INFO] [stdout] 567 | let rhs = self.evaluate(rhs_ast, input, frame)?; [INFO] [stdout] ... [INFO] [stdout] 596 | } [INFO] [stdout] 597 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:716:12 [INFO] [stdout] | [INFO] [stdout] 716 | if let Some((char_index, ref object)) = node.group_by { [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/evaluator.rs:727:9 [INFO] [stdout] | [INFO] [stdout] 727 | } 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] 716 ~ match node.group_by { Some((char_index, ref object)) => { [INFO] [stdout] 717 | self.evaluate_group_expression( [INFO] [stdout] ... [INFO] [stdout] 726 | ) [INFO] [stdout] 727 ~ } _ => { [INFO] [stdout] 728 | Ok(result) [INFO] [stdout] 729 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:759:24 [INFO] [stdout] | [INFO] [stdout] 759 | if let AstKind::Filter(ref expr) = stage.kind { [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/evaluator.rs:761:21 [INFO] [stdout] | [INFO] [stdout] 761 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 759 ~ match stage.kind { AstKind::Filter(ref expr) => { [INFO] [stdout] 760 | item_result = self.evaluate_filter(expr, item_result, frame)? [INFO] [stdout] 761 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1168:16 [INFO] [stdout] | [INFO] [stdout] 1168 | if let AstKind::Path(ref steps) = proc.kind { [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/evaluator.rs:1177:13 [INFO] [stdout] | [INFO] [stdout] 1177 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1168 ~ match proc.kind { AstKind::Path(ref steps) => { [INFO] [stdout] 1169 | if let AstKind::Name(ref name) = steps[0].kind { [INFO] [stdout] ... [INFO] [stdout] 1176 | } [INFO] [stdout] 1177 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1169:20 [INFO] [stdout] | [INFO] [stdout] 1169 | if let AstKind::Name(ref name) = steps[0].kind { [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/evaluator.rs:1176:17 [INFO] [stdout] | [INFO] [stdout] 1176 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1169 ~ match steps[0].kind { AstKind::Name(ref name) => { [INFO] [stdout] 1170 | if frame.lookup(name).is_some() { [INFO] [stdout] ... [INFO] [stdout] 1175 | } [INFO] [stdout] 1176 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1208:16 [INFO] [stdout] | [INFO] [stdout] 1208 | if let AstKind::Lambda { [INFO] [stdout] | ________________^ [INFO] [stdout] 1209 | | ref body, [INFO] [stdout] 1210 | | thunk: true, [INFO] [stdout] 1211 | | .. [INFO] [stdout] 1212 | | } = ast.kind [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/evaluator.rs:1231:13 [INFO] [stdout] | [INFO] [stdout] 1231 | } 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] 1208 ~ match ast.kind [INFO] [stdout] 1209 ~ { AstKind::Lambda { [INFO] [stdout] 1210 + ref body, [INFO] [stdout] 1211 + thunk: true, [INFO] [stdout] 1212 + .. [INFO] [stdout] 1213 ~ } => { [INFO] [stdout] 1214 | if let AstKind::Function { [INFO] [stdout] ... [INFO] [stdout] 1230 | } [INFO] [stdout] 1231 ~ } _ => { [INFO] [stdout] 1232 | break; [INFO] [stdout] 1233 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1214:20 [INFO] [stdout] | [INFO] [stdout] 1214 | if let AstKind::Function { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1215 | | ref proc, ref args, .. [INFO] [stdout] 1216 | | } = body.kind [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/evaluator.rs:1228:17 [INFO] [stdout] | [INFO] [stdout] 1228 | } 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] 1214 ~ match body.kind [INFO] [stdout] 1215 ~ { AstKind::Function { [INFO] [stdout] 1216 + ref proc, ref args, .. [INFO] [stdout] 1217 ~ } => { [INFO] [stdout] 1218 | let next = self.evaluate(proc, lambda_input, lambda_frame)?; [INFO] [stdout] ... [INFO] [stdout] 1227 | self.apply_function(proc.char_index, input, next, &evaluated_args, frame)?; [INFO] [stdout] 1228 ~ } _ => { [INFO] [stdout] 1229 | unreachable!() [INFO] [stdout] 1230 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1254:20 [INFO] [stdout] | [INFO] [stdout] 1254 | if let AstKind::Lambda { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1255 | | ref body, ref args, .. [INFO] [stdout] 1256 | | } = ast.kind [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/evaluator.rs:1278:17 [INFO] [stdout] | [INFO] [stdout] 1278 | } 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] 1254 ~ match ast.kind [INFO] [stdout] 1255 ~ { AstKind::Lambda { [INFO] [stdout] 1256 + ref body, ref args, .. [INFO] [stdout] 1257 ~ } => { [INFO] [stdout] 1258 | // Create a new frame for use in the lambda, so it can have locals [INFO] [stdout] ... [INFO] [stdout] 1277 | self.evaluate(body, input, &frame) [INFO] [stdout] 1278 ~ } _ => { [INFO] [stdout] 1279 | unreachable!() [INFO] [stdout] 1280 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1263:28 [INFO] [stdout] | [INFO] [stdout] 1263 | if let AstKind::Var(ref name) = arg.kind { [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/evaluator.rs:1271:25 [INFO] [stdout] | [INFO] [stdout] 1271 | } 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] 1263 ~ match arg.kind { AstKind::Var(ref name) => { [INFO] [stdout] 1264 | frame.bind( [INFO] [stdout] ... [INFO] [stdout] 1270 | ); [INFO] [stdout] 1271 ~ } _ => { [INFO] [stdout] 1272 | unreachable!() [INFO] [stdout] 1273 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator/value.rs:342:20 [INFO] [stdout] | [INFO] [stdout] 342 | if let AstKind::Lambda { ref args, .. } = ast.kind { [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/evaluator/value.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | } 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] 342 ~ match ast.kind { AstKind::Lambda { ref args, .. } => { [INFO] [stdout] 343 | args.len() [INFO] [stdout] 344 ~ } _ => { [INFO] [stdout] 345 | panic!("Not a lambda function") [INFO] [stdout] 346 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | if let AstKind::Ternary { [INFO] [stdout] | ________^ [INFO] [stdout] 71 | | ref mut cond, [INFO] [stdout] 72 | | ref mut truthy, [INFO] [stdout] 73 | | ref mut falsy, [INFO] [stdout] 74 | | } = node.kind [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/parser/process.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | } 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] 70 ~ match node.kind [INFO] [stdout] 71 ~ { AstKind::Ternary { [INFO] [stdout] 72 + ref mut cond, [INFO] [stdout] 73 + ref mut truthy, [INFO] [stdout] 74 + ref mut falsy, [INFO] [stdout] 75 ~ } => { [INFO] [stdout] 76 | *cond = Box::new(process_ast(take(cond))?); [INFO] [stdout] ... [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } _ => { [INFO] [stdout] 82 | unreachable!() [INFO] [stdout] 83 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:187:12 [INFO] [stdout] | [INFO] [stdout] 187 | if let AstKind::Path(ref mut rest_steps) = rest.kind { [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/parser/process.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | } 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] 187 ~ match rest.kind { AstKind::Path(ref mut rest_steps) => { [INFO] [stdout] 188 | // If the rest is a path, merge in the steps [INFO] [stdout] 189 | steps.append(rest_steps); [INFO] [stdout] 190 ~ } _ => { [INFO] [stdout] 191 | // If there are predicates on the rest, they become stages of the step [INFO] [stdout] 192 | rest.stages = rest.predicates.take(); [INFO] [stdout] 193 | steps.push(rest); [INFO] [stdout] 194 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:235:19 [INFO] [stdout] | [INFO] [stdout] 235 | let node = if let AstKind::Path(ref mut steps) = result.kind { [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/parser/process.rs:239:5 [INFO] [stdout] | [INFO] [stdout] 239 | } 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] 235 ~ let node = match result.kind { AstKind::Path(ref mut steps) => { [INFO] [stdout] 236 | in_path = true; [INFO] [stdout] 237 | let last_index = steps.len() - 1; [INFO] [stdout] 238 | &mut steps[last_index] [INFO] [stdout] 239 ~ } _ => { [INFO] [stdout] 240 | &mut result [INFO] [stdout] 241 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:282:19 [INFO] [stdout] | [INFO] [stdout] 282 | let step = if let AstKind::Path(ref mut steps) = result.kind { [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/parser/process.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | } 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] 282 ~ let step = match result.kind { AstKind::Path(ref mut steps) => { [INFO] [stdout] 283 | // Left hand side was a path, so we want to operate on the last step [INFO] [stdout] 284 | let last_index = steps.len() - 1; [INFO] [stdout] 285 | &mut steps[last_index] [INFO] [stdout] 286 ~ } _ => { [INFO] [stdout] 287 | &mut result [INFO] [stdout] 288 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:302:20 [INFO] [stdout] | [INFO] [stdout] 302 | let focus = if let AstKind::Var(ref var) = rhs.kind { [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/parser/process.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | } 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] 302 ~ let focus = match rhs.kind { AstKind::Var(ref var) => { [INFO] [stdout] 303 | var.clone() [INFO] [stdout] 304 ~ } _ => { [INFO] [stdout] 305 | unreachable!() [INFO] [stdout] 306 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:318:19 [INFO] [stdout] | [INFO] [stdout] 318 | let step = if let AstKind::Path(ref mut steps) = result.kind { [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/parser/process.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 323 | } 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] 318 ~ let step = match result.kind { AstKind::Path(ref mut steps) => { [INFO] [stdout] 319 | // Left hand side was a path, so we want to operate on the last step [INFO] [stdout] ... [INFO] [stdout] 322 | &mut steps[last_index] [INFO] [stdout] 323 ~ } _ => { [INFO] [stdout] 324 | // Convert predicates to stages as this will become the first step in a new path [INFO] [stdout] ... [INFO] [stdout] 328 | &mut result [INFO] [stdout] 329 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:333:20 [INFO] [stdout] | [INFO] [stdout] 333 | let index = if let AstKind::Var(ref var) = rhs.kind { [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/parser/process.rs:335:5 [INFO] [stdout] | [INFO] [stdout] 335 | } 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] 333 ~ let index = match rhs.kind { AstKind::Var(ref var) => { [INFO] [stdout] 334 | var.clone() [INFO] [stdout] 335 ~ } _ => { [INFO] [stdout] 336 | unreachable!() [INFO] [stdout] 337 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/symbol.rs:374:27 [INFO] [stdout] | [INFO] [stdout] 374 | while let AstKind::Binary(BinaryOp::Predicate, ref mut left, ..) = step.kind { [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/parser/symbol.rs:376:21 [INFO] [stdout] | [INFO] [stdout] 376 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 26 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating src/bin/jsonata.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `jsonata_rs` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/evaluator/functions.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/evaluator/functions.rs:55:6 [INFO] [stderr] | [INFO] [stderr] 55 | ($condition: expr_2021, $context:ident, $index: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/evaluator/functions.rs:63:6 [INFO] [stderr] | [INFO] [stderr] 63 | ($condition:expr_2021, $context:ident, $index:literal, $t: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: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/evaluator/functions.rs:927:37 [INFO] [stdout] | [INFO] [stdout] 927 | let v: f32 = rand::thread_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: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/evaluator/value/impls.rs:137:49 [INFO] [stdout] | [INFO] [stdout] 137 | let random_number: u64 = rand::thread_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] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/evaluator/functions.rs:55:18 [INFO] [stdout] | [INFO] [stdout] 55 | ($condition: expr, $context:ident, $index: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] 55 | ($condition: expr_2021, $context:ident, $index:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/evaluator/functions.rs:63:17 [INFO] [stdout] | [INFO] [stdout] 63 | ($condition:expr, $context:ident, $index:literal, $t:literal) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 63 | ($condition:expr_2021, $context:ident, $index:literal, $t:literal) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 74 | if let Some(started_at) = internal.started_at { [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/evaluator.rs:80:9 [INFO] [stdout] | [INFO] [stdout] 80 | } else { [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 74 ~ match internal.started_at { Some(started_at) => { [INFO] [stdout] 75 | if let Some(time_limit) = internal.time_limit { [INFO] [stdout] ... [INFO] [stdout] 79 | } [INFO] [stdout] 80 ~ } _ => { [INFO] [stdout] 81 | internal.started_at = Some(Instant::now()); [INFO] [stdout] 82 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:75:16 [INFO] [stdout] | [INFO] [stdout] 75 | if let Some(time_limit) = internal.time_limit { [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/evaluator.rs:79:13 [INFO] [stdout] | [INFO] [stdout] 79 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 75 ~ match internal.time_limit { Some(time_limit) => { [INFO] [stdout] 76 | if started_at.elapsed().as_millis() >= time_limit as u128 { [INFO] [stdout] 77 | return Err(Error::U1001Timeout); [INFO] [stdout] 78 | } [INFO] [stdout] 79 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:140:20 [INFO] [stdout] | [INFO] [stdout] 140 | if let AstKind::Filter(ref expr) = filter.kind { [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/evaluator.rs:142:17 [INFO] [stdout] | [INFO] [stdout] 142 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 140 ~ match filter.kind { AstKind::Filter(ref expr) => { [INFO] [stdout] 141 | result = self.evaluate_filter(expr, result, frame)? [INFO] [stdout] 142 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:237:24 [INFO] [stdout] | [INFO] [stdout] 237 | if let AstKind::Unary(UnaryOp::ArrayConstructor(..)) = item.kind { [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/evaluator.rs:239:21 [INFO] [stdout] | [INFO] [stdout] 239 | } 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] 237 ~ match item.kind { AstKind::Unary(UnaryOp::ArrayConstructor(..)) => { [INFO] [stdout] 238 | values.push(value); [INFO] [stdout] 239 ~ } _ => { [INFO] [stdout] 240 | fn_append_internal(&mut values, value); [INFO] [stdout] 241 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:557:20 [INFO] [stdout] | [INFO] [stdout] 557 | if let AstKind::Function { [INFO] [stdout] | ____________________^ [INFO] [stdout] 558 | | ref proc, [INFO] [stdout] 559 | | ref args, [INFO] [stdout] 560 | | is_partial, [INFO] [stdout] 561 | | .. [INFO] [stdout] 562 | | } = rhs_ast.kind [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/evaluator.rs:566:17 [INFO] [stdout] | [INFO] [stdout] 566 | } 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 ~ match rhs_ast.kind [INFO] [stdout] 558 ~ { AstKind::Function { [INFO] [stdout] 559 + ref proc, [INFO] [stdout] 560 + ref args, [INFO] [stdout] 561 + is_partial, [INFO] [stdout] 562 + .. [INFO] [stdout] 563 ~ } => { [INFO] [stdout] 564 | // Function invocation with lhs as the first argument [INFO] [stdout] 565 | Ok(self.evaluate_function(input, proc, args, is_partial, frame, Some(lhs))?) [INFO] [stdout] 566 ~ } _ => { [INFO] [stdout] 567 | let rhs = self.evaluate(rhs_ast, input, frame)?; [INFO] [stdout] ... [INFO] [stdout] 596 | } [INFO] [stdout] 597 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:716:12 [INFO] [stdout] | [INFO] [stdout] 716 | if let Some((char_index, ref object)) = node.group_by { [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/evaluator.rs:727:9 [INFO] [stdout] | [INFO] [stdout] 727 | } 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] 716 ~ match node.group_by { Some((char_index, ref object)) => { [INFO] [stdout] 717 | self.evaluate_group_expression( [INFO] [stdout] ... [INFO] [stdout] 726 | ) [INFO] [stdout] 727 ~ } _ => { [INFO] [stdout] 728 | Ok(result) [INFO] [stdout] 729 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:759:24 [INFO] [stdout] | [INFO] [stdout] 759 | if let AstKind::Filter(ref expr) = stage.kind { [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/evaluator.rs:761:21 [INFO] [stdout] | [INFO] [stdout] 761 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 759 ~ match stage.kind { AstKind::Filter(ref expr) => { [INFO] [stdout] 760 | item_result = self.evaluate_filter(expr, item_result, frame)? [INFO] [stdout] 761 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1168:16 [INFO] [stdout] | [INFO] [stdout] 1168 | if let AstKind::Path(ref steps) = proc.kind { [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/evaluator.rs:1177:13 [INFO] [stdout] | [INFO] [stdout] 1177 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1168 ~ match proc.kind { AstKind::Path(ref steps) => { [INFO] [stdout] 1169 | if let AstKind::Name(ref name) = steps[0].kind { [INFO] [stdout] ... [INFO] [stdout] 1176 | } [INFO] [stdout] 1177 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1169:20 [INFO] [stdout] | [INFO] [stdout] 1169 | if let AstKind::Name(ref name) = steps[0].kind { [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/evaluator.rs:1176:17 [INFO] [stdout] | [INFO] [stdout] 1176 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1169 ~ match steps[0].kind { AstKind::Name(ref name) => { [INFO] [stdout] 1170 | if frame.lookup(name).is_some() { [INFO] [stdout] ... [INFO] [stdout] 1175 | } [INFO] [stdout] 1176 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1208:16 [INFO] [stdout] | [INFO] [stdout] 1208 | if let AstKind::Lambda { [INFO] [stdout] | ________________^ [INFO] [stdout] 1209 | | ref body, [INFO] [stdout] 1210 | | thunk: true, [INFO] [stdout] 1211 | | .. [INFO] [stdout] 1212 | | } = ast.kind [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/evaluator.rs:1231:13 [INFO] [stdout] | [INFO] [stdout] 1231 | } 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] 1208 ~ match ast.kind [INFO] [stdout] 1209 ~ { AstKind::Lambda { [INFO] [stdout] 1210 + ref body, [INFO] [stdout] 1211 + thunk: true, [INFO] [stdout] 1212 + .. [INFO] [stdout] 1213 ~ } => { [INFO] [stdout] 1214 | if let AstKind::Function { [INFO] [stdout] ... [INFO] [stdout] 1230 | } [INFO] [stdout] 1231 ~ } _ => { [INFO] [stdout] 1232 | break; [INFO] [stdout] 1233 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1214:20 [INFO] [stdout] | [INFO] [stdout] 1214 | if let AstKind::Function { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1215 | | ref proc, ref args, .. [INFO] [stdout] 1216 | | } = body.kind [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/evaluator.rs:1228:17 [INFO] [stdout] | [INFO] [stdout] 1228 | } 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] 1214 ~ match body.kind [INFO] [stdout] 1215 ~ { AstKind::Function { [INFO] [stdout] 1216 + ref proc, ref args, .. [INFO] [stdout] 1217 ~ } => { [INFO] [stdout] 1218 | let next = self.evaluate(proc, lambda_input, lambda_frame)?; [INFO] [stdout] ... [INFO] [stdout] 1227 | self.apply_function(proc.char_index, input, next, &evaluated_args, frame)?; [INFO] [stdout] 1228 ~ } _ => { [INFO] [stdout] 1229 | unreachable!() [INFO] [stdout] 1230 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1254:20 [INFO] [stdout] | [INFO] [stdout] 1254 | if let AstKind::Lambda { [INFO] [stdout] | ____________________^ [INFO] [stdout] 1255 | | ref body, ref args, .. [INFO] [stdout] 1256 | | } = ast.kind [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/evaluator.rs:1278:17 [INFO] [stdout] | [INFO] [stdout] 1278 | } 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] 1254 ~ match ast.kind [INFO] [stdout] 1255 ~ { AstKind::Lambda { [INFO] [stdout] 1256 + ref body, ref args, .. [INFO] [stdout] 1257 ~ } => { [INFO] [stdout] 1258 | // Create a new frame for use in the lambda, so it can have locals [INFO] [stdout] ... [INFO] [stdout] 1277 | self.evaluate(body, input, &frame) [INFO] [stdout] 1278 ~ } _ => { [INFO] [stdout] 1279 | unreachable!() [INFO] [stdout] 1280 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator.rs:1263:28 [INFO] [stdout] | [INFO] [stdout] 1263 | if let AstKind::Var(ref name) = arg.kind { [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/evaluator.rs:1271:25 [INFO] [stdout] | [INFO] [stdout] 1271 | } 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] 1263 ~ match arg.kind { AstKind::Var(ref name) => { [INFO] [stdout] 1264 | frame.bind( [INFO] [stdout] ... [INFO] [stdout] 1270 | ); [INFO] [stdout] 1271 ~ } _ => { [INFO] [stdout] 1272 | unreachable!() [INFO] [stdout] 1273 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/evaluator/value.rs:342:20 [INFO] [stdout] | [INFO] [stdout] 342 | if let AstKind::Lambda { ref args, .. } = ast.kind { [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/evaluator/value.rs:344:17 [INFO] [stdout] | [INFO] [stdout] 344 | } 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] 342 ~ match ast.kind { AstKind::Lambda { ref args, .. } => { [INFO] [stdout] 343 | args.len() [INFO] [stdout] 344 ~ } _ => { [INFO] [stdout] 345 | panic!("Not a lambda function") [INFO] [stdout] 346 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | if let AstKind::Ternary { [INFO] [stdout] | ________^ [INFO] [stdout] 71 | | ref mut cond, [INFO] [stdout] 72 | | ref mut truthy, [INFO] [stdout] 73 | | ref mut falsy, [INFO] [stdout] 74 | | } = node.kind [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/parser/process.rs:81:5 [INFO] [stdout] | [INFO] [stdout] 81 | } 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] 70 ~ match node.kind [INFO] [stdout] 71 ~ { AstKind::Ternary { [INFO] [stdout] 72 + ref mut cond, [INFO] [stdout] 73 + ref mut truthy, [INFO] [stdout] 74 + ref mut falsy, [INFO] [stdout] 75 ~ } => { [INFO] [stdout] 76 | *cond = Box::new(process_ast(take(cond))?); [INFO] [stdout] ... [INFO] [stdout] 80 | } [INFO] [stdout] 81 ~ } _ => { [INFO] [stdout] 82 | unreachable!() [INFO] [stdout] 83 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:187:12 [INFO] [stdout] | [INFO] [stdout] 187 | if let AstKind::Path(ref mut rest_steps) = rest.kind { [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/parser/process.rs:190:9 [INFO] [stdout] | [INFO] [stdout] 190 | } 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] 187 ~ match rest.kind { AstKind::Path(ref mut rest_steps) => { [INFO] [stdout] 188 | // If the rest is a path, merge in the steps [INFO] [stdout] 189 | steps.append(rest_steps); [INFO] [stdout] 190 ~ } _ => { [INFO] [stdout] 191 | // If there are predicates on the rest, they become stages of the step [INFO] [stdout] 192 | rest.stages = rest.predicates.take(); [INFO] [stdout] 193 | steps.push(rest); [INFO] [stdout] 194 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:235:19 [INFO] [stdout] | [INFO] [stdout] 235 | let node = if let AstKind::Path(ref mut steps) = result.kind { [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/parser/process.rs:239:5 [INFO] [stdout] | [INFO] [stdout] 239 | } 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] 235 ~ let node = match result.kind { AstKind::Path(ref mut steps) => { [INFO] [stdout] 236 | in_path = true; [INFO] [stdout] 237 | let last_index = steps.len() - 1; [INFO] [stdout] 238 | &mut steps[last_index] [INFO] [stdout] 239 ~ } _ => { [INFO] [stdout] 240 | &mut result [INFO] [stdout] 241 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:282:19 [INFO] [stdout] | [INFO] [stdout] 282 | let step = if let AstKind::Path(ref mut steps) = result.kind { [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/parser/process.rs:286:5 [INFO] [stdout] | [INFO] [stdout] 286 | } 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] 282 ~ let step = match result.kind { AstKind::Path(ref mut steps) => { [INFO] [stdout] 283 | // Left hand side was a path, so we want to operate on the last step [INFO] [stdout] 284 | let last_index = steps.len() - 1; [INFO] [stdout] 285 | &mut steps[last_index] [INFO] [stdout] 286 ~ } _ => { [INFO] [stdout] 287 | &mut result [INFO] [stdout] 288 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:302:20 [INFO] [stdout] | [INFO] [stdout] 302 | let focus = if let AstKind::Var(ref var) = rhs.kind { [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/parser/process.rs:304:5 [INFO] [stdout] | [INFO] [stdout] 304 | } 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] 302 ~ let focus = match rhs.kind { AstKind::Var(ref var) => { [INFO] [stdout] 303 | var.clone() [INFO] [stdout] 304 ~ } _ => { [INFO] [stdout] 305 | unreachable!() [INFO] [stdout] 306 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:318:19 [INFO] [stdout] | [INFO] [stdout] 318 | let step = if let AstKind::Path(ref mut steps) = result.kind { [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/parser/process.rs:323:5 [INFO] [stdout] | [INFO] [stdout] 323 | } 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] 318 ~ let step = match result.kind { AstKind::Path(ref mut steps) => { [INFO] [stdout] 319 | // Left hand side was a path, so we want to operate on the last step [INFO] [stdout] ... [INFO] [stdout] 322 | &mut steps[last_index] [INFO] [stdout] 323 ~ } _ => { [INFO] [stdout] 324 | // Convert predicates to stages as this will become the first step in a new path [INFO] [stdout] ... [INFO] [stdout] 328 | &mut result [INFO] [stdout] 329 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/process.rs:333:20 [INFO] [stdout] | [INFO] [stdout] 333 | let index = if let AstKind::Var(ref var) = rhs.kind { [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/parser/process.rs:335:5 [INFO] [stdout] | [INFO] [stdout] 335 | } 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] 333 ~ let index = match rhs.kind { AstKind::Var(ref var) => { [INFO] [stdout] 334 | var.clone() [INFO] [stdout] 335 ~ } _ => { [INFO] [stdout] 336 | unreachable!() [INFO] [stdout] 337 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser/symbol.rs:374:27 [INFO] [stdout] | [INFO] [stdout] 374 | while let AstKind::Binary(BinaryOp::Predicate, ref mut left, ..) = step.kind { [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/parser/symbol.rs:376:21 [INFO] [stdout] | [INFO] [stdout] 376 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 26 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/testsuite.rs from 2021 edition to 2024 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.85s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling jsonata-rs v0.1.7 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/evaluator/functions.rs:927:37 [INFO] [stdout] | [INFO] [stdout] 927 | let v: f32 = rand::thread_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] 927 | let v: f32 = rand::thread_rng().r#gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/evaluator/functions.rs:927:37 [INFO] [stdout] | [INFO] [stdout] 927 | let v: f32 = rand::thread_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] 927 | let v: f32 = rand::thread_rng().r#gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/evaluator/value/impls.rs:137:49 [INFO] [stdout] | [INFO] [stdout] 137 | let random_number: u64 = rand::thread_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] 137 | let random_number: u64 = rand::thread_rng().r#gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/evaluator/value/impls.rs:137:49 [INFO] [stdout] | [INFO] [stdout] 137 | let random_number: u64 = rand::thread_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] 137 | let random_number: u64 = rand::thread_rng().r#gen(); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `jsonata-rs` (lib) due to 3 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 2 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `jsonata-rs` (lib test) due to 3 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" "31ce47e657ed66900061526545a371c6168f74df6584f322186f1dfa7ef155c7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "31ce47e657ed66900061526545a371c6168f74df6584f322186f1dfa7ef155c7", kill_on_drop: false }` [INFO] [stdout] 31ce47e657ed66900061526545a371c6168f74df6584f322186f1dfa7ef155c7