[INFO] cloning repository https://github.com/anozaki/monkey-lang-in-rust [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/anozaki/monkey-lang-in-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fanozaki%2Fmonkey-lang-in-rust", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fanozaki%2Fmonkey-lang-in-rust'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] c5f6407c487df08c6e716ff228d0d247ae77352b [INFO] checking anozaki/monkey-lang-in-rust/c5f6407c487df08c6e716ff228d0d247ae77352b against try#4d98531622e1718ae0bc3c7a1ab9cd8938428452+rustflags=-Dtail_expr_drop_order for pr-129604 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fanozaki%2Fmonkey-lang-in-rust" "/workspace/builds/worker-2-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/anozaki/monkey-lang-in-rust on toolchain 4d98531622e1718ae0bc3c7a1ab9cd8938428452 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/anozaki/monkey-lang-in-rust [INFO] finished tweaking git repo https://github.com/anozaki/monkey-lang-in-rust [INFO] tweaked toml for git repo https://github.com/anozaki/monkey-lang-in-rust written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/anozaki/monkey-lang-in-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" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 681e31a5d93b431c62f64e26fb56a64fdd3c1d2d06d20f76505c442e558b34f8 [INFO] running `Command { std: "docker" "start" "-a" "681e31a5d93b431c62f64e26fb56a64fdd3c1d2d06d20f76505c442e558b34f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "681e31a5d93b431c62f64e26fb56a64fdd3c1d2d06d20f76505c442e558b34f8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "681e31a5d93b431c62f64e26fb56a64fdd3c1d2d06d20f76505c442e558b34f8", kill_on_drop: false }` [INFO] [stdout] 681e31a5d93b431c62f64e26fb56a64fdd3c1d2d06d20f76505c442e558b34f8 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-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:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] be5a28f52606980972fedf035efa27ddfd6dfde1b6136f95c0f66df179d30d10 [INFO] running `Command { std: "docker" "start" "-a" "be5a28f52606980972fedf035efa27ddfd6dfde1b6136f95c0f66df179d30d10", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.69 [INFO] [stderr] Compiling libc v0.2.150 [INFO] [stderr] Compiling rustix v0.38.21 [INFO] [stderr] Checking linux-raw-sys v0.4.11 [INFO] [stderr] Compiling thiserror v1.0.50 [INFO] [stderr] Checking bitflags v2.4.1 [INFO] [stderr] Checking shell-words v1.1.0 [INFO] [stderr] Checking zeroize v1.6.0 [INFO] [stderr] Checking similar v2.3.0 [INFO] [stderr] Checking clap_builder v4.4.7 [INFO] [stderr] Compiling quote v1.0.33 [INFO] [stderr] Compiling syn v2.0.39 [INFO] [stderr] Checking console v0.15.7 [INFO] [stderr] Checking insta v1.34.0 [INFO] [stderr] Checking tempfile v3.8.1 [INFO] [stderr] Compiling thiserror-impl v1.0.50 [INFO] [stderr] Compiling clap_derive v4.4.7 [INFO] [stderr] Checking dialoguer v0.11.0 [INFO] [stderr] Checking clap v4.4.7 [INFO] [stderr] Checking an-monkey-lang v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/parser.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 21 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 26 | / StatementNode::Let( [INFO] [stdout] 27 | | identifier, expression, [INFO] [stdout] 28 | | ) [INFO] [stdout] | | ^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/parser.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 39 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 47 | let consequence = self.parse_program()?; [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 51 | let alternative = if self.current().token_type == TokenType::Else { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 57 | Ok(result) => { [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 68 | / StatementNode::If { [INFO] [stdout] 69 | | condition: expression, [INFO] [stdout] 70 | | consequence, [INFO] [stdout] 71 | | alternative, [INFO] [stdout] 72 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____________these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/parser.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 79 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 83 | Ok(StatementNode::Return(expression)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 26 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 30 | Ok(StatementNode::Expression { expression }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 73 | let result = ExpressionNode::Identifier(Identifier(self.current().literal.clone())); [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 74 | Ok(Box::new(result)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 77 | fn parse_infix_node(&mut self, left: Box) -> Result> { [INFO] [stdout] | ------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 78 | Ok(match self.current().token_type { [INFO] [stdout] | ____________^ [INFO] [stdout] 79 | | TokenType::Plus => self.parse_infix(left, Operator::Add)?, [INFO] [stdout] 80 | | TokenType::Minus => self.parse_infix(left, Operator::Sub)?, [INFO] [stdout] 81 | | TokenType::Slash => self.parse_infix(left, Operator::Div)?, [INFO] [stdout] ... | [INFO] [stdout] 89 | | token @ _ => return Err(Error::InvalidTokenError(Rc::clone(self.current()))) [INFO] [stdout] 90 | | }) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 98 | let expression = self.parse_expression_node(OrderOfOps::Prefix)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 99 | [INFO] [stdout] 100 | Ok(Box::new(ExpressionNode::Prefix { operator, expression })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 103 | fn parse_infix(&mut self, left: Box, operator: Operator) -> Result> { [INFO] [stdout] | ------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 109 | let right = self.parse_expression_node(precedence)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 110 | [INFO] [stdout] 111 | Ok(Box::new(ExpressionNode::Infix { operator, left, right })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 136 | let body = self.parse_program()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 142 | Ok(Box::new(ExpressionNode::Function { params, body })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:171:12 [INFO] [stdout] | [INFO] [stdout] 164 | fn parse_call(&mut self, function: Box, _: Operator) -> Result> { [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 168 | let params = self.parse_expression_list(TokenType::RightParen)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 171 | Ok(Box::new(ExpressionNode::Call { function, params })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 235 | let params = self.parse_expression_list(TokenType::RightBracket)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 236 | [INFO] [stdout] 237 | Ok(Box::new(ExpressionNode::ArrayLiteral { params })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/mod.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 84 | let result = self.evaluate_block(program, env)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 85 | Ok(match result { [INFO] [stdout] | ____________^ [INFO] [stdout] 86 | | Object::Return(val) => *val, [INFO] [stdout] 87 | | val @ _ => val, [INFO] [stdout] 88 | | }) [INFO] [stdout] | | ^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/mod.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 122 | let result = self.expression(condition, env)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 125 | / if self.is_truthy(&result) { [INFO] [stdout] 126 | | self.evaluate_block(&consequence, env)? [INFO] [stdout] 127 | | } else if let Some(program) = alternative { [INFO] [stdout] 128 | | self.evaluate_block(&program, env)? [INFO] [stdout] 129 | | } else { [INFO] [stdout] 130 | | NULL [INFO] [stdout] 131 | | } [INFO] [stdout] | | ^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn str_len(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 10 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 11 | | Object::String(str) => Object::Int(str.len() as isize), [INFO] [stdout] 12 | | Object::Array(arr) => Object::Int(arr.len() as isize), [INFO] [stdout] 13 | | _ => Object::Error(format!("len(): Invalid argument: {:?}", obj)), [INFO] [stdout] 14 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn first(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 22 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 23 | | Object::Array(arr) => match arr.first() { [INFO] [stdout] 24 | | None => NULL, [INFO] [stdout] 25 | | Some(val) => val.clone() [INFO] [stdout] 26 | | }, [INFO] [stdout] 27 | | _ => Object::Error(format!("first(): Invalid argument: {:?}", obj)), [INFO] [stdout] 28 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn last(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 36 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 37 | | Object::Array(arr) => match arr.last() { [INFO] [stdout] 38 | | None => NULL, [INFO] [stdout] 39 | | Some(val) => val.clone() [INFO] [stdout] 40 | | }, [INFO] [stdout] 41 | | _ => Object::Error(format!("last(): Invalid argument: {:?}", obj)), [INFO] [stdout] 42 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn push(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 53 | Ok(match target { [INFO] [stdout] | ________^ [INFO] [stdout] 54 | | Object::Array(arr) => { [INFO] [stdout] 55 | | let mut result = arr.clone(); [INFO] [stdout] 56 | | result.push(obj.clone()); [INFO] [stdout] ... | [INFO] [stdout] 60 | | _ => Object::Error(format!("push(): Invalid argument: {:?}", obj)), [INFO] [stdout] 61 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn rest(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 69 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 70 | | Object::Array(arr) => { [INFO] [stdout] 71 | | if let Some((last, elements)) = arr.split_last() { [INFO] [stdout] 72 | | Object::Array(Vec::from(elements)) [INFO] [stdout] ... | [INFO] [stdout] 77 | | _ => Object::Error(format!("rest(): Invalid argument: {:?}", obj)), [INFO] [stdout] 78 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn put(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 90 | Ok(match target { [INFO] [stdout] | ________^ [INFO] [stdout] 91 | | Object::Hash(map) => { [INFO] [stdout] 92 | | let mut result = map.clone(); [INFO] [stdout] 93 | | result.insert(key.clone(), val.clone()); [INFO] [stdout] ... | [INFO] [stdout] 97 | | _ => Object::Error(format!("put(): Invalid argument")), [INFO] [stdout] 98 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `an-monkey-lang` (bin "an-monkey-lang") due to 20 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/parser.rs:26:13 [INFO] [stdout] | [INFO] [stdout] 21 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 26 | / StatementNode::Let( [INFO] [stdout] 27 | | identifier, expression, [INFO] [stdout] 28 | | ) [INFO] [stdout] | | ^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/parser.rs:68:13 [INFO] [stdout] | [INFO] [stdout] 39 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 47 | let consequence = self.parse_program()?; [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 51 | let alternative = if self.current().token_type == TokenType::Else { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 57 | Ok(result) => { [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 68 | / StatementNode::If { [INFO] [stdout] 69 | | condition: expression, [INFO] [stdout] 70 | | consequence, [INFO] [stdout] 71 | | alternative, [INFO] [stdout] 72 | | } [INFO] [stdout] | | ^ [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____________these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/parser.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 79 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 83 | Ok(StatementNode::Return(expression)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 26 | let expression = self.parse_expression_node(OrderOfOps::Lowest)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 30 | Ok(StatementNode::Expression { expression }) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 73 | let result = ExpressionNode::Identifier(Identifier(self.current().literal.clone())); [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 74 | Ok(Box::new(result)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:78:12 [INFO] [stdout] | [INFO] [stdout] 77 | fn parse_infix_node(&mut self, left: Box) -> Result> { [INFO] [stdout] | ------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 78 | Ok(match self.current().token_type { [INFO] [stdout] | ____________^ [INFO] [stdout] 79 | | TokenType::Plus => self.parse_infix(left, Operator::Add)?, [INFO] [stdout] 80 | | TokenType::Minus => self.parse_infix(left, Operator::Sub)?, [INFO] [stdout] 81 | | TokenType::Slash => self.parse_infix(left, Operator::Div)?, [INFO] [stdout] ... | [INFO] [stdout] 89 | | token @ _ => return Err(Error::InvalidTokenError(Rc::clone(self.current()))) [INFO] [stdout] 90 | | }) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:100:12 [INFO] [stdout] | [INFO] [stdout] 98 | let expression = self.parse_expression_node(OrderOfOps::Prefix)?; [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 99 | [INFO] [stdout] 100 | Ok(Box::new(ExpressionNode::Prefix { operator, expression })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:111:12 [INFO] [stdout] | [INFO] [stdout] 103 | fn parse_infix(&mut self, left: Box, operator: Operator) -> Result> { [INFO] [stdout] | ------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 109 | let right = self.parse_expression_node(precedence)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 110 | [INFO] [stdout] 111 | Ok(Box::new(ExpressionNode::Infix { operator, left, right })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:142:12 [INFO] [stdout] | [INFO] [stdout] 136 | let body = self.parse_program()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 142 | Ok(Box::new(ExpressionNode::Function { params, body })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:171:12 [INFO] [stdout] | [INFO] [stdout] 164 | fn parse_call(&mut self, function: Box, _: Operator) -> Result> { [INFO] [stdout] | ----------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 168 | let params = self.parse_expression_list(TokenType::RightParen)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 171 | Ok(Box::new(ExpressionNode::Call { function, params })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/parser/expression.rs:237:12 [INFO] [stdout] | [INFO] [stdout] 235 | let params = self.parse_expression_list(TokenType::RightBracket)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 236 | [INFO] [stdout] 237 | Ok(Box::new(ExpressionNode::ArrayLiteral { params })) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/mod.rs:85:12 [INFO] [stdout] | [INFO] [stdout] 84 | let result = self.evaluate_block(program, env)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 85 | Ok(match result { [INFO] [stdout] | ____________^ [INFO] [stdout] 86 | | Object::Return(val) => *val, [INFO] [stdout] 87 | | val @ _ => val, [INFO] [stdout] 88 | | }) [INFO] [stdout] | | ^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/mod.rs:125:13 [INFO] [stdout] | [INFO] [stdout] 122 | let result = self.expression(condition, env)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 125 | / if self.is_truthy(&result) { [INFO] [stdout] 126 | | self.evaluate_block(&consequence, env)? [INFO] [stdout] 127 | | } else if let Some(program) = alternative { [INFO] [stdout] 128 | | self.evaluate_block(&program, env)? [INFO] [stdout] 129 | | } else { [INFO] [stdout] 130 | | NULL [INFO] [stdout] 131 | | } [INFO] [stdout] | | ^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____________| [INFO] [stdout] | [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn str_len(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 10 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 11 | | Object::String(str) => Object::Int(str.len() as isize), [INFO] [stdout] 12 | | Object::Array(arr) => Object::Int(arr.len() as isize), [INFO] [stdout] 13 | | _ => Object::Error(format!("len(): Invalid argument: {:?}", obj)), [INFO] [stdout] 14 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:22:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn first(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 22 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 23 | | Object::Array(arr) => match arr.first() { [INFO] [stdout] 24 | | None => NULL, [INFO] [stdout] 25 | | Some(val) => val.clone() [INFO] [stdout] 26 | | }, [INFO] [stdout] 27 | | _ => Object::Error(format!("first(): Invalid argument: {:?}", obj)), [INFO] [stdout] 28 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn last(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 36 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 37 | | Object::Array(arr) => match arr.last() { [INFO] [stdout] 38 | | None => NULL, [INFO] [stdout] 39 | | Some(val) => val.clone() [INFO] [stdout] 40 | | }, [INFO] [stdout] 41 | | _ => Object::Error(format!("last(): Invalid argument: {:?}", obj)), [INFO] [stdout] 42 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn push(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 53 | Ok(match target { [INFO] [stdout] | ________^ [INFO] [stdout] 54 | | Object::Array(arr) => { [INFO] [stdout] 55 | | let mut result = arr.clone(); [INFO] [stdout] 56 | | result.push(obj.clone()); [INFO] [stdout] ... | [INFO] [stdout] 60 | | _ => Object::Error(format!("push(): Invalid argument: {:?}", obj)), [INFO] [stdout] 61 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:69:8 [INFO] [stdout] | [INFO] [stdout] 64 | pub fn rest(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 69 | Ok(match obj { [INFO] [stdout] | ________^ [INFO] [stdout] 70 | | Object::Array(arr) => { [INFO] [stdout] 71 | | if let Some((last, elements)) = arr.split_last() { [INFO] [stdout] 72 | | Object::Array(Vec::from(elements)) [INFO] [stdout] ... | [INFO] [stdout] 77 | | _ => Object::Error(format!("rest(): Invalid argument: {:?}", obj)), [INFO] [stdout] 78 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/monkey/interpreter/builtin.rs:90:8 [INFO] [stdout] | [INFO] [stdout] 81 | pub fn put(objs: Vec) -> Result { [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 90 | Ok(match target { [INFO] [stdout] | ________^ [INFO] [stdout] 91 | | Object::Hash(map) => { [INFO] [stdout] 92 | | let mut result = map.clone(); [INFO] [stdout] 93 | | result.insert(key.clone(), val.clone()); [INFO] [stdout] ... | [INFO] [stdout] 97 | | _ => Object::Error(format!("put(): Invalid argument")), [INFO] [stdout] 98 | | }) [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 19 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `an-monkey-lang` (bin "an-monkey-lang" test) due to 20 previous errors [INFO] running `Command { std: "docker" "inspect" "be5a28f52606980972fedf035efa27ddfd6dfde1b6136f95c0f66df179d30d10", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be5a28f52606980972fedf035efa27ddfd6dfde1b6136f95c0f66df179d30d10", kill_on_drop: false }` [INFO] [stdout] be5a28f52606980972fedf035efa27ddfd6dfde1b6136f95c0f66df179d30d10