[INFO] fetching crate rsbinder-aidl 0.2.3... [INFO] checking rsbinder-aidl-0.2.3 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] extracting crate rsbinder-aidl 0.2.3 into /workspace/builds/worker-0-tc2/source [INFO] validating manifest of crates.io crate rsbinder-aidl 0.2.3 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 rsbinder-aidl 0.2.3 [INFO] finished tweaking crates.io crate rsbinder-aidl 0.2.3 [INFO] tweaked toml for crates.io crate rsbinder-aidl 0.2.3 written to /workspace/builds/worker-0-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] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 105 packages to latest compatible versions [INFO] [stderr] Adding chrono-tz v0.9.0 (available: v0.10.0) [INFO] [stderr] Adding chrono-tz-build v0.3.0 (available: v0.4.0) [INFO] [stderr] Adding generic-array v0.14.7 (available: v1.1.0) [INFO] [stderr] Adding siphasher v0.3.11 (available: v1.0.1) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (available: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding windows-core v0.52.0 (available: v0.58.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] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] e50c783c791e8b902ce39f04a6a1f31498adabd9ca962896a0431873c99c5b70 [INFO] running `Command { std: "docker" "start" "-a" "e50c783c791e8b902ce39f04a6a1f31498adabd9ca962896a0431873c99c5b70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e50c783c791e8b902ce39f04a6a1f31498adabd9ca962896a0431873c99c5b70", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e50c783c791e8b902ce39f04a6a1f31498adabd9ca962896a0431873c99c5b70", kill_on_drop: false }` [INFO] [stdout] e50c783c791e8b902ce39f04a6a1f31498adabd9ca962896a0431873c99c5b70 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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] b8b8fb435234afc53d5fab5a1b5d646e171105782c65fd20cc9961b5c033079a [INFO] running `Command { std: "docker" "start" "-a" "b8b8fb435234afc53d5fab5a1b5d646e171105782c65fd20cc9961b5c033079a", 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 siphasher v0.3.11 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling regex-syntax v0.8.4 [INFO] [stderr] Compiling crossbeam-utils v0.8.20 [INFO] [stderr] Compiling memchr v2.7.4 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Compiling ucd-trie v0.1.6 [INFO] [stderr] Checking unic-char-range v0.9.0 [INFO] [stderr] Compiling serde v1.0.210 [INFO] [stderr] Compiling once_cell v1.19.0 [INFO] [stderr] Compiling libm v0.2.8 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking unic-common v0.9.0 [INFO] [stderr] Compiling phf_shared v0.11.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Checking unic-char-property v0.9.0 [INFO] [stderr] Checking unic-ucd-version v0.9.0 [INFO] [stderr] Compiling serde_json v1.0.128 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking unic-ucd-segment v0.9.0 [INFO] [stderr] Checking bitflags v2.6.0 [INFO] [stderr] Checking deunicode v1.6.0 [INFO] [stderr] Compiling phf v0.11.2 [INFO] [stderr] Checking unicode-segmentation v1.12.0 [INFO] [stderr] Checking similar v2.6.0 [INFO] [stderr] Checking slug v0.1.6 [INFO] [stderr] Checking unic-segment v0.9.0 [INFO] [stderr] Checking humansize v2.1.3 [INFO] [stderr] Compiling phf_generator v0.11.2 [INFO] [stderr] Checking convert_case v0.6.0 [INFO] [stderr] Compiling phf_codegen v0.11.2 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Compiling regex-automata v0.4.7 [INFO] [stderr] Compiling thiserror-impl v1.0.64 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling serde_derive v1.0.210 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Compiling thiserror v1.0.64 [INFO] [stderr] Compiling pest v2.7.13 [INFO] [stderr] Compiling regex v1.10.6 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Compiling parse-zoneinfo v0.3.1 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking globset v0.4.15 [INFO] [stderr] Compiling chrono-tz-build v0.3.0 [INFO] [stderr] Checking ignore v0.4.23 [INFO] [stderr] Compiling chrono-tz v0.9.0 [INFO] [stderr] Checking globwalk v0.9.1 [INFO] [stderr] Compiling pest_meta v2.7.13 [INFO] [stderr] Compiling pest_generator v2.7.13 [INFO] [stderr] Compiling pest_derive v2.7.13 [INFO] [stderr] Checking tera v1.20.0 [INFO] [stderr] Checking rsbinder-aidl v0.2.3 (/tmp/fixit) [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rsbinder_aidl` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/const_expr.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/const_expr.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:7:30 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:7:46 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:7:63 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:6 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted: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] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | let gen = generator::Generator::new(self.enabled_async, self.is_crate); [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] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:244:27 [INFO] [stdout] | [INFO] [stdout] 244 | let package = gen.document(&document.1)?; [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] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | Some(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] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:63 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted: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 8 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/type_generator.rs:83:63 [INFO] [stdout] | [INFO] [stdout] 83 | array_types.push(ArrayInfo::new_list(&gen.to_value_type(), &Vec::new())); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:621:13 [INFO] [stdout] | [INFO] [stdout] 621 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:623:20 [INFO] [stdout] | [INFO] [stdout] 623 | assert_eq!(gen.type_declaration(false), "String"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:625:28 [INFO] [stdout] | [INFO] [stdout] 625 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:628:25 [INFO] [stdout] | [INFO] [stdout] 628 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:641:13 [INFO] [stdout] | [INFO] [stdout] 641 | let gen = TypeGenerator::new(&NonArrayType{ name: "IBinder".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:643:20 [INFO] [stdout] | [INFO] [stdout] 643 | assert_eq!(gen.type_declaration(false), "rsbinder::SIBinder"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:645:28 [INFO] [stdout] | [INFO] [stdout] 645 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:648:25 [INFO] [stdout] | [INFO] [stdout] 648 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:661:13 [INFO] [stdout] | [INFO] [stdout] 661 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:663:20 [INFO] [stdout] | [INFO] [stdout] 663 | assert_eq!(gen.type_decl_for_func(), "&rsbinder::ParcelFileDescriptor"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:665:28 [INFO] [stdout] | [INFO] [stdout] 665 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:668:25 [INFO] [stdout] | [INFO] [stdout] 668 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:678:13 [INFO] [stdout] | [INFO] [stdout] 678 | let gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:679:25 [INFO] [stdout] | [INFO] [stdout] 679 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:684:13 [INFO] [stdout] | [INFO] [stdout] 684 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:685:34 [INFO] [stdout] | [INFO] [stdout] 685 | let nullable_array_gen = gen.array(&Vec::new()).nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:694:20 [INFO] [stdout] | [INFO] [stdout] 694 | assert_eq!(gen.func_call_param(), "_arg_type.as_str()"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:695:20 [INFO] [stdout] | [INFO] [stdout] 695 | assert_eq!(gen.nullable().func_call_param(), "_arg_type.as_deref()"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:697:13 [INFO] [stdout] | [INFO] [stdout] 697 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:699:20 [INFO] [stdout] | [INFO] [stdout] 699 | assert_eq!(gen.func_call_param(), "&_arg_type"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:701:25 [INFO] [stdout] | [INFO] [stdout] 701 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:709:13 [INFO] [stdout] | [INFO] [stdout] 709 | let gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:711:30 [INFO] [stdout] | [INFO] [stdout] 711 | let array_nullable = gen.array(&[ArrayType{const_expr: Some(ConstExpr::new(ValueType::Byte(2)))}]).nullable(); [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/const_expr.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 7 | ($lhs:expr, $op:tt, $rhs:expr_2021, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:7:42 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr_2021, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:7:58 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:30 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr, $op:tt, $rhs:expr_2021, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:42 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr_2021, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:58 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Interface` is never constructed [INFO] [stdout] --> src/parser.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub struct Interface { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Interface` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 104 | if let Some(imported) = curr_doc.imports.get(&namespace.ns[0]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | } [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] 104 ~ match curr_doc.imports.get(&namespace.ns[0]) { Some(imported) => { [INFO] [stdout] 105 | let mut new_ns = Namespace::new(imported, Namespace::AIDL); [INFO] [stdout] 106 | new_ns.ns.extend_from_slice(&namespace.ns[1..]); [INFO] [stdout] 107 | ns_vec.push(new_ns); [INFO] [stdout] 108 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | if let Some(decl) = hashmap.borrow().get(ns) { [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.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 115 ~ match hashmap.borrow().get(ns) { Some(decl) => { [INFO] [stdout] 116 | // println!("Found: {:?}\n", ns); [INFO] [stdout] 117 | return (decl.clone(), ns.clone()); [INFO] [stdout] 118 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some(expr) = lookup_name_from_decl(decl, lookup_decl) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 196 ~ match lookup_name_from_decl(decl, lookup_decl) { Some(expr) => { [INFO] [stdout] 197 | return Some(expr) [INFO] [stdout] 198 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1268:24 [INFO] [stdout] | [INFO] [stdout] 1268 | let namespace = if let Some(ref package) = document.package { [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.rs:1270:5 [INFO] [stdout] | [INFO] [stdout] 1270 | } 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] 1268 ~ let namespace = match document.package { Some(ref package) => { [INFO] [stdout] 1269 | Namespace::new(package, Namespace::AIDL) [INFO] [stdout] 1270 ~ } _ => { [INFO] [stdout] 1271 | Namespace::default() [INFO] [stdout] 1272 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:301:39 [INFO] [stdout] | [INFO] [stdout] 301 | let some_str = if let ValueType::Array(_) = v.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:303:21 [INFO] [stdout] | [INFO] [stdout] 303 | } else if is_nullable { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 301 ~ let some_str = match v.value { ValueType::Array(_) => { [INFO] [stdout] 302 | init_str [INFO] [stdout] 303 ~ } _ => if is_nullable { [INFO] [stdout] 304 | format!("Some({})", init_str) [INFO] [stdout] 305 | } else { [INFO] [stdout] 306 | init_str [INFO] [stdout] 307 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:461:28 [INFO] [stdout] | [INFO] [stdout] 461 | if let ValueType::Name(_) = expr.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:463:25 [INFO] [stdout] | [INFO] [stdout] 463 | } 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] 461 ~ match expr.value { ValueType::Name(_) => { [INFO] [stdout] 462 | expr [INFO] [stdout] 463 ~ } _ => { [INFO] [stdout] 464 | expr.calculate() [INFO] [stdout] 465 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:516:15 [INFO] [stdout] | [INFO] [stdout] 516 | } else if let ValueType::Bool(_) = lhs { [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] 517 | rhs [INFO] [stdout] 518 | } else if let ValueType::Bool(_) = rhs { [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/const_expr.rs:518:5 [INFO] [stdout] | [INFO] [stdout] 518 | } else if let ValueType::Bool(_) = rhs { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | } else if lhs.order() > rhs.order() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 516 ~ } else { match lhs { ValueType::Bool(_) => { [INFO] [stdout] 517 | rhs [INFO] [stdout] 518 ~ } _ => { match rhs { ValueType::Bool(_) => { [INFO] [stdout] 519 | lhs [INFO] [stdout] 520 ~ } _ => if lhs.order() > rhs.order() { [INFO] [stdout] 521 | lhs [INFO] [stdout] 522 | } else { [INFO] [stdout] 523 | rhs [INFO] [stdout] 524 ~ }}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:616:19 [INFO] [stdout] | [INFO] [stdout] 616 | } else if let ValueType::Array(list) = &self.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | } 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] 616 ~ } else { match &self.value { ValueType::Array(list) => { [INFO] [stdout] 617 | let mut res = Vec::new(); [INFO] [stdout] ... [INFO] [stdout] 622 | ConstExpr::new(ValueType::Array(res)) [INFO] [stdout] 623 ~ } _ => { [INFO] [stdout] 624 | match value_type { [INFO] [stdout] ... [INFO] [stdout] 661 | } [INFO] [stdout] 662 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_generator.rs:597:35 [INFO] [stdout] | [INFO] [stdout] 597 | let init_str = if let ValueType::Array(_) = self.value_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_generator.rs:601:17 [INFO] [stdout] | [INFO] [stdout] 601 | } 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] 597 ~ let init_str = match self.value_type { ValueType::Array(_) => { [INFO] [stdout] 598 | let array_info = self.array_types.first().unwrap(); [INFO] [stdout] 599 | let is_nullable = self.is_nullable && Self::is_aidl_nullable(&array_info.value_type); [INFO] [stdout] 600 | expr.calculate().convert_to(&array_info.value_type).value.to_init(is_const, array_info.is_fixed(), is_nullable) [INFO] [stdout] 601 ~ } _ => { [INFO] [stdout] 602 | expr.calculate().convert_to(&self.value_type).value.to_init(is_const, false, false) [INFO] [stdout] 603 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 46 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/test_interfaces.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rsbinder_aidl` [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | let gen = generator::Generator::new(self.enabled_async, self.is_crate); [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] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/lib.rs:244:27 [INFO] [stdout] | [INFO] [stdout] 244 | let package = gen.document(&document.1)?; [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] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | Some(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] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:83:63 [INFO] [stdout] | [INFO] [stdout] 83 | array_types.push(ArrayInfo::new_list(&gen.to_value_type(), &Vec::new())); [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] [stderr] * src/const_expr.rs [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:621:13 [INFO] [stdout] | [INFO] [stdout] 621 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [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] [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/const_expr.rs:7:6 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:7:30 [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:623:20 [INFO] [stdout] | [INFO] [stdout] 623 | assert_eq!(gen.type_declaration(false), "String"); [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] [stderr] | [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:625:28 [INFO] [stdout] | [INFO] [stdout] 625 | let nullable_gen = gen.clone().nullable(); [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] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:628:25 [INFO] [stdout] | [INFO] [stdout] 628 | let array_gen = gen.array(&Vec::new()); [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] [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/const_expr.rs:7:46 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:7:63 [INFO] [stderr] | [INFO] [stderr] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:6 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:30 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:46 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted:expr_2021) => { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stderr] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stderr] --> src/const_expr.rs:37:63 [INFO] [stderr] | [INFO] [stderr] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr_2021, $desc:expr_2021, $promoted: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 8 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/type_generator.rs:641:13 [INFO] [stdout] | [INFO] [stdout] 641 | let gen = TypeGenerator::new(&NonArrayType{ name: "IBinder".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:643:20 [INFO] [stdout] | [INFO] [stdout] 643 | assert_eq!(gen.type_declaration(false), "rsbinder::SIBinder"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:645:28 [INFO] [stdout] | [INFO] [stdout] 645 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:648:25 [INFO] [stdout] | [INFO] [stdout] 648 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:661:13 [INFO] [stdout] | [INFO] [stdout] 661 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:663:20 [INFO] [stdout] | [INFO] [stdout] 663 | assert_eq!(gen.type_decl_for_func(), "&rsbinder::ParcelFileDescriptor"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:665:28 [INFO] [stdout] | [INFO] [stdout] 665 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:668:25 [INFO] [stdout] | [INFO] [stdout] 668 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:678:13 [INFO] [stdout] | [INFO] [stdout] 678 | let gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:679:25 [INFO] [stdout] | [INFO] [stdout] 679 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:684:13 [INFO] [stdout] | [INFO] [stdout] 684 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:685:34 [INFO] [stdout] | [INFO] [stdout] 685 | let nullable_array_gen = gen.array(&Vec::new()).nullable(); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:694:20 [INFO] [stdout] | [INFO] [stdout] 694 | assert_eq!(gen.func_call_param(), "_arg_type.as_str()"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:695:20 [INFO] [stdout] | [INFO] [stdout] 695 | assert_eq!(gen.nullable().func_call_param(), "_arg_type.as_deref()"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:697:13 [INFO] [stdout] | [INFO] [stdout] 697 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:699:20 [INFO] [stdout] | [INFO] [stdout] 699 | assert_eq!(gen.func_call_param(), "&_arg_type"); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:701:25 [INFO] [stdout] | [INFO] [stdout] 701 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:709:13 [INFO] [stdout] | [INFO] [stdout] 709 | let gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }) [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/type_generator.rs:711:30 [INFO] [stdout] | [INFO] [stdout] 711 | let array_nullable = gen.array(&[ArrayType{const_expr: Some(ConstExpr::new(ValueType::Byte(2)))}]).nullable(); [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/const_expr.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see Migration Guide [INFO] [stdout] = note: `--force-warn edition-2024-expr-fragment-specifier` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: to keep the existing behavior, use the `expr_2021` fragment specifier [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr_2021, $op:tt, $rhs:expr, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:7:30 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 7 | ($lhs:expr, $op:tt, $rhs:expr_2021, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:7:42 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr_2021, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:7:58 [INFO] [stdout] | [INFO] [stdout] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 7 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:11 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr_2021, $op:tt, $rhs:expr, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:30 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr, $op:tt, $rhs:expr_2021, $desc:expr, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:42 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr_2021, $promoted:expr) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/const_expr.rs:37:58 [INFO] [stdout] | [INFO] [stdout] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted: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] 37 | ($lhs:expr, $op:tt, $rhs:expr, $desc:expr, $promoted:expr_2021) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Interface` is never constructed [INFO] [stdout] --> src/parser.rs:210:12 [INFO] [stdout] | [INFO] [stdout] 210 | pub struct Interface { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Interface` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:104:12 [INFO] [stdout] | [INFO] [stdout] 104 | if let Some(imported) = curr_doc.imports.get(&namespace.ns[0]) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser.rs:108:9 [INFO] [stdout] | [INFO] [stdout] 108 | } [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] 104 ~ match curr_doc.imports.get(&namespace.ns[0]) { Some(imported) => { [INFO] [stdout] 105 | let mut new_ns = Namespace::new(imported, Namespace::AIDL); [INFO] [stdout] 106 | new_ns.ns.extend_from_slice(&namespace.ns[1..]); [INFO] [stdout] 107 | ns_vec.push(new_ns); [INFO] [stdout] 108 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | if let Some(decl) = hashmap.borrow().get(ns) { [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.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 115 ~ match hashmap.borrow().get(ns) { Some(decl) => { [INFO] [stdout] 116 | // println!("Found: {:?}\n", ns); [INFO] [stdout] 117 | return (decl.clone(), ns.clone()); [INFO] [stdout] 118 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:196:12 [INFO] [stdout] | [INFO] [stdout] 196 | if let Some(expr) = lookup_name_from_decl(decl, lookup_decl) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^---------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/parser.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 196 ~ match lookup_name_from_decl(decl, lookup_decl) { Some(expr) => { [INFO] [stdout] 197 | return Some(expr) [INFO] [stdout] 198 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/parser.rs:1268:24 [INFO] [stdout] | [INFO] [stdout] 1268 | let namespace = if let Some(ref package) = document.package { [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.rs:1270:5 [INFO] [stdout] | [INFO] [stdout] 1270 | } 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] 1268 ~ let namespace = match document.package { Some(ref package) => { [INFO] [stdout] 1269 | Namespace::new(package, Namespace::AIDL) [INFO] [stdout] 1270 ~ } _ => { [INFO] [stdout] 1271 | Namespace::default() [INFO] [stdout] 1272 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:301:39 [INFO] [stdout] | [INFO] [stdout] 301 | let some_str = if let ValueType::Array(_) = v.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:303:21 [INFO] [stdout] | [INFO] [stdout] 303 | } else if is_nullable { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 301 ~ let some_str = match v.value { ValueType::Array(_) => { [INFO] [stdout] 302 | init_str [INFO] [stdout] 303 ~ } _ => if is_nullable { [INFO] [stdout] 304 | format!("Some({})", init_str) [INFO] [stdout] 305 | } else { [INFO] [stdout] 306 | init_str [INFO] [stdout] 307 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:461:28 [INFO] [stdout] | [INFO] [stdout] 461 | if let ValueType::Name(_) = expr.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:463:25 [INFO] [stdout] | [INFO] [stdout] 463 | } 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] 461 ~ match expr.value { ValueType::Name(_) => { [INFO] [stdout] 462 | expr [INFO] [stdout] 463 ~ } _ => { [INFO] [stdout] 464 | expr.calculate() [INFO] [stdout] 465 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:516:15 [INFO] [stdout] | [INFO] [stdout] 516 | } else if let ValueType::Bool(_) = lhs { [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] 517 | rhs [INFO] [stdout] 518 | } else if let ValueType::Bool(_) = rhs { [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/const_expr.rs:518:5 [INFO] [stdout] | [INFO] [stdout] 518 | } else if let ValueType::Bool(_) = rhs { [INFO] [stdout] | ^ [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:520:5 [INFO] [stdout] | [INFO] [stdout] 520 | } else if lhs.order() > rhs.order() { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 516 ~ } else { match lhs { ValueType::Bool(_) => { [INFO] [stdout] 517 | rhs [INFO] [stdout] 518 ~ } _ => { match rhs { ValueType::Bool(_) => { [INFO] [stdout] 519 | lhs [INFO] [stdout] 520 ~ } _ => if lhs.order() > rhs.order() { [INFO] [stdout] 521 | lhs [INFO] [stdout] 522 | } else { [INFO] [stdout] 523 | rhs [INFO] [stdout] 524 ~ }}}}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/const_expr.rs:616:19 [INFO] [stdout] | [INFO] [stdout] 616 | } else if let ValueType::Array(list) = &self.value { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/const_expr.rs:623:9 [INFO] [stdout] | [INFO] [stdout] 623 | } 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] 616 ~ } else { match &self.value { ValueType::Array(list) => { [INFO] [stdout] 617 | let mut res = Vec::new(); [INFO] [stdout] ... [INFO] [stdout] 622 | ConstExpr::new(ValueType::Array(res)) [INFO] [stdout] 623 ~ } _ => { [INFO] [stdout] 624 | match value_type { [INFO] [stdout] ... [INFO] [stdout] 661 | } [INFO] [stdout] 662 ~ }}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/type_generator.rs:597:35 [INFO] [stdout] | [INFO] [stdout] 597 | let init_str = if let ValueType::Array(_) = self.value_type { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^--------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/type_generator.rs:601:17 [INFO] [stdout] | [INFO] [stdout] 601 | } 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] 597 ~ let init_str = match self.value_type { ValueType::Array(_) => { [INFO] [stdout] 598 | let array_info = self.array_types.first().unwrap(); [INFO] [stdout] 599 | let is_nullable = self.is_nullable && Self::is_aidl_nullable(&array_info.value_type); [INFO] [stdout] 600 | expr.calculate().convert_to(&array_info.value_type).value.to_init(is_const, array_info.is_fixed(), is_nullable) [INFO] [stdout] 601 ~ } _ => { [INFO] [stdout] 602 | expr.calculate().convert_to(&self.value_type).value.to_init(is_const, false, false) [INFO] [stdout] 603 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 46 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating tests/test_aidl.rs from 2021 edition to 2024 [INFO] [stderr] Fixed tests/test_aidl.rs (2 fixes) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.61s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking rsbinder-aidl v0.2.3 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | let gen = generator::Generator::new(self.enabled_async, self.is_crate); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 243 | let r#gen = generator::Generator::new(self.enabled_async, self.is_crate); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:243:17 [INFO] [stdout] | [INFO] [stdout] 243 | let gen = generator::Generator::new(self.enabled_async, self.is_crate); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 243 | let r#gen = generator::Generator::new(self.enabled_async, self.is_crate); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:244:27 [INFO] [stdout] | [INFO] [stdout] 244 | let package = gen.document(&document.1)?; [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/lib.rs:244:27 [INFO] [stdout] | [INFO] [stdout] 244 | let package = gen.document(&document.1)?; [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | Some(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] 82 | Some(r#gen) => { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:82:26 [INFO] [stdout] | [INFO] [stdout] 82 | Some(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] 82 | Some(r#gen) => { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:83:63 [INFO] [stdout] | [INFO] [stdout] 83 | array_types.push(ArrayInfo::new_list(&gen.to_value_type(), &Vec::new())); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:83:63 [INFO] [stdout] | [INFO] [stdout] 83 | array_types.push(ArrayInfo::new_list(&gen.to_value_type(), &Vec::new())); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:621:13 [INFO] [stdout] | [INFO] [stdout] 621 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 621 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:621:13 [INFO] [stdout] | [INFO] [stdout] 621 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 621 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:625:28 [INFO] [stdout] | [INFO] [stdout] 625 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:625:28 [INFO] [stdout] | [INFO] [stdout] 625 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:641:13 [INFO] [stdout] | [INFO] [stdout] 641 | let gen = TypeGenerator::new(&NonArrayType{ name: "IBinder".to_owned(), generic: None }); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 641 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "IBinder".to_owned(), generic: None }); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:641:13 [INFO] [stdout] | [INFO] [stdout] 641 | let gen = TypeGenerator::new(&NonArrayType{ name: "IBinder".to_owned(), generic: None }); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 641 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "IBinder".to_owned(), generic: None }); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:645:28 [INFO] [stdout] | [INFO] [stdout] 645 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:661:13 [INFO] [stdout] | [INFO] [stdout] 661 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 661 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:665:28 [INFO] [stdout] | [INFO] [stdout] 665 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:645:28 [INFO] [stdout] | [INFO] [stdout] 645 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 692 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:697:13 [INFO] [stdout] | [INFO] [stdout] 697 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 697 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:701:25 [INFO] [stdout] | [INFO] [stdout] 701 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:709:13 [INFO] [stdout] | [INFO] [stdout] 709 | let gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 709 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:661:13 [INFO] [stdout] | [INFO] [stdout] 661 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }); [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 661 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }); [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:711:30 [INFO] [stdout] | [INFO] [stdout] 711 | let array_nullable = gen.array(&[ArrayType{const_expr: Some(ConstExpr::new(ValueType::Byte(2)))}]).nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:665:28 [INFO] [stdout] | [INFO] [stdout] 665 | let nullable_gen = gen.clone().nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:692:13 [INFO] [stdout] | [INFO] [stdout] 692 | let gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 692 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "String".to_owned(), generic: None }) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:697:13 [INFO] [stdout] | [INFO] [stdout] 697 | let gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 697 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "ParcelFileDescriptor".to_owned(), generic: None }) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:701:25 [INFO] [stdout] | [INFO] [stdout] 701 | let array_gen = gen.array(&Vec::new()); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:709:13 [INFO] [stdout] | [INFO] [stdout] 709 | let gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 709 | let r#gen = TypeGenerator::new(&NonArrayType{ name: "boolean".to_owned(), generic: None }) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:711:30 [INFO] [stdout] | [INFO] [stdout] 711 | let array_nullable = gen.array(&[ArrayType{const_expr: Some(ConstExpr::new(ValueType::Byte(2)))}]).nullable(); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:623:20 [INFO] [stdout] | [INFO] [stdout] 623 | assert_eq!(gen.type_declaration(false), "String"); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] --> /rustc/ccf408f4326a858c00dd845a64a86b16f360a801/library/core/src/macros/mod.rs:43:6 [INFO] [stdout] | [INFO] [stdout] = note: while parsing argument for this `expr` macro fragment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:643:20 [INFO] [stdout] | [INFO] [stdout] 643 | assert_eq!(gen.type_declaration(false), "rsbinder::SIBinder"); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] --> /rustc/ccf408f4326a858c00dd845a64a86b16f360a801/library/core/src/macros/mod.rs:43:6 [INFO] [stdout] | [INFO] [stdout] = note: while parsing argument for this `expr` macro fragment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:663:20 [INFO] [stdout] | [INFO] [stdout] 663 | assert_eq!(gen.type_decl_for_func(), "&rsbinder::ParcelFileDescriptor"); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] --> /rustc/ccf408f4326a858c00dd845a64a86b16f360a801/library/core/src/macros/mod.rs:43:6 [INFO] [stdout] | [INFO] [stdout] = note: while parsing argument for this `expr` macro fragment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:694:20 [INFO] [stdout] | [INFO] [stdout] 694 | assert_eq!(gen.func_call_param(), "_arg_type.as_str()"); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] --> /rustc/ccf408f4326a858c00dd845a64a86b16f360a801/library/core/src/macros/mod.rs:43:6 [INFO] [stdout] | [INFO] [stdout] = note: while parsing argument for this `expr` macro fragment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:695:20 [INFO] [stdout] | [INFO] [stdout] 695 | assert_eq!(gen.nullable().func_call_param(), "_arg_type.as_deref()"); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] --> /rustc/ccf408f4326a858c00dd845a64a86b16f360a801/library/core/src/macros/mod.rs:43:6 [INFO] [stdout] | [INFO] [stdout] = note: while parsing argument for this `expr` macro fragment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/type_generator.rs:699:20 [INFO] [stdout] | [INFO] [stdout] 699 | assert_eq!(gen.func_call_param(), "&_arg_type"); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] --> /rustc/ccf408f4326a858c00dd845a64a86b16f360a801/library/core/src/macros/mod.rs:43:6 [INFO] [stdout] | [INFO] [stdout] = note: while parsing argument for this `expr` macro fragment [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 15 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rsbinder-aidl` (lib) due to 16 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 21 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `rsbinder-aidl` (lib test) due to 22 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" "b8b8fb435234afc53d5fab5a1b5d646e171105782c65fd20cc9961b5c033079a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b8b8fb435234afc53d5fab5a1b5d646e171105782c65fd20cc9961b5c033079a", kill_on_drop: false }` [INFO] [stdout] b8b8fb435234afc53d5fab5a1b5d646e171105782c65fd20cc9961b5c033079a