[INFO] fetching crate finny_derive 0.2.0... [INFO] testing finny_derive-0.2.0 against beta-2022-04-10 for beta-1.61-1 [INFO] extracting crate finny_derive 0.2.0 into /workspace/builds/worker-54/source [INFO] validating manifest of crates.io crate finny_derive 0.2.0 on toolchain beta-2022-04-10 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [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-54/source/Cargo.toml [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] d28a3b41dc8d1e9845c02e05df62441cff683abe7c0be461d816fc074aaf2322 [INFO] running `Command { std: "docker" "start" "-a" "d28a3b41dc8d1e9845c02e05df62441cff683abe7c0be461d816fc074aaf2322", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "d28a3b41dc8d1e9845c02e05df62441cff683abe7c0be461d816fc074aaf2322", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d28a3b41dc8d1e9845c02e05df62441cff683abe7c0be461d816fc074aaf2322", kill_on_drop: false }` [INFO] [stdout] d28a3b41dc8d1e9845c02e05df62441cff683abe7c0be461d816fc074aaf2322 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 7aabb3d110460f0db54f72b6e984f12ab1a0ee58140b5cf43ac2671e41fc425e [INFO] running `Command { std: "docker" "start" "-a" "7aabb3d110460f0db54f72b6e984f12ab1a0ee58140b5cf43ac2671e41fc425e", kill_on_drop: false }` [INFO] [stderr] Compiling syn v1.0.91 [INFO] [stderr] Compiling serde v1.0.136 [INFO] [stderr] Compiling hashbrown v0.11.2 [INFO] [stderr] Compiling fixedbitset v0.2.0 [INFO] [stderr] Compiling indexmap v1.8.1 [INFO] [stderr] Compiling petgraph v0.5.1 [INFO] [stderr] Compiling serde_derive v1.0.136 [INFO] [stderr] Compiling serde_json v1.0.79 [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)]` 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`, `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`, `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`, `get_method_receiver_ident` [INFO] [stdout] --> src/parse.rs:6:53 [INFO] [stdout] | [INFO] [stdout] 6 | ...cks, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, to_... [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: 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] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parse_fsm.rs:134:17 [INFO] [stdout] | [INFO] [stdout] 134 | _ => todo!("unsupported block!") [INFO] [stdout] | ^ [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] = note: `#[warn(unused_variables)]` 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: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] [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 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [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/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)]` on by default [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 { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Stop` [INFO] [stdout] --> src/parse.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | Stop, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/parse.rs:159:10 [INFO] [stdout] | [INFO] [stdout] 159 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `get_ty_ident` [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 is never read: `generics` [INFO] [stdout] --> src/fsm.rs:7:5 [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] --> src/fsm.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `to_plant_uml` [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] [INFO] [stdout] warning: 30 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 24.29s [INFO] running `Command { std: "docker" "inspect" "7aabb3d110460f0db54f72b6e984f12ab1a0ee58140b5cf43ac2671e41fc425e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7aabb3d110460f0db54f72b6e984f12ab1a0ee58140b5cf43ac2671e41fc425e", kill_on_drop: false }` [INFO] [stdout] 7aabb3d110460f0db54f72b6e984f12ab1a0ee58140b5cf43ac2671e41fc425e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 170378e7a29a3e75d5194bbe0f3bc07b1c902ba3b352e8196bf8a6655336052b [INFO] running `Command { std: "docker" "start" "-a" "170378e7a29a3e75d5194bbe0f3bc07b1c902ba3b352e8196bf8a6655336052b", kill_on_drop: false }` [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)]` 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`, `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`, `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`, `get_method_receiver_ident` [INFO] [stdout] --> src/parse.rs:6:53 [INFO] [stdout] | [INFO] [stdout] 6 | ...cks, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, to_... [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: 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] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parse_fsm.rs:134:17 [INFO] [stdout] | [INFO] [stdout] 134 | _ => todo!("unsupported block!") [INFO] [stdout] | ^ [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] = note: `#[warn(unused_variables)]` 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: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] [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 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [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] [stderr] Compiling finny_derive v0.2.0 (/opt/rustwide/workdir) [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)]` on by default [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 { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Stop` [INFO] [stdout] --> src/parse.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | Stop, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/parse.rs:159:10 [INFO] [stdout] | [INFO] [stdout] 159 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `get_ty_ident` [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 is never read: `generics` [INFO] [stdout] --> src/fsm.rs:7:5 [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] --> src/fsm.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `to_plant_uml` [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] [INFO] [stdout] warning: 30 warnings emitted [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)]` 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`, `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`, `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`, `get_method_receiver_ident` [INFO] [stdout] --> src/parse.rs:6:53 [INFO] [stdout] | [INFO] [stdout] 6 | ...cks, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, to_... [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: 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] | ^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unreachable pattern [INFO] [stdout] --> src/parse_fsm.rs:134:17 [INFO] [stdout] | [INFO] [stdout] 134 | _ => todo!("unsupported block!") [INFO] [stdout] | ^ [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] = note: `#[warn(unused_variables)]` 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: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] [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 { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [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/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)]` on by default [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 { [INFO] [stdout] | ----^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Stop` [INFO] [stdout] --> src/parse.rs:161:5 [INFO] [stdout] | [INFO] [stdout] 161 | Stop, [INFO] [stdout] | ^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] --> src/parse.rs:159:10 [INFO] [stdout] | [INFO] [stdout] 159 | #[derive(Debug, Clone)] [INFO] [stdout] | ^^^^^ ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `get_ty_ident` [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 is never read: `generics` [INFO] [stdout] --> src/fsm.rs:7:5 [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] --> src/fsm.rs:3:10 [INFO] [stdout] | [INFO] [stdout] 3 | #[derive(Clone)] [INFO] [stdout] | ^^^^^ [INFO] [stdout] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `to_plant_uml` [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] [INFO] [stdout] warning: 30 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 1.86s [INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/finny_derive-95466b56a4f33185) [INFO] running `Command { std: "docker" "inspect" "170378e7a29a3e75d5194bbe0f3bc07b1c902ba3b352e8196bf8a6655336052b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "170378e7a29a3e75d5194bbe0f3bc07b1c902ba3b352e8196bf8a6655336052b", kill_on_drop: false }` [INFO] [stdout] 170378e7a29a3e75d5194bbe0f3bc07b1c902ba3b352e8196bf8a6655336052b [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-54/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] ac6761fcc9443af3a0109bdd58fa37cb4ce8e4ada8019df9bab9d3f478d9a134 [INFO] running `Command { std: "docker" "start" "-a" "ac6761fcc9443af3a0109bdd58fa37cb4ce8e4ada8019df9bab9d3f478d9a134", 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)]` 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`, `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`, `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`, `get_method_receiver_ident` [INFO] [stderr] --> src/parse.rs:6:53 [INFO] [stderr] | [INFO] [stderr] 6 | ...cks, get_generics, get_method_receiver_ident}, parse_fsm::{FsmCodegenOptions, FsmParser}, utils::{assert_no_generics, get_closure, to_... [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: 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] | ^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unreachable_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unreachable pattern [INFO] [stderr] --> src/parse_fsm.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | _ => todo!("unsupported block!") [INFO] [stderr] | ^ [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] = note: `#[warn(unused_variables)]` 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: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] 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 { [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_attr` [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/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)]` on by default [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 { [INFO] [stderr] | ----^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Stop` [INFO] [stderr] --> src/parse.rs:161:5 [INFO] [stderr] | [INFO] [stderr] 161 | Stop, [INFO] [stderr] | ^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] note: `FsmTransitionEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] --> src/parse.rs:159:10 [INFO] [stderr] | [INFO] [stderr] 159 | #[derive(Debug, Clone)] [INFO] [stderr] | ^^^^^ ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: function is never used: `get_ty_ident` [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 is never read: `generics` [INFO] [stderr] --> src/fsm.rs:7:5 [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] --> src/fsm.rs:3:10 [INFO] [stderr] | [INFO] [stderr] 3 | #[derive(Clone)] [INFO] [stderr] | ^^^^^ [INFO] [stderr] = note: this warning originates in the derive macro `Clone` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: function is never used: `to_plant_uml` [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] warning: `finny_derive` (lib) generated 30 warnings [INFO] [stderr] warning: `finny_derive` (lib test) generated 30 warnings (30 duplicates) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.03s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/finny_derive-95466b56a4f33185) [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" "ac6761fcc9443af3a0109bdd58fa37cb4ce8e4ada8019df9bab9d3f478d9a134", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ac6761fcc9443af3a0109bdd58fa37cb4ce8e4ada8019df9bab9d3f478d9a134", kill_on_drop: false }` [INFO] [stdout] ac6761fcc9443af3a0109bdd58fa37cb4ce8e4ada8019df9bab9d3f478d9a134