[INFO] fetching crate finny_derive 0.2.0...
[INFO] testing finny_derive-0.2.0 against try#c2e32f1c9652b13ed99608599c1e855462f421f3 for pr-146098-7
[INFO] extracting crate finny_derive 0.2.0 into /workspace/builds/worker-2-tc2/source
[INFO] started tweaking crates.io crate finny_derive 0.2.0
[INFO] finished tweaking crates.io crate finny_derive 0.2.0
[INFO] tweaked toml for crates.io crate finny_derive 0.2.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate finny_derive 0.2.0 on toolchain c2e32f1c9652b13ed99608599c1e855462f421f3
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "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" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 17 packages to latest compatible versions
[INFO] [stderr]       Adding petgraph v0.5.1 (available: v0.8.3)
[INFO] [stderr]       Adding syn v1.0.109 (available: v2.0.110)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b61a96b19edfa4dce38d194f114d6232f8dce0d4d2ae99f800494cc9ecbd4146
[INFO] running `Command { std: "docker" "start" "-a" "b61a96b19edfa4dce38d194f114d6232f8dce0d4d2ae99f800494cc9ecbd4146", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b61a96b19edfa4dce38d194f114d6232f8dce0d4d2ae99f800494cc9ecbd4146", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b61a96b19edfa4dce38d194f114d6232f8dce0d4d2ae99f800494cc9ecbd4146", kill_on_drop: false }`
[INFO] [stdout] b61a96b19edfa4dce38d194f114d6232f8dce0d4d2ae99f800494cc9ecbd4146
[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" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 83a286b68c339f895e289cd73f9eb2fa3642dff11bf6e8b4fb6529e8fb018749
[INFO] running `Command { std: "docker" "start" "-a" "83a286b68c339f895e289cd73f9eb2fa3642dff11bf6e8b4fb6529e8fb018749", kill_on_drop: false }`
[INFO] [stderr]    Compiling hashbrown v0.12.3
[INFO] [stderr]    Compiling ryu v1.0.20
[INFO] [stderr]    Compiling itoa v1.0.15
[INFO] [stderr]    Compiling fixedbitset v0.2.0
[INFO] [stderr]    Compiling serde_json v1.0.145
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling syn v2.0.110
[INFO] [stderr]    Compiling petgraph v0.5.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling finny_derive v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Span`
[INFO] [stdout]  --> src/codegen.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use proc_macro2::{Span, TokenStream};
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/codegen_meta.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathSegment`, `TypePath`, and `parse::Parse`
[INFO] [stdout]  --> src/meta/plantuml.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use syn::{PathSegment, TypePath, parse::Parse};
[INFO] [stdout]   |           ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/parse.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprMethodCall`, `Expr`, `ParseStream`, and `self`
[INFO] [stdout]  --> src/parse.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stdout]   |                  ^^^^  ^^^^^^^^^^^^^^                                   ^^^^         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assert_no_generics`, `get_closure`, `get_generics`, and `get_method_receiver_ident`
[INFO] [stdout]  --> src/parse.rs:6:53
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...s, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, t...
[INFO] [stdout]   |       ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^                                                      ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Parse`
[INFO] [stdout]  --> src/parse.rs:4:79
[INFO] [stdout]   |
[INFO] [stdout] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stdout]   |                                                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/codegen.rs:1162:9
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     let mut q = quote! {
[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: unused variable: `ty`
[INFO] [stdout]     --> src/codegen.rs:1042:70
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         new_fields_vec.extend(our_timers_storage.iter().map(|(field, ty)| quote! {
[INFO] [stdout]      |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]     --> src/codegen.rs:1026:84
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         timers_storage_struct_fields.extend(our_timers_storage.iter().map(|(field, ty)| {
[INFO] [stdout]      |                                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:954:90
[INFO] [stdout]     |
[INFO] [stdout] 954 |         enum_iter_matches.append_separated(submachine_iters.iter().enumerate().map(|(i, (ty, field))| {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/codegen.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |         for (i, (_, state)) in fsm.fsm.states.iter().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/codegen.rs:1135:26
[INFO] [stdout]      |
[INFO] [stdout] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stdout]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub`
[INFO] [stdout]     --> src/codegen.rs:1135:33
[INFO] [stdout]      |
[INFO] [stdout] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stdout]      |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_sub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/codegen_meta.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let info = to_info(fsm);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_ty_name`
[INFO] [stdout]    --> src/codegen_meta.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let fsm_ty_name = tokens_to_string(&strip_generics(fsm_ty.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_info_ty`
[INFO] [stdout]    --> src/codegen_meta.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let fsm_info_ty = &fsm.base.fsm_info_ty;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_info_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_ty_name_snake`
[INFO] [stdout]    --> src/codegen_meta.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let fsm_ty_name_snake = crate::utils::to_snake_case(&tokens_to_string(&fsm_ty));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name_snake`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_impl`
[INFO] [stdout]    --> src/codegen_meta.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_type`
[INFO] [stdout]    --> src/codegen_meta.rs:128:29
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_where`
[INFO] [stdout]    --> src/codegen_meta.rs:128:48
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_where`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/parse.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn parse(attr: TokenStream, item: TokenStream) -> syn::Result<Self> {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parse_fsm.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout]  45 |                 FsmBlock::MethodCall(mc) => {
[INFO] [stdout]     |                 ------------------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 134 |                 _ => todo!("unsupported block!")
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parse_fsm.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/parse_fsm.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   [with_context @ MethodOverviewRef { name: "with_context", .. }, st @ .. ] => {
[INFO] [stdout]     |                       ------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 111 | ...                   [st @ ..] => {
[INFO] [stdout]     |                       --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse_fsm.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |     pub fn validate(mut self, input_fn: &ItemFn) -> syn::Result<ValidatedFsm> {
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/parse_fsm.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |             for (ty, ev) in self.events.iter() {
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             for mut seg in &mut tp.path.segments {
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_plant_uml` is never used
[INFO] [stdout]  --> src/meta/plantuml.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn to_plant_uml(fsm: &FinnyFsm) -> Result<(String, TokenStream), std::fmt::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_state` is never read
[INFO] [stdout]    --> src/parse.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct FsmRegion {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 147 |     pub region_id: usize,
[INFO] [stdout] 148 |     pub initial_state: syn::Type,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FsmRegion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]    --> src/parse.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum FsmTransitionEvent {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] 161 |     Stop,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FsmBlockStruct` is never constructed
[INFO] [stdout]   --> src/parse_blocks.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct FsmBlockStruct {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_ty_ident` is never used
[INFO] [stdout]    --> src/utils.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn get_ty_ident(ty: &syn::Type) -> syn::Result<&syn::Ident> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generics` is never read
[INFO] [stdout]  --> src/fsm.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FsmTypes {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     generics: syn::Generics
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `FsmTypes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse_fsm.rs:403:19
[INFO] [stdout]     |
[INFO] [stdout] 403 |     pub fn as_ref(&self) -> MethodOverviewRef {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 403 |     pub fn as_ref(&self) -> MethodOverviewRef<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.86s
[INFO] running `Command { std: "docker" "inspect" "83a286b68c339f895e289cd73f9eb2fa3642dff11bf6e8b4fb6529e8fb018749", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "83a286b68c339f895e289cd73f9eb2fa3642dff11bf6e8b4fb6529e8fb018749", kill_on_drop: false }`
[INFO] [stdout] 83a286b68c339f895e289cd73f9eb2fa3642dff11bf6e8b4fb6529e8fb018749
[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" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8e88ecb9345d3f24d695b530e3912b5d55f070a0539156a0e06235a462887bd0
[INFO] running `Command { std: "docker" "start" "-a" "8e88ecb9345d3f24d695b530e3912b5d55f070a0539156a0e06235a462887bd0", kill_on_drop: false }`
[INFO] [stderr]    Compiling finny_derive v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Span`
[INFO] [stdout]  --> src/codegen.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use proc_macro2::{Span, TokenStream};
[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: `Span`
[INFO] [stdout]  --> src/codegen.rs:3:19
[INFO] [stdout]   |
[INFO] [stdout] 3 | use proc_macro2::{Span, TokenStream};
[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: `std::collections::HashMap`
[INFO] [stdout]  --> src/codegen_meta.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathSegment`, `TypePath`, and `parse::Parse`
[INFO] [stdout]  --> src/meta/plantuml.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use syn::{PathSegment, TypePath, parse::Parse};
[INFO] [stdout]   |           ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/parse.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> src/codegen_meta.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PathSegment`, `TypePath`, and `parse::Parse`
[INFO] [stdout]  --> src/meta/plantuml.rs:3:11
[INFO] [stdout]   |
[INFO] [stdout] 3 | use syn::{PathSegment, TypePath, parse::Parse};
[INFO] [stdout]   |           ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprMethodCall`, `Expr`, `ParseStream`, and `self`
[INFO] [stdout]  --> src/parse.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stdout]   |                  ^^^^  ^^^^^^^^^^^^^^                                   ^^^^         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]  --> src/parse.rs:1:33
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assert_no_generics`, `get_closure`, `get_generics`, and `get_method_receiver_ident`
[INFO] [stdout]  --> src/parse.rs:6:53
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...s, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, t...
[INFO] [stdout]   |       ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^                                                      ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ExprMethodCall`, `Expr`, `ParseStream`, and `self`
[INFO] [stdout]  --> src/parse.rs:4:18
[INFO] [stdout]   |
[INFO] [stdout] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stdout]   |                  ^^^^  ^^^^^^^^^^^^^^                                   ^^^^         ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `assert_no_generics`, `get_closure`, `get_generics`, and `get_method_receiver_ident`
[INFO] [stdout]  --> src/parse.rs:6:53
[INFO] [stdout]   |
[INFO] [stdout] 6 | ...s, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, t...
[INFO] [stdout]   |       ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^                                                      ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Parse`
[INFO] [stdout]  --> src/parse.rs:4:79
[INFO] [stdout]   |
[INFO] [stdout] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stdout]   |                                                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Parse`
[INFO] [stdout]  --> src/parse.rs:4:79
[INFO] [stdout]   |
[INFO] [stdout] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stdout]   |                                                                               ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/codegen.rs:1162:9
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     let mut q = quote! {
[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: unused variable: `ty`
[INFO] [stdout]     --> src/codegen.rs:1042:70
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         new_fields_vec.extend(our_timers_storage.iter().map(|(field, ty)| quote! {
[INFO] [stdout]      |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]     --> src/codegen.rs:1026:84
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         timers_storage_struct_fields.extend(our_timers_storage.iter().map(|(field, ty)| {
[INFO] [stdout]      |                                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:954:90
[INFO] [stdout]     |
[INFO] [stdout] 954 |         enum_iter_matches.append_separated(submachine_iters.iter().enumerate().map(|(i, (ty, field))| {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/codegen.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |         for (i, (_, state)) in fsm.fsm.states.iter().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/codegen.rs:1135:26
[INFO] [stdout]      |
[INFO] [stdout] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stdout]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub`
[INFO] [stdout]     --> src/codegen.rs:1135:33
[INFO] [stdout]      |
[INFO] [stdout] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stdout]      |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_sub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]     --> src/codegen.rs:1162:9
[INFO] [stdout]      |
[INFO] [stdout] 1162 |     let mut q = quote! {
[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: unused variable: `info`
[INFO] [stdout]    --> src/codegen_meta.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let info = to_info(fsm);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_ty_name`
[INFO] [stdout]    --> src/codegen_meta.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let fsm_ty_name = tokens_to_string(&strip_generics(fsm_ty.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_info_ty`
[INFO] [stdout]    --> src/codegen_meta.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let fsm_info_ty = &fsm.base.fsm_info_ty;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_info_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_ty_name_snake`
[INFO] [stdout]    --> src/codegen_meta.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let fsm_ty_name_snake = crate::utils::to_snake_case(&tokens_to_string(&fsm_ty));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name_snake`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_impl`
[INFO] [stdout]    --> src/codegen_meta.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_type`
[INFO] [stdout]    --> src/codegen_meta.rs:128:29
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_where`
[INFO] [stdout]    --> src/codegen_meta.rs:128:48
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_where`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]     --> src/codegen.rs:1042:70
[INFO] [stdout]      |
[INFO] [stdout] 1042 |         new_fields_vec.extend(our_timers_storage.iter().map(|(field, ty)| quote! {
[INFO] [stdout]      |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout]      |
[INFO] [stdout]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]     --> src/codegen.rs:1026:84
[INFO] [stdout]      |
[INFO] [stdout] 1026 |         timers_storage_struct_fields.extend(our_timers_storage.iter().map(|(field, ty)| {
[INFO] [stdout]      |                                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:954:90
[INFO] [stdout]     |
[INFO] [stdout] 954 |         enum_iter_matches.append_separated(submachine_iters.iter().enumerate().map(|(i, (ty, field))| {
[INFO] [stdout]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/codegen.rs:34:14
[INFO] [stdout]    |
[INFO] [stdout] 34 |         for (i, (_, state)) in fsm.fsm.states.iter().enumerate() {
[INFO] [stdout]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `state`
[INFO] [stdout]     --> src/codegen.rs:1135:26
[INFO] [stdout]      |
[INFO] [stdout] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stdout]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `sub`
[INFO] [stdout]     --> src/codegen.rs:1135:33
[INFO] [stdout]      |
[INFO] [stdout] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stdout]      |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_sub`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `info`
[INFO] [stdout]    --> src/codegen_meta.rs:120:9
[INFO] [stdout]     |
[INFO] [stdout] 120 |     let info = to_info(fsm);
[INFO] [stdout]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_ty_name`
[INFO] [stdout]    --> src/codegen_meta.rs:125:9
[INFO] [stdout]     |
[INFO] [stdout] 125 |     let fsm_ty_name = tokens_to_string(&strip_generics(fsm_ty.clone()));
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_info_ty`
[INFO] [stdout]    --> src/codegen_meta.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let fsm_info_ty = &fsm.base.fsm_info_ty;
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_info_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_ty_name_snake`
[INFO] [stdout]    --> src/codegen_meta.rs:127:9
[INFO] [stdout]     |
[INFO] [stdout] 127 |     let fsm_ty_name_snake = crate::utils::to_snake_case(&tokens_to_string(&fsm_ty));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name_snake`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_impl`
[INFO] [stdout]    --> src/codegen_meta.rs:128:10
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_impl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_type`
[INFO] [stdout]    --> src/codegen_meta.rs:128:29
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_type`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fsm_generics_where`
[INFO] [stdout]    --> src/codegen_meta.rs:128:48
[INFO] [stdout]     |
[INFO] [stdout] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_where`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/parse.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn parse(attr: TokenStream, item: TokenStream) -> syn::Result<Self> {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `attr`
[INFO] [stdout]   --> src/parse.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub fn parse(attr: TokenStream, item: TokenStream) -> syn::Result<Self> {
[INFO] [stdout]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parse_fsm.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout]  45 |                 FsmBlock::MethodCall(mc) => {
[INFO] [stdout]     |                 ------------------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 134 |                 _ => todo!("unsupported block!")
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parse_fsm.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/parse_fsm.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   [with_context @ MethodOverviewRef { name: "with_context", .. }, st @ .. ] => {
[INFO] [stdout]     |                       ------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 111 | ...                   [st @ ..] => {
[INFO] [stdout]     |                       --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse_fsm.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |     pub fn validate(mut self, input_fn: &ItemFn) -> syn::Result<ValidatedFsm> {
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/parse_fsm.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |             for (ty, ev) in self.events.iter() {
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parse_fsm.rs:134:17
[INFO] [stdout]     |
[INFO] [stdout]  45 |                 FsmBlock::MethodCall(mc) => {
[INFO] [stdout]     |                 ------------------------ matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 134 |                 _ => todo!("unsupported block!")
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/parse_fsm.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stdout]     |                       ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/parse_fsm.rs:114:33
[INFO] [stdout]     |
[INFO] [stdout] 102 | ...                   [with_context @ MethodOverviewRef { name: "with_context", .. }, st @ .. ] => {
[INFO] [stdout]     |                       ------------------------------------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 111 | ...                   [st @ ..] => {
[INFO] [stdout]     |                       --------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stdout]     |                       ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             for mut seg in &mut tp.path.segments {
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse_fsm.rs:198:21
[INFO] [stdout]     |
[INFO] [stdout] 198 |     pub fn validate(mut self, input_fn: &ItemFn) -> syn::Result<ValidatedFsm> {
[INFO] [stdout]     |                     ----^^^^
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/parse_fsm.rs:233:18
[INFO] [stdout]     |
[INFO] [stdout] 233 |             for (ty, ev) in self.events.iter() {
[INFO] [stdout]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/utils.rs:44:17
[INFO] [stdout]    |
[INFO] [stdout] 44 |             for mut seg in &mut tp.path.segments {
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_plant_uml` is never used
[INFO] [stdout]  --> src/meta/plantuml.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn to_plant_uml(fsm: &FinnyFsm) -> Result<(String, TokenStream), std::fmt::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_state` is never read
[INFO] [stdout]    --> src/parse.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct FsmRegion {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 147 |     pub region_id: usize,
[INFO] [stdout] 148 |     pub initial_state: syn::Type,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FsmRegion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]    --> src/parse.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum FsmTransitionEvent {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] 161 |     Stop,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FsmBlockStruct` is never constructed
[INFO] [stdout]   --> src/parse_blocks.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct FsmBlockStruct {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_ty_ident` is never used
[INFO] [stdout]    --> src/utils.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn get_ty_ident(ty: &syn::Type) -> syn::Result<&syn::Ident> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generics` is never read
[INFO] [stdout]  --> src/fsm.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FsmTypes {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     generics: syn::Generics
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `FsmTypes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse_fsm.rs:403:19
[INFO] [stdout]     |
[INFO] [stdout] 403 |     pub fn as_ref(&self) -> MethodOverviewRef {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 403 |     pub fn as_ref(&self) -> MethodOverviewRef<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `to_plant_uml` is never used
[INFO] [stdout]  --> src/meta/plantuml.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub fn to_plant_uml(fsm: &FinnyFsm) -> Result<(String, TokenStream), std::fmt::Error> {
[INFO] [stdout]   |        ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `initial_state` is never read
[INFO] [stdout]    --> src/parse.rs:148:9
[INFO] [stdout]     |
[INFO] [stdout] 146 | pub struct FsmRegion {
[INFO] [stdout]     |            --------- field in this struct
[INFO] [stdout] 147 |     pub region_id: usize,
[INFO] [stdout] 148 |     pub initial_state: syn::Type,
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FsmRegion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Stop` is never constructed
[INFO] [stdout]    --> src/parse.rs:161:5
[INFO] [stdout]     |
[INFO] [stdout] 160 | pub enum FsmTransitionEvent {
[INFO] [stdout]     |          ------------------ variant in this enum
[INFO] [stdout] 161 |     Stop,
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FsmBlockStruct` is never constructed
[INFO] [stdout]   --> src/parse_blocks.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct FsmBlockStruct {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `get_ty_ident` is never used
[INFO] [stdout]    --> src/utils.rs:136:8
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub fn get_ty_ident(ty: &syn::Type) -> syn::Result<&syn::Ident> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `generics` is never read
[INFO] [stdout]  --> src/fsm.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct FsmTypes {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 7 |     generics: syn::Generics
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `FsmTypes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/parse_fsm.rs:403:19
[INFO] [stdout]     |
[INFO] [stdout] 403 |     pub fn as_ref(&self) -> MethodOverviewRef {
[INFO] [stdout]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 403 |     pub fn as_ref(&self) -> MethodOverviewRef<'_> {
[INFO] [stdout]     |                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.11s
[INFO] running `Command { std: "docker" "inspect" "8e88ecb9345d3f24d695b530e3912b5d55f070a0539156a0e06235a462887bd0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e88ecb9345d3f24d695b530e3912b5d55f070a0539156a0e06235a462887bd0", kill_on_drop: false }`
[INFO] [stdout] 8e88ecb9345d3f24d695b530e3912b5d55f070a0539156a0e06235a462887bd0
[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" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c2e32f1c9652b13ed99608599c1e855462f421f3" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 2f496b06caa2e1de0d7a4b46ec4badd8209f0d1099a4122a63e9b0a20a551770
[INFO] running `Command { std: "docker" "start" "-a" "2f496b06caa2e1de0d7a4b46ec4badd8209f0d1099a4122a63e9b0a20a551770", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Span`
[INFO] [stderr]  --> src/codegen.rs:3:19
[INFO] [stderr]   |
[INFO] [stderr] 3 | use proc_macro2::{Span, TokenStream};
[INFO] [stderr]   |                   ^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> src/codegen_meta.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PathSegment`, `TypePath`, and `parse::Parse`
[INFO] [stderr]  --> src/meta/plantuml.rs:3:11
[INFO] [stderr]   |
[INFO] [stderr] 3 | use syn::{PathSegment, TypePath, parse::Parse};
[INFO] [stderr]   |           ^^^^^^^^^^^  ^^^^^^^^  ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `HashSet`
[INFO] [stderr]  --> src/parse.rs:1:33
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::{HashMap, HashSet};
[INFO] [stderr]   |                                 ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `ExprMethodCall`, `Expr`, `ParseStream`, and `self`
[INFO] [stderr]  --> src/parse.rs:4:18
[INFO] [stderr]   |
[INFO] [stderr] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stderr]   |                  ^^^^  ^^^^^^^^^^^^^^                                   ^^^^         ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `assert_no_generics`, `get_closure`, `get_generics`, and `get_method_receiver_ident`
[INFO] [stderr]  --> src/parse.rs:6:53
[INFO] [stderr]   |
[INFO] [stderr] 6 | ...s, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, t...
[INFO] [stderr]   |       ^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^                                                      ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `Parse`
[INFO] [stderr]  --> src/parse.rs:4:79
[INFO] [stderr]   |
[INFO] [stderr] 4 | use syn::{Error, Expr, ExprMethodCall, GenericArgument, ItemFn, parse::{self, Parse, ParseStream}, spanned::Spanned};
[INFO] [stderr]   |                                                                               ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]     --> src/codegen.rs:1162:9
[INFO] [stderr]      |
[INFO] [stderr] 1162 |     let mut q = quote! {
[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: unused variable: `ty`
[INFO] [stderr]     --> src/codegen.rs:1042:70
[INFO] [stderr]      |
[INFO] [stderr] 1042 |         new_fields_vec.extend(our_timers_storage.iter().map(|(field, ty)| quote! {
[INFO] [stderr]      |                                                                      ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr]      |
[INFO] [stderr]      = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]     --> src/codegen.rs:1026:84
[INFO] [stderr]      |
[INFO] [stderr] 1026 |         timers_storage_struct_fields.extend(our_timers_storage.iter().map(|(field, ty)| {
[INFO] [stderr]      |                                                                                    ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]    --> src/codegen.rs:954:90
[INFO] [stderr]     |
[INFO] [stderr] 954 |         enum_iter_matches.append_separated(submachine_iters.iter().enumerate().map(|(i, (ty, field))| {
[INFO] [stderr]     |                                                                                          ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]   --> src/codegen.rs:34:14
[INFO] [stderr]    |
[INFO] [stderr] 34 |         for (i, (_, state)) in fsm.fsm.states.iter().enumerate() {
[INFO] [stderr]    |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `state`
[INFO] [stderr]     --> src/codegen.rs:1135:26
[INFO] [stderr]      |
[INFO] [stderr] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stderr]      |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_state`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `sub`
[INFO] [stderr]     --> src/codegen.rs:1135:33
[INFO] [stderr]      |
[INFO] [stderr] 1135 |             for (sub_ty, state, sub) in subs {
[INFO] [stderr]      |                                 ^^^ help: if this is intentional, prefix it with an underscore: `_sub`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `info`
[INFO] [stderr]    --> src/codegen_meta.rs:120:9
[INFO] [stderr]     |
[INFO] [stderr] 120 |     let info = to_info(fsm);
[INFO] [stderr]     |         ^^^^ help: if this is intentional, prefix it with an underscore: `_info`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fsm_ty_name`
[INFO] [stderr]    --> src/codegen_meta.rs:125:9
[INFO] [stderr]     |
[INFO] [stderr] 125 |     let fsm_ty_name = tokens_to_string(&strip_generics(fsm_ty.clone()));
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fsm_info_ty`
[INFO] [stderr]    --> src/codegen_meta.rs:126:9
[INFO] [stderr]     |
[INFO] [stderr] 126 |     let fsm_info_ty = &fsm.base.fsm_info_ty;
[INFO] [stderr]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_info_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fsm_ty_name_snake`
[INFO] [stderr]    --> src/codegen_meta.rs:127:9
[INFO] [stderr]     |
[INFO] [stderr] 127 |     let fsm_ty_name_snake = crate::utils::to_snake_case(&tokens_to_string(&fsm_ty));
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_ty_name_snake`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fsm_generics_impl`
[INFO] [stderr]    --> src/codegen_meta.rs:128:10
[INFO] [stderr]     |
[INFO] [stderr] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stderr]     |          ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_impl`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fsm_generics_type`
[INFO] [stderr]    --> src/codegen_meta.rs:128:29
[INFO] [stderr]     |
[INFO] [stderr] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_type`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `fsm_generics_where`
[INFO] [stderr]    --> src/codegen_meta.rs:128:48
[INFO] [stderr]     |
[INFO] [stderr] 128 |     let (fsm_generics_impl, fsm_generics_type, fsm_generics_where) =
[INFO] [stderr]     |                                                ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_fsm_generics_where`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `attr`
[INFO] [stderr]   --> src/parse.rs:25:18
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub fn parse(attr: TokenStream, item: TokenStream) -> syn::Result<Self> {
[INFO] [stderr]    |                  ^^^^ help: if this is intentional, prefix it with an underscore: `_attr`
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/parse_fsm.rs:134:17
[INFO] [stderr]     |
[INFO] [stderr]  45 |                 FsmBlock::MethodCall(mc) => {
[INFO] [stderr]     |                 ------------------------ matches all the relevant values
[INFO] [stderr] ...
[INFO] [stderr] 134 |                 _ => todo!("unsupported block!")
[INFO] [stderr]     |                 ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unreachable pattern
[INFO] [stderr]    --> src/parse_fsm.rs:114:33
[INFO] [stderr]     |
[INFO] [stderr] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stderr]     |                       ^ no value can reach this
[INFO] [stderr]     |
[INFO] [stderr] note: multiple earlier patterns match some of the same values
[INFO] [stderr]    --> src/parse_fsm.rs:114:33
[INFO] [stderr]     |
[INFO] [stderr] 102 | ...                   [with_context @ MethodOverviewRef { name: "with_context", .. }, st @ .. ] => {
[INFO] [stderr]     |                       ------------------------------------------------------------------------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 111 | ...                   [st @ ..] => {
[INFO] [stderr]     |                       --------- matches some of the same values
[INFO] [stderr] ...
[INFO] [stderr] 114 | ...                   _ => { return Err(syn::Error::new(ty_sub_fsm.span(), "Missing with_context?")); }
[INFO] [stderr]     |                       ^ collectively making this unreachable
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/parse_fsm.rs:198:21
[INFO] [stderr]     |
[INFO] [stderr] 198 |     pub fn validate(mut self, input_fn: &ItemFn) -> syn::Result<ValidatedFsm> {
[INFO] [stderr]     |                     ----^^^^
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]    --> src/parse_fsm.rs:233:18
[INFO] [stderr]     |
[INFO] [stderr] 233 |             for (ty, ev) in self.events.iter() {
[INFO] [stderr]     |                  ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/utils.rs:44:17
[INFO] [stderr]    |
[INFO] [stderr] 44 |             for mut seg in &mut tp.path.segments {
[INFO] [stderr]    |                 ----^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: function `to_plant_uml` is never used
[INFO] [stderr]  --> src/meta/plantuml.rs:9:8
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub fn to_plant_uml(fsm: &FinnyFsm) -> Result<(String, TokenStream), std::fmt::Error> {
[INFO] [stderr]   |        ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: field `initial_state` is never read
[INFO] [stderr]    --> src/parse.rs:148:9
[INFO] [stderr]     |
[INFO] [stderr] 146 | pub struct FsmRegion {
[INFO] [stderr]     |            --------- field in this struct
[INFO] [stderr] 147 |     pub region_id: usize,
[INFO] [stderr] 148 |     pub initial_state: syn::Type,
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `FsmRegion` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: variant `Stop` is never constructed
[INFO] [stderr]    --> src/parse.rs:161:5
[INFO] [stderr]     |
[INFO] [stderr] 160 | pub enum FsmTransitionEvent {
[INFO] [stderr]     |          ------------------ variant in this enum
[INFO] [stderr] 161 |     Stop,
[INFO] [stderr]     |     ^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FsmBlockStruct` is never constructed
[INFO] [stderr]   --> src/parse_blocks.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct FsmBlockStruct {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `get_ty_ident` is never used
[INFO] [stderr]    --> src/utils.rs:136:8
[INFO] [stderr]     |
[INFO] [stderr] 136 | pub fn get_ty_ident(ty: &syn::Type) -> syn::Result<&syn::Ident> {
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: field `generics` is never read
[INFO] [stderr]  --> src/fsm.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct FsmTypes {
[INFO] [stderr]   |            -------- field in this struct
[INFO] [stderr] ...
[INFO] [stderr] 7 |     generics: syn::Generics
[INFO] [stderr]   |     ^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `FsmTypes` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/parse_fsm.rs:403:19
[INFO] [stderr]     |
[INFO] [stderr] 403 |     pub fn as_ref(&self) -> MethodOverviewRef {
[INFO] [stderr]     |                   ^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                   |
[INFO] [stderr]     |                   the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 403 |     pub fn as_ref(&self) -> MethodOverviewRef<'_> {
[INFO] [stderr]     |                                              ++++
[INFO] [stderr] 
[INFO] [stderr] warning: `finny_derive` (lib) generated 34 warnings (run `cargo fix --lib -p finny_derive` to apply 25 suggestions)
[INFO] [stderr] warning: `finny_derive` (lib test) generated 34 warnings (34 duplicates)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/finny_derive-488581313911008b)
[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 finny_derive
[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] running `Command { std: "docker" "inspect" "2f496b06caa2e1de0d7a4b46ec4badd8209f0d1099a4122a63e9b0a20a551770", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2f496b06caa2e1de0d7a4b46ec4badd8209f0d1099a4122a63e9b0a20a551770", kill_on_drop: false }`
[INFO] [stdout] 2f496b06caa2e1de0d7a4b46ec4badd8209f0d1099a4122a63e9b0a20a551770
