[INFO] cloning repository https://github.com/DrEden33773/leetcode_rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/DrEden33773/leetcode_rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDrEden33773%2Fleetcode_rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDrEden33773%2Fleetcode_rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 8dd8882c0097305943a77cf347f059c5d5ac77e2 [INFO] checking DrEden33773/leetcode_rust/8dd8882c0097305943a77cf347f059c5d5ac77e2 against try#ccf408f4326a858c00dd845a64a86b16f360a801 for pr-129466-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FDrEden33773%2Fleetcode_rust" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/DrEden33773/leetcode_rust 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 git repo https://github.com/DrEden33773/leetcode_rust [INFO] finished tweaking git repo https://github.com/DrEden33773/leetcode_rust [INFO] tweaked toml for git repo https://github.com/DrEden33773/leetcode_rust written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/DrEden33773/leetcode_rust already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ccf408f4326a858c00dd845a64a86b16f360a801" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-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] fad204a64b29ccfe9439317ccc92f4caf3b8cb3da6833b897bf4460267aad6c3 [INFO] running `Command { std: "docker" "start" "-a" "fad204a64b29ccfe9439317ccc92f4caf3b8cb3da6833b897bf4460267aad6c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fad204a64b29ccfe9439317ccc92f4caf3b8cb3da6833b897bf4460267aad6c3", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fad204a64b29ccfe9439317ccc92f4caf3b8cb3da6833b897bf4460267aad6c3", kill_on_drop: false }` [INFO] [stdout] fad204a64b29ccfe9439317ccc92f4caf3b8cb3da6833b897bf4460267aad6c3 [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] 76cdbd0da78e3e96aab6664f1eedbf3e39077cca2ec698d12e83c55ba00a3127 [INFO] running `Command { std: "docker" "start" "-a" "76cdbd0da78e3e96aab6664f1eedbf3e39077cca2ec698d12e83c55ba00a3127", 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 libc v0.2.139 [INFO] [stderr] Checking getrandom v0.2.8 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking leetcode_rust v0.1.0 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `leetcode_rust` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/leetcode/binary_tree/lt_297.rs [INFO] [stderr] * src/leetcode/binary_tree/lt_94.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/leetcode/binary_tree/lt_297.rs:133:8 [INFO] [stderr] | [INFO] [stderr] 133 | ($($e: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/leetcode/binary_tree/lt_297.rs:140:8 [INFO] [stderr] | [INFO] [stderr] 140 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [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/leetcode/binary_tree/lt_94.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | ($($e: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/leetcode/binary_tree/lt_94.rs:87:8 [INFO] [stderr] | [INFO] [stderr] 87 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut gen: Vec = (0..15) [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] = 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/leetcode/sort/lt_75.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | println!("before => {:?}", &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] = 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 4 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/leetcode/sort/lt_75.rs:65:28 [INFO] [stdout] | [INFO] [stdout] 65 | Self::sort_colors(&mut gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:66:32 [INFO] [stdout] | [INFO] [stdout] 66 | println!("after => {:?}", &gen); [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:67:31 [INFO] [stdout] | [INFO] [stdout] 67 | match Self::if_ascending(&gen) { [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/leetcode/binary_tree/lt_297.rs:133:11 [INFO] [stdout] | [INFO] [stdout] 133 | ($($e: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] 133 | ($($e: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/leetcode/binary_tree/lt_297.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | ($($e:expr,)*) => {(tree![$($e),*])}; [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] 140 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/leetcode/binary_tree/lt_94.rs:80:11 [INFO] [stdout] | [INFO] [stdout] 80 | ($($e: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] 80 | ($($e: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/leetcode/binary_tree/lt_94.rs:87:11 [INFO] [stdout] | [INFO] [stdout] 87 | ($($e:expr,)*) => {(tree![$($e),*])}; [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] 87 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:72:10 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(v) = children[1].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^-----------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:75:7 [INFO] [stdout] | [INFO] [stdout] 75 | } [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] 72 ~ match children[1].as_ref() { Some(v) => { [INFO] [stdout] 73 | parent.borrow_mut().right = Some(Rc::new(RefCell::new(TreeNode::new(v.to_owned())))); [INFO] [stdout] 74 | queue.push_back(parent.borrow().right.as_ref().unwrap().clone()); [INFO] [stdout] 75 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | while let Some(curr) = node.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:110:7 [INFO] [stdout] | [INFO] [stdout] 110 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:114:10 [INFO] [stdout] | [INFO] [stdout] 114 | if let Some(curr) = stack.pop_back().unwrap() { [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/issue/binary_tree.rs:116:7 [INFO] [stdout] | [INFO] [stdout] 116 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 114 ~ match stack.pop_back().unwrap() { Some(curr) => { [INFO] [stdout] 115 | node = curr.borrow().right.clone(); [INFO] [stdout] 116 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:125:10 [INFO] [stdout] | [INFO] [stdout] 125 | if let Some(curr) = node { [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/issue/binary_tree.rs:129:7 [INFO] [stdout] | [INFO] [stdout] 129 | } 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] 125 ~ match node { Some(curr) => { [INFO] [stdout] 126 | seq.push(Some(curr.borrow().val.clone())); [INFO] [stdout] 127 | recursive_func(curr.borrow().left.clone(), seq); [INFO] [stdout] 128 | recursive_func(curr.borrow().right.clone(), seq); [INFO] [stdout] 129 ~ } _ => { [INFO] [stdout] 130 | // must add `else`, or non_null node will be treated as null [INFO] [stdout] 131 | // ( after being treated as non_null normally ) [INFO] [stdout] 132 | seq.push(None); [INFO] [stdout] 133 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | if let Some(node) = queue.pop_front().unwrap() { [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/issue/binary_tree.rs:149:7 [INFO] [stdout] | [INFO] [stdout] 149 | } 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] 145 ~ match queue.pop_front().unwrap() { Some(node) => { [INFO] [stdout] 146 | seq.push(Some(node.borrow().val.clone())); [INFO] [stdout] 147 | queue.push_back(node.borrow().left.clone()); [INFO] [stdout] 148 | queue.push_back(node.borrow().right.clone()); [INFO] [stdout] 149 ~ } _ => { [INFO] [stdout] 150 | seq.push(None); [INFO] [stdout] 151 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | if let Some(right) = node.borrow().right.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 184 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 182 ~ match node.borrow().right.as_ref() { Some(right) => { [INFO] [stdout] 183 | queue.push_back(right.to_owned()); [INFO] [stdout] 184 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:211:12 [INFO] [stdout] | [INFO] [stdout] 211 | if let Some(right) = node.borrow().right.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 211 ~ match node.borrow().right.as_ref() { Some(right) => { [INFO] [stdout] 212 | queue.push_back(right.to_owned()); [INFO] [stdout] 213 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | while let Some(pos) = self.edges_from[any] [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] | | [INFO] [stdout] 95 | | .iter() [INFO] [stdout] 96 | | .position(|edge| &edge.node == vex) [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:99:7 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | if let Some(pos) = self.edges_from[start] [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] | | [INFO] [stdout] 157 | | .iter() [INFO] [stdout] 158 | | .position(|edge| &edge.node == goal && edge.cost == cost) [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | } 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] 156 ~ match self.edges_from[start] [INFO] [stdout] 157 | .iter() [INFO] [stdout] 158 | .position(|edge| &edge.node == goal && edge.cost == cost) [INFO] [stdout] 159 ~ { Some(pos) => { [INFO] [stdout] 160 | self.edges_from.get_mut(start).unwrap().remove(pos); [INFO] [stdout] 161 ~ } _ => { [INFO] [stdout] 162 | return Err(ErrType::NoEdgeWithCost( [INFO] [stdout] ... [INFO] [stdout] 166 | )); [INFO] [stdout] 167 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:169:8 [INFO] [stdout] | [INFO] [stdout] 169 | if let Some(pos) = self.edges_to[goal] [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] | | [INFO] [stdout] 170 | | .iter() [INFO] [stdout] 171 | | .position(|edge| &edge.node == start && edge.cost == cost) [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | } 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] 169 ~ match self.edges_to[goal] [INFO] [stdout] 170 | .iter() [INFO] [stdout] 171 | .position(|edge| &edge.node == start && edge.cost == cost) [INFO] [stdout] 172 ~ { Some(pos) => { [INFO] [stdout] 173 | self.edges_to.get_mut(goal).unwrap().remove(pos); [INFO] [stdout] 174 ~ } _ => { [INFO] [stdout] 175 | return Err(ErrType::NoEdgeWithCost( [INFO] [stdout] ... [INFO] [stdout] 179 | )); [INFO] [stdout] 180 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:195:11 [INFO] [stdout] | [INFO] [stdout] 195 | while let Some(pos) = self.edges_from[start] [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] | | [INFO] [stdout] 196 | | .iter() [INFO] [stdout] 197 | | .position(|edge| &edge.node == goal) [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:201:5 [INFO] [stdout] | [INFO] [stdout] 201 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:203:11 [INFO] [stdout] | [INFO] [stdout] 203 | while let Some(pos) = self.edges_to[goal] [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] | | [INFO] [stdout] 204 | | .iter() [INFO] [stdout] 205 | | .position(|edge| &edge.node == start) [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | if let Some(right) = root.borrow().right.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 54 ~ match root.borrow().right.clone() { Some(right) => { [INFO] [stdout] 55 | right.borrow_mut().val = chunk[next_depth] - sub; [INFO] [stdout] 56 | second_dfs(&root.borrow().right, chunk, next_depth); [INFO] [stdout] 57 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 94 | if let Some(right) = node.borrow().right.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 94 ~ match node.borrow().right.clone() { Some(right) => { [INFO] [stdout] 95 | sum += right.borrow().val; [INFO] [stdout] 96 | queue.push_back(right); [INFO] [stdout] 97 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | if let Some(right) = node.borrow().right.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 113 ~ match node.borrow().right.clone() { Some(right) => { [INFO] [stdout] 114 | right.borrow_mut().val = sum - sub; [INFO] [stdout] 115 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | if let Some(KeyRef(mut node)) = self.container.take(&key) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | } else if self.container.len() >= self.cap { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 103 ~ match self.container.take(&key) { Some(KeyRef(mut node)) => { [INFO] [stdout] 104 | self.detach(&mut node); [INFO] [stdout] 105 ~ } _ => if self.container.len() >= self.cap { [INFO] [stdout] 106 | if let Some(removed_key) = self.remove_tail() { [INFO] [stdout] 107 | self.container.remove(&KeyRef(removed_key)); [INFO] [stdout] 108 | } [INFO] [stdout] 109 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:123:8 [INFO] [stdout] | [INFO] [stdout] 123 | if let Some(node) = self.container.get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | } 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] 123 ~ match self.container.get(key) { Some(node) => { [INFO] [stdout] 124 | let mut node = node.0; [INFO] [stdout] ... [INFO] [stdout] 127 | Some(unsafe { &node.as_ref().val }) [INFO] [stdout] 128 ~ } _ => { [INFO] [stdout] 129 | None [INFO] [stdout] 130 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | if let Some(v) = self.cache.get(&key) { [INFO] [stdout] | ^^^^^^^^^^^^^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | } 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] 150 ~ match self.cache.get(&key) { Some(v) => { [INFO] [stdout] 151 | *v [INFO] [stdout] 152 ~ } _ => { [INFO] [stdout] 153 | -1 [INFO] [stdout] 154 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | if let Some(n) = node.0[i].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^---------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | } 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] 22 ~ match node.0[i].as_ref() { Some(n) => { [INFO] [stdout] 23 | node = n; [INFO] [stdout] 24 ~ } _ => { [INFO] [stdout] 25 | return false; [INFO] [stdout] 26 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 35 | if let Some(n) = node.0[i].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^---------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | } 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] 35 ~ match node.0[i].as_ref() { Some(n) => { [INFO] [stdout] 36 | node = n; [INFO] [stdout] 37 ~ } _ => { [INFO] [stdout] 38 | return false; [INFO] [stdout] 39 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_211.rs:49:10 [INFO] [stdout] | [INFO] [stdout] 49 | if let Some(n) = trie.0[i].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^---------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_211.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | } 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] 49 ~ match trie.0[i].as_ref() { Some(n) => { [INFO] [stdout] 50 | self.recursive_match(n, &left[1..]) [INFO] [stdout] 51 ~ } _ => { [INFO] [stdout] 52 | false [INFO] [stdout] 53 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/iterator/lt_341_with_lazy.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | while let Some(it) = self.iters.last_mut() { [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/leetcode/iterator/lt_341_with_lazy.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/iterator/lt_341_with_lazy.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | while let Some(it) = self.iters.last_mut() { [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/leetcode/iterator/lt_341_with_lazy.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/linked_list/lt_148.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | while let Some(node) = head { [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/leetcode/linked_list/lt_148.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `leetcode_rust` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/leetcode/binary_tree/lt_297.rs [INFO] [stderr] * src/leetcode/binary_tree/lt_94.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/leetcode/binary_tree/lt_297.rs:133:8 [INFO] [stderr] | [INFO] [stderr] 133 | ($($e: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/leetcode/binary_tree/lt_297.rs:140:8 [INFO] [stderr] | [INFO] [stderr] 140 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [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/leetcode/binary_tree/lt_94.rs:80:8 [INFO] [stderr] | [INFO] [stderr] 80 | ($($e:expr_2021),*) => { [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut gen: Vec = (0..15) [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/leetcode/sort/lt_75.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | println!("before => {:?}", &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/leetcode/sort/lt_75.rs:65:28 [INFO] [stdout] | [INFO] [stdout] 65 | Self::sort_colors(&mut 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] = note: see issue #123742 for more information [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:66:32 [INFO] [stdout] | [INFO] [stdout] 66 | println!("after => {:?}", &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] = 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/leetcode/sort/lt_75.rs:67:31 [INFO] [stdout] | [INFO] [stdout] 67 | match Self::if_ascending(&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] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/leetcode/binary_tree/lt_297.rs:133:11 [INFO] [stdout] | [INFO] [stdout] 133 | ($($e: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] 133 | ($($e:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/leetcode/binary_tree/lt_297.rs:140:11 [INFO] [stdout] | [INFO] [stdout] 140 | ($($e:expr,)*) => {(tree![$($e),*])}; [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] 140 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error[E0658]: fragment specifier `expr_2021` is unstable [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/leetcode/binary_tree/lt_94.rs:80:11 [INFO] [stdout] | [INFO] [stdout] 80 | ($($e: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] 80 | ($($e:expr_2021),*) => { [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] --> src/leetcode/binary_tree/lt_94.rs:87:8 [INFO] [stdout] warning: the `expr` fragment specifier will accept more expressions in the 2024 edition [INFO] [stdout] --> src/leetcode/binary_tree/lt_94.rs:87:11 [INFO] [stdout] | [INFO] [stdout] 87 | ($($e:expr,)*) => {(tree![$($e),*])}; [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] 87 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [INFO] [stdout] | ~~~~~~~~~ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stderr] 87 | ($($e:expr_2021,)*) => {(tree![$($e),*])}; [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:72:10 [INFO] [stdout] | [INFO] [stdout] 72 | if let Some(v) = children[1].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^-----------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:75:7 [INFO] [stdout] | [INFO] [stdout] 75 | } [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] 72 ~ match children[1].as_ref() { Some(v) => { [INFO] [stdout] 73 | parent.borrow_mut().right = Some(Rc::new(RefCell::new(TreeNode::new(v.to_owned())))); [INFO] [stdout] 74 | queue.push_back(parent.borrow().right.as_ref().unwrap().clone()); [INFO] [stdout] 75 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] | [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:106:13 [INFO] [stdout] | [INFO] [stdout] 106 | while let Some(curr) = node.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^------------ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:110:7 [INFO] [stdout] | [INFO] [stdout] 110 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: see issue #123742 for more information [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:114:10 [INFO] [stdout] | [INFO] [stdout] 114 | if let Some(curr) = stack.pop_back().unwrap() { [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/issue/binary_tree.rs:116:7 [INFO] [stdout] | [INFO] [stdout] 116 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 114 ~ match stack.pop_back().unwrap() { Some(curr) => { [INFO] [stdout] 115 | node = curr.borrow().right.clone(); [INFO] [stdout] 116 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = help: add `#![feature(expr_fragment_specifier_2024)]` to the crate attributes to enable [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:125:10 [INFO] [stdout] | [INFO] [stdout] 125 | if let Some(curr) = node { [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/issue/binary_tree.rs:129:7 [INFO] [stdout] | [INFO] [stdout] 129 | } 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] 125 ~ match node { Some(curr) => { [INFO] [stdout] 126 | seq.push(Some(curr.borrow().val.clone())); [INFO] [stdout] 127 | recursive_func(curr.borrow().left.clone(), seq); [INFO] [stdout] 128 | recursive_func(curr.borrow().right.clone(), seq); [INFO] [stdout] 129 ~ } _ => { [INFO] [stdout] 130 | // must add `else`, or non_null node will be treated as null [INFO] [stdout] 131 | // ( after being treated as non_null normally ) [INFO] [stdout] 132 | seq.push(None); [INFO] [stdout] 133 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] = note: this compiler was built on 2024-09-17; consider upgrading it if it is out of date [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:145:10 [INFO] [stdout] | [INFO] [stdout] 145 | if let Some(node) = queue.pop_front().unwrap() { [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/issue/binary_tree.rs:149:7 [INFO] [stdout] | [INFO] [stdout] 149 | } 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] 145 ~ match queue.pop_front().unwrap() { Some(node) => { [INFO] [stdout] 146 | seq.push(Some(node.borrow().val.clone())); [INFO] [stdout] 147 | queue.push_back(node.borrow().left.clone()); [INFO] [stdout] 148 | queue.push_back(node.borrow().right.clone()); [INFO] [stdout] 149 ~ } _ => { [INFO] [stdout] 150 | seq.push(None); [INFO] [stdout] 151 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:182:12 [INFO] [stdout] | [INFO] [stdout] 182 | if let Some(right) = node.borrow().right.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:184:9 [INFO] [stdout] | [INFO] [stdout] 184 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 182 ~ match node.borrow().right.as_ref() { Some(right) => { [INFO] [stdout] 183 | queue.push_back(right.to_owned()); [INFO] [stdout] 184 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: aborting due to 4 previous errors [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:211:12 [INFO] [stdout] | [INFO] [stdout] 211 | if let Some(right) = node.borrow().right.as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/binary_tree.rs:213:9 [INFO] [stdout] | [INFO] [stdout] 213 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 211 ~ match node.borrow().right.as_ref() { Some(right) => { [INFO] [stdout] 212 | queue.push_back(right.to_owned()); [INFO] [stdout] 213 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:94:13 [INFO] [stdout] | [INFO] [stdout] 94 | while let Some(pos) = self.edges_from[any] [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] | | [INFO] [stdout] 95 | | .iter() [INFO] [stdout] 96 | | .position(|edge| &edge.node == vex) [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:99:7 [INFO] [stdout] | [INFO] [stdout] 99 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] For more information about this error, try `rustc --explain E0658`. [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 156 | if let Some(pos) = self.edges_from[start] [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] | | [INFO] [stdout] 157 | | .iter() [INFO] [stdout] 158 | | .position(|edge| &edge.node == goal && edge.cost == cost) [INFO] [stdout] | |_______________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | } 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] 156 ~ match self.edges_from[start] [INFO] [stdout] 157 | .iter() [INFO] [stdout] 158 | .position(|edge| &edge.node == goal && edge.cost == cost) [INFO] [stdout] 159 ~ { Some(pos) => { [INFO] [stdout] 160 | self.edges_from.get_mut(start).unwrap().remove(pos); [INFO] [stdout] 161 ~ } _ => { [INFO] [stdout] 162 | return Err(ErrType::NoEdgeWithCost( [INFO] [stdout] ... [INFO] [stdout] 166 | )); [INFO] [stdout] 167 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Original diagnostics will follow. [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:169:8 [INFO] [stdout] | [INFO] [stdout] 169 | if let Some(pos) = self.edges_to[goal] [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] | | [INFO] [stdout] 170 | | .iter() [INFO] [stdout] 171 | | .position(|edge| &edge.node == start && edge.cost == cost) [INFO] [stdout] | |________________________________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:174:5 [INFO] [stdout] | [INFO] [stdout] 174 | } 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] 169 ~ match self.edges_to[goal] [INFO] [stdout] 170 | .iter() [INFO] [stdout] 171 | .position(|edge| &edge.node == start && edge.cost == cost) [INFO] [stdout] 172 ~ { Some(pos) => { [INFO] [stdout] 173 | self.edges_to.get_mut(goal).unwrap().remove(pos); [INFO] [stdout] 174 ~ } _ => { [INFO] [stdout] 175 | return Err(ErrType::NoEdgeWithCost( [INFO] [stdout] ... [INFO] [stdout] 179 | )); [INFO] [stdout] 180 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:195:11 [INFO] [stdout] | [INFO] [stdout] 195 | while let Some(pos) = self.edges_from[start] [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] | | [INFO] [stdout] 196 | | .iter() [INFO] [stdout] 197 | | .position(|edge| &edge.node == goal) [INFO] [stdout] | |__________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:201:5 [INFO] [stdout] | [INFO] [stdout] 201 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:203:11 [INFO] [stdout] | [INFO] [stdout] 203 | while let Some(pos) = self.edges_to[goal] [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] | | [INFO] [stdout] 204 | | .iter() [INFO] [stdout] 205 | | .position(|edge| &edge.node == start) [INFO] [stdout] | |___________________________________________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/issue/graph.rs:208:5 [INFO] [stdout] | [INFO] [stdout] 208 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:54:12 [INFO] [stdout] | [INFO] [stdout] 54 | if let Some(right) = root.borrow().right.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:57:9 [INFO] [stdout] | [INFO] [stdout] 57 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 54 ~ match root.borrow().right.clone() { Some(right) => { [INFO] [stdout] 55 | right.borrow_mut().val = chunk[next_depth] - sub; [INFO] [stdout] 56 | second_dfs(&root.borrow().right, chunk, next_depth); [INFO] [stdout] 57 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:94:12 [INFO] [stdout] | [INFO] [stdout] 94 | if let Some(right) = node.borrow().right.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:97:9 [INFO] [stdout] | [INFO] [stdout] 97 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 94 ~ match node.borrow().right.clone() { Some(right) => { [INFO] [stdout] 95 | sum += right.borrow().val; [INFO] [stdout] 96 | queue.push_back(right); [INFO] [stdout] 97 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:113:12 [INFO] [stdout] | [INFO] [stdout] 113 | if let Some(right) = node.borrow().right.clone() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^-------------^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/binary_tree/lt_2641.rs:115:9 [INFO] [stdout] | [INFO] [stdout] 115 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 113 ~ match node.borrow().right.clone() { Some(right) => { [INFO] [stdout] 114 | right.borrow_mut().val = sum - sub; [INFO] [stdout] 115 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:103:8 [INFO] [stdout] | [INFO] [stdout] 103 | if let Some(KeyRef(mut node)) = self.container.take(&key) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------------^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:105:5 [INFO] [stdout] | [INFO] [stdout] 105 | } else if self.container.len() >= self.cap { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 103 ~ match self.container.take(&key) { Some(KeyRef(mut node)) => { [INFO] [stdout] 104 | self.detach(&mut node); [INFO] [stdout] 105 ~ } _ => if self.container.len() >= self.cap { [INFO] [stdout] 106 | if let Some(removed_key) = self.remove_tail() { [INFO] [stdout] 107 | self.container.remove(&KeyRef(removed_key)); [INFO] [stdout] 108 | } [INFO] [stdout] 109 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:123:8 [INFO] [stdout] | [INFO] [stdout] 123 | if let Some(node) = self.container.get(key) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^--------------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:128:5 [INFO] [stdout] | [INFO] [stdout] 128 | } 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] 123 ~ match self.container.get(key) { Some(node) => { [INFO] [stdout] 124 | let mut node = node.0; [INFO] [stdout] ... [INFO] [stdout] 127 | Some(unsafe { &node.as_ref().val }) [INFO] [stdout] 128 ~ } _ => { [INFO] [stdout] 129 | None [INFO] [stdout] 130 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | if let Some(v) = self.cache.get(&key) { [INFO] [stdout] | ^^^^^^^^^^^^^^----------^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_146.rs:152:5 [INFO] [stdout] | [INFO] [stdout] 152 | } 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] 150 ~ match self.cache.get(&key) { Some(v) => { [INFO] [stdout] 151 | *v [INFO] [stdout] 152 ~ } _ => { [INFO] [stdout] 153 | -1 [INFO] [stdout] 154 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:22:10 [INFO] [stdout] | [INFO] [stdout] 22 | if let Some(n) = node.0[i].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^---------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | } 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] 22 ~ match node.0[i].as_ref() { Some(n) => { [INFO] [stdout] 23 | node = n; [INFO] [stdout] 24 ~ } _ => { [INFO] [stdout] 25 | return false; [INFO] [stdout] 26 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:35:10 [INFO] [stdout] | [INFO] [stdout] 35 | if let Some(n) = node.0[i].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^---------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_208.rs:37:7 [INFO] [stdout] | [INFO] [stdout] 37 | } 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] 35 ~ match node.0[i].as_ref() { Some(n) => { [INFO] [stdout] 36 | node = n; [INFO] [stdout] 37 ~ } _ => { [INFO] [stdout] 38 | return false; [INFO] [stdout] 39 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_211.rs:49:10 [INFO] [stdout] | [INFO] [stdout] 49 | if let Some(n) = trie.0[i].as_ref() { [INFO] [stdout] | ^^^^^^^^^^^^^^---------^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/leetcode/design/lt_211.rs:51:7 [INFO] [stdout] | [INFO] [stdout] 51 | } 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] 49 ~ match trie.0[i].as_ref() { Some(n) => { [INFO] [stdout] 50 | self.recursive_match(n, &left[1..]) [INFO] [stdout] 51 ~ } _ => { [INFO] [stdout] 52 | false [INFO] [stdout] 53 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/iterator/lt_341_with_lazy.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | while let Some(it) = self.iters.last_mut() { [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/leetcode/iterator/lt_341_with_lazy.rs:35:5 [INFO] [stdout] | [INFO] [stdout] 35 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/iterator/lt_341_with_lazy.rs:39:11 [INFO] [stdout] | [INFO] [stdout] 39 | while let Some(it) = self.iters.last_mut() { [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/leetcode/iterator/lt_341_with_lazy.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/leetcode/linked_list/lt_148.rs:22:11 [INFO] [stdout] | [INFO] [stdout] 22 | while let Some(node) = head { [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/leetcode/linked_list/lt_148.rs:25:5 [INFO] [stdout] | [INFO] [stdout] 25 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 33 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.70s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Checking leetcode_rust v0.1.0 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut gen: Vec = (0..15) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 61 | let mut r#gen: Vec = (0..15) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:61:13 [INFO] [stdout] | [INFO] [stdout] 61 | let mut gen: Vec = (0..15) [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 61 | let mut r#gen: Vec = (0..15) [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:65:28 [INFO] [stdout] | [INFO] [stdout] 65 | Self::sort_colors(&mut gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:65:28 [INFO] [stdout] | [INFO] [stdout] 65 | Self::sort_colors(&mut gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:67:31 [INFO] [stdout] | [INFO] [stdout] 67 | match Self::if_ascending(&gen) { [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:67:31 [INFO] [stdout] | [INFO] [stdout] 67 | match Self::if_ascending(&gen) { [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | println!("before => {:?}", &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:66:32 [INFO] [stdout] | [INFO] [stdout] 66 | println!("after => {:?}", &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:64:33 [INFO] [stdout] | [INFO] [stdout] 64 | println!("before => {:?}", &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected expression, found reserved keyword `gen` [INFO] [stdout] --> src/leetcode/sort/lt_75.rs:66:32 [INFO] [stdout] | [INFO] [stdout] 66 | println!("after => {:?}", &gen); [INFO] [stdout] | ^^^ expected expression [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 5 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `leetcode_rust` (bin "leetcode_rust") due to 6 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 5 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `leetcode_rust` (bin "leetcode_rust" test) due to 6 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" "76cdbd0da78e3e96aab6664f1eedbf3e39077cca2ec698d12e83c55ba00a3127", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "76cdbd0da78e3e96aab6664f1eedbf3e39077cca2ec698d12e83c55ba00a3127", kill_on_drop: false }` [INFO] [stdout] 76cdbd0da78e3e96aab6664f1eedbf3e39077cca2ec698d12e83c55ba00a3127