[INFO] cloning repository https://github.com/andyyu2004/l-language [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andyyu2004/l-language" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandyyu2004%2Fl-language", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandyyu2004%2Fl-language'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 6c62c32c582ef9e7086f12d0b4fb36f37816fa62 [INFO] checking andyyu2004/l-language/6c62c32c582ef9e7086f12d0b4fb36f37816fa62 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%2Fandyyu2004%2Fl-language" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/andyyu2004/l-language 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/andyyu2004/l-language [INFO] finished tweaking git repo https://github.com/andyyu2004/l-language [INFO] tweaked toml for git repo https://github.com/andyyu2004/l-language written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] crate git repo https://github.com/andyyu2004/l-language 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-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 372a8717862fb3a1dd738473b7a80c596fa202335b34e284fbe6499f5f48a65b [INFO] running `Command { std: "docker" "start" "-a" "372a8717862fb3a1dd738473b7a80c596fa202335b34e284fbe6499f5f48a65b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "372a8717862fb3a1dd738473b7a80c596fa202335b34e284fbe6499f5f48a65b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "372a8717862fb3a1dd738473b7a80c596fa202335b34e284fbe6499f5f48a65b", kill_on_drop: false }` [INFO] [stdout] 372a8717862fb3a1dd738473b7a80c596fa202335b34e284fbe6499f5f48a65b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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] 5fb6dbe4f08a1bc0e0d500425e59cd7602e62b0227b7b3b9d9c548165908ded7 [INFO] running `Command { std: "docker" "start" "-a" "5fb6dbe4f08a1bc0e0d500425e59cd7602e62b0227b7b3b9d9c548165908ded7", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.60 [INFO] [stderr] Checking cfg-if v0.1.9 [INFO] [stderr] Compiling bitflags v1.1.0 [INFO] [stderr] Compiling nix v0.14.1 [INFO] [stderr] Compiling log v0.4.7 [INFO] [stderr] Compiling memchr v2.2.1 [INFO] [stderr] Checking utf8parse v0.1.1 [INFO] [stderr] Checking either v1.5.2 [INFO] [stderr] Checking unicode-segmentation v1.3.0 [INFO] [stderr] Checking unicode-width v0.1.5 [INFO] [stderr] Checking itertools v0.8.0 [INFO] [stderr] Checking dirs-sys v0.3.3 [INFO] [stderr] Checking dirs v2.0.1 [INFO] [stderr] Checking rustyline v5.0.0 [INFO] [stderr] Checking l v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexing/lexer.rs:116:20 [INFO] [stdout] | [INFO] [stdout] 116 | '0'...'9' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexing/lexer.rs:148:20 [INFO] [stdout] | [INFO] [stdout] 148 | 'A'...'Z' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::lexing::Token` [INFO] [stdout] --> src/interpreting/objects/l_struct.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lexing::Token; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::errors::LError` [INFO] [stdout] --> src/interpreting/objects/l_lambda.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::errors::LError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/types/l_types.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/types/l_types.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/types/l_types.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::main` [INFO] [stdout] --> src/types/l_types.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::main; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `vec_to_type_map` [INFO] [stdout] --> src/types/l_types.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::utility::{vec_to_type_map, vec_to_vec_map, vec_contains_key, vec_replace_key, vec_update_value}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `vec_to_type_map` [INFO] [stdout] --> src/types/type_checker.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::utility::{vec_to_type_map, vec_to_vec_map}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::l_types::LType::TVar` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::types::l_types::LType::TVar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexing/lexer.rs:116:20 [INFO] [stdout] | [INFO] [stdout] 116 | '0'...'9' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/lexing/lexer.rs:148:20 [INFO] [stdout] | [INFO] [stdout] 148 | 'A'...'Z' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::lexing::Token` [INFO] [stdout] --> src/interpreting/objects/l_struct.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use crate::lexing::Token; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::errors::LError` [INFO] [stdout] --> src/interpreting/objects/l_lambda.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::errors::LError; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::rc::Rc` [INFO] [stdout] --> src/types/l_types.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use std::rc::Rc; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::RefCell` [INFO] [stdout] --> src/types/l_types.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | use std::cell::RefCell; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::ops::Deref` [INFO] [stdout] --> src/types/l_types.rs:13:5 [INFO] [stdout] | [INFO] [stdout] 13 | use std::ops::Deref; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::main` [INFO] [stdout] --> src/types/l_types.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 14 | use crate::main; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `vec_to_type_map` [INFO] [stdout] --> src/types/l_types.rs:15:22 [INFO] [stdout] | [INFO] [stdout] 15 | use crate::utility::{vec_to_type_map, vec_to_vec_map, vec_contains_key, vec_replace_key, vec_update_value}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `vec_to_type_map` [INFO] [stdout] --> src/types/type_checker.rs:18:22 [INFO] [stdout] | [INFO] [stdout] 18 | use crate::utility::{vec_to_type_map, vec_to_vec_map}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::types::l_types::LType::TVar` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:16:5 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::types::l_types::LType::TVar; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LInvocable` [INFO] [stdout] --> src/interpreting/interpreter.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::interpreting::objects::{LObject, LInvocable, Variant, Function, Struct, Tuple, Lambda}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LInvocable` [INFO] [stdout] --> src/interpreting/interpreter.rs:19:45 [INFO] [stdout] | [INFO] [stdout] 19 | use crate::interpreting::objects::{LObject, LInvocable, Variant, Function, Struct, Tuple, Lambda}; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/utility/mod.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | for (k, v) in xs { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/utility/mod.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | for (k, v) in xs { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/utility/mod.rs:29:13 [INFO] [stdout] | [INFO] [stdout] 29 | for (k, v) in xs { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `v` [INFO] [stdout] --> src/utility/mod.rs:36:13 [INFO] [stdout] | [INFO] [stdout] 36 | for (k, v) in xs { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_v` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/interpreting/objects/l_function.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | FnCurried { name, param, ret, .. } => { [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/interpreting/objects/l_function.rs:28:25 [INFO] [stdout] | [INFO] [stdout] 28 | FnCurried { name, param, ret, .. } => { [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/types/l_types.rs:187:23 [INFO] [stdout] | [INFO] [stdout] 187 | (TVar(_), t) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/types/l_types.rs:188:14 [INFO] [stdout] | [INFO] [stdout] 188 | (t, TVar(_)) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/types/l_types.rs:385:35 [INFO] [stdout] | [INFO] [stdout] 385 | let xvalues = xs.iter().map(|(x,y)| y).collect_vec(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/types/l_types.rs:386:35 [INFO] [stdout] | [INFO] [stdout] 386 | let yvalues = ys.iter().map(|(x,y)| y).collect_vec(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/types/l_types.rs:187:23 [INFO] [stdout] | [INFO] [stdout] 187 | (TVar(_), t) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `t` [INFO] [stdout] --> src/types/l_types.rs:188:14 [INFO] [stdout] | [INFO] [stdout] 188 | (t, TVar(_)) => true, [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_t` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/types/type_checker.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | _ => panic!("Unimplented in type_check_stmt") [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/types/type_checker.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 93 | LStmt(ref mut expr) | ExprStmt(ref mut expr) | PrintStmt(ref mut expr) => self.type_of_expr(expr), [INFO] [stdout] | ---------------------------------------------------------------------- matches some of the same values [INFO] [stdout] 94 | FnStmt { name, token, param, ret_type, body, tparams } => [INFO] [stdout] | ------------------------------------------------------ matches some of the same values [INFO] [stdout] 95 | self.type_of_fn(name, token, tparams, param,ret_type, body), [INFO] [stdout] 96 | FnCurried { name, tparams, param, ret, token } => [INFO] [stdout] | ---------------------------------------------- matches some of the same values [INFO] [stdout] 97 | self.type_of_curried_fn(name, token, tparams, param, ret), [INFO] [stdout] 98 | VarStmt { name, ltype, init} => self.type_of_var_decl(name, ltype, init.as_mut()), [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 105 | _ => panic!("Unimplented in type_check_stmt") [INFO] [stdout] | ^ ...and 6 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/types/type_checker.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | for (k, v) in variants { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/types/l_types.rs:385:35 [INFO] [stdout] | [INFO] [stdout] 385 | let xvalues = xs.iter().map(|(x,y)| y).collect_vec(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/types/l_types.rs:386:35 [INFO] [stdout] | [INFO] [stdout] 386 | let yvalues = ys.iter().map(|(x,y)| y).collect_vec(); [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `name` [INFO] [stdout] --> src/types/type_checker.rs:701:22 [INFO] [stdout] | [INFO] [stdout] 701 | FnStmt { name, param, ret_type, .. } => match param { [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/static_analysis/static_analyser.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | x => unimplemented!("Unimplemented in analyse stmt {}", x) [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/static_analysis/static_analyser.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 52 | LStmt(expr) | ExprStmt(expr) | PrintStmt(expr) => self.analyse_expr(expr), [INFO] [stdout] | ---------------------------------------------- matches some of the same values [INFO] [stdout] 53 | VarStmt { name , init, .. } => self.analyse_var_decl(name, init), [INFO] [stdout] | --------------------------- matches some of the same values [INFO] [stdout] 54 | LetStmt{ token, pattern , init, ..} => self.analyse_let_binding(token, pattern, init), [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 55 | FnStmt { name, param, body, tparams, token, ..} => [INFO] [stdout] | ----------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 67 | x => unimplemented!("Unimplemented in analyse stmt {}", x) [INFO] [stdout] | ^ ...and 6 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/types/type_checker.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 105 | _ => panic!("Unimplented in type_check_stmt") [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/types/type_checker.rs:105:13 [INFO] [stdout] | [INFO] [stdout] 93 | LStmt(ref mut expr) | ExprStmt(ref mut expr) | PrintStmt(ref mut expr) => self.type_of_expr(expr), [INFO] [stdout] | ---------------------------------------------------------------------- matches some of the same values [INFO] [stdout] 94 | FnStmt { name, token, param, ret_type, body, tparams } => [INFO] [stdout] | ------------------------------------------------------ matches some of the same values [INFO] [stdout] 95 | self.type_of_fn(name, token, tparams, param,ret_type, body), [INFO] [stdout] 96 | FnCurried { name, tparams, param, ret, token } => [INFO] [stdout] | ---------------------------------------------- matches some of the same values [INFO] [stdout] 97 | self.type_of_curried_fn(name, token, tparams, param, ret), [INFO] [stdout] 98 | VarStmt { name, ltype, init} => self.type_of_var_decl(name, ltype, init.as_mut()), [INFO] [stdout] | ---------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 105 | _ => panic!("Unimplented in type_check_stmt") [INFO] [stdout] | ^ ...and 6 other patterns collectively make this unreachable [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:250:35 [INFO] [stdout] | [INFO] [stdout] 250 | fn analyse_fn_decl(&mut self, token: &Token, name: &Option, param: &Option>, body: &Vec, tparams: &Vec src/static_analysis/static_analyser.rs:250:120 [INFO] [stdout] | [INFO] [stdout] 250 | ...>, body: &Vec, tparams: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:273:43 [INFO] [stdout] | [INFO] [stdout] 273 | fn analyse_curried_fn_decl(&mut self, token: &Token, name: &Option, param: &Pair, ret: &Stmt, tparams: &Vec) ->... [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tparams` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:273:114 [INFO] [stdout] | [INFO] [stdout] 273 | ...: &Pair, ret: &Stmt, tparams: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `k` [INFO] [stdout] --> src/types/type_checker.rs:128:14 [INFO] [stdout] | [INFO] [stdout] 128 | for (k, v) in variants { [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_k` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vec_to_type_map` is never used [INFO] [stdout] --> src/utility/mod.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn vec_to_type_map(vec: Vec) -> HashMap> where T : Hash + Eq { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `function` and `lambda` are never used [INFO] [stdout] --> src/interpreting/objects/l_object.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl LObject { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn function(&self) -> &Function { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn lambda(&self) -> &Lambda { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PRecord` is never constructed [INFO] [stdout] --> src/interpreting/pattern_matching/pattern.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum LPattern { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 9 | // POr(Box, Box), [INFO] [stdout] 10 | PRecord, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pair` is never constructed [INFO] [stdout] --> src/internal/data_structures/pair.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Pair { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pair` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [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/parsing/parser.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 177 | let condition = self.parse_expression()?; [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 178 | self.expect(TokenType::LBrace)?; [INFO] [stdout] 179 | let body = self.parse_block()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 180 | Ok(WhileStmt { token, condition, body }) [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] = 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/parsing/parser.rs:188:12 [INFO] [stdout] | [INFO] [stdout] 186 | let ltype = self.parse_type()?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 187 | self.expect(TokenType::Semicolon)?; [INFO] [stdout] 188 | Ok(TypeAlias { name, ltype }) [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/parsing/parser.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 195 | let mut init = None::; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 196 | let mut ltype = None::; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 204 | Ok(VarStmt { name, ltype, init }) [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/parsing/parser.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 210 | let pattern = self.parse_pattern()?; [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 211 | let ltype = if self.match1(TokenType::Colon) { [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 215 | let init = self.parse_expression()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 216 | self.expect(TokenType::Semicolon)?; [INFO] [stdout] 217 | Ok(LetStmt { token, pattern, ltype, init }) [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] | 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/parsing/parser.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 275 | let ltype = self.parse_type()?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 276 | Ok(Pair::new(name, ltype)) [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/parsing/parser.rs:328:12 [INFO] [stdout] | [INFO] [stdout] 323 | let value = if self.match1(TokenType::Semicolon) { None } else { [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 324 | let expr = Some(self.parse_expression()?); [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 328 | Ok(ReturnStmt { token, value }) [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/parsing/parser.rs:335:12 [INFO] [stdout] | [INFO] [stdout] 334 | let fields = self.parse_record(&Parser::parse_type)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 335 | Ok(StructDecl { name, fields }) [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/parsing/parser.rs:352:12 [INFO] [stdout] | [INFO] [stdout] 342 | let mut variants = HashMap::new(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 352 | Ok(DataDecl { name, variants }) [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/parsing/parser.rs:476:73 [INFO] [stdout] | [INFO] [stdout] 476 | let acc = ps.into_iter().rev().fold1( |acc, x| PConstructor(Box::new(x), Box::new(acc))); [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] = 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/parsing/parser.rs:476:86 [INFO] [stdout] | [INFO] [stdout] 476 | let acc = ps.into_iter().rev().fold1( |acc, x| PConstructor(Box::new(x), Box::new(acc))); [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] = 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/parsing/parser.rs:526:12 [INFO] [stdout] | [INFO] [stdout] 519 | let pattern = self.parse_pattern()?; [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 522 | let scrutinee = self.parse_expression()?; [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 523 | self.expect(TokenType::LBrace)?; [INFO] [stdout] 524 | let left = self.parse_block()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 525 | let right = self.parse_optional_else()?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 526 | Ok(EIfLet { [INFO] [stdout] | ____________^ [INFO] [stdout] 527 | | token, [INFO] [stdout] 528 | | pattern, [INFO] [stdout] 529 | | scrutinee: Box::new(scrutinee), [INFO] [stdout] 530 | | left, [INFO] [stdout] 531 | | right: Box::new(right) [INFO] [stdout] 532 | | }) [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] | | 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/parsing/parser.rs:803:12 [INFO] [stdout] | [INFO] [stdout] 802 | let value = f(self)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 803 | Ok(Pair::new(name, value)) [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/interpreting/env.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(outer: Option>>>) -> Env { [INFO] [stdout] | ---------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 16 | Env { vars: HashMap::new() , outer } [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/interpreting/interpreter.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 98 | fn var_stmt(&mut self, name: Token, expr: Option) -> Result<(), InterpreterError> { [INFO] [stdout] | ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 99 | // Can't figure out how to use map on this :( [INFO] [stdout] 100 | let value = if let Some(x) = expr { [INFO] [stdout] | ----- - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 105 | Ok(self.env.borrow_mut().define(name.lexeme, value)) [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] = 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/interpreting/interpreter.rs:115:36 [INFO] [stdout] | [INFO] [stdout] 115 | .for_each(|(k, v)| self.env.borrow_mut().define(k, Some(self.wrap(v)))); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/interpreting/interpreter.rs:115:68 [INFO] [stdout] | [INFO] [stdout] 115 | .for_each(|(k, v)| self.env.borrow_mut().define(k, Some(self.wrap(v)))); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/interpreting/interpreter.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 184 | fn execute_return_stmt(&mut self, value: Option) -> Result<(), InterpreterError> { [INFO] [stdout] | ------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 185 | let expr = if let Some(val) = value { self.evaluate(&val)? } else { Rc::new(RefCell::new(LUnit)) }; [INFO] [stdout] | ---- --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 186 | Err(Return(expr)) [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] = 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/interpreting/interpreter.rs:192:17 [INFO] [stdout] | [INFO] [stdout] 191 | fn wrap(&self, x: T) -> Rc> { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 192 | Rc::new(RefCell::new(x)) [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/interpreting/interpreter.rs:275:12 [INFO] [stdout] | [INFO] [stdout] 274 | let lambda = Lambda::new(param.clone(), body.clone(), Rc::clone(&self.env)); [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 275 | Ok(self.wrap(LLambda(lambda))) [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/interpreting/interpreter.rs:341:12 [INFO] [stdout] | [INFO] [stdout] 337 | let mut map = HashMap::new(); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 341 | Ok(Rc::new(RefCell::new(LRecord(map)))) [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/interpreting/interpreter.rs:389:17 [INFO] [stdout] | [INFO] [stdout] 382 | let obj = match literal.ttype { [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 389 | Rc::new(RefCell::new(obj)) [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/interpreting/objects/l_object.rs:139:76 [INFO] [stdout] | [INFO] [stdout] 139 | LList(xs) => write!(f, "[{}]", format_tuple(&xs.iter().map(|x| x.borrow().clone()).collect_vec())), [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/interpreting/objects/l_tuple.rs:28:31 [INFO] [stdout] | [INFO] [stdout] 28 | .all(|(x, p)| x.borrow().is_match(p)) [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] warning: unused variable: `name` [INFO] [stdout] --> src/types/type_checker.rs:701:22 [INFO] [stdout] | [INFO] [stdout] 701 | FnStmt { name, param, ret_type, .. } => match param { [INFO] [stdout] | ^^^^- [INFO] [stdout] | | [INFO] [stdout] | help: try removing the field [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/interpreting/objects/l_tuple.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | .flat_map(|(x,p)| x.borrow_mut().bindings(p)) [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/interpreting/objects/l_tuple.rs:45:70 [INFO] [stdout] | [INFO] [stdout] 45 | write!(f, "({})", format_tuple(&self.elements.iter().map(|x| x.borrow().clone()).collect_vec())) [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/interpreting/objects/l_lambda.rs:35:68 [INFO] [stdout] | [INFO] [stdout] 26 | fn invoke(&self, arg: Rc>, interpreter: &mut Interpreter) -> Result>, InterpreterError> { [INFO] [stdout] | ------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 30 | let mut env = Env::new(Some(Rc::clone(&self.closure))); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 35 | interpreter.execute_block(&vec![LStmt(self.body.clone())], Rc::new(RefCell::new(env))) [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/interpreting/objects/l_lambda.rs:34:46 [INFO] [stdout] | [INFO] [stdout] 34 | .for_each(|(k, v)| env.define(k, Some(Rc::new(RefCell::new(v))))); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/types/l_types.rs:231:71 [INFO] [stdout] | [INFO] [stdout] 231 | TRecord(xs) => TRecord(xs.iter().map(|(k, v)| (k.clone(), v.substitute_type_parameters(tparam, with))).collect()), [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/types/l_types.rs:232:74 [INFO] [stdout] | [INFO] [stdout] 232 | TVariant(xs) => TVariant((xs.iter().map(|(k, v)| (k.clone(), v.substitute_type_parameters(tparam, with)))).collect()), [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/types/type_checker.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 31 | let mut types = Env::new(None); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 38 | env: Rc::new(RefCell::new(Env::new(None))), [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/types/type_checker.rs:39:31 [INFO] [stdout] | [INFO] [stdout] 31 | let mut types = Env::new(None); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 39 | curr_fn_ret_type: None, [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/types/type_checker.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 110 | let tdata = TData(typename.name.clone(), vec_to_vec_map(typename.tparams.to_vec())); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 113 | let mut variants = variants.clone(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 120 | Ok(TVariant(variants)) [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/types/type_checker.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 213 | let tfirst = self.type_of_expr(&mut xs[0])?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 220 | Ok(TList(Box::new(tfirst))) [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] = 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/types/type_checker.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 225 | let mut map = HashMap::new(); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 229 | Ok(TRecord(map)) [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/types/type_checker.rs:259:32 [INFO] [stdout] | [INFO] [stdout] 259 | .for_each(|(k, v)| self.env.borrow_mut().define(k, v)); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/types/type_checker.rs:280:51 [INFO] [stdout] | [INFO] [stdout] 280 | bindings.into_iter().for_each(|(k,v)| self.env.borrow_mut().define(k, v)); [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/types/type_checker.rs:560:12 [INFO] [stdout] | [INFO] [stdout] 559 | let v = xs.iter_mut().map(|x| self.type_of_expr(x)).collect::, LTypeError>>()?; [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 560 | Ok(TTuple(v)) [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] = 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/types/type_checker.rs:578:12 [INFO] [stdout] | [INFO] [stdout] 573 | let tcond = self.type_of_expr(condition)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 578 | Ok(TUnit) [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] = 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/types/type_checker.rs:683:13 [INFO] [stdout] | [INFO] [stdout] 682 | let defined_type = TArrow(Box::new(param.value.clone()), Box::new(self.type_of_function_by_definition(ret)?)); [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 683 | self.env.borrow_mut().define(name.clone(), defined_type) [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] = 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/types/type_checker.rs:726:17 [INFO] [stdout] | [INFO] [stdout] 725 | fn wrap(&self, x: T) -> Rc> { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 726 | Rc::new(RefCell::new(x)) [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] warning: unreachable pattern [INFO] [stdout] --> src/static_analysis/static_analyser.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 67 | x => unimplemented!("Unimplemented in analyse stmt {}", x) [INFO] [stdout] | ^ no value can reach this [INFO] [stdout] | [INFO] [stdout] note: multiple earlier patterns match some of the same values [INFO] [stdout] --> src/static_analysis/static_analyser.rs:67:13 [INFO] [stdout] | [INFO] [stdout] 52 | LStmt(expr) | ExprStmt(expr) | PrintStmt(expr) => self.analyse_expr(expr), [INFO] [stdout] | ---------------------------------------------- matches some of the same values [INFO] [stdout] 53 | VarStmt { name , init, .. } => self.analyse_var_decl(name, init), [INFO] [stdout] | --------------------------- matches some of the same values [INFO] [stdout] 54 | LetStmt{ token, pattern , init, ..} => self.analyse_let_binding(token, pattern, init), [INFO] [stdout] | ----------------------------------- matches some of the same values [INFO] [stdout] 55 | FnStmt { name, param, body, tparams, token, ..} => [INFO] [stdout] | ----------------------------------------------- matches some of the same values [INFO] [stdout] ... [INFO] [stdout] 67 | x => unimplemented!("Unimplemented in analyse stmt {}", x) [INFO] [stdout] | ^ ...and 6 other patterns collectively make this unreachable [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 40 previous errors; 31 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `l` (bin "l") due to 41 previous errors; 31 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:250:35 [INFO] [stdout] | [INFO] [stdout] 250 | fn analyse_fn_decl(&mut self, token: &Token, name: &Option, param: &Option>, body: &Vec, tparams: &Vec src/static_analysis/static_analyser.rs:250:120 [INFO] [stdout] | [INFO] [stdout] 250 | ...>, body: &Vec, tparams: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `token` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:273:43 [INFO] [stdout] | [INFO] [stdout] 273 | fn analyse_curried_fn_decl(&mut self, token: &Token, name: &Option, param: &Pair, ret: &Stmt, tparams: &Vec) ->... [INFO] [stdout] | ^^^^^ help: if this is intentional, prefix it with an underscore: `_token` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tparams` [INFO] [stdout] --> src/static_analysis/static_analyser.rs:273:114 [INFO] [stdout] | [INFO] [stdout] 273 | ...: &Pair, ret: &Stmt, tparams: &Vec) -> Result { [INFO] [stdout] | ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tparams` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `vec_to_type_map` is never used [INFO] [stdout] --> src/utility/mod.rs:14:8 [INFO] [stdout] | [INFO] [stdout] 14 | pub fn vec_to_type_map(vec: Vec) -> HashMap> where T : Hash + Eq { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `function` and `lambda` are never used [INFO] [stdout] --> src/interpreting/objects/l_object.rs:57:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl LObject { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn function(&self) -> &Function { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 87 | pub fn lambda(&self) -> &Lambda { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant `PRecord` is never constructed [INFO] [stdout] --> src/interpreting/pattern_matching/pattern.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 8 | pub enum LPattern { [INFO] [stdout] | -------- variant in this enum [INFO] [stdout] 9 | // POr(Box, Box), [INFO] [stdout] 10 | PRecord, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LPattern` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Pair` is never constructed [INFO] [stdout] --> src/internal/data_structures/pair.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | pub struct Pair { [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `Pair` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [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/parsing/parser.rs:180:12 [INFO] [stdout] | [INFO] [stdout] 177 | let condition = self.parse_expression()?; [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 178 | self.expect(TokenType::LBrace)?; [INFO] [stdout] 179 | let body = self.parse_block()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 180 | Ok(WhileStmt { token, condition, body }) [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] = 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/parsing/parser.rs:188:12 [INFO] [stdout] | [INFO] [stdout] 186 | let ltype = self.parse_type()?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 187 | self.expect(TokenType::Semicolon)?; [INFO] [stdout] 188 | Ok(TypeAlias { name, ltype }) [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/parsing/parser.rs:204:12 [INFO] [stdout] | [INFO] [stdout] 195 | let mut init = None::; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 196 | let mut ltype = None::; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 204 | Ok(VarStmt { name, ltype, init }) [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/parsing/parser.rs:217:12 [INFO] [stdout] | [INFO] [stdout] 210 | let pattern = self.parse_pattern()?; [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 211 | let ltype = if self.match1(TokenType::Colon) { [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 215 | let init = self.parse_expression()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 216 | self.expect(TokenType::Semicolon)?; [INFO] [stdout] 217 | Ok(LetStmt { token, pattern, ltype, init }) [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] | 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/parsing/parser.rs:276:12 [INFO] [stdout] | [INFO] [stdout] 275 | let ltype = self.parse_type()?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 276 | Ok(Pair::new(name, ltype)) [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/parsing/parser.rs:328:12 [INFO] [stdout] | [INFO] [stdout] 323 | let value = if self.match1(TokenType::Semicolon) { None } else { [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 324 | let expr = Some(self.parse_expression()?); [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 328 | Ok(ReturnStmt { token, value }) [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/parsing/parser.rs:335:12 [INFO] [stdout] | [INFO] [stdout] 334 | let fields = self.parse_record(&Parser::parse_type)?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 335 | Ok(StructDecl { name, fields }) [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/parsing/parser.rs:352:12 [INFO] [stdout] | [INFO] [stdout] 342 | let mut variants = HashMap::new(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 352 | Ok(DataDecl { name, variants }) [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/parsing/parser.rs:476:73 [INFO] [stdout] | [INFO] [stdout] 476 | let acc = ps.into_iter().rev().fold1( |acc, x| PConstructor(Box::new(x), Box::new(acc))); [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] = 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/parsing/parser.rs:476:86 [INFO] [stdout] | [INFO] [stdout] 476 | let acc = ps.into_iter().rev().fold1( |acc, x| PConstructor(Box::new(x), Box::new(acc))); [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] = 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/parsing/parser.rs:526:12 [INFO] [stdout] | [INFO] [stdout] 519 | let pattern = self.parse_pattern()?; [INFO] [stdout] | ------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 522 | let scrutinee = self.parse_expression()?; [INFO] [stdout] | --------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 523 | self.expect(TokenType::LBrace)?; [INFO] [stdout] 524 | let left = self.parse_block()?; [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 525 | let right = self.parse_optional_else()?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 526 | Ok(EIfLet { [INFO] [stdout] | ____________^ [INFO] [stdout] 527 | | token, [INFO] [stdout] 528 | | pattern, [INFO] [stdout] 529 | | scrutinee: Box::new(scrutinee), [INFO] [stdout] 530 | | left, [INFO] [stdout] 531 | | right: Box::new(right) [INFO] [stdout] 532 | | }) [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] | | 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/parsing/parser.rs:803:12 [INFO] [stdout] | [INFO] [stdout] 802 | let value = f(self)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 803 | Ok(Pair::new(name, value)) [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/interpreting/env.rs:16:21 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn new(outer: Option>>>) -> Env { [INFO] [stdout] | ---------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 16 | Env { vars: HashMap::new() , outer } [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/interpreting/interpreter.rs:105:12 [INFO] [stdout] | [INFO] [stdout] 98 | fn var_stmt(&mut self, name: Token, expr: Option) -> Result<(), InterpreterError> { [INFO] [stdout] | ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 99 | // Can't figure out how to use map on this :( [INFO] [stdout] 100 | let value = if let Some(x) = expr { [INFO] [stdout] | ----- - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 105 | Ok(self.env.borrow_mut().define(name.lexeme, value)) [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] = 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/interpreting/interpreter.rs:115:36 [INFO] [stdout] | [INFO] [stdout] 115 | .for_each(|(k, v)| self.env.borrow_mut().define(k, Some(self.wrap(v)))); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/interpreting/interpreter.rs:115:68 [INFO] [stdout] | [INFO] [stdout] 115 | .for_each(|(k, v)| self.env.borrow_mut().define(k, Some(self.wrap(v)))); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/interpreting/interpreter.rs:186:13 [INFO] [stdout] | [INFO] [stdout] 184 | fn execute_return_stmt(&mut self, value: Option) -> Result<(), InterpreterError> { [INFO] [stdout] | ------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 185 | let expr = if let Some(val) = value { self.evaluate(&val)? } else { Rc::new(RefCell::new(LUnit)) }; [INFO] [stdout] | ---- --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 186 | Err(Return(expr)) [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] = 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/interpreting/interpreter.rs:192:17 [INFO] [stdout] | [INFO] [stdout] 191 | fn wrap(&self, x: T) -> Rc> { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 192 | Rc::new(RefCell::new(x)) [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/interpreting/interpreter.rs:275:12 [INFO] [stdout] | [INFO] [stdout] 274 | let lambda = Lambda::new(param.clone(), body.clone(), Rc::clone(&self.env)); [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 275 | Ok(self.wrap(LLambda(lambda))) [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/interpreting/interpreter.rs:341:12 [INFO] [stdout] | [INFO] [stdout] 337 | let mut map = HashMap::new(); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 341 | Ok(Rc::new(RefCell::new(LRecord(map)))) [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/interpreting/interpreter.rs:389:17 [INFO] [stdout] | [INFO] [stdout] 382 | let obj = match literal.ttype { [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 389 | Rc::new(RefCell::new(obj)) [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/interpreting/objects/l_object.rs:139:76 [INFO] [stdout] | [INFO] [stdout] 139 | LList(xs) => write!(f, "[{}]", format_tuple(&xs.iter().map(|x| x.borrow().clone()).collect_vec())), [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/interpreting/objects/l_tuple.rs:28:31 [INFO] [stdout] | [INFO] [stdout] 28 | .all(|(x, p)| x.borrow().is_match(p)) [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/interpreting/objects/l_tuple.rs:36:35 [INFO] [stdout] | [INFO] [stdout] 36 | .flat_map(|(x,p)| x.borrow_mut().bindings(p)) [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/interpreting/objects/l_tuple.rs:45:70 [INFO] [stdout] | [INFO] [stdout] 45 | write!(f, "({})", format_tuple(&self.elements.iter().map(|x| x.borrow().clone()).collect_vec())) [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/interpreting/objects/l_lambda.rs:35:68 [INFO] [stdout] | [INFO] [stdout] 26 | fn invoke(&self, arg: Rc>, interpreter: &mut Interpreter) -> Result>, InterpreterError> { [INFO] [stdout] | ------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 30 | let mut env = Env::new(Some(Rc::clone(&self.closure))); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 35 | interpreter.execute_block(&vec![LStmt(self.body.clone())], Rc::new(RefCell::new(env))) [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/interpreting/objects/l_lambda.rs:34:46 [INFO] [stdout] | [INFO] [stdout] 34 | .for_each(|(k, v)| env.define(k, Some(Rc::new(RefCell::new(v))))); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/types/l_types.rs:231:71 [INFO] [stdout] | [INFO] [stdout] 231 | TRecord(xs) => TRecord(xs.iter().map(|(k, v)| (k.clone(), v.substitute_type_parameters(tparam, with))).collect()), [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/types/l_types.rs:232:74 [INFO] [stdout] | [INFO] [stdout] 232 | TVariant(xs) => TVariant((xs.iter().map(|(k, v)| (k.clone(), v.substitute_type_parameters(tparam, with)))).collect()), [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/types/type_checker.rs:38:18 [INFO] [stdout] | [INFO] [stdout] 31 | let mut types = Env::new(None); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 38 | env: Rc::new(RefCell::new(Env::new(None))), [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/types/type_checker.rs:39:31 [INFO] [stdout] | [INFO] [stdout] 31 | let mut types = Env::new(None); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 39 | curr_fn_ret_type: None, [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/types/type_checker.rs:120:12 [INFO] [stdout] | [INFO] [stdout] 110 | let tdata = TData(typename.name.clone(), vec_to_vec_map(typename.tparams.to_vec())); [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 113 | let mut variants = variants.clone(); [INFO] [stdout] | -------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 120 | Ok(TVariant(variants)) [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/types/type_checker.rs:220:12 [INFO] [stdout] | [INFO] [stdout] 213 | let tfirst = self.type_of_expr(&mut xs[0])?; [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 220 | Ok(TList(Box::new(tfirst))) [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] = 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/types/type_checker.rs:229:12 [INFO] [stdout] | [INFO] [stdout] 225 | let mut map = HashMap::new(); [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 229 | Ok(TRecord(map)) [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/types/type_checker.rs:259:32 [INFO] [stdout] | [INFO] [stdout] 259 | .for_each(|(k, v)| self.env.borrow_mut().define(k, v)); [INFO] [stdout] | ------ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/types/type_checker.rs:280:51 [INFO] [stdout] | [INFO] [stdout] 280 | bindings.into_iter().for_each(|(k,v)| self.env.borrow_mut().define(k, v)); [INFO] [stdout] | ----- ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [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/types/type_checker.rs:560:12 [INFO] [stdout] | [INFO] [stdout] 559 | let v = xs.iter_mut().map(|x| self.type_of_expr(x)).collect::, LTypeError>>()?; [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 560 | Ok(TTuple(v)) [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] = 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/types/type_checker.rs:578:12 [INFO] [stdout] | [INFO] [stdout] 573 | let tcond = self.type_of_expr(condition)?; [INFO] [stdout] | ----- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 578 | Ok(TUnit) [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] = 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/types/type_checker.rs:683:13 [INFO] [stdout] | [INFO] [stdout] 682 | let defined_type = TArrow(Box::new(param.value.clone()), Box::new(self.type_of_function_by_definition(ret)?)); [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 683 | self.env.borrow_mut().define(name.clone(), defined_type) [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] = 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/types/type_checker.rs:726:17 [INFO] [stdout] | [INFO] [stdout] 725 | fn wrap(&self, x: T) -> Rc> { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 726 | Rc::new(RefCell::new(x)) [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 40 previous errors; 31 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `l` (bin "l" test) due to 41 previous errors; 31 warnings emitted [INFO] running `Command { std: "docker" "inspect" "5fb6dbe4f08a1bc0e0d500425e59cd7602e62b0227b7b3b9d9c548165908ded7", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5fb6dbe4f08a1bc0e0d500425e59cd7602e62b0227b7b3b9d9c548165908ded7", kill_on_drop: false }` [INFO] [stdout] 5fb6dbe4f08a1bc0e0d500425e59cd7602e62b0227b7b3b9d9c548165908ded7