[INFO] fetching crate derive_constructors_proc 1.0.0...
[INFO] testing derive_constructors_proc-1.0.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate derive_constructors_proc 1.0.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate derive_constructors_proc 1.0.0
[INFO] finished tweaking crates.io crate derive_constructors_proc 1.0.0
[INFO] tweaked toml for crates.io crate derive_constructors_proc 1.0.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate derive_constructors_proc 1.0.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "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]      Locking 6 packages to latest compatible versions
[INFO] [stderr]       Adding convert_case v0.6.0 (available: v0.8.0)
[INFO] [stderr]       Adding syn v1.0.109 (available: v2.0.106)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 907ac40350ea64990d5c4e1b08c90e04ee18866ce70ae0bf9925377a7d75af5c
[INFO] running `Command { std: "docker" "start" "-a" "907ac40350ea64990d5c4e1b08c90e04ee18866ce70ae0bf9925377a7d75af5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "907ac40350ea64990d5c4e1b08c90e04ee18866ce70ae0bf9925377a7d75af5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "907ac40350ea64990d5c4e1b08c90e04ee18866ce70ae0bf9925377a7d75af5c", kill_on_drop: false }`
[INFO] [stdout] 907ac40350ea64990d5c4e1b08c90e04ee18866ce70ae0bf9925377a7d75af5c
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5ebe0ab52edb865fb433bb7c362ef40d57fc4ff5bf0c3f9ca22e69e3b953fcd2
[INFO] running `Command { std: "docker" "start" "-a" "5ebe0ab52edb865fb433bb7c362ef40d57fc4ff5bf0c3f9ca22e69e3b953fcd2", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling unicode-segmentation v1.12.0
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling derive_constructors_proc v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert_case::Casing`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use convert_case::Casing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `syn::parse::Parse`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::parse::Parse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpectElseOption`
[INFO] [stdout]   --> src/lib.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::utils::{ExpectElseOption, ExpectElseResult, print_info};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_start`
[INFO] [stdout]    --> src/utils.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let is_start = true;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]    --> src/utils.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 TokenTree::Ident(ref ident) => idents.push(syn::parse::<Ident>(TokenStream::from(token)).unwrap()),
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parsing_structs.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut idents_and_groups = attr_contents;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fields_as_const_defaults_tokens` is never used
[INFO] [stdout]   --> src/utils.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) fn fields_as_const_defaults_tokens(variant: &Variant) -> Option<proc_macro2::TokenStream> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_separated_idents` is never used
[INFO] [stdout]   --> src/utils.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub(crate) fn parse_separated_idents(input: ParseStream) -> Result<Vec<Ident>, Error> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_attribute_last_in_path` is never used
[INFO] [stdout]   --> src/utils.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub(crate) fn find_attribute_last_in_path<'attr>(attrs: &'attr Vec<Attribute>, attribute_ident: &str) -> Option<&'attr Attribute> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__try_from__for_struct` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn tokens_for__try_from__for_struct(name: Ident, fields_info: FieldsInfo, try_from_info: TryFromInfo, constructor_fn_name: Option<Ident>)...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_try_from_for_struct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__from__for_struct` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn tokens_for__from__for_struct(name: Ident, fields_info: FieldsInfo, constructor_fn_name: Option<Ident>) -> TokenStream {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_struct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__from__for_enum` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:385:4
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn tokens_for__from__for_enum(name: Ident, enum_data: DataEnum) -> TokenStream {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_enum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.21s
[INFO] running `Command { std: "docker" "inspect" "5ebe0ab52edb865fb433bb7c362ef40d57fc4ff5bf0c3f9ca22e69e3b953fcd2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5ebe0ab52edb865fb433bb7c362ef40d57fc4ff5bf0c3f9ca22e69e3b953fcd2", kill_on_drop: false }`
[INFO] [stdout] 5ebe0ab52edb865fb433bb7c362ef40d57fc4ff5bf0c3f9ca22e69e3b953fcd2
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 1776768a5c1f37c488a4f8e063b76c7d92735e937bed883499fa7f9fd0c2a179
[INFO] running `Command { std: "docker" "start" "-a" "1776768a5c1f37c488a4f8e063b76c7d92735e937bed883499fa7f9fd0c2a179", kill_on_drop: false }`
[INFO] [stderr]    Compiling derive_constructors_proc v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert_case::Casing`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use convert_case::Casing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpectElseOption`
[INFO] [stdout]   --> src/lib.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::utils::{ExpectElseOption, ExpectElseResult, print_info};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `syn::parse::Parse`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::parse::Parse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_start`
[INFO] [stdout]    --> src/utils.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let is_start = true;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]    --> src/utils.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 TokenTree::Ident(ref ident) => idents.push(syn::parse::<Ident>(TokenStream::from(token)).unwrap()),
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parsing_structs.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut idents_and_groups = attr_contents;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fields_as_const_defaults_tokens` is never used
[INFO] [stdout]   --> src/utils.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) fn fields_as_const_defaults_tokens(variant: &Variant) -> Option<proc_macro2::TokenStream> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_separated_idents` is never used
[INFO] [stdout]   --> src/utils.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub(crate) fn parse_separated_idents(input: ParseStream) -> Result<Vec<Ident>, Error> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_attribute_last_in_path` is never used
[INFO] [stdout]   --> src/utils.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub(crate) fn find_attribute_last_in_path<'attr>(attrs: &'attr Vec<Attribute>, attribute_ident: &str) -> Option<&'attr Attribute> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__try_from__for_struct` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn tokens_for__try_from__for_struct(name: Ident, fields_info: FieldsInfo, try_from_info: TryFromInfo, constructor_fn_name: Option<Ident>)...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_try_from_for_struct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__from__for_struct` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn tokens_for__from__for_struct(name: Ident, fields_info: FieldsInfo, constructor_fn_name: Option<Ident>) -> TokenStream {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_struct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__from__for_enum` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:385:4
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn tokens_for__from__for_enum(name: Ident, enum_data: DataEnum) -> TokenStream {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_enum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/lib.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `convert_case::Casing`
[INFO] [stdout]  --> src/lib.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use convert_case::Casing;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `syn::parse::Parse`
[INFO] [stdout]  --> src/lib.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use syn::parse::Parse;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ExpectElseOption`
[INFO] [stdout]   --> src/lib.rs:10:20
[INFO] [stdout]    |
[INFO] [stdout] 10 | use crate::utils::{ExpectElseOption, ExpectElseResult, print_info};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `is_start`
[INFO] [stdout]    --> src/utils.rs:103:9
[INFO] [stdout]     |
[INFO] [stdout] 103 |     let is_start = true;
[INFO] [stdout]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_start`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ident`
[INFO] [stdout]    --> src/utils.rs:110:38
[INFO] [stdout]     |
[INFO] [stdout] 110 |                 TokenTree::Ident(ref ident) => idents.push(syn::parse::<Ident>(TokenStream::from(token)).unwrap()),
[INFO] [stdout]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/parsing_structs.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut idents_and_groups = attr_contents;
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fields_as_const_defaults_tokens` is never used
[INFO] [stdout]   --> src/utils.rs:62:15
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub(crate) fn fields_as_const_defaults_tokens(variant: &Variant) -> Option<proc_macro2::TokenStream> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `parse_separated_idents` is never used
[INFO] [stdout]   --> src/utils.rs:74:15
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub(crate) fn parse_separated_idents(input: ParseStream) -> Result<Vec<Ident>, Error> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `find_attribute_last_in_path` is never used
[INFO] [stdout]   --> src/utils.rs:89:15
[INFO] [stdout]    |
[INFO] [stdout] 89 | pub(crate) fn find_attribute_last_in_path<'attr>(attrs: &'attr Vec<Attribute>, attribute_ident: &str) -> Option<&'attr Attribute> {
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__try_from__for_struct` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:268:4
[INFO] [stdout]     |
[INFO] [stdout] 268 | fn tokens_for__try_from__for_struct(name: Ident, fields_info: FieldsInfo, try_from_info: TryFromInfo, constructor_fn_name: Option<Ident>)...
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_try_from_for_struct`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__from__for_struct` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:348:4
[INFO] [stdout]     |
[INFO] [stdout] 348 | fn tokens_for__from__for_struct(name: Ident, fields_info: FieldsInfo, constructor_fn_name: Option<Ident>) -> TokenStream {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_struct`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `tokens_for__from__for_enum` should have a snake case name
[INFO] [stdout]    --> src/lib.rs:385:4
[INFO] [stdout]     |
[INFO] [stdout] 385 | fn tokens_for__from__for_enum(name: Ident, enum_data: DataEnum) -> TokenStream {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_enum`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.03s
[INFO] running `Command { std: "docker" "inspect" "1776768a5c1f37c488a4f8e063b76c7d92735e937bed883499fa7f9fd0c2a179", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1776768a5c1f37c488a4f8e063b76c7d92735e937bed883499fa7f9fd0c2a179", kill_on_drop: false }`
[INFO] [stdout] 1776768a5c1f37c488a4f8e063b76c7d92735e937bed883499fa7f9fd0c2a179
[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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3d7fb19628e1ac6c9b0b85aa43508d982891795d1b29e8ac78b7c8545074c249
[INFO] running `Command { std: "docker" "start" "-a" "3d7fb19628e1ac6c9b0b85aa43508d982891795d1b29e8ac78b7c8545074c249", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::str::FromStr`
[INFO] [stderr]  --> src/lib.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use std::str::FromStr;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `convert_case::Casing`
[INFO] [stderr]  --> src/lib.rs:4:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | use convert_case::Casing;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `syn::parse::Parse`
[INFO] [stderr]  --> src/lib.rs:8:5
[INFO] [stderr]   |
[INFO] [stderr] 8 | use syn::parse::Parse;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ExpectElseOption`
[INFO] [stderr]   --> src/lib.rs:10:20
[INFO] [stderr]    |
[INFO] [stderr] 10 | use crate::utils::{ExpectElseOption, ExpectElseResult, print_info};
[INFO] [stderr]    |                    ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `is_start`
[INFO] [stderr]    --> src/utils.rs:103:9
[INFO] [stderr]     |
[INFO] [stderr] 103 |     let is_start = true;
[INFO] [stderr]     |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_is_start`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ident`
[INFO] [stderr]    --> src/utils.rs:110:38
[INFO] [stderr]     |
[INFO] [stderr] 110 |                 TokenTree::Ident(ref ident) => idents.push(syn::parse::<Ident>(TokenStream::from(token)).unwrap()),
[INFO] [stderr]     |                                      ^^^^^ help: if this is intentional, prefix it with an underscore: `_ident`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/parsing_structs.rs:42:13
[INFO] [stderr]    |
[INFO] [stderr] 42 |         let mut idents_and_groups = attr_contents;
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `fields_as_const_defaults_tokens` is never used
[INFO] [stderr]   --> src/utils.rs:62:15
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub(crate) fn fields_as_const_defaults_tokens(variant: &Variant) -> Option<proc_macro2::TokenStream> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `parse_separated_idents` is never used
[INFO] [stderr]   --> src/utils.rs:74:15
[INFO] [stderr]    |
[INFO] [stderr] 74 | pub(crate) fn parse_separated_idents(input: ParseStream) -> Result<Vec<Ident>, Error> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `find_attribute_last_in_path` is never used
[INFO] [stderr]   --> src/utils.rs:89:15
[INFO] [stderr]    |
[INFO] [stderr] 89 | pub(crate) fn find_attribute_last_in_path<'attr>(attrs: &'attr Vec<Attribute>, attribute_ident: &str) -> Option<&'attr Attribute> {
[INFO] [stderr]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `tokens_for__try_from__for_struct` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:268:4
[INFO] [stderr]     |
[INFO] [stderr] 268 | fn tokens_for__try_from__for_struct(name: Ident, fields_info: FieldsInfo, try_from_info: TryFromInfo, constructor_fn_name: Option<Ident>)...
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_try_from_for_struct`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: function `tokens_for__from__for_struct` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:348:4
[INFO] [stderr]     |
[INFO] [stderr] 348 | fn tokens_for__from__for_struct(name: Ident, fields_info: FieldsInfo, constructor_fn_name: Option<Ident>) -> TokenStream {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_struct`
[INFO] [stderr] 
[INFO] [stderr] warning: function `tokens_for__from__for_enum` should have a snake case name
[INFO] [stderr]    --> src/lib.rs:385:4
[INFO] [stderr]     |
[INFO] [stderr] 385 | fn tokens_for__from__for_enum(name: Ident, enum_data: DataEnum) -> TokenStream {
[INFO] [stderr]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: convert the identifier to snake case: `tokens_for_from_for_enum`
[INFO] [stderr] 
[INFO] [stderr] warning: `derive_constructors_proc` (lib) generated 13 warnings (run `cargo fix --lib -p derive_constructors_proc` to apply 1 suggestion)
[INFO] [stderr] warning: `derive_constructors_proc` (lib test) generated 13 warnings (13 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/derive_constructors_proc-74c6a14aaebcdafe)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests derive_constructors_proc
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/lib.rs - constructor (line 56) ... ok
[INFO] [stdout] test src/lib.rs - constructor (line 102) ... ok
[INFO] [stdout] test src/lib.rs - derive_from (line 181) ... ok
[INFO] [stdout] test src/lib.rs - constructor (line 77) ... ok
[INFO] [stdout] test src/lib.rs - derive_try_from (line 229) ... ok
[INFO] [stdout] test src/lib.rs - derive_from (line 201) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.68s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "3d7fb19628e1ac6c9b0b85aa43508d982891795d1b29e8ac78b7c8545074c249", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d7fb19628e1ac6c9b0b85aa43508d982891795d1b29e8ac78b7c8545074c249", kill_on_drop: false }`
[INFO] [stdout] 3d7fb19628e1ac6c9b0b85aa43508d982891795d1b29e8ac78b7c8545074c249
