[INFO] fetching crate rezcraft 0.2.0... [INFO] checking rezcraft-0.2.0 against try#65132f36b923285d5da381c2fbafee6ce899e841 for pr-132712-1 [INFO] extracting crate rezcraft 0.2.0 into /workspace/builds/worker-7-tc2/source [INFO] validating manifest of crates.io crate rezcraft 0.2.0 on toolchain 65132f36b923285d5da381c2fbafee6ce899e841 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate rezcraft 0.2.0 [INFO] finished tweaking crates.io crate rezcraft 0.2.0 [INFO] tweaked toml for crates.io crate rezcraft 0.2.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] crate crates.io crate rezcraft 0.2.0 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" "+65132f36b923285d5da381c2fbafee6ce899e841" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d585b6c8c96754c7f39036f0a2de3c5e9e1b598e0db5ef7e979be68f4dae3096 [INFO] running `Command { std: "docker" "start" "-a" "d585b6c8c96754c7f39036f0a2de3c5e9e1b598e0db5ef7e979be68f4dae3096", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d585b6c8c96754c7f39036f0a2de3c5e9e1b598e0db5ef7e979be68f4dae3096", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d585b6c8c96754c7f39036f0a2de3c5e9e1b598e0db5ef7e979be68f4dae3096", kill_on_drop: false }` [INFO] [stdout] d585b6c8c96754c7f39036f0a2de3c5e9e1b598e0db5ef7e979be68f4dae3096 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=allow" "-e" "RUSTDOCFLAGS=--cap-lints=allow" "-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:4a844ea9eb2546a2d2c7022eacef16ef2e8229c7fbb2c7d4d55a9ceca922f72d" "/opt/rustwide/cargo-home/bin/cargo" "+65132f36b923285d5da381c2fbafee6ce899e841" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 01b96a7aa9ad23ec52c3a5dfb1dc20909e7b14aac920e71e8f7b5eab88cce4d4 [INFO] running `Command { std: "docker" "start" "-a" "01b96a7aa9ad23ec52c3a5dfb1dc20909e7b14aac920e71e8f7b5eab88cce4d4", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Migrating Cargo.toml from 2021 edition to 2024 [INFO] [stderr] Compiling autocfg v1.1.0 [INFO] [stderr] Compiling proc-macro2 v1.0.78 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.152 [INFO] [stderr] Compiling version_check v0.9.4 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Checking smallvec v1.13.1 [INFO] [stderr] Compiling pkg-config v0.3.29 [INFO] [stderr] Checking libloading v0.8.1 [INFO] [stderr] Compiling xml-rs v0.8.19 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Checking bitflags v2.4.2 [INFO] [stderr] Checking zerocopy v0.7.32 [INFO] [stderr] Compiling num-traits v0.2.17 [INFO] [stderr] Compiling memoffset v0.6.5 [INFO] [stderr] Compiling ahash v0.8.7 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Checking log v0.4.20 [INFO] [stderr] Compiling autocfg v0.1.8 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Compiling wayland-scanner v0.29.5 [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Compiling wayland-sys v0.29.5 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling serde v1.0.195 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Checking dlib v0.5.2 [INFO] [stderr] Checking scopeguard v1.2.0 [INFO] [stderr] Compiling crc32fast v1.3.2 [INFO] [stderr] Checking simd-adler32 v0.3.7 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking allocator-api2 v0.2.16 [INFO] [stderr] Checking adler v1.0.2 [INFO] [stderr] Checking arrayvec v0.7.4 [INFO] [stderr] Checking ttf-parser v0.20.0 [INFO] [stderr] Checking nix v0.24.3 [INFO] [stderr] Checking miniz_oxide v0.7.1 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Compiling slotmap v1.0.7 [INFO] [stderr] Checking hashbrown v0.14.3 [INFO] [stderr] Checking parking_lot v0.12.1 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Checking scoped-tls v1.0.1 [INFO] [stderr] Checking termcolor v1.4.1 [INFO] [stderr] Checking bit-vec v0.6.3 [INFO] [stderr] Compiling getrandom v0.1.16 [INFO] [stderr] Compiling wayland-client v0.29.5 [INFO] [stderr] Checking ab_glyph_rasterizer v0.1.8 [INFO] [stderr] Checking downcast-rs v1.2.0 [INFO] [stderr] Checking bit-set v0.5.3 [INFO] [stderr] Compiling wayland-protocols v0.29.5 [INFO] [stderr] Checking flate2 v1.0.28 [INFO] [stderr] Checking fdeflate v0.3.4 [INFO] [stderr] Checking libloading v0.7.4 [INFO] [stderr] Checking unicode-width v0.1.11 [INFO] [stderr] Compiling khronos-egl v4.1.0 [INFO] [stderr] Checking raw-window-handle v0.5.2 [INFO] [stderr] Checking hashbrown v0.12.3 [INFO] [stderr] Compiling crossbeam-utils v0.8.19 [INFO] [stderr] Compiling ash v0.37.3+1.3.251 [INFO] [stderr] Checking codespan-reporting v0.11.1 [INFO] [stderr] Checking png v0.17.11 [INFO] [stderr] Checking wayland-commons v0.29.5 [INFO] [stderr] Checking owned_ttf_parser v0.20.0 [INFO] [stderr] Checking spirv v0.2.0+1.5.4 [INFO] [stderr] Checking ab_glyph v0.2.23 [INFO] [stderr] Checking nix v0.25.1 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling smithay-client-toolkit v0.16.1 [INFO] [stderr] Checking gpu-alloc-types v0.3.0 [INFO] [stderr] Checking gpu-descriptor-types v0.1.2 [INFO] [stderr] Checking vec_map v0.8.2 [INFO] [stderr] Checking xcursor v0.3.5 [INFO] [stderr] Checking unicode-xid v0.2.4 [INFO] [stderr] Checking rustc-hash v1.1.0 [INFO] [stderr] Checking ppv-lite86 v0.2.17 [INFO] [stderr] Checking arrayref v0.3.7 [INFO] [stderr] Checking hexf-parse v0.2.1 [INFO] [stderr] Checking strict-num v0.1.1 [INFO] [stderr] Checking gpu-descriptor v0.2.4 [INFO] [stderr] Checking gpu-alloc v0.6.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Compiling bytemuck_derive v1.5.0 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling serde_derive v1.0.195 [INFO] [stderr] Checking wayland-cursor v0.29.5 [INFO] [stderr] Checking memmap2 v0.5.10 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling x11-dl v2.21.0 [INFO] [stderr] Checking wgpu-types v0.17.0 [INFO] [stderr] Checking memchr v2.7.1 [INFO] [stderr] Checking renderdoc-sys v1.0.0 [INFO] [stderr] Compiling rustix v0.38.30 [INFO] [stderr] Checking bytemuck v1.14.0 [INFO] [stderr] Checking emath v0.22.0 [INFO] [stderr] Checking ecolor v0.22.0 [INFO] [stderr] Checking tiny-skia-path v0.8.4 [INFO] [stderr] Checking profiling v1.0.13 [INFO] [stderr] Checking glow v0.12.3 [INFO] [stderr] Checking nohash-hasher v0.2.0 [INFO] [stderr] Checking calloop v0.10.6 [INFO] [stderr] Checking naga v0.13.0 [INFO] [stderr] Compiling maybe-uninit v2.0.0 [INFO] [stderr] Compiling cfg_aliases v0.1.1 [INFO] [stderr] Compiling winit v0.28.7 [INFO] [stderr] Checking tiny-skia v0.8.4 [INFO] [stderr] Checking epaint v0.22.0 [INFO] [stderr] Checking aho-corasick v1.1.2 [INFO] [stderr] Checking crossbeam-epoch v0.9.18 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking getrandom v0.2.12 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Checking linux-raw-sys v0.4.13 [INFO] [stderr] Compiling rayon-core v1.12.1 [INFO] [stderr] Compiling cgmath v0.17.0 [INFO] [stderr] Checking regex-syntax v0.8.2 [INFO] [stderr] Compiling rustversion v1.0.14 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking crossbeam-deque v0.8.5 [INFO] [stderr] Checking regex-automata v0.4.4 [INFO] [stderr] Checking egui v0.22.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking ndshape v0.3.0 [INFO] [stderr] Checking approx v0.3.2 [INFO] [stderr] Checking dirs-sys v0.3.7 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking mio v0.8.10 [INFO] [stderr] Checking instant v0.1.12 [INFO] [stderr] Compiling cgmath v0.18.0 [INFO] [stderr] Checking half v1.8.2 [INFO] [stderr] Checking glam v0.19.0 [INFO] [stderr] Checking ciborium-io v0.2.1 [INFO] [stderr] Checking ciborium-ll v0.2.1 [INFO] [stderr] Checking rand v0.3.23 [INFO] [stderr] Checking regex v1.10.3 [INFO] [stderr] Checking indexmap v2.1.0 [INFO] [stderr] Checking directories v4.0.1 [INFO] [stderr] Checking ndcopy v0.3.0 [INFO] [stderr] Checking toml v0.5.11 [INFO] [stderr] Checking either v1.9.0 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Checking smallvec v0.6.14 [INFO] [stderr] Checking is-terminal v0.4.10 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand_xorshift v0.2.0 [INFO] [stderr] Checking approx v0.4.0 [INFO] [stderr] Compiling include_dir_macros v0.7.3 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking unsafe-libyaml v0.2.10 [INFO] [stderr] Compiling rezcraft v0.2.0 (/tmp/fixit) [INFO] [stderr] Migrating build.rs from 2021 edition to 2024 [INFO] [stderr] Checking ryu v1.0.16 [INFO] [stderr] Checking itoa v1.0.10 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking color_quant v1.1.0 [INFO] [stderr] Checking include_dir v0.7.3 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking image v0.24.8 [INFO] [stderr] Checking ilattice v0.1.0 [INFO] [stderr] Compiling strum_macros v0.25.3 [INFO] [stderr] Checking env_logger v0.10.2 [INFO] [stderr] Checking collision v0.20.1 [INFO] [stderr] Checking block-mesh v0.2.0 [INFO] [stderr] Checking serde_yaml v0.9.30 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking noise v0.8.2 [INFO] [stderr] Checking confy v0.5.1 [INFO] [stderr] Checking rayon v1.8.1 [INFO] [stderr] Checking ciborium v0.2.1 [INFO] [stderr] Checking rle_vec v0.4.1 [INFO] [stderr] Checking rng v0.1.0 [INFO] [stderr] Checking sctk-adwaita v0.5.4 [INFO] [stderr] Checking ref_thread_local v0.1.1 [INFO] [stderr] Checking strum v0.25.0 [INFO] [stderr] Checking pollster v0.3.0 [INFO] [stderr] Checking wgpu-hal v0.17.2 [INFO] [stderr] Checking egui_winit_platform v0.19.0 [INFO] [stderr] Checking wgpu-core v0.17.1 [INFO] [stderr] Checking wgpu v0.17.2 [INFO] [stderr] Checking egui_wgpu_backend v0.25.0 [INFO] [stderr] Migrating src/lib.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rezcraft` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/game/state.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error: ambiguous `+` in a type [INFO] [stderr] --> src/game/state.rs:222:92 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw + use<>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: try adding parentheses [INFO] [stderr] | [INFO] [stderr] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&(impl Draw + use<>)> { [INFO] [stderr] | + + [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [INFO] [stderr] [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/game/world/terrain_generator.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | rng.gen() [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/engine/texture_atlas.rs:43:20 [INFO] [stdout] | [INFO] [stdout] 43 | if let Some((texture_name, image)) = images_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/engine/texture_atlas.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 43 ~ match images_iter.next() { Some((texture_name, image)) => { [INFO] [stdout] 44 | offset.insert(texture_name.into(), (x, y)); [INFO] [stdout] ... [INFO] [stdout] 53 | } [INFO] [stdout] 54 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl model::Draw` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/game/state.rs:222:92 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/game/state.rs:222:29 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw> { [INFO] [stdout] | ^ ^ ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw + use<>> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/state.rs:280:12 [INFO] [stdout] | [INFO] [stdout] 280 | if let Some((intersect_pos, _, _)) = ray.intersect(&mut self.terrain) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/state.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 280 ~ match ray.intersect(&mut self.terrain) { Some((intersect_pos, _, _)) => { [INFO] [stdout] 281 | if let Some(block) = self.terrain.get_block(&intersect_pos) { [INFO] [stdout] 282 | self.player.selected_block = block [INFO] [stdout] 283 | } [INFO] [stdout] 284 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/state.rs:281:16 [INFO] [stdout] | [INFO] [stdout] 281 | if let Some(block) = self.terrain.get_block(&intersect_pos) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/state.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 281 ~ match self.terrain.get_block(&intersect_pos) { Some(block) => { [INFO] [stdout] 282 | self.player.selected_block = block [INFO] [stdout] 283 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:466:24 [INFO] [stdout] | [INFO] [stdout] 466 | if let Some(sunlight_source_cache) = &mut self.sunlight_source_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:472:21 [INFO] [stdout] | [INFO] [stdout] 472 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 466 ~ match &mut self.sunlight_source_cache { Some(sunlight_source_cache) => { [INFO] [stdout] 467 | sunlight_source_cache.remove(block_in_chunk_pos, &surrounding_blocks); [INFO] [stdout] ... [INFO] [stdout] 471 | } [INFO] [stdout] 472 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:475:24 [INFO] [stdout] | [INFO] [stdout] 475 | if let Some(light_source_cache) = &mut self.light_source_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:477:21 [INFO] [stdout] | [INFO] [stdout] 477 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 475 ~ match &mut self.light_source_cache { Some(light_source_cache) => { [INFO] [stdout] 476 | light_source_cache.insert(block_in_chunk_pos, &surrounding_blocks); [INFO] [stdout] 477 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:480:24 [INFO] [stdout] | [INFO] [stdout] 480 | if let Some(light_source_cache) = &mut self.light_source_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:482:21 [INFO] [stdout] | [INFO] [stdout] 482 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 480 ~ match &mut self.light_source_cache { Some(light_source_cache) => { [INFO] [stdout] 481 | light_source_cache.remove(block_in_chunk_pos, &surrounding_blocks); [INFO] [stdout] 482 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:377:44 [INFO] [stdout] | [INFO] [stdout] 377 | ...if let Some(block_buffer) = crate::misc::save_helper::load_block_buffer(recieved.current_save_name, "chunks/".to_string() + &chunk_file_name(&recieved.pos)... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------------------------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:379:41 [INFO] [stdout] | [INFO] [stdout] 379 | ... } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 377 ~ match crate::misc::save_helper::load_block_buffer(recieved.current_save_name, "chunks/".to_string() + &chunk_file_name(&recieved.pos)) { Some(block_buffer) => { [INFO] [stdout] 378 | block_buffer [INFO] [stdout] 379 ~ } _ => { [INFO] [stdout] 380 | TERRAIN_GENERATOR [INFO] [stdout] ... [INFO] [stdout] 384 | .generate_blocks(&recieved.pos) [INFO] [stdout] 385 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:859:28 [INFO] [stdout] | [INFO] [stdout] 859 | if let Some(surrounding_blocks) = [INFO] [stdout] | ____________________________^ [INFO] [stdout] 860 | | self.get_surrounding_blocks_cube(&to_update_cache_chunk_pos, false) [INFO] [stdout] | |_____________________________------------------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:865:25 [INFO] [stdout] | [INFO] [stdout] 865 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 859 ~ match self.get_surrounding_blocks_cube(&to_update_cache_chunk_pos, false) [INFO] [stdout] 860 ~ { Some(surrounding_blocks) => { [INFO] [stdout] 861 | if let Some(mut current_chunk) = self.get_chunk_mut(&to_update_cache_chunk_pos, false) { [INFO] [stdout] 862 | current_chunk.do_cache_updates(&surrounding_blocks) [INFO] [stdout] 863 | } [INFO] [stdout] 864 ~ } _ => { [INFO] [stdout] 865 | log::error!( [INFO] [stdout] ... [INFO] [stdout] 868 | return; [INFO] [stdout] 869 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1159:16 [INFO] [stdout] | [INFO] [stdout] 1159 | if let Some(mut chunk) = self.get_chunk_mut(&recieved.pos, false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1166:13 [INFO] [stdout] | [INFO] [stdout] 1166 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1159 ~ match self.get_chunk_mut(&recieved.pos, false) { Some(mut chunk) => { [INFO] [stdout] 1160 | if chunk.light_pos_cache_requested() && recieved.for_state == chunk.state_hash() { [INFO] [stdout] ... [INFO] [stdout] 1165 | } [INFO] [stdout] 1166 ~ } _ => { [INFO] [stdout] 1167 | log::warn!("Recieved chunk light pos cache for nonexistent chunk") [INFO] [stdout] 1168 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1197:41 [INFO] [stdout] | [INFO] [stdout] 1197 | let surrounding_blocks = if let Some(surrounding_blocks) = self.get_surrounding_blocks(chunk_pos, true) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1199:13 [INFO] [stdout] | [INFO] [stdout] 1199 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1197 ~ let surrounding_blocks = match self.get_surrounding_blocks(chunk_pos, true) { Some(surrounding_blocks) => { [INFO] [stdout] 1198 | surrounding_blocks [INFO] [stdout] 1199 ~ } _ => { [INFO] [stdout] 1200 | return; [INFO] [stdout] 1201 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1239:41 [INFO] [stdout] | [INFO] [stdout] 1239 | let surrounding_blocks = if let Some(surrounding_blocks) = self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1242:13 [INFO] [stdout] | [INFO] [stdout] 1242 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1239 ~ let surrounding_blocks = match self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] 1240 ~ { Some(surrounding_blocks) => { [INFO] [stdout] 1241 | surrounding_blocks [INFO] [stdout] 1242 ~ } _ => { [INFO] [stdout] 1243 | return; [INFO] [stdout] 1244 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1284:41 [INFO] [stdout] | [INFO] [stdout] 1284 | let surrounding_blocks = if let Some(surrounding_blocks) = self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1287:13 [INFO] [stdout] | [INFO] [stdout] 1287 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1284 ~ let surrounding_blocks = match self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] 1285 ~ { Some(surrounding_blocks) => { [INFO] [stdout] 1286 | surrounding_blocks [INFO] [stdout] 1287 ~ } _ => { [INFO] [stdout] 1288 | return; [INFO] [stdout] 1289 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | if let Some(file) = RESOURCE_DIR.get_file(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 11 ~ match RESOURCE_DIR.get_file(path) { Some(file) => { [INFO] [stdout] 12 | Ok(file.contents().to_owned()) [INFO] [stdout] 13 ~ } _ => { [INFO] [stdout] 14 | Err(()) [INFO] [stdout] 15 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | if let Some(file) = RESOURCE_DIR.get_file(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 27 ~ match RESOURCE_DIR.get_file(path) { Some(file) => { [INFO] [stdout] 28 | if let Some(text) = file.contents_utf8() { [INFO] [stdout] ... [INFO] [stdout] 32 | } [INFO] [stdout] 33 ~ } _ => { [INFO] [stdout] 34 | Err(()) [INFO] [stdout] 35 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if let Ok(txt) = std::fs::read_to_string(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 46 ~ match std::fs::read_to_string(path) { Ok(txt) => { [INFO] [stdout] 47 | Ok(txt) [INFO] [stdout] 48 ~ } _ => { [INFO] [stdout] 49 | Err(()) [INFO] [stdout] 50 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | if let Ok(data) = std::fs::read(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match std::fs::read(path) { Ok(data) => { [INFO] [stdout] 56 | Ok(data) [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | Err(()) [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | if let Ok(file_type) = dir_entry.file_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 26 ~ match dir_entry.file_type() { Ok(file_type) => { [INFO] [stdout] 27 | if file_type.is_dir() { [INFO] [stdout] ... [INFO] [stdout] 31 | } [INFO] [stdout] 32 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:28:32 [INFO] [stdout] | [INFO] [stdout] 28 | ... if let Some(file_name) = dir_entry.file_name().to_str() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 28 ~ match dir_entry.file_name().to_str() { Some(file_name) => { [INFO] [stdout] 29 | return Some(file_name.to_string()); [INFO] [stdout] 30 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | if let Err(e) = ciborium::into_writer(object, file) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 54 ~ match ciborium::into_writer(object, file) { Err(e) => { [INFO] [stdout] 55 | log::warn!("Failed serializing and writing to file {} - {}", path.display(), e) [INFO] [stdout] 56 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | if let Err(e) = writeln!(file, "{}", to_write) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:62:25 [INFO] [stdout] | [INFO] [stdout] 62 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:75:28 [INFO] [stdout] | [INFO] [stdout] 75 | if let Err(e) = ciborium::into_writer(object, file) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:77:25 [INFO] [stdout] | [INFO] [stdout] 77 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 75 ~ match ciborium::into_writer(object, file) { Err(e) => { [INFO] [stdout] 76 | log::warn!("Failed serializing and writing to file {} - {}", path.display(), e) [INFO] [stdout] 77 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:81:36 [INFO] [stdout] | [INFO] [stdout] 81 | ... if let Err(e) = writeln!(file, "{}", to_write) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:83:33 [INFO] [stdout] | [INFO] [stdout] 83 | ... } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Migrating src/main.rs from 2021 edition to 2024 [INFO] [stderr] warning: failed to automatically apply fixes suggested by rustc to crate `rezcraft` [INFO] [stderr] [INFO] [stderr] after fixes were automatically applied the compiler reported errors within these files: [INFO] [stderr] [INFO] [stderr] * src/game/state.rs [INFO] [stderr] [INFO] [stderr] This likely indicates a bug in either rustc or cargo itself, [INFO] [stderr] and we would appreciate a bug report! You're likely to see [INFO] [stderr] a number of compiler warnings after this message which cargo [INFO] [stderr] attempted to fix but failed. If you could open an issue at [INFO] [stderr] https://github.com/rust-lang/rust/issues [INFO] [stderr] quoting the full output of this command we'd be very appreciative! [INFO] [stderr] Note that you may be able to make some more progress in the near-term [INFO] [stderr] fixing code with the `--broken-code` flag [INFO] [stderr] [INFO] [stderr] The following errors were reported: [INFO] [stderr] error: ambiguous `+` in a type [INFO] [stderr] --> src/game/state.rs:222:92 [INFO] [stderr] | [INFO] [stderr] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw + use<>> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] help: try adding parentheses [INFO] [stderr] | [INFO] [stderr] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&(impl Draw + use<>)> { [INFO] [stderr] | + + [INFO] [stderr] [INFO] [stderr] error: aborting due to 1 previous error [INFO] [stderr] [INFO] [stderr] Original diagnostics will follow. [INFO] [stderr] [INFO] [stdout] warning: `gen` is a keyword in the 2024 edition [INFO] [stdout] --> src/game/world/terrain_generator.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | rng.gen() [INFO] [stdout] | ^^^ help: you can use a raw identifier to stay compatible: `r#gen` [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2021) but is a hard error in Rust 2024! [INFO] [stdout] = note: for more information, see issue #49716 [INFO] [stdout] = note: `--force-warn keyword-idents-2024` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/engine/texture_atlas.rs:43:20 [INFO] [stdout] | [INFO] [stdout] 43 | if let Some((texture_name, image)) = images_iter.next() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/engine/texture_atlas.rs:54:17 [INFO] [stdout] | [INFO] [stdout] 54 | } [INFO] [stdout] | ^ [INFO] [stdout] = note: `--force-warn if-let-rescope` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 43 ~ match images_iter.next() { Some((texture_name, image)) => { [INFO] [stdout] 44 | offset.insert(texture_name.into(), (x, y)); [INFO] [stdout] ... [INFO] [stdout] 53 | } [INFO] [stdout] 54 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `impl model::Draw` will capture more lifetimes than possibly intended in edition 2024 [INFO] [stdout] --> src/game/state.rs:222:92 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see [INFO] [stdout] note: specifically, these lifetimes are in scope but not mentioned in the type's bounds [INFO] [stdout] --> src/game/state.rs:222:29 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw> { [INFO] [stdout] | ^ ^ ^ [INFO] [stdout] = note: all lifetimes in scope will be captured by `impl Trait`s in edition 2024 [INFO] [stdout] = note: `--force-warn impl-trait-overcaptures` implied by `--force-warn rust-2024-compatibility` [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw + use<>> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/state.rs:280:12 [INFO] [stdout] | [INFO] [stdout] 280 | if let Some((intersect_pos, _, _)) = ray.intersect(&mut self.terrain) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/state.rs:284:9 [INFO] [stdout] | [INFO] [stdout] 284 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 280 ~ match ray.intersect(&mut self.terrain) { Some((intersect_pos, _, _)) => { [INFO] [stdout] 281 | if let Some(block) = self.terrain.get_block(&intersect_pos) { [INFO] [stdout] 282 | self.player.selected_block = block [INFO] [stdout] 283 | } [INFO] [stdout] 284 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/state.rs:281:16 [INFO] [stdout] | [INFO] [stdout] 281 | if let Some(block) = self.terrain.get_block(&intersect_pos) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^------------^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/state.rs:283:13 [INFO] [stdout] | [INFO] [stdout] 283 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 281 ~ match self.terrain.get_block(&intersect_pos) { Some(block) => { [INFO] [stdout] 282 | self.player.selected_block = block [INFO] [stdout] 283 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:466:24 [INFO] [stdout] | [INFO] [stdout] 466 | if let Some(sunlight_source_cache) = &mut self.sunlight_source_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:472:21 [INFO] [stdout] | [INFO] [stdout] 472 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 466 ~ match &mut self.sunlight_source_cache { Some(sunlight_source_cache) => { [INFO] [stdout] 467 | sunlight_source_cache.remove(block_in_chunk_pos, &surrounding_blocks); [INFO] [stdout] ... [INFO] [stdout] 471 | } [INFO] [stdout] 472 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:475:24 [INFO] [stdout] | [INFO] [stdout] 475 | if let Some(light_source_cache) = &mut self.light_source_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:477:21 [INFO] [stdout] | [INFO] [stdout] 477 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 475 ~ match &mut self.light_source_cache { Some(light_source_cache) => { [INFO] [stdout] 476 | light_source_cache.insert(block_in_chunk_pos, &surrounding_blocks); [INFO] [stdout] 477 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:480:24 [INFO] [stdout] | [INFO] [stdout] 480 | if let Some(light_source_cache) = &mut self.light_source_cache { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/block.rs:482:21 [INFO] [stdout] | [INFO] [stdout] 482 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 480 ~ match &mut self.light_source_cache { Some(light_source_cache) => { [INFO] [stdout] 481 | light_source_cache.remove(block_in_chunk_pos, &surrounding_blocks); [INFO] [stdout] 482 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:377:44 [INFO] [stdout] | [INFO] [stdout] 377 | ...if let Some(block_buffer) = crate::misc::save_helper::load_block_buffer(recieved.current_save_name, "chunks/".to_string() + &chunk_file_name(&recieved.pos)... [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------------------------------------------------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:379:41 [INFO] [stdout] | [INFO] [stdout] 379 | ... } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 377 ~ match crate::misc::save_helper::load_block_buffer(recieved.current_save_name, "chunks/".to_string() + &chunk_file_name(&recieved.pos)) { Some(block_buffer) => { [INFO] [stdout] 378 | block_buffer [INFO] [stdout] 379 ~ } _ => { [INFO] [stdout] 380 | TERRAIN_GENERATOR [INFO] [stdout] ... [INFO] [stdout] 384 | .generate_blocks(&recieved.pos) [INFO] [stdout] 385 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:859:28 [INFO] [stdout] | [INFO] [stdout] 859 | if let Some(surrounding_blocks) = [INFO] [stdout] | ____________________________^ [INFO] [stdout] 860 | | self.get_surrounding_blocks_cube(&to_update_cache_chunk_pos, false) [INFO] [stdout] | |_____________________________------------------------------------------------------------------^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:865:25 [INFO] [stdout] | [INFO] [stdout] 865 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 859 ~ match self.get_surrounding_blocks_cube(&to_update_cache_chunk_pos, false) [INFO] [stdout] 860 ~ { Some(surrounding_blocks) => { [INFO] [stdout] 861 | if let Some(mut current_chunk) = self.get_chunk_mut(&to_update_cache_chunk_pos, false) { [INFO] [stdout] 862 | current_chunk.do_cache_updates(&surrounding_blocks) [INFO] [stdout] 863 | } [INFO] [stdout] 864 ~ } _ => { [INFO] [stdout] 865 | log::error!( [INFO] [stdout] ... [INFO] [stdout] 868 | return; [INFO] [stdout] 869 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1159:16 [INFO] [stdout] | [INFO] [stdout] 1159 | if let Some(mut chunk) = self.get_chunk_mut(&recieved.pos, false) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^--------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1166:13 [INFO] [stdout] | [INFO] [stdout] 1166 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1159 ~ match self.get_chunk_mut(&recieved.pos, false) { Some(mut chunk) => { [INFO] [stdout] 1160 | if chunk.light_pos_cache_requested() && recieved.for_state == chunk.state_hash() { [INFO] [stdout] ... [INFO] [stdout] 1165 | } [INFO] [stdout] 1166 ~ } _ => { [INFO] [stdout] 1167 | log::warn!("Recieved chunk light pos cache for nonexistent chunk") [INFO] [stdout] 1168 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1197:41 [INFO] [stdout] | [INFO] [stdout] 1197 | let surrounding_blocks = if let Some(surrounding_blocks) = self.get_surrounding_blocks(chunk_pos, true) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1199:13 [INFO] [stdout] | [INFO] [stdout] 1199 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1197 ~ let surrounding_blocks = match self.get_surrounding_blocks(chunk_pos, true) { Some(surrounding_blocks) => { [INFO] [stdout] 1198 | surrounding_blocks [INFO] [stdout] 1199 ~ } _ => { [INFO] [stdout] 1200 | return; [INFO] [stdout] 1201 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1239:41 [INFO] [stdout] | [INFO] [stdout] 1239 | let surrounding_blocks = if let Some(surrounding_blocks) = self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1242:13 [INFO] [stdout] | [INFO] [stdout] 1242 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1239 ~ let surrounding_blocks = match self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] 1240 ~ { Some(surrounding_blocks) => { [INFO] [stdout] 1241 | surrounding_blocks [INFO] [stdout] 1242 ~ } _ => { [INFO] [stdout] 1243 | return; [INFO] [stdout] 1244 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1284:41 [INFO] [stdout] | [INFO] [stdout] 1284 | let surrounding_blocks = if let Some(surrounding_blocks) = self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^------------------------------------------------- [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/game/world/terrain.rs:1287:13 [INFO] [stdout] | [INFO] [stdout] 1287 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 1284 ~ let surrounding_blocks = match self.get_surrounding_blocks_cube(chunk_pos, true) [INFO] [stdout] 1285 ~ { Some(surrounding_blocks) => { [INFO] [stdout] 1286 | surrounding_blocks [INFO] [stdout] 1287 ~ } _ => { [INFO] [stdout] 1288 | return; [INFO] [stdout] 1289 ~ }}; [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:11:12 [INFO] [stdout] | [INFO] [stdout] 11 | if let Some(file) = RESOURCE_DIR.get_file(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:13:9 [INFO] [stdout] | [INFO] [stdout] 13 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 11 ~ match RESOURCE_DIR.get_file(path) { Some(file) => { [INFO] [stdout] 12 | Ok(file.contents().to_owned()) [INFO] [stdout] 13 ~ } _ => { [INFO] [stdout] 14 | Err(()) [INFO] [stdout] 15 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:27:12 [INFO] [stdout] | [INFO] [stdout] 27 | if let Some(file) = RESOURCE_DIR.get_file(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:33:9 [INFO] [stdout] | [INFO] [stdout] 33 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 27 ~ match RESOURCE_DIR.get_file(path) { Some(file) => { [INFO] [stdout] 28 | if let Some(text) = file.contents_utf8() { [INFO] [stdout] ... [INFO] [stdout] 32 | } [INFO] [stdout] 33 ~ } _ => { [INFO] [stdout] 34 | Err(()) [INFO] [stdout] 35 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:46:8 [INFO] [stdout] | [INFO] [stdout] 46 | if let Ok(txt) = std::fs::read_to_string(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:48:5 [INFO] [stdout] | [INFO] [stdout] 48 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 46 ~ match std::fs::read_to_string(path) { Ok(txt) => { [INFO] [stdout] 47 | Ok(txt) [INFO] [stdout] 48 ~ } _ => { [INFO] [stdout] 49 | Err(()) [INFO] [stdout] 50 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:55:8 [INFO] [stdout] | [INFO] [stdout] 55 | if let Ok(data) = std::fs::read(path) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/loader.rs:57:5 [INFO] [stdout] | [INFO] [stdout] 57 | } else { [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 55 ~ match std::fs::read(path) { Ok(data) => { [INFO] [stdout] 56 | Ok(data) [INFO] [stdout] 57 ~ } _ => { [INFO] [stdout] 58 | Err(()) [INFO] [stdout] 59 ~ }} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:26:24 [INFO] [stdout] | [INFO] [stdout] 26 | if let Ok(file_type) = dir_entry.file_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:32:21 [INFO] [stdout] | [INFO] [stdout] 32 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 26 ~ match dir_entry.file_type() { Ok(file_type) => { [INFO] [stdout] 27 | if file_type.is_dir() { [INFO] [stdout] ... [INFO] [stdout] 31 | } [INFO] [stdout] 32 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:28:32 [INFO] [stdout] | [INFO] [stdout] 28 | ... if let Some(file_name) = dir_entry.file_name().to_str() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^---------^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | ... } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 28 ~ match dir_entry.file_name().to_str() { Some(file_name) => { [INFO] [stdout] 29 | return Some(file_name.to_string()); [INFO] [stdout] 30 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:54:20 [INFO] [stdout] | [INFO] [stdout] 54 | if let Err(e) = ciborium::into_writer(object, file) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:56:17 [INFO] [stdout] | [INFO] [stdout] 56 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 54 ~ match ciborium::into_writer(object, file) { Err(e) => { [INFO] [stdout] 55 | log::warn!("Failed serializing and writing to file {} - {}", path.display(), e) [INFO] [stdout] 56 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:60:28 [INFO] [stdout] | [INFO] [stdout] 60 | if let Err(e) = writeln!(file, "{}", to_write) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:62:25 [INFO] [stdout] | [INFO] [stdout] 62 | } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:75:28 [INFO] [stdout] | [INFO] [stdout] 75 | if let Err(e) = ciborium::into_writer(object, file) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^----^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:77:25 [INFO] [stdout] | [INFO] [stdout] 77 | } [INFO] [stdout] | ^ [INFO] [stdout] help: a `match` with a single arm can preserve the drop order up to Edition 2021 [INFO] [stdout] | [INFO] [stdout] 75 ~ match ciborium::into_writer(object, file) { Err(e) => { [INFO] [stdout] 76 | log::warn!("Failed serializing and writing to file {} - {}", path.display(), e) [INFO] [stdout] 77 ~ } _ => {}} [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `if let` assigns a shorter lifetime since Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:81:36 [INFO] [stdout] | [INFO] [stdout] 81 | ... if let Err(e) = writeln!(file, "{}", to_write) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^----^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | this value has a significant drop implementation which may observe a major change in drop order and requires your discretion [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #124085 [INFO] [stdout] help: the value is now dropped here in Edition 2024 [INFO] [stdout] --> src/misc/save_helper.rs:83:33 [INFO] [stdout] | [INFO] [stdout] 83 | ... } [INFO] [stdout] | ^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.01s [INFO] [stderr] Running `cargo check` to verify 2024 [INFO] [stderr] Compiling rezcraft v0.2.0 (/tmp/fixit) [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/game/world/terrain_generator.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | rng.gen() [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 89 | rng.r#gen() [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: expected identifier, found reserved keyword `gen` [INFO] [stdout] --> src/game/world/terrain_generator.rs:89:13 [INFO] [stdout] | [INFO] [stdout] 89 | rng.gen() [INFO] [stdout] | ^^^ expected identifier, found reserved keyword [INFO] [stdout] | [INFO] [stdout] help: escape `gen` to use it as an identifier [INFO] [stdout] | [INFO] [stdout] 89 | rng.r#gen() [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `renderer` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/lib.rs:349:23 [INFO] [stdout] | [INFO] [stdout] 348 | let to_render = game_state.meshes_to_render(renderer.device(), &settings_clone); [INFO] [stdout] | -------- immutable borrow occurs here [INFO] [stdout] 349 | match renderer.render( [INFO] [stdout] | ^ ------ immutable borrow later used by call [INFO] [stdout] | _______________________| [INFO] [stdout] | | [INFO] [stdout] 350 | | to_render, [INFO] [stdout] 351 | | Some(( [INFO] [stdout] 352 | | settings_clone.sky_color[0], [INFO] [stdout] ... | [INFO] [stdout] 356 | | &mut ui, [INFO] [stdout] 357 | | ) { [INFO] [stdout] | |_________________^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/lib.rs:348:33 [INFO] [stdout] | [INFO] [stdout] 348 | let to_render = game_state.meshes_to_render(renderer.device(), &settings_clone); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/game/state.rs:222:101 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw + use<>> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0502]: cannot borrow `renderer` as mutable because it is also borrowed as immutable [INFO] [stdout] --> src/lib.rs:349:23 [INFO] [stdout] | [INFO] [stdout] 348 | let to_render = game_state.meshes_to_render(renderer.device(), &settings_clone); [INFO] [stdout] | -------- immutable borrow occurs here [INFO] [stdout] 349 | match renderer.render( [INFO] [stdout] | ^ ------ immutable borrow later used by call [INFO] [stdout] | _______________________| [INFO] [stdout] | | [INFO] [stdout] 350 | | to_render, [INFO] [stdout] 351 | | Some(( [INFO] [stdout] 352 | | settings_clone.sky_color[0], [INFO] [stdout] ... | [INFO] [stdout] 356 | | &mut ui, [INFO] [stdout] 357 | | ) { [INFO] [stdout] | |_________________^ mutable borrow occurs here [INFO] [stdout] | [INFO] [stdout] note: this call may capture more lifetimes than intended, because Rust 2024 has adjusted the `impl Trait` lifetime capture rules [INFO] [stdout] --> src/lib.rs:348:33 [INFO] [stdout] | [INFO] [stdout] 348 | let to_render = game_state.meshes_to_render(renderer.device(), &settings_clone); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] help: use the precise capturing `use<...>` syntax to make the captures explicit [INFO] [stdout] --> src/game/state.rs:222:101 [INFO] [stdout] | [INFO] [stdout] 222 | pub fn meshes_to_render(&mut self, device: &wgpu::Device, settings: &Settings) -> Vec<&impl Draw + use<>> { [INFO] [stdout] | +++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/engine/renderer.rs:299:22 [INFO] [stdout] | [INFO] [stdout] 296 | bind_group: device.create_bind_group(&wgpu::BindGroupDescriptor { [INFO] [stdout] | ____________________________________________________- [INFO] [stdout] 297 | | layout: &texture_bind_group_layout, [INFO] [stdout] 298 | | entries: { [INFO] [stdout] 299 | | &[ [INFO] [stdout] | | ______________________^ [INFO] [stdout] 300 | || wgpu::BindGroupEntry { [INFO] [stdout] 301 | || binding: 0, [INFO] [stdout] 302 | || resource: wgpu::BindingResource::TextureView(&atlas_texture.view), [INFO] [stdout] ... || [INFO] [stdout] 307 | || }, [INFO] [stdout] 308 | || ] [INFO] [stdout] | || ^ [INFO] [stdout] | || | [INFO] [stdout] | ||_____________________temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 309 | | }, [INFO] [stdout] 310 | | label: None, [INFO] [stdout] 311 | | }), [INFO] [stdout] | |______________- borrow later used here [INFO] [stdout] | [INFO] [stdout] = note: consider using a `let` binding to create a longer lived value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/engine/renderer.rs:299:22 [INFO] [stdout] | [INFO] [stdout] 296 | bind_group: device.create_bind_group(&wgpu::BindGroupDescriptor { [INFO] [stdout] | ____________________________________________________- [INFO] [stdout] 297 | | layout: &texture_bind_group_layout, [INFO] [stdout] 298 | | entries: { [INFO] [stdout] 299 | | &[ [INFO] [stdout] | | ______________________^ [INFO] [stdout] 300 | || wgpu::BindGroupEntry { [INFO] [stdout] 301 | || binding: 0, [INFO] [stdout] 302 | || resource: wgpu::BindingResource::TextureView(&atlas_texture.view), [INFO] [stdout] ... || [INFO] [stdout] 307 | || }, [INFO] [stdout] 308 | || ] [INFO] [stdout] | || ^ [INFO] [stdout] | || | [INFO] [stdout] | ||_____________________temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] 309 | | }, [INFO] [stdout] 310 | | label: None, [INFO] [stdout] 311 | | }), [INFO] [stdout] | |______________- borrow later used here [INFO] [stdout] | [INFO] [stdout] = note: consider using a `let` binding to create a longer lived value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/game/world/mesh.rs:137:22 [INFO] [stdout] | [INFO] [stdout] 134 | chunk_pos: device.create_bind_group(&BindGroupDescriptor { [INFO] [stdout] | ___________________________________________________- [INFO] [stdout] 135 | | label: None, [INFO] [stdout] 136 | | layout: { [INFO] [stdout] 137 | | &device.create_bind_group_layout(&BindGroupLayoutDescriptor { [INFO] [stdout] | | ______________________^ [INFO] [stdout] 138 | || label: None, [INFO] [stdout] 139 | || entries: &[BindGroupLayoutEntry { [INFO] [stdout] 140 | || binding: 0, [INFO] [stdout] ... || [INFO] [stdout] 148 | || }], [INFO] [stdout] 149 | || }) [INFO] [stdout] | || ^ [INFO] [stdout] | || | [INFO] [stdout] | ||______________________temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] ... | [INFO] [stdout] 154 | | }], [INFO] [stdout] 155 | | }), [INFO] [stdout] | |______________- borrow later used here [INFO] [stdout] | [INFO] [stdout] = note: consider using a `let` binding to create a longer lived value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0716]: temporary value dropped while borrowed [INFO] [stdout] --> src/game/world/mesh.rs:137:22 [INFO] [stdout] | [INFO] [stdout] 134 | chunk_pos: device.create_bind_group(&BindGroupDescriptor { [INFO] [stdout] | ___________________________________________________- [INFO] [stdout] 135 | | label: None, [INFO] [stdout] 136 | | layout: { [INFO] [stdout] 137 | | &device.create_bind_group_layout(&BindGroupLayoutDescriptor { [INFO] [stdout] | | ______________________^ [INFO] [stdout] 138 | || label: None, [INFO] [stdout] 139 | || entries: &[BindGroupLayoutEntry { [INFO] [stdout] 140 | || binding: 0, [INFO] [stdout] ... || [INFO] [stdout] 148 | || }], [INFO] [stdout] 149 | || }) [INFO] [stdout] | || ^ [INFO] [stdout] | || | [INFO] [stdout] | ||______________________temporary value is freed at the end of this statement [INFO] [stdout] | | creates a temporary value which is freed while still in use [INFO] [stdout] ... | [INFO] [stdout] 154 | | }], [INFO] [stdout] 155 | | }), [INFO] [stdout] | |______________- borrow later used here [INFO] [stdout] | [INFO] [stdout] = note: consider using a `let` binding to create a longer lived value [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0502, E0716. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0502`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rezcraft` (lib) due to 4 previous errors [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] Some errors have detailed explanations: E0502, E0716. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0502`. [INFO] [stdout] [INFO] [stderr] error: could not compile `rezcraft` (lib test) due to 4 previous errors [INFO] [stderr] error: failed to check after updating to 2024 [INFO] [stderr] [INFO] [stderr] Caused by: [INFO] [stderr] process didn't exit successfully: `cargo check --frozen --all --all-targets --message-format=json` (exit status: 101) [INFO] running `Command { std: "docker" "inspect" "01b96a7aa9ad23ec52c3a5dfb1dc20909e7b14aac920e71e8f7b5eab88cce4d4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "01b96a7aa9ad23ec52c3a5dfb1dc20909e7b14aac920e71e8f7b5eab88cce4d4", kill_on_drop: false }` [INFO] [stdout] 01b96a7aa9ad23ec52c3a5dfb1dc20909e7b14aac920e71e8f7b5eab88cce4d4