[INFO] fetching crate efficient_enum 0.3.1... [INFO] checking efficient_enum-0.3.1 against try#4d98531622e1718ae0bc3c7a1ab9cd8938428452+rustflags=-Dtail_expr_drop_order for pr-129604 [INFO] extracting crate efficient_enum 0.3.1 into /workspace/builds/worker-5-tc2/source [INFO] validating manifest of crates.io crate efficient_enum 0.3.1 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 crates.io crate efficient_enum 0.3.1 [INFO] finished tweaking crates.io crate efficient_enum 0.3.1 [INFO] tweaked toml for crates.io crate efficient_enum 0.3.1 written to /workspace/builds/worker-5-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [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] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] 68c521f5e77e0c1cc70afdf1803ffdf8d1498846027a3e24f331c08b9a521041 [INFO] running `Command { std: "docker" "start" "-a" "68c521f5e77e0c1cc70afdf1803ffdf8d1498846027a3e24f331c08b9a521041", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "68c521f5e77e0c1cc70afdf1803ffdf8d1498846027a3e24f331c08b9a521041", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "68c521f5e77e0c1cc70afdf1803ffdf8d1498846027a3e24f331c08b9a521041", kill_on_drop: false }` [INFO] [stdout] 68c521f5e77e0c1cc70afdf1803ffdf8d1498846027a3e24f331c08b9a521041 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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] e180c295c1754189c3f2465569c58b0ba5f5664ee03c23dad6a6011386468330 [INFO] running `Command { std: "docker" "start" "-a" "e180c295c1754189c3f2465569c58b0ba5f5664ee03c23dad6a6011386468330", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Checking efficient_enum v0.3.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/tag.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | use std::mem::{size_of, uninitialized}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | use std::mem::{replace,uninitialized}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:143:26 [INFO] [stdout] | [INFO] [stdout] 143 | let b = unsafe { uninitialized() }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:651:46 [INFO] [stdout] | [INFO] [stdout] 651 | let b = self.ref_1().map_or(unsafe { uninitialized() }, Clone::clone); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:743:26 [INFO] [stdout] | [INFO] [stdout] 743 | let b = unsafe { uninitialized() }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_attributes)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:60:5 [INFO] [stdout] | [INFO] [stdout] 60 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:63:5 [INFO] [stdout] | [INFO] [stdout] 63 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:66:5 [INFO] [stdout] | [INFO] [stdout] 66 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:69:5 [INFO] [stdout] | [INFO] [stdout] 69 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:72:5 [INFO] [stdout] | [INFO] [stdout] 72 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 76 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:80:5 [INFO] [stdout] | [INFO] [stdout] 80 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:85:5 [INFO] [stdout] | [INFO] [stdout] 85 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `#[inline]` is ignored on function prototypes [INFO] [stdout] --> src/tag.rs:90:5 [INFO] [stdout] | [INFO] [stdout] 90 | #[inline] [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/tag.rs:4:25 [INFO] [stdout] | [INFO] [stdout] 4 | use std::mem::{size_of, uninitialized}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:3:24 [INFO] [stdout] | [INFO] [stdout] 3 | use std::mem::{replace,uninitialized}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:143:26 [INFO] [stdout] | [INFO] [stdout] 143 | let b = unsafe { uninitialized() }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:651:46 [INFO] [stdout] | [INFO] [stdout] 651 | let b = self.ref_1().map_or(unsafe { uninitialized() }, Clone::clone); [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated function `std::mem::uninitialized`: use `mem::MaybeUninit` instead [INFO] [stdout] --> src/option.rs:743:26 [INFO] [stdout] | [INFO] [stdout] 743 | let b = unsafe { uninitialized() }; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u8` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: `#[warn(invalid_value)]` on by default [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u16` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u32` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u64` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `usize` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [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/option.rs:114:34 [INFO] [stdout] | [INFO] [stdout] 114 | fn into(self) -> Option { self.destructure().map(|(a, _)| a) } [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] = 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/option.rs:158:20 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn some_0(a: A) -> Self [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 157 | where B: Default { [INFO] [stdout] 158 | Self::some((a, Default::default())) [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/option.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn some_1(b: B) -> Self [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 164 | where A: Default { [INFO] [stdout] 165 | Self::some((Default::default(), b)) [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/option.rs:289:10 [INFO] [stdout] | [INFO] [stdout] 287 | pub unsafe fn unwrap_destructure(self) -> (A, B) { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 288 | debug_assert!(self.is_some()); [INFO] [stdout] 289 | (utils::untag(self.0), self.1) [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/option.rs:360:45 [INFO] [stdout] | [INFO] [stdout] 357 | pub fn map(&mut self, f: F) -> R [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 360 | utils::borrow_untagged(&mut self.0, |tag, a| [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 361 | | match tag { [INFO] [stdout] 362 | | One::Tagged => f(None), [INFO] [stdout] 363 | | One::Untagged => f(Some((a, b))), [INFO] [stdout] 364 | | } [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/option.rs:466:22 [INFO] [stdout] | [INFO] [stdout] 464 | pub fn replace_0(&mut self, a: A) -> A { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 465 | let a = utils::tag(a, One::Untagged); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 466 | utils::untag(replace(&mut (self.0).0, a)) [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/option.rs:483:44 [INFO] [stdout] | [INFO] [stdout] 477 | let (a, b) = unsafe { [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] 478 | let a = read(&(self.0).0 as *const TagWrapper); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 479 | utils::change_tag(&mut (self.0).0, One::Tagged); [INFO] [stdout] 480 | let b = read(&(self.0).1 as *const B); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 483 | (EfficientOptionInnerNone(self.0), (utils::untag(a), b)) [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/option.rs:495:44 [INFO] [stdout] | [INFO] [stdout] 490 | let a = unsafe { [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 491 | let a = read(&(self.0).0 as *const TagWrapper); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 495 | (EfficientOptionInnerNone(self.0), utils::untag(a)) [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/option.rs:512:49 [INFO] [stdout] | [INFO] [stdout] 510 | pub fn map R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 511 | debug_assert!(self.0.is_some()); [INFO] [stdout] 512 | utils::borrow_untagged(&mut (self.0).0, |_, a| [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 513 | | f(a) [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/option.rs:616:18 [INFO] [stdout] | [INFO] [stdout] 614 | pub fn map_some_or(self, default: U, f: F) -> U [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] 615 | where F: FnOnce(EfficientOptionInnerSome<'a, A, B, TM>) -> U { [INFO] [stdout] 616 | self.map(|_| default, f) [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/option.rs:623:21 [INFO] [stdout] | [INFO] [stdout] 621 | pub fn map_none_or(self, default: U, f: F) -> U [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] 622 | where F: FnOnce(EfficientOptionInnerNone<'a, A, B, TM>) -> U { [INFO] [stdout] 623 | self.map(f, |_| default) [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/option.rs:652:30 [INFO] [stdout] | [INFO] [stdout] 651 | let b = self.ref_1().map_or(unsafe { uninitialized() }, Clone::clone); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 652 | EfficientOptionTuple(self.0.clone(), b) [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/option.rs:758:10 [INFO] [stdout] | [INFO] [stdout] 756 | pub fn destructure(self) -> (A, Option) { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 757 | let b = if self.is_none() { None } else { Some(self.1) }; [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 758 | (utils::untag(self.0), b) [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/option.rs:777:10 [INFO] [stdout] | [INFO] [stdout] 775 | pub unsafe fn unwrap_destructure(self) -> (A, B) { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 776 | debug_assert!(self.is_some()); [INFO] [stdout] 777 | (utils::untag(self.0), self.1) [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/option.rs:871:22 [INFO] [stdout] | [INFO] [stdout] 869 | pub fn replace_0(&mut self, a: A) -> A { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 870 | let a = utils::tag(a, utils::get_tag(&self.0)); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 871 | utils::untag(replace(&mut self.0, a)) [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/option.rs:876:15 [INFO] [stdout] | [INFO] [stdout] 875 | pub fn replace_1(&mut self, b: Option) -> Option { [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 876 | match (utils::get_tag(&self.0), b) { [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/option.rs:894:45 [INFO] [stdout] | [INFO] [stdout] 892 | pub fn map)-> R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 893 | let b = &mut self.1; [INFO] [stdout] 894 | utils::borrow_untagged(&mut self.0, |tag, a| [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 895 | | match tag { [INFO] [stdout] 896 | | Two::Option0 => f(a, None), [INFO] [stdout] 897 | | Two::Option1 => f(a, Some(b)), [INFO] [stdout] 898 | | } [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/option.rs:939:49 [INFO] [stdout] | [INFO] [stdout] 937 | pub fn map R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 938 | debug_assert!(self.0.is_none()); [INFO] [stdout] 939 | utils::borrow_untagged(&mut (self.0).0, |_, a| [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 940 | | f(a) [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/option.rs:996:49 [INFO] [stdout] | [INFO] [stdout] 993 | pub fn map R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 996 | utils::borrow_untagged(&mut (self.0).0, |_, a| [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 997 | | f(a, b) [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/option.rs:1100:18 [INFO] [stdout] | [INFO] [stdout] 1098 | pub fn map_some_or(self, default: U, f: F) -> U [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] 1099 | where F: FnOnce(EfficientOptionTupleInnerSome<'a, A, B, TM>) -> U { [INFO] [stdout] 1100 | self.map(|_| default, f) [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/option.rs:1107:21 [INFO] [stdout] | [INFO] [stdout] 1105 | pub fn map_none_or(self, default: U, f: F) -> U [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] 1106 | where F: FnOnce(EfficientOptionTupleInnerNone<'a, A, B, TM>) -> U { [INFO] [stdout] 1107 | self.map(f, |_| default) [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/option.rs:1272:18 [INFO] [stdout] | [INFO] [stdout] 1270 | pub fn map_some_or(self, default: U, f: F) -> U [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] 1271 | where F: FnOnce(OptionSomeMut<'a, A>) -> U { [INFO] [stdout] 1272 | self.map(|_| default, f) [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/option.rs:1279:21 [INFO] [stdout] | [INFO] [stdout] 1277 | pub fn map_none_or(self, default: U, f: F) -> U [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] 1278 | where F: FnOnce(OptionNoneMut<'a, A>) -> U { [INFO] [stdout] 1279 | self.map(f, |_| default) [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 23 previous errors; 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u8` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: `#[warn(invalid_value)]` on by default [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u16` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `u32` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `efficient_enum` (lib test) due to 24 previous errors; 21 warnings emitted [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] warning: the type `u64` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the type `usize` does not permit being left uninitialized [INFO] [stdout] --> src/tag.rs:205:23 [INFO] [stdout] | [INFO] [stdout] 205 | Self::tag(uninitialized(), o) [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this code causes undefined behavior when executed [INFO] [stdout] | help: use `MaybeUninit` instead, and only call `assume_init` after initialization is done [INFO] [stdout] ... [INFO] [stdout] 222 | tag_msb!{u8 u16 u32 u64 usize} [INFO] [stdout] | ------------------------------ in this macro invocation [INFO] [stdout] | [INFO] [stdout] = note: integers must be initialized [INFO] [stdout] = note: this warning originates in the macro `tag_msb` (in Nightly builds, run with -Z macro-backtrace for more info) [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/option.rs:114:34 [INFO] [stdout] | [INFO] [stdout] 114 | fn into(self) -> Option { self.destructure().map(|(a, _)| a) } [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] = 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/option.rs:158:20 [INFO] [stdout] | [INFO] [stdout] 156 | pub fn some_0(a: A) -> Self [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 157 | where B: Default { [INFO] [stdout] 158 | Self::some((a, Default::default())) [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/option.rs:165:20 [INFO] [stdout] | [INFO] [stdout] 163 | pub fn some_1(b: B) -> Self [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 164 | where A: Default { [INFO] [stdout] 165 | Self::some((Default::default(), b)) [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/option.rs:289:10 [INFO] [stdout] | [INFO] [stdout] 287 | pub unsafe fn unwrap_destructure(self) -> (A, B) { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 288 | debug_assert!(self.is_some()); [INFO] [stdout] 289 | (utils::untag(self.0), self.1) [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/option.rs:360:45 [INFO] [stdout] | [INFO] [stdout] 357 | pub fn map(&mut self, f: F) -> R [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 360 | utils::borrow_untagged(&mut self.0, |tag, a| [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 361 | | match tag { [INFO] [stdout] 362 | | One::Tagged => f(None), [INFO] [stdout] 363 | | One::Untagged => f(Some((a, b))), [INFO] [stdout] 364 | | } [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/option.rs:466:22 [INFO] [stdout] | [INFO] [stdout] 464 | pub fn replace_0(&mut self, a: A) -> A { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 465 | let a = utils::tag(a, One::Untagged); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 466 | utils::untag(replace(&mut (self.0).0, a)) [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/option.rs:483:44 [INFO] [stdout] | [INFO] [stdout] 477 | let (a, b) = unsafe { [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] 478 | let a = read(&(self.0).0 as *const TagWrapper); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 479 | utils::change_tag(&mut (self.0).0, One::Tagged); [INFO] [stdout] 480 | let b = read(&(self.0).1 as *const B); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 483 | (EfficientOptionInnerNone(self.0), (utils::untag(a), b)) [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/option.rs:495:44 [INFO] [stdout] | [INFO] [stdout] 490 | let a = unsafe { [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 491 | let a = read(&(self.0).0 as *const TagWrapper); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 495 | (EfficientOptionInnerNone(self.0), utils::untag(a)) [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/option.rs:512:49 [INFO] [stdout] | [INFO] [stdout] 510 | pub fn map R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 511 | debug_assert!(self.0.is_some()); [INFO] [stdout] 512 | utils::borrow_untagged(&mut (self.0).0, |_, a| [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 513 | | f(a) [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/option.rs:616:18 [INFO] [stdout] | [INFO] [stdout] 614 | pub fn map_some_or(self, default: U, f: F) -> U [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] 615 | where F: FnOnce(EfficientOptionInnerSome<'a, A, B, TM>) -> U { [INFO] [stdout] 616 | self.map(|_| default, f) [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/option.rs:623:21 [INFO] [stdout] | [INFO] [stdout] 621 | pub fn map_none_or(self, default: U, f: F) -> U [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] 622 | where F: FnOnce(EfficientOptionInnerNone<'a, A, B, TM>) -> U { [INFO] [stdout] 623 | self.map(f, |_| default) [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/option.rs:652:30 [INFO] [stdout] | [INFO] [stdout] 651 | let b = self.ref_1().map_or(unsafe { uninitialized() }, Clone::clone); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 652 | EfficientOptionTuple(self.0.clone(), b) [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/option.rs:758:10 [INFO] [stdout] | [INFO] [stdout] 756 | pub fn destructure(self) -> (A, Option) { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 757 | let b = if self.is_none() { None } else { Some(self.1) }; [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 758 | (utils::untag(self.0), b) [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/option.rs:777:10 [INFO] [stdout] | [INFO] [stdout] 775 | pub unsafe fn unwrap_destructure(self) -> (A, B) { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 776 | debug_assert!(self.is_some()); [INFO] [stdout] 777 | (utils::untag(self.0), self.1) [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/option.rs:871:22 [INFO] [stdout] | [INFO] [stdout] 869 | pub fn replace_0(&mut self, a: A) -> A { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 870 | let a = utils::tag(a, utils::get_tag(&self.0)); [INFO] [stdout] | - these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 871 | utils::untag(replace(&mut self.0, a)) [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/option.rs:876:15 [INFO] [stdout] | [INFO] [stdout] 875 | pub fn replace_1(&mut self, b: Option) -> Option { [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 876 | match (utils::get_tag(&self.0), b) { [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/option.rs:894:45 [INFO] [stdout] | [INFO] [stdout] 892 | pub fn map)-> R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 893 | let b = &mut self.1; [INFO] [stdout] 894 | utils::borrow_untagged(&mut self.0, |tag, a| [INFO] [stdout] | _____________________________________________^ [INFO] [stdout] 895 | | match tag { [INFO] [stdout] 896 | | Two::Option0 => f(a, None), [INFO] [stdout] 897 | | Two::Option1 => f(a, Some(b)), [INFO] [stdout] 898 | | } [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/option.rs:939:49 [INFO] [stdout] | [INFO] [stdout] 937 | pub fn map R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 938 | debug_assert!(self.0.is_none()); [INFO] [stdout] 939 | utils::borrow_untagged(&mut (self.0).0, |_, a| [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 940 | | f(a) [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/option.rs:996:49 [INFO] [stdout] | [INFO] [stdout] 993 | pub fn map R>(&mut self, f: F) -> R { [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 996 | utils::borrow_untagged(&mut (self.0).0, |_, a| [INFO] [stdout] | _________________________________________________^ [INFO] [stdout] 997 | | f(a, b) [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/option.rs:1100:18 [INFO] [stdout] | [INFO] [stdout] 1098 | pub fn map_some_or(self, default: U, f: F) -> U [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] 1099 | where F: FnOnce(EfficientOptionTupleInnerSome<'a, A, B, TM>) -> U { [INFO] [stdout] 1100 | self.map(|_| default, f) [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/option.rs:1107:21 [INFO] [stdout] | [INFO] [stdout] 1105 | pub fn map_none_or(self, default: U, f: F) -> U [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] 1106 | where F: FnOnce(EfficientOptionTupleInnerNone<'a, A, B, TM>) -> U { [INFO] [stdout] 1107 | self.map(f, |_| default) [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/option.rs:1272:18 [INFO] [stdout] | [INFO] [stdout] 1270 | pub fn map_some_or(self, default: U, f: F) -> U [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] 1271 | where F: FnOnce(OptionSomeMut<'a, A>) -> U { [INFO] [stdout] 1272 | self.map(|_| default, f) [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/option.rs:1279:21 [INFO] [stdout] | [INFO] [stdout] 1277 | pub fn map_none_or(self, default: U, f: F) -> U [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] 1278 | where F: FnOnce(OptionNoneMut<'a, A>) -> U { [INFO] [stdout] 1279 | self.map(f, |_| default) [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 23 previous errors; 21 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `efficient_enum` (lib) due to 24 previous errors; 21 warnings emitted [INFO] running `Command { std: "docker" "inspect" "e180c295c1754189c3f2465569c58b0ba5f5664ee03c23dad6a6011386468330", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e180c295c1754189c3f2465569c58b0ba5f5664ee03c23dad6a6011386468330", kill_on_drop: false }` [INFO] [stdout] e180c295c1754189c3f2465569c58b0ba5f5664ee03c23dad6a6011386468330