[INFO] fetching crate zlo 0.1.0... [INFO] checking zlo-0.1.0 against try#c387b04bf028733cd561d62128c8a5eee4bc1458+rustflags=-Dtail_expr_drop_order for pr-130930 [INFO] extracting crate zlo 0.1.0 into /workspace/builds/worker-2-tc2/source [INFO] validating manifest of crates.io crate zlo 0.1.0 on toolchain c387b04bf028733cd561d62128c8a5eee4bc1458 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c387b04bf028733cd561d62128c8a5eee4bc1458" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate zlo 0.1.0 [INFO] finished tweaking crates.io crate zlo 0.1.0 [INFO] tweaked toml for crates.io crate zlo 0.1.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c387b04bf028733cd561d62128c8a5eee4bc1458" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 7 packages to latest compatible versions [INFO] [stderr] Adding serde_bytes v0.10.5 (available: v0.11.15) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c387b04bf028733cd561d62128c8a5eee4bc1458" "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-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+c387b04bf028733cd561d62128c8a5eee4bc1458" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 47d8980cccaacf5720e9de69672ba2c4ba719aeb75248d44c94172a0fdd8d85b [INFO] running `Command { std: "docker" "start" "-a" "47d8980cccaacf5720e9de69672ba2c4ba719aeb75248d44c94172a0fdd8d85b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "47d8980cccaacf5720e9de69672ba2c4ba719aeb75248d44c94172a0fdd8d85b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47d8980cccaacf5720e9de69672ba2c4ba719aeb75248d44c94172a0fdd8d85b", kill_on_drop: false }` [INFO] [stdout] 47d8980cccaacf5720e9de69672ba2c4ba719aeb75248d44c94172a0fdd8d85b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:6252d7ea7fb8caaf7af6d800c5fb250a9cd862b9a7f9508afb3c54fa7fe1102e" "/opt/rustwide/cargo-home/bin/cargo" "+c387b04bf028733cd561d62128c8a5eee4bc1458" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] ba047845749f01f7b210580bc701e4fa8406dfb68d31eb6798b1e6cba3ae2c29 [INFO] running `Command { std: "docker" "start" "-a" "ba047845749f01f7b210580bc701e4fa8406dfb68d31eb6798b1e6cba3ae2c29", kill_on_drop: false }` [INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2021 [INFO] [stderr] Checking serde_bytes v0.10.5 [INFO] [stderr] Checking zlo v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/de/mod.rs:84:24 [INFO] [stdout] | [INFO] [stdout] 84 | let w = if a { (self.store >> self.shift) } else { 0 } [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 84 - let w = if a { (self.store >> self.shift) } else { 0 } [INFO] [stdout] 84 + let w = if a { self.store >> self.shift } else { 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/de/mod.rs:85:28 [INFO] [stdout] | [INFO] [stdout] 85 | | (s << if a { (8 - self.shift) } else { 0 }); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 85 - | (s << if a { (8 - self.shift) } else { 0 }); [INFO] [stdout] 85 + | (s << if a { 8 - self.shift } else { 0 }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/de/mod.rs:434:29 [INFO] [stdout] | [INFO] [stdout] 434 | let value = try!(serde::de::DeserializeSeed::deserialize( [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/lib.rs:70:49 [INFO] [stdout] | [INFO] [stdout] 70 | Error::Io(ref err) => error::Error::description(err), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:79:32 [INFO] [stdout] | [INFO] [stdout] 79 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/de/mod.rs:84:24 [INFO] [stdout] | [INFO] [stdout] 84 | let w = if a { (self.store >> self.shift) } else { 0 } [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 84 - let w = if a { (self.store >> self.shift) } else { 0 } [INFO] [stdout] 84 + let w = if a { self.store >> self.shift } else { 0 } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around block return value [INFO] [stdout] --> src/de/mod.rs:85:28 [INFO] [stdout] | [INFO] [stdout] 85 | | (s << if a { (8 - self.shift) } else { 0 }); [INFO] [stdout] | ^ ^ [INFO] [stdout] | [INFO] [stdout] help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] 85 - | (s << if a { (8 - self.shift) } else { 0 }); [INFO] [stdout] 85 + | (s << if a { 8 - self.shift } else { 0 }); [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead [INFO] [stdout] --> src/de/mod.rs:434:29 [INFO] [stdout] | [INFO] [stdout] 434 | let value = try!(serde::de::DeserializeSeed::deserialize( [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/lib.rs:70:49 [INFO] [stdout] | [INFO] [stdout] 70 | Error::Io(ref err) => error::Error::description(err), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/lib.rs:79:32 [INFO] [stdout] | [INFO] [stdout] 79 | fn cause(&self) -> Option<&error::Error> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] help: if this is an object-safe trait, use `dyn` [INFO] [stdout] | [INFO] [stdout] 79 | fn cause(&self) -> Option<&dyn error::Error> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/de/mod.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 308 | / fn deserialize_enum( [INFO] [stdout] 309 | | self, [INFO] [stdout] 310 | | _enum: &'static str, [INFO] [stdout] 311 | | _variants: &'static [&'static str], [INFO] [stdout] ... | [INFO] [stdout] 314 | | where [INFO] [stdout] 315 | | V: serde::de::Visitor<'de>, [INFO] [stdout] | |___________________________________- move the `impl` block outside of this method `deserialize_enum` [INFO] [stdout] 316 | { [INFO] [stdout] 317 | impl<'de, 'a, R: 'a, S> serde::de::EnumAccess<'de> [INFO] [stdout] | ^ --------------------- `EnumAccess` is not local [INFO] [stdout] | _________| [INFO] [stdout] | | [INFO] [stdout] 318 | | for &'a mut Deserializer [INFO] [stdout] | |_________________________------------_____^ [INFO] [stdout] | | [INFO] [stdout] | `Deserializer` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zlo::Infinite` [INFO] [stdout] --> examples/float_delta.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use zlo::Infinite; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zlo::deserialize` [INFO] [stdout] --> examples/float_delta.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use zlo::deserialize; [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `zlo::serialize` [INFO] [stdout] --> examples/float_delta.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use zlo::serialize; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `f32_diff` is never used [INFO] [stdout] --> examples/float_delta.rs:9:4 [INFO] [stdout] | [INFO] [stdout] 9 | fn f32_diff(a: f32, b: f32) -> f32 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `f64_diff` is never used [INFO] [stdout] --> examples/float_delta.rs:24:4 [INFO] [stdout] | [INFO] [stdout] 24 | fn f64_diff(a: f64, b: f64) -> f64 { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item [INFO] [stdout] --> src/de/mod.rs:317:9 [INFO] [stdout] | [INFO] [stdout] 308 | / fn deserialize_enum( [INFO] [stdout] 309 | | self, [INFO] [stdout] 310 | | _enum: &'static str, [INFO] [stdout] 311 | | _variants: &'static [&'static str], [INFO] [stdout] ... | [INFO] [stdout] 314 | | where [INFO] [stdout] 315 | | V: serde::de::Visitor<'de>, [INFO] [stdout] | |___________________________________- move the `impl` block outside of this method `deserialize_enum` [INFO] [stdout] 316 | { [INFO] [stdout] 317 | impl<'de, 'a, R: 'a, S> serde::de::EnumAccess<'de> [INFO] [stdout] | ^ --------------------- `EnumAccess` is not local [INFO] [stdout] | _________| [INFO] [stdout] | | [INFO] [stdout] 318 | | for &'a mut Deserializer [INFO] [stdout] | |_________________________------------_____^ [INFO] [stdout] | | [INFO] [stdout] | `Deserializer` is not local [INFO] [stdout] | [INFO] [stdout] = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl` [INFO] [stdout] = note: this lint may become deny-by-default in the edition 2024 and higher, see the tracking issue [INFO] [stdout] = note: `#[warn(non_local_definitions)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 6 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> tests/test.rs:193:6 [INFO] [stdout] | [INFO] [stdout] 193 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: this value of type `Result` has significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> tests/test.rs:183:13 [INFO] [stdout] | [INFO] [stdout] 178 | fn isize_invalid_deserialize(res: Result) { [INFO] [stdout] | --- these local bindings with significant drop implementation may observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 183 | other => panic!("Expecting InvalidEncoding, got {:?}", other), [INFO] [stdout] | ^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 1 previous error; 1 warning emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `zlo` (test "test") due to 2 previous errors; 1 warning emitted [INFO] running `Command { std: "docker" "inspect" "ba047845749f01f7b210580bc701e4fa8406dfb68d31eb6798b1e6cba3ae2c29", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ba047845749f01f7b210580bc701e4fa8406dfb68d31eb6798b1e6cba3ae2c29", kill_on_drop: false }` [INFO] [stdout] ba047845749f01f7b210580bc701e4fa8406dfb68d31eb6798b1e6cba3ae2c29