[INFO] cloning repository https://github.com/yu-i9/mini_python [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/yu-i9/mini_python" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyu-i9%2Fmini_python", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyu-i9%2Fmini_python'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] d62b9040f8427057a20d18340a27bdf2dfc8c22e [INFO] building yu-i9/mini_python against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fyu-i9%2Fmini_python" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/yu-i9/mini_python on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/yu-i9/mini_python [INFO] finished tweaking git repo https://github.com/yu-i9/mini_python [INFO] tweaked toml for git repo https://github.com/yu-i9/mini_python written to /workspace/builds/worker-3-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/yu-i9/mini_python 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] a009093ab8b2a79389df6899307bc4a38cacef418b470f7273ee04dac085dc9f [INFO] running `Command { std: "docker" "start" "-a" "a009093ab8b2a79389df6899307bc4a38cacef418b470f7273ee04dac085dc9f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "a009093ab8b2a79389df6899307bc4a38cacef418b470f7273ee04dac085dc9f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "a009093ab8b2a79389df6899307bc4a38cacef418b470f7273ee04dac085dc9f", kill_on_drop: false }` [INFO] [stdout] a009093ab8b2a79389df6899307bc4a38cacef418b470f7273ee04dac085dc9f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c73823bae049a2b06e3bf35ea410b5a1b5ed3bb52aee9664505be2574dd101a1 [INFO] running `Command { std: "docker" "start" "-a" "c73823bae049a2b06e3bf35ea410b5a1b5ed3bb52aee9664505be2574dd101a1", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024 [INFO] [stderr] Compiling mini_python v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/core/lexer.rs:63:13 [INFO] [stdout] | [INFO] [stdout] 63 | '0' ... '9' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) 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/core/lexer.rs:70:19 [INFO] [stdout] | [INFO] [stdout] 70 | '_' | 'a' ... 'z' | 'A' ... 'Z' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/core/lexer.rs:70:33 [INFO] [stdout] | [INFO] [stdout] 70 | '_' | 'a' ... 'z' | 'A' ... 'Z' => true, [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/core/lexer.rs:179:21 [INFO] [stdout] | [INFO] [stdout] 179 | try!(lexer.calc_indent(indent_level)); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> src/core/lexer.rs:193:17 [INFO] [stdout] | [INFO] [stdout] 193 | '0' ... '9' => { [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/core/lexer.rs:201:17 [INFO] [stdout] | [INFO] [stdout] 201 | try!(lexer.consume('\'').ok_or(lexer.error("\' expected".to_string()))); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `opcode::*` [INFO] [stdout] --> src/core/utils.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use opcode::*; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the feature `iterator_find_map` has been stable since 1.30.0 and no longer requires an attribute to enable [INFO] [stdout] --> src/core/mod.rs:2:12 [INFO] [stdout] | [INFO] [stdout] 2 | #![feature(iterator_find_map)] [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(stable_features)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `ch` is never read [INFO] [stdout] --> src/core/lexer.rs:186:17 [INFO] [stdout] | [INFO] [stdout] 186 | let mut ch = '0'; [INFO] [stdout] | ^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] = note: `#[warn(unused_assignments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `meta` [INFO] [stdout] --> src/core/object/typeobj.rs:225:17 [INFO] [stdout] | [INFO] [stdout] 225 | pub fn type_new(meta: Rc, args: &Vec>) -> PyRes> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_meta` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `mro` is never read [INFO] [stdout] --> src/core/object/typeobj.rs:472:13 [INFO] [stdout] | [INFO] [stdout] 472 | let mut mro: Vec> = vec![]; [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `args` [INFO] [stdout] --> src/core/object/typeobj.rs:556:34 [INFO] [stdout] | [INFO] [stdout] 556 | fn object_new(typ: Rc, args: &Vec>) -> PyRes> { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_args` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/core/eval.rs:275:25 [INFO] [stdout] | [INFO] [stdout] 275 | let mut dictobj = PyObject::pydict_new(); [INFO] [stdout] | ----^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/object/generic.rs:81:11 [INFO] [stdout] | [INFO] [stdout] 80 | let v_type = v.ob_type(); [INFO] [stdout] | ------ [INFO] [stdout] | | [INFO] [stdout] | `v_type` calls a custom destructor [INFO] [stdout] | `v_type` will be dropped later as of Edition 2024 [INFO] [stdout] 81 | match v_type.pytype_tp_mro() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 91 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v_type` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/object/generic.rs:103:19 [INFO] [stdout] | [INFO] [stdout] 100 | let mut vals = vec![Rc::clone(&method.ob_self)]; [INFO] [stdout] | -------- [INFO] [stdout] | | [INFO] [stdout] | `vals` calls a custom destructor [INFO] [stdout] | `vals` will be dropped later as of Edition 2024 [INFO] [stdout] 101 | let mut args = args.clone(); [INFO] [stdout] | -------- [INFO] [stdout] | | [INFO] [stdout] | `args` calls a custom destructor [INFO] [stdout] | `args` will be dropped later as of Edition 2024 [INFO] [stdout] 102 | vals.append(&mut args); [INFO] [stdout] 103 | eval(&method.codeobj.pycode_code(), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] 104 | Rc::new(Env::new_child(&method.env, &method.codeobj.pycode_argnames(), &vals))) [INFO] [stdout] 105 | }, [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `vals` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `args` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/object/typeobj.rs:259:45 [INFO] [stdout] | [INFO] [stdout] 258 | let base = mro.pylist_getitem(i).unwrap(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `base` calls a custom destructor [INFO] [stdout] | `base` will be dropped later as of Edition 2024 [INFO] [stdout] 259 | if let Some(ref dict) = base.pytype_tp_dict() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 266 | }; [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `base` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/object/typeobj.rs:476:32 [INFO] [stdout] | [INFO] [stdout] 476 | if let Some(mro) = bases.pylist_getitem(i).expect("Never fails").pytype_tp_mro() { [INFO] [stdout] | --- ---------------------------------------------^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] | `mro` calls a custom destructor [INFO] [stdout] | `mro` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 479 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#2` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `mro` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/object/typeobj.rs:509:28 [INFO] [stdout] | [INFO] [stdout] 490 | let mut typ = obj.pytype_typeobj_borrow_mut(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `typ` calls a custom destructor [INFO] [stdout] | `typ` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 509 | if let Some(fun) = get_wrapped_varargfun(Rc::clone(&dictobj), "__new__")? { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | up until Edition 2021 `#1` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | up until Edition 2021 `#2` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 512 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#2` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `typ` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1804:1 [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/eval.rs:233:35 [INFO] [stdout] | [INFO] [stdout] 77 | let mut retval = Err(()); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | `retval` calls a custom destructor [INFO] [stdout] | `retval` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 83 | self.pop(); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | `#1` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 104 | let right = self.pop(); [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `right` calls a custom destructor [INFO] [stdout] | `right` will be dropped later as of Edition 2024 [INFO] [stdout] 105 | let left = self.pop(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `left` calls a custom destructor [INFO] [stdout] | `left` will be dropped later as of Edition 2024 [INFO] [stdout] 106 | let ob_type = left.ob_type(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `ob_type` calls a custom destructor [INFO] [stdout] | `ob_type` will be dropped later as of Edition 2024 [INFO] [stdout] 107 | let typ = ob_type.pytype_typeobj_borrow(); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | `typ` calls a custom destructor [INFO] [stdout] | `typ` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 110 | let res = fun(left, right); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | `res` calls a custom destructor [INFO] [stdout] | `res` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 126 | let right = self.pop(); [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | `#2` will be dropped later as of Edition 2024 [INFO] [stdout] 127 | let left = self.pop(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#3` [INFO] [stdout] | `#3` will be dropped later as of Edition 2024 [INFO] [stdout] 128 | let ob_type = left.ob_type(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#4` [INFO] [stdout] | `#4` will be dropped later as of Edition 2024 [INFO] [stdout] 129 | let typ = ob_type.pytype_typeobj_borrow(); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#5` [INFO] [stdout] | `#5` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 132 | let res = fun(left, right); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#6` [INFO] [stdout] | `#6` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 148 | let right = self.pop(); [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#7` [INFO] [stdout] | `#7` will be dropped later as of Edition 2024 [INFO] [stdout] 149 | let left = self.pop(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#8` [INFO] [stdout] | `#8` will be dropped later as of Edition 2024 [INFO] [stdout] 150 | let ob_type = left.ob_type(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#9` [INFO] [stdout] | `#9` will be dropped later as of Edition 2024 [INFO] [stdout] 151 | let typ = ob_type.pytype_typeobj_borrow(); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#10` [INFO] [stdout] | `#10` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 154 | let res = fun(left, right); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#11` [INFO] [stdout] | `#11` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 170 | self.pop(); // qualname [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#12` [INFO] [stdout] | `#12` will be dropped later as of Edition 2024 [INFO] [stdout] 171 | let codeobj = self.pop(); [INFO] [stdout] 172 | self.push(PyObject::pyfun_new(&Rc::clone(&env), codeobj)); [INFO] [stdout] | --------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#13` [INFO] [stdout] | `#13` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 177 | let args = self.pop_as_vec(argcnt); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `args` calls a custom destructor [INFO] [stdout] | `args` will be dropped later as of Edition 2024 [INFO] [stdout] 178 | let fun = self.pop(); [INFO] [stdout] 179 | let res = call_func(fun, &args); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#14` [INFO] [stdout] | `#14` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 195 | let res = pyobj_get_attr(v, attr); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#15` [INFO] [stdout] | `#15` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 217 | let v2 = self.pop(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `v2` calls a custom destructor [INFO] [stdout] | `v2` will be dropped later as of Edition 2024 [INFO] [stdout] 218 | let v1 = self.pop(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `v1` calls a custom destructor [INFO] [stdout] | `v1` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 223 | let res = v1.pylist_getitem(index.expect("Never fails") as usize); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#16` [INFO] [stdout] | `#16` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 231 | let res = v1.pydict_lookup(v2); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#17` [INFO] [stdout] | `#17` will be dropped later as of Edition 2024 [INFO] [stdout] 232 | if res.is_ok() { [INFO] [stdout] 233 | match res.expect("Never fails") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#32` [INFO] [stdout] | up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 245 | } [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] ... [INFO] [stdout] 257 | let v1 = self.pop(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#18` [INFO] [stdout] | `#18` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 269 | let vs = self.pop_as_vec(len); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `vs` calls a custom destructor [INFO] [stdout] | `vs` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 276 | let vs = self.pop_as_vec(len * 2); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#19` [INFO] [stdout] | `#19` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 334 | let v = self.pop(); [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | `v` calls a custom destructor [INFO] [stdout] | `v` will be dropped later as of Edition 2024 [INFO] [stdout] 335 | match v.ob_type().pytype_tp_iter() { [INFO] [stdout] | ---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#20` [INFO] [stdout] | `#20` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#21` [INFO] [stdout] | `#21` will be dropped later as of Edition 2024 [INFO] [stdout] 336 | Some(ref iterfun) => { [INFO] [stdout] 337 | let iter = iterfun(Rc::clone(&v)); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `iter` calls a custom destructor [INFO] [stdout] | `iter` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 354 | let it = self.top(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `it` calls a custom destructor [INFO] [stdout] | `it` will be dropped later as of Edition 2024 [INFO] [stdout] 355 | let nextfun = it.ob_type().pytype_tp_iternext().expect("Never fails"); [INFO] [stdout] | ------- ------------ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#22` [INFO] [stdout] | | `#22` will be dropped later as of Edition 2024 [INFO] [stdout] | `nextfun` calls a custom destructor [INFO] [stdout] | `nextfun` will be dropped later as of Edition 2024 [INFO] [stdout] 356 | let next = nextfun(Rc::clone(&it)); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `next` calls a custom destructor [INFO] [stdout] | `next` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 368 | self.pop(); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#23` [INFO] [stdout] | `#23` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 392 | let mut exc = self.pop(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `exc` calls a custom destructor [INFO] [stdout] | `exc` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 395 | let res = type_call(exc, &vec![]); [INFO] [stdout] | --- ------ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#25` [INFO] [stdout] | | `#25` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#24` [INFO] [stdout] | `#24` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 418 | let codeobj = self.pop(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `codeobj` calls a custom destructor [INFO] [stdout] | `codeobj` will be dropped later as of Edition 2024 [INFO] [stdout] 419 | let bases = PyObject::pylist_from_vec(&self.pop_as_vec(nbases)); [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#26` [INFO] [stdout] | `#26` will be dropped later as of Edition 2024 [INFO] [stdout] 420 | [INFO] [stdout] 421 | let new_env = Rc::new(Env::new_child(&env, &vec![], &vec![])); [INFO] [stdout] | ------- ------ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#27` [INFO] [stdout] | | `#27` will be dropped later as of Edition 2024 [INFO] [stdout] | `new_env` calls a custom destructor [INFO] [stdout] | `new_env` will be dropped later as of Edition 2024 [INFO] [stdout] 422 | eval(&codeobj.pycode_code(), Rc::clone(&new_env)); [INFO] [stdout] | ------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#29` [INFO] [stdout] | | `#29` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#28` [INFO] [stdout] | `#28` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 425 | let meta = PY_TYPE_TYPE.with(|tp| Rc::clone(tp)); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `meta` calls a custom destructor [INFO] [stdout] | `meta` will be dropped later as of Edition 2024 [INFO] [stdout] 426 | let cls = meta.pytype_tp_call().unwrap()(Rc::clone(&meta), &vec![nameobj, bases, dictobj]); [INFO] [stdout] | --- ------------------------------ ----------------------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | this value will be stored in a temporary; let us call it `#31` [INFO] [stdout] | | | `#31` will be dropped later as of Edition 2024 [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#30` [INFO] [stdout] | | `#30` will be dropped later as of Edition 2024 [INFO] [stdout] | `cls` calls a custom destructor [INFO] [stdout] | `cls` will be dropped later as of Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#32` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `retval` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `right` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `left` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `ob_type` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `typ` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: `res` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#2` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#3` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#4` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `#5` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: `#6` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#7` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#8` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#9` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `#10` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: `#11` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#12` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#13` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `args` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#14` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#15` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v2` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#16` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#17` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#18` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `vs` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#19` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#20` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#21` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `iter` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `it` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `nextfun` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#22` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `next` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#23` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `exc` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#24` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#25` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `codeobj` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#26` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `new_env` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#27` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#28` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#29` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `meta` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `cls` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#30` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#31` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: relative drop order changing in Rust 2024 [INFO] [stdout] --> src/core/eval.rs:358:31 [INFO] [stdout] | [INFO] [stdout] 77 | let mut retval = Err(()); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | `retval` calls a custom destructor [INFO] [stdout] | `retval` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 83 | self.pop(); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#1` [INFO] [stdout] | `#1` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 104 | let right = self.pop(); [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | `right` calls a custom destructor [INFO] [stdout] | `right` will be dropped later as of Edition 2024 [INFO] [stdout] 105 | let left = self.pop(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `left` calls a custom destructor [INFO] [stdout] | `left` will be dropped later as of Edition 2024 [INFO] [stdout] 106 | let ob_type = left.ob_type(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `ob_type` calls a custom destructor [INFO] [stdout] | `ob_type` will be dropped later as of Edition 2024 [INFO] [stdout] 107 | let typ = ob_type.pytype_typeobj_borrow(); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | `typ` calls a custom destructor [INFO] [stdout] | `typ` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 110 | let res = fun(left, right); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | `res` calls a custom destructor [INFO] [stdout] | `res` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 126 | let right = self.pop(); [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#2` [INFO] [stdout] | `#2` will be dropped later as of Edition 2024 [INFO] [stdout] 127 | let left = self.pop(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#3` [INFO] [stdout] | `#3` will be dropped later as of Edition 2024 [INFO] [stdout] 128 | let ob_type = left.ob_type(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#4` [INFO] [stdout] | `#4` will be dropped later as of Edition 2024 [INFO] [stdout] 129 | let typ = ob_type.pytype_typeobj_borrow(); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#5` [INFO] [stdout] | `#5` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 132 | let res = fun(left, right); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#6` [INFO] [stdout] | `#6` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 148 | let right = self.pop(); [INFO] [stdout] | ----- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#7` [INFO] [stdout] | `#7` will be dropped later as of Edition 2024 [INFO] [stdout] 149 | let left = self.pop(); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#8` [INFO] [stdout] | `#8` will be dropped later as of Edition 2024 [INFO] [stdout] 150 | let ob_type = left.ob_type(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#9` [INFO] [stdout] | `#9` will be dropped later as of Edition 2024 [INFO] [stdout] 151 | let typ = ob_type.pytype_typeobj_borrow(); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#10` [INFO] [stdout] | `#10` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 154 | let res = fun(left, right); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#11` [INFO] [stdout] | `#11` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 170 | self.pop(); // qualname [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#12` [INFO] [stdout] | `#12` will be dropped later as of Edition 2024 [INFO] [stdout] 171 | let codeobj = self.pop(); [INFO] [stdout] 172 | self.push(PyObject::pyfun_new(&Rc::clone(&env), codeobj)); [INFO] [stdout] | --------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#13` [INFO] [stdout] | `#13` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 177 | let args = self.pop_as_vec(argcnt); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `args` calls a custom destructor [INFO] [stdout] | `args` will be dropped later as of Edition 2024 [INFO] [stdout] 178 | let fun = self.pop(); [INFO] [stdout] 179 | let res = call_func(fun, &args); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#14` [INFO] [stdout] | `#14` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 195 | let res = pyobj_get_attr(v, attr); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#15` [INFO] [stdout] | `#15` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 217 | let v2 = self.pop(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `v2` calls a custom destructor [INFO] [stdout] | `v2` will be dropped later as of Edition 2024 [INFO] [stdout] 218 | let v1 = self.pop(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `v1` calls a custom destructor [INFO] [stdout] | `v1` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 223 | let res = v1.pylist_getitem(index.expect("Never fails") as usize); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#16` [INFO] [stdout] | `#16` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 231 | let res = v1.pydict_lookup(v2); [INFO] [stdout] | --- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#17` [INFO] [stdout] | `#17` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 257 | let v1 = self.pop(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#18` [INFO] [stdout] | `#18` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 269 | let vs = self.pop_as_vec(len); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `vs` calls a custom destructor [INFO] [stdout] | `vs` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 276 | let vs = self.pop_as_vec(len * 2); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#19` [INFO] [stdout] | `#19` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 334 | let v = self.pop(); [INFO] [stdout] | - [INFO] [stdout] | | [INFO] [stdout] | `v` calls a custom destructor [INFO] [stdout] | `v` will be dropped later as of Edition 2024 [INFO] [stdout] 335 | match v.ob_type().pytype_tp_iter() { [INFO] [stdout] | ---------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#20` [INFO] [stdout] | `#20` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#21` [INFO] [stdout] | `#21` will be dropped later as of Edition 2024 [INFO] [stdout] 336 | Some(ref iterfun) => { [INFO] [stdout] 337 | let iter = iterfun(Rc::clone(&v)); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `iter` calls a custom destructor [INFO] [stdout] | `iter` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 354 | let it = self.top(); [INFO] [stdout] | -- [INFO] [stdout] | | [INFO] [stdout] | `it` calls a custom destructor [INFO] [stdout] | `it` will be dropped later as of Edition 2024 [INFO] [stdout] 355 | let nextfun = it.ob_type().pytype_tp_iternext().expect("Never fails"); [INFO] [stdout] | ------- ------------ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#22` [INFO] [stdout] | | `#22` will be dropped later as of Edition 2024 [INFO] [stdout] | `nextfun` calls a custom destructor [INFO] [stdout] | `nextfun` will be dropped later as of Edition 2024 [INFO] [stdout] 356 | let next = nextfun(Rc::clone(&it)); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `next` calls a custom destructor [INFO] [stdout] | `next` will be dropped later as of Edition 2024 [INFO] [stdout] 357 | if next.is_ok() { [INFO] [stdout] 358 | match next.expect("Never fails") { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#32` [INFO] [stdout] | up until Edition 2021 `#32` is dropped last but will be dropped earlier in Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 368 | self.pop(); [INFO] [stdout] | ---------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#23` [INFO] [stdout] | `#23` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 377 | } else { [INFO] [stdout] | - now the temporary value is dropped here, before the local variables in the block or statement [INFO] [stdout] ... [INFO] [stdout] 392 | let mut exc = self.pop(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `exc` calls a custom destructor [INFO] [stdout] | `exc` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 395 | let res = type_call(exc, &vec![]); [INFO] [stdout] | --- ------ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#25` [INFO] [stdout] | | `#25` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#24` [INFO] [stdout] | `#24` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 418 | let codeobj = self.pop(); [INFO] [stdout] | ------- [INFO] [stdout] | | [INFO] [stdout] | `codeobj` calls a custom destructor [INFO] [stdout] | `codeobj` will be dropped later as of Edition 2024 [INFO] [stdout] 419 | let bases = PyObject::pylist_from_vec(&self.pop_as_vec(nbases)); [INFO] [stdout] | ----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value will be stored in a temporary; let us call it `#26` [INFO] [stdout] | `#26` will be dropped later as of Edition 2024 [INFO] [stdout] 420 | [INFO] [stdout] 421 | let new_env = Rc::new(Env::new_child(&env, &vec![], &vec![])); [INFO] [stdout] | ------- ------ [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#27` [INFO] [stdout] | | `#27` will be dropped later as of Edition 2024 [INFO] [stdout] | `new_env` calls a custom destructor [INFO] [stdout] | `new_env` will be dropped later as of Edition 2024 [INFO] [stdout] 422 | eval(&codeobj.pycode_code(), Rc::clone(&new_env)); [INFO] [stdout] | ------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#29` [INFO] [stdout] | | `#29` will be dropped later as of Edition 2024 [INFO] [stdout] | this value will be stored in a temporary; let us call it `#28` [INFO] [stdout] | `#28` will be dropped later as of Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 425 | let meta = PY_TYPE_TYPE.with(|tp| Rc::clone(tp)); [INFO] [stdout] | ---- [INFO] [stdout] | | [INFO] [stdout] | `meta` calls a custom destructor [INFO] [stdout] | `meta` will be dropped later as of Edition 2024 [INFO] [stdout] 426 | let cls = meta.pytype_tp_call().unwrap()(Rc::clone(&meta), &vec![nameobj, bases, dictobj]); [INFO] [stdout] | --- ------------------------------ ----------------------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | this value will be stored in a temporary; let us call it `#31` [INFO] [stdout] | | | `#31` will be dropped later as of Edition 2024 [INFO] [stdout] | | this value will be stored in a temporary; let us call it `#30` [INFO] [stdout] | | `#30` will be dropped later as of Edition 2024 [INFO] [stdout] | `cls` calls a custom destructor [INFO] [stdout] | `cls` will be dropped later as of Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#32` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `retval` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `right` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `left` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `ob_type` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `typ` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: `res` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#2` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#3` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#4` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `#5` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: `#6` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#7` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#8` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#9` may invoke a custom destructor because it contains a trait object [INFO] [stdout] note: `#10` invokes this custom destructor [INFO] [stdout] --> /rustc/11663cd3bfefef7d34e8f0892c250bf698049392/library/core/src/cell.rs:1434:1 [INFO] [stdout] = note: `#11` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#12` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#13` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `args` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#14` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#15` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v2` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v1` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#16` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#17` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#18` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `vs` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#19` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `v` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#20` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#21` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `iter` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `it` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `nextfun` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#22` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `next` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#23` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `exc` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#24` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#25` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `codeobj` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#26` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `new_env` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#27` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#28` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#29` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `meta` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `cls` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#30` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: `#31` may invoke a custom destructor because it contains a trait object [INFO] [stdout] = note: most of the time, changing drop order is harmless; inspect the `impl Drop`s for side effects like releasing locks or sending messages [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `args` is never read [INFO] [stdout] --> src/core/object/excobj.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 105 | pub struct PyExcObject { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 106 | args: Rc, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/env.rs:47:13 [INFO] [stdout] | [INFO] [stdout] 47 | dictobj.pydict_update(key, Rc::clone(v)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 47 | let _ = dictobj.pydict_update(key, Rc::clone(v)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/eval.rs:278:25 [INFO] [stdout] | [INFO] [stdout] 278 | dictobj.pydict_update(Rc::clone(&vs[i*2]), Rc::clone(&vs[i*2+1])); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 278 | let _ = dictobj.pydict_update(Rc::clone(&vs[i*2]), Rc::clone(&vs[i*2+1])); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/eval.rs:422:21 [INFO] [stdout] | [INFO] [stdout] 422 | eval(&codeobj.pycode_code(), Rc::clone(&new_env)); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 422 | let _ = eval(&codeobj.pycode_code(), Rc::clone(&new_env)); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/builtinmodule.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | PY_BASEOBJ_TYPE.with(|tp| { pytype_ready(Rc::clone(tp)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 51 | let _ = PY_BASEOBJ_TYPE.with(|tp| { pytype_ready(Rc::clone(tp)) }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/builtinmodule.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | PY_BOOL_TYPE.with(|booltp| { pytype_ready(Rc::clone(booltp)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 52 | let _ = PY_BOOL_TYPE.with(|booltp| { pytype_ready(Rc::clone(booltp)) }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/builtinmodule.rs:53:5 [INFO] [stdout] | [INFO] [stdout] 53 | PY_LIST_TYPE.with(|listtp| { pytype_ready(Rc::clone(listtp)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 53 | let _ = PY_LIST_TYPE.with(|listtp| { pytype_ready(Rc::clone(listtp)) }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/builtinmodule.rs:54:5 [INFO] [stdout] | [INFO] [stdout] 54 | PY_BASEEXC_TYPE.with(|exctp| { pytype_ready(Rc::clone(exctp)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 54 | let _ = PY_BASEEXC_TYPE.with(|exctp| { pytype_ready(Rc::clone(exctp)) }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/builtinmodule.rs:55:5 [INFO] [stdout] | [INFO] [stdout] 55 | PY_EXC_TYPE.with(|exctp| { pytype_ready(Rc::clone(exctp)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 55 | let _ = PY_EXC_TYPE.with(|exctp| { pytype_ready(Rc::clone(exctp)) }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/builtinmodule.rs:56:5 [INFO] [stdout] | [INFO] [stdout] 56 | PY_TYPEERROR_TYPE.with(|exctp| { pytype_ready(Rc::clone(exctp)) }); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 56 | let _ = PY_TYPEERROR_TYPE.with(|exctp| { pytype_ready(Rc::clone(exctp)) }); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/core/utils.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | eval(&code, env); [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] help: use `let _ = ...` to ignore the resulting value [INFO] [stdout] | [INFO] [stdout] 24 | let _ = eval(&code, env); [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: panic message is not a string literal [INFO] [stdout] --> src/core/utils.rs:26:28 [INFO] [stdout] | [INFO] [stdout] 26 | Err(err) => panic!(err.to_string()), [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021 [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(non_fmt_panics)]` on by default [INFO] [stdout] help: add a "{}" format string to `Display` the message [INFO] [stdout] | [INFO] [stdout] 26 | Err(err) => panic!("{}", err.to_string()), [INFO] [stdout] | +++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `mini_python` (lib) due to 7 previous errors; 25 warnings emitted [INFO] running `Command { std: "docker" "inspect" "c73823bae049a2b06e3bf35ea410b5a1b5ed3bb52aee9664505be2574dd101a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c73823bae049a2b06e3bf35ea410b5a1b5ed3bb52aee9664505be2574dd101a1", kill_on_drop: false }` [INFO] [stdout] c73823bae049a2b06e3bf35ea410b5a1b5ed3bb52aee9664505be2574dd101a1