[INFO] fetching crate derive_constructors_proc 1.0.0...
[INFO] testing derive_constructors_proc-1.0.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate derive_constructors_proc 1.0.0 into /workspace/builds/worker-1-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-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate derive_constructors_proc 1.0.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "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" "+1.100.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 6 packages to highest compatible versions
[INFO] [stderr]       Adding convert_case v0.6.0 (available: v0.12.0)
[INFO] [stderr]       Adding syn v1.0.109 (available: v3.0.9)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7
[INFO] running `Command { std: "docker" "start" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.27
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[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:34
[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<I...
[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 `release` profile [optimized] target(s) in 6.40s
[INFO] running `Command { std: "docker" "inspect" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", 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: `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:34
[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: 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:34
[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<I...
[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: 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<I...
[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 `release` profile [optimized] target(s) in 0.90s
[INFO] running `Command { std: "docker" "inspect" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", 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:34
[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<I...
[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 3 suggestions)
[INFO] [stderr] warning: `derive_constructors_proc` (lib test) generated 13 warnings (13 duplicates)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.04s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/derive_constructors_proc/f995a31e41da1a37/out/derive_constructors_proc-f995a31e41da1a37)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]    Doc-tests derive_constructors_proc
[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] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/lib.rs - constructor (line 56) ... 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] test src/lib.rs - derive_from (line 181) ... ok
[INFO] [stdout] test src/lib.rs - constructor (line 102) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.54s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7", kill_on_drop: false }`
[INFO] [stdout] 152829b302926a50de4f9c1638aea66ff9c89e2039c7d6b99ed33945594bcca7
