[INFO] fetching crate optarg2chain 0.1.0... [INFO] checking optarg2chain-0.1.0 against try#4d98531622e1718ae0bc3c7a1ab9cd8938428452+rustflags=-Dtail_expr_drop_order for pr-129604 [INFO] extracting crate optarg2chain 0.1.0 into /workspace/builds/worker-6-tc2/source [INFO] validating manifest of crates.io crate optarg2chain 0.1.0 on toolchain 4d98531622e1718ae0bc3c7a1ab9cd8938428452 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate optarg2chain 0.1.0 [INFO] finished tweaking crates.io crate optarg2chain 0.1.0 [INFO] tweaked toml for crates.io crate optarg2chain 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml [INFO] crate crates.io crate optarg2chain 0.1.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" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] warning: `proc_macro` is deprecated in favor of `proc-macro` and will not work in the 2024 edition [INFO] [stderr] (in the `optarg2chain` library target) [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ead3d4afe0590e8236aaea67a24dc7523828ff013a3af0c7800ba97c88a2285b [INFO] running `Command { std: "docker" "start" "-a" "ead3d4afe0590e8236aaea67a24dc7523828ff013a3af0c7800ba97c88a2285b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ead3d4afe0590e8236aaea67a24dc7523828ff013a3af0c7800ba97c88a2285b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ead3d4afe0590e8236aaea67a24dc7523828ff013a3af0c7800ba97c88a2285b", kill_on_drop: false }` [INFO] [stdout] ead3d4afe0590e8236aaea67a24dc7523828ff013a3af0c7800ba97c88a2285b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail_expr_drop_order" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+4d98531622e1718ae0bc3c7a1ab9cd8938428452" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 06d7119ce863962db7b31ba4f30dc486a0216feeb9d1af255531bdd3b5098a06 [INFO] running `Command { std: "docker" "start" "-a" "06d7119ce863962db7b31ba4f30dc486a0216feeb9d1af255531bdd3b5098a06", kill_on_drop: false }` [INFO] [stderr] warning: `proc_macro` is deprecated in favor of `proc-macro` and will not work in the 2024 edition [INFO] [stderr] (in the `optarg2chain` library target) [INFO] [stderr] Compiling proc-macro2 v1.0.8 [INFO] [stderr] Compiling syn v1.0.14 [INFO] [stderr] Compiling unicode-xid v0.2.0 [INFO] [stderr] Compiling memchr v2.3.2 [INFO] [stderr] Compiling proc-macro-nested v0.1.3 [INFO] [stderr] Checking futures-core v0.3.4 [INFO] [stderr] Checking futures-sink v0.3.4 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking futures-task v0.3.4 [INFO] [stderr] Checking futures-io v0.3.4 [INFO] [stderr] Checking pin-utils v0.1.0-alpha.4 [INFO] [stderr] Checking futures-channel v0.3.4 [INFO] [stderr] Checking quote v1.0.2 [INFO] [stderr] Checking optarg2chain v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lib.rs:396:8 [INFO] [stdout] | [INFO] [stdout] 274 | input: syn::ImplItemMethod, [INFO] [stdout] | -------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 284 | let vis = input.vis; [INFO] [stdout] | --- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 285 | let mut self_replace = SelfReplace(self_ty); [INFO] [stdout] 286 | let return_type = self_replace.fold_return_type(input.sig.output.clone()); [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 287 | let method_name = &input.sig.ident; [INFO] [stdout] 288 | let merged_generics = merge_generics(impl_original_generics, &input.sig, self_ty); [INFO] [stdout] | --------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 289 | let (impl_generics, ty_generics, where_clause) = merged_generics.split_for_impl(); [INFO] [stdout] 290 | let (original_receiver, receiver_ident, receiver_ty, args) = [INFO] [stdout] | ----------------- ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | | [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 291 | separate_receiver(&input.sig, self_ty)?; [INFO] [stdout] 292 | let struct_marker_type = generics::generate_type_holder(&merged_generics); [INFO] [stdout] | ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 293 | [INFO] [stdout] 294 | let replaced_args: Vec = args [INFO] [stdout] | ------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 299 | let args = parse_typed_args(&args); [INFO] [stdout] | ---- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 303 | let await_ = if async_.is_some() { [INFO] [stdout] | ------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 304 | Some(quote! { .await }) [INFO] [stdout] | ----------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 309 | let insert_self = if receiver_ident.is_empty() { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 312 | vec![quote! { #(#receiver_ident: self)* }] [INFO] [stdout] | ------------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 321 | doc_builder_struct, [INFO] [stdout] | ------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 322 | doc_setter, [INFO] [stdout] | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 323 | doc_terminal_method, [INFO] [stdout] | ------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 326 | let mut inner_method: syn::ImplItemMethod = syn::parse_quote! { [INFO] [stdout] | _____________------------________________________- [INFO] [stdout] | |_____________|___________________________________| [INFO] [stdout] | |_____________|___________________________________| [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 327 | | #async_ fn #inner_method_ident ( [INFO] [stdout] 328 | | #(#original_receiver,)* [INFO] [stdout] 329 | | #(#arg_name: #arg_ty,)*) #return_type #where_clause #inner_method_block [INFO] [stdout] 330 | | }; [INFO] [stdout] | | - [INFO] [stdout] | |_____| [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 331 | inner_method.sig.generics = input.sig.generics.clone(); [INFO] [stdout] 332 | | let inner_method: syn::ImplItem = inner_method.into(); [INFO] [stdout] | | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 333 | | [INFO] [stdout] 334 | let item_struct: syn::ItemStruct = syn::parse_quote! { [INFO] [stdout] | _________-----------____________________- [INFO] [stdout] | |_________|______________________________| [INFO] [stdout] | |_________|______________________________| [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 335 | | #doc_builder_struct [INFO] [stdout] 336 | | #vis struct #builder_struct_name #ty_generics { [INFO] [stdout] 337 | | #(#receiver_ident: #receiver_ty,)* [INFO] [stdout] ... | [INFO] [stdout] 341 | | } [INFO] [stdout] 342 | | }; [INFO] [stdout] | | - [INFO] [stdout] | |_____| [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 343 | [INFO] [stdout] 344 | let mut new_method: syn::ImplItemMethod = syn::parse_quote! { [INFO] [stdout] | _____________----------________________________- [INFO] [stdout] | |_____________|_________________________________| [INFO] [stdout] | |_____________|_________________________________| [INFO] [stdout] | |_____________|_________________________________| [INFO] [stdout] | |_____________|_________________________________| [INFO] [stdout] | |_____________|_________________________________| [INFO] [stdout] | |_____________|_________________________________| [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 345 | | #(#other_attrs)* [INFO] [stdout] 346 | | #vis fn #method_name ( [INFO] [stdout] 347 | | #(#original_receiver,)* [INFO] [stdout] ... | [INFO] [stdout] 360 | | } [INFO] [stdout] 361 | | }; [INFO] [stdout] | | - [INFO] [stdout] | |_____| [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 362 | new_method.sig.generics = input.sig.generics.clone(); [INFO] [stdout] 363 | | let new_method: syn::ImplItem = new_method.into(); [INFO] [stdout] | | ---------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 364 | | [INFO] [stdout] 365 | | let self_ty_no_generics = erase_generics(self_ty); [INFO] [stdout] | | ------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 366 | | [INFO] [stdout] 367 | let struct_impl: syn::ItemImpl = syn::parse_quote! { [INFO] [stdout] | _________-----------__________________- [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | |_________|____________________________| [INFO] [stdout] | | | [INFO] [stdout] | | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 368 | | impl #impl_generics #builder_struct_name #ty_generics { [INFO] [stdout] 369 | | #( [INFO] [stdout] 370 | | #doc_setter [INFO] [stdout] ... | [INFO] [stdout] 393 | | } [INFO] [stdout] 394 | | }; [INFO] [stdout] | | - [INFO] [stdout] | |_____| [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | |_____these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 395 | [INFO] [stdout] 396 | | Ok((vec![new_method, inner_method], item_struct, struct_impl)) [INFO] [stdout] | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] = note: requested on the command line with `-D tail-expr-drop-order` [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] error: could not compile `optarg2chain` (lib) due to 4 previous errors [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lib.rs:296:46 [INFO] [stdout] | [INFO] [stdout] 296 | .map(|pt| self_replace.fold_pat_type((*pt).clone())) [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: these values and local bindings have significant drop implementation that will have a different drop order from that of Edition 2021 [INFO] [stdout] --> src/lib.rs:598:8 [INFO] [stdout] | [INFO] [stdout] 564 | let mut new_receiver: Vec = vec![]; [INFO] [stdout] | ------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 565 | let (receiver_ident, receiver_ty) = if let Some(receiver) = receiver { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 566 | let self_ident = syn::Ident::new(INNER_SELF_VAR, Span::call_site()); [INFO] [stdout] 567 | let receiver_ty: syn::Type = match (&receiver.reference, &receiver.mutability) { [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 572 | new_receiver = vec![syn::parse_quote! { &#lifetime self }]; [INFO] [stdout] | ------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 573 | syn::parse_quote! { &#lifetime #self_ty } [INFO] [stdout] | ----------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 576 | new_receiver = vec![syn::parse_quote! { &#lifetime mut self }]; [INFO] [stdout] | ----------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 577 | syn::parse_quote! { &#lifetime mut #self_ty } [INFO] [stdout] | --------------------------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 581 | new_receiver = vec![syn::parse_quote! { mut self }]; [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 582 | } else { [INFO] [stdout] 583 | new_receiver = vec![syn::parse_quote! { self }]; [INFO] [stdout] | -------------------------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] 584 | } [INFO] [stdout] 585 | syn::parse_quote! { #self_ty } [INFO] [stdout] | ------------------------------ these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 592 | let receiver_ty = self_replace.fold_type((*pt.ty).clone()); [INFO] [stdout] | ----------- these values have significant drop implementation and will observe changes in drop order under Edition 2024 [INFO] [stdout] ... [INFO] [stdout] 598 | Ok((new_receiver, receiver_ident, receiver_ty, args)) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = warning: this changes meaning in Rust 2024 [INFO] [stdout] = note: for more information, see issue #123739 [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 3 previous errors [INFO] [stdout] [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "06d7119ce863962db7b31ba4f30dc486a0216feeb9d1af255531bdd3b5098a06", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "06d7119ce863962db7b31ba4f30dc486a0216feeb9d1af255531bdd3b5098a06", kill_on_drop: false }` [INFO] [stdout] 06d7119ce863962db7b31ba4f30dc486a0216feeb9d1af255531bdd3b5098a06