[INFO] fetching crate fi-night 0.1.6... [INFO] linting fi-night-0.1.6 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate fi-night 0.1.6 into /workspace/builds/worker-7-tc1/source [INFO] started tweaking crates.io crate fi-night 0.1.6 [INFO] finished tweaking crates.io crate fi-night 0.1.6 [INFO] tweaked toml for crates.io crate fi-night 0.1.6 written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate fi-night 0.1.6 on toolchain nightly [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "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" "+nightly" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 10 packages to latest compatible versions [INFO] [stderr] Adding convert_case v0.4.0 (available: v0.11.0) [INFO] [stderr] Adding syn v1.0.109 (available: v2.0.117) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+nightly" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4549e24c929da872a85af72fda0e2d83c5287a9ba0afe4a67dd8118c697102cb [INFO] running `Command { std: "docker" "start" "-a" "4549e24c929da872a85af72fda0e2d83c5287a9ba0afe4a67dd8118c697102cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4549e24c929da872a85af72fda0e2d83c5287a9ba0afe4a67dd8118c697102cb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4549e24c929da872a85af72fda0e2d83c5287a9ba0afe4a67dd8118c697102cb", kill_on_drop: false }` [INFO] [stdout] 4549e24c929da872a85af72fda0e2d83c5287a9ba0afe4a67dd8118c697102cb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+nightly" "clippy" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] f2e72191e69351f6357299e611aa98436f812c3bfe4081208a19d844460a7650 [INFO] running `Command { std: "docker" "start" "-a" "f2e72191e69351f6357299e611aa98436f812c3bfe4081208a19d844460a7650", kill_on_drop: false }` [INFO] [stderr] Checking regex-syntax v0.8.10 [INFO] [stderr] Checking aho-corasick v1.1.4 [INFO] [stderr] Checking convert_case v0.4.0 [INFO] [stderr] Checking syn v1.0.109 [INFO] [stderr] Checking regex-automata v0.4.14 [INFO] [stderr] Checking regex v1.12.3 [INFO] [stderr] Checking fi-night v0.1.6 (/opt/rustwide/workdir) [INFO] [stdout] warning: the `str @ _` pattern can be written as just `str` [INFO] [stdout] --> src/lib.rs:957:9 [INFO] [stdout] | [INFO] [stdout] 957 | str @ _ => panic!("Unrecognized stack operation parsed: {}", str), [INFO] [stdout] | ^^^^^^^ help: try: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `str @ _` pattern can be written as just `str` [INFO] [stdout] --> src/lib.rs:957:9 [INFO] [stdout] | [INFO] [stdout] 957 | str @ _ => panic!("Unrecognized stack operation parsed: {}", str), [INFO] [stdout] | ^^^^^^^ help: try: `str` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChainIterItemDecl` is never constructed [INFO] [stdout] --> src/lib.rs:1320:8 [INFO] [stdout] | [INFO] [stdout] 1320 | struct ChainIterItemDecl(Ident, Ident, Ident, Ident); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImplEnumDisplay` is never constructed [INFO] [stdout] --> src/lib.rs:1489:8 [INFO] [stdout] | [INFO] [stdout] 1489 | struct ImplEnumDisplay { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImplEnumVariantDisplay` is never constructed [INFO] [stdout] --> src/lib.rs:1506:8 [INFO] [stdout] | [INFO] [stdout] 1506 | struct ImplEnumVariantDisplay(Ident); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/lib.rs:396:36 [INFO] [stdout] | [INFO] [stdout] 396 | let state_variants: Vec = fsm_parsed.state_enum_tokens [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 397 | | .iter() [INFO] [stdout] 398 | | .map(|item| item.clone()) [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 396 ~ let state_variants: Vec = fsm_parsed.state_enum_tokens [INFO] [stdout] 397 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:410:20 [INFO] [stdout] | [INFO] [stdout] 410 | let mut output = TokenStream::from(state_enum_tokens.into_token_stream()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `state_enum_tokens.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:425:18 [INFO] [stdout] | [INFO] [stdout] 425 | output.extend( TokenStream::from(signal_enum_tokens.into_token_stream()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `signal_enum_tokens.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:431:18 [INFO] [stdout] | [INFO] [stdout] 431 | output.extend( TokenStream::from(quoted.into_token_stream()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:467:20 [INFO] [stdout] | [INFO] [stdout] 467 | let mut input1 = TokenStream::from((Ident::new("_", Span::call_site())).into_token_stream()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `(Ident::new("_", Span::call_site())).into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:469:17 [INFO] [stdout] | [INFO] [stdout] 469 | input1.extend(TokenStream::from((Ident::new("on", Span::call_site())).into_token_stream())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `(Ident::new("on", Span::call_site())).into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/lib.rs:551:1 [INFO] [stdout] | [INFO] [stdout] 551 | / impl std::cmp::PartialOrd for EnumIdentAcceptingAny { [INFO] [stdout] 552 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 553 | | match self { [INFO] [stdout] 554 | | Self::AnyVariant(_) [INFO] [stdout] ... | [INFO] [stdout] 560 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 552 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 553 - match self { [INFO] [stdout] 554 - Self::AnyVariant(_) [INFO] [stdout] 555 - => if other.is_any() {Some(std::cmp::Ordering::Equal)} else {Some(std::cmp::Ordering::Less)}, [INFO] [stdout] 556 - Self::SomeVariant(v1) [INFO] [stdout] 557 - => if other.is_any() {Some(std::cmp::Ordering::Greater)} else {v1.partial_cmp(other.unwrap_as_ref())}, [INFO] [stdout] 558 - } [INFO] [stdout] 559 - } [INFO] [stdout] 552 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/lib.rs:611:1 [INFO] [stdout] | [INFO] [stdout] 611 | / impl std::cmp::PartialOrd for MatchTransitionEntry { [INFO] [stdout] 612 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 613 | | let ord_by_from_state = self.from_state.cmp(&other.from_state); [INFO] [stdout] 614 | | if ord_by_from_state != std::cmp::Ordering::Equal { return Some(ord_by_from_state.reverse()); } [INFO] [stdout] ... | [INFO] [stdout] 620 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 612 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 613 - let ord_by_from_state = self.from_state.cmp(&other.from_state); [INFO] [stdout] 614 - if ord_by_from_state != std::cmp::Ordering::Equal { return Some(ord_by_from_state.reverse()); } [INFO] [stdout] 615 - let ord_by_signal = self.signal.cmp(&other.signal); [INFO] [stdout] 616 - if ord_by_signal != std::cmp::Ordering::Equal { return Some(ord_by_signal.reverse()); } [INFO] [stdout] 617 - self.stack_expr.partial_cmp(&other.stack_expr).map(|ord| ord.reverse()) [INFO] [stdout] 618 - // if ord_by_stack_expr != std::cmp::Ordering::Equal { return Some(ord_by_stack_expr); } [INFO] [stdout] 619 - } [INFO] [stdout] 612 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lib.rs:673:14 [INFO] [stdout] | [INFO] [stdout] 673 | if let Some(_) = self.input { [INFO] [stdout] | -------^^^^^^^------------- help: try: `if self.input.is_some()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/lib.rs:715:30 [INFO] [stdout] | [INFO] [stdout] 715 | format!("popped_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] = note: `#[warn(clippy::suspicious_to_owned)]` on by default [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 715 | format!("popped_{}", re.replace_all(str, "_").into_owned()) [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 715 - format!("popped_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] 715 + format!("popped_{}", re.replace_all(str, "_").clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/lib.rs:721:35 [INFO] [stdout] | [INFO] [stdout] 721 | format!("popped_last_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 721 | format!("popped_last_{}", re.replace_all(str, "_").into_owned()) [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 721 - format!("popped_last_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] 721 + format!("popped_last_{}", re.replace_all(str, "_").clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/lib.rs:727:28 [INFO] [stdout] | [INFO] [stdout] 727 | format!("peek_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 727 | format!("peek_{}", re.replace_all(str, "_").into_owned()) [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 727 - format!("peek_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] 727 + format!("peek_{}", re.replace_all(str, "_").clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/lib.rs:790:28 [INFO] [stdout] | [INFO] [stdout] 790 | stack_sym_type = args_iter.next().and_then(|arg| match arg.into_value() { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 791 | | GenericArgument::Type(t) => Some(t), [INFO] [stdout] 792 | | _ => panic!("Type argument expected for StackSymbolItem"), [INFO] [stdout] 793 | | } [INFO] [stdout] 794 | | ); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 790 ~ stack_sym_type = args_iter.next().map(|arg| match arg.into_value() { [INFO] [stdout] 791 ~ GenericArgument::Type(t) => t, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:797:64 [INFO] [stdout] | [INFO] [stdout] 797 | let state_enum_ident = Ident::new(&format!("{}{}", name.to_string(), "States"), Span::call_site()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:798:65 [INFO] [stdout] | [INFO] [stdout] 798 | let signal_enum_ident = Ident::new(&format!("{}{}", name.to_string(), "Signals"), Span::call_site()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:837:28 [INFO] [stdout] | [INFO] [stdout] 837 | if !input_type.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `input_type.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:879:12 [INFO] [stdout] | [INFO] [stdout] 879 | if state_enum_tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `state_enum_tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Chain` [INFO] [stdout] --> src/lib.rs:927:1 [INFO] [stdout] | [INFO] [stdout] 927 | / enum TransitionSignatureKind { [INFO] [stdout] 928 | | ChainJoint, [INFO] [stdout] 929 | | ChainEnd, [INFO] [stdout] 930 | | ChainEndConditional, [INFO] [stdout] 931 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1059:5 [INFO] [stdout] | [INFO] [stdout] 1059 | / return Ok(Self { [INFO] [stdout] 1060 | | signature_kind: TransitionSignatureKind::ChainJoint, [INFO] [stdout] 1061 | | from_state, [INFO] [stdout] 1062 | | signals, [INFO] [stdout] 1063 | | stack_expr: Self::parse_pop_token(&input).unwrap(), [INFO] [stdout] 1064 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1059 ~ Ok(Self { [INFO] [stdout] 1060 + signature_kind: TransitionSignatureKind::ChainJoint, [INFO] [stdout] 1061 + from_state, [INFO] [stdout] 1062 + signals, [INFO] [stdout] 1063 + stack_expr: Self::parse_pop_token(&input).unwrap(), [INFO] [stdout] 1064 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/lib.rs:968:12 [INFO] [stdout] | [INFO] [stdout] 968 | if let Ok(_) = input.parse::() { [INFO] [stdout] | -------^^^^^----------------------------- help: try: `if input.parse::().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:1096:3 [INFO] [stdout] | [INFO] [stdout] 1096 | (TokenStream::from(tr_quoted.into_token_stream())).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `tr_quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:1159:3 [INFO] [stdout] | [INFO] [stdout] 1159 | (TokenStream::from(tr_quoted.into_token_stream())).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `tr_quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:1164:31 [INFO] [stdout] | [INFO] [stdout] 1164 | &format!("{}{}", fsm_ident.to_string(), "Trait"), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:1177:54 [INFO] [stdout] | [INFO] [stdout] 1177 | let iter_item_ident = ChainIterItem::name_from_fsm(&fsm_ident); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `fsm_ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ChainIterItemDecl` is never constructed [INFO] [stdout] --> src/lib.rs:1320:8 [INFO] [stdout] | [INFO] [stdout] 1320 | struct ChainIterItemDecl(Ident, Ident, Ident, Ident); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImplEnumDisplay` is never constructed [INFO] [stdout] --> src/lib.rs:1489:8 [INFO] [stdout] | [INFO] [stdout] 1489 | struct ImplEnumDisplay { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ImplEnumVariantDisplay` is never constructed [INFO] [stdout] --> src/lib.rs:1506:8 [INFO] [stdout] | [INFO] [stdout] 1506 | struct ImplEnumVariantDisplay(Ident); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:1265:16 [INFO] [stdout] | [INFO] [stdout] 1265 | let output = TokenStream::from(quoted.into_token_stream()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you are using an explicit closure for cloning elements [INFO] [stdout] --> src/lib.rs:396:36 [INFO] [stdout] | [INFO] [stdout] 396 | let state_variants: Vec = fsm_parsed.state_enum_tokens [INFO] [stdout] | ____________________________________^ [INFO] [stdout] 397 | | .iter() [INFO] [stdout] 398 | | .map(|item| item.clone()) [INFO] [stdout] | |_____________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stdout] = note: `#[warn(clippy::map_clone)]` on by default [INFO] [stdout] help: consider calling the dedicated `cloned` method [INFO] [stdout] | [INFO] [stdout] 396 ~ let state_variants: Vec = fsm_parsed.state_enum_tokens [INFO] [stdout] 397 + .iter().cloned() [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:410:20 [INFO] [stdout] | [INFO] [stdout] 410 | let mut output = TokenStream::from(state_enum_tokens.into_token_stream()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `state_enum_tokens.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] = note: `#[warn(clippy::useless_conversion)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:425:18 [INFO] [stdout] | [INFO] [stdout] 425 | output.extend( TokenStream::from(signal_enum_tokens.into_token_stream()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `signal_enum_tokens.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:431:18 [INFO] [stdout] | [INFO] [stdout] 431 | output.extend( TokenStream::from(quoted.into_token_stream()) ); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:467:20 [INFO] [stdout] | [INFO] [stdout] 467 | let mut input1 = TokenStream::from((Ident::new("_", Span::call_site())).into_token_stream()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `(Ident::new("_", Span::call_site())).into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:469:17 [INFO] [stdout] | [INFO] [stdout] 469 | input1.extend(TokenStream::from((Ident::new("on", Span::call_site())).into_token_stream())); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `(Ident::new("on", Span::call_site())).into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/lib.rs:551:1 [INFO] [stdout] | [INFO] [stdout] 551 | / impl std::cmp::PartialOrd for EnumIdentAcceptingAny { [INFO] [stdout] 552 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 553 | | match self { [INFO] [stdout] 554 | | Self::AnyVariant(_) [INFO] [stdout] ... | [INFO] [stdout] 560 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] = note: `#[warn(clippy::non_canonical_partial_ord_impl)]` on by default [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 552 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 553 - match self { [INFO] [stdout] 554 - Self::AnyVariant(_) [INFO] [stdout] 555 - => if other.is_any() {Some(std::cmp::Ordering::Equal)} else {Some(std::cmp::Ordering::Less)}, [INFO] [stdout] 556 - Self::SomeVariant(v1) [INFO] [stdout] 557 - => if other.is_any() {Some(std::cmp::Ordering::Greater)} else {v1.partial_cmp(other.unwrap_as_ref())}, [INFO] [stdout] 558 - } [INFO] [stdout] 559 - } [INFO] [stdout] 552 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: non-canonical implementation of `partial_cmp` on an `Ord` type [INFO] [stdout] --> src/lib.rs:611:1 [INFO] [stdout] | [INFO] [stdout] 611 | / impl std::cmp::PartialOrd for MatchTransitionEntry { [INFO] [stdout] 612 | | fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 613 | | let ord_by_from_state = self.from_state.cmp(&other.from_state); [INFO] [stdout] 614 | | if ord_by_from_state != std::cmp::Ordering::Equal { return Some(ord_by_from_state.reverse()); } [INFO] [stdout] ... | [INFO] [stdout] 620 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#non_canonical_partial_ord_impl [INFO] [stdout] help: change this to [INFO] [stdout] | [INFO] [stdout] 612 - fn partial_cmp(&self, other: &Self) -> Option { [INFO] [stdout] 613 - let ord_by_from_state = self.from_state.cmp(&other.from_state); [INFO] [stdout] 614 - if ord_by_from_state != std::cmp::Ordering::Equal { return Some(ord_by_from_state.reverse()); } [INFO] [stdout] 615 - let ord_by_signal = self.signal.cmp(&other.signal); [INFO] [stdout] 616 - if ord_by_signal != std::cmp::Ordering::Equal { return Some(ord_by_signal.reverse()); } [INFO] [stdout] 617 - self.stack_expr.partial_cmp(&other.stack_expr).map(|ord| ord.reverse()) [INFO] [stdout] 618 - // if ord_by_stack_expr != std::cmp::Ordering::Equal { return Some(ord_by_stack_expr); } [INFO] [stdout] 619 - } [INFO] [stdout] 612 + fn partial_cmp(&self, other: &Self) -> Option { Some(self.cmp(other)) } [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lib.rs:673:14 [INFO] [stdout] | [INFO] [stdout] 673 | if let Some(_) = self.input { [INFO] [stdout] | -------^^^^^^^------------- help: try: `if self.input.is_some()` [INFO] [stdout] | [INFO] [stdout] = note: this will change drop order of the result, as well as all temporaries [INFO] [stdout] = note: add `#[allow(clippy::redundant_pattern_matching)]` if this is important [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] = note: `#[warn(clippy::redundant_pattern_matching)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/lib.rs:715:30 [INFO] [stdout] | [INFO] [stdout] 715 | format!("popped_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] = note: `#[warn(clippy::suspicious_to_owned)]` on by default [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 715 | format!("popped_{}", re.replace_all(str, "_").into_owned()) [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 715 - format!("popped_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] 715 + format!("popped_{}", re.replace_all(str, "_").clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/lib.rs:721:35 [INFO] [stdout] | [INFO] [stdout] 721 | format!("popped_last_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 721 | format!("popped_last_{}", re.replace_all(str, "_").into_owned()) [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 721 - format!("popped_last_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] 721 + format!("popped_last_{}", re.replace_all(str, "_").clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `to_owned` call clones the `Cow<'_, str>` itself and does not cause its contents to become owned [INFO] [stdout] --> src/lib.rs:727:28 [INFO] [stdout] | [INFO] [stdout] 727 | format!("peek_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_to_owned [INFO] [stdout] help: depending on intent, either make the `Cow` an `Owned` variant [INFO] [stdout] | [INFO] [stdout] 727 | format!("peek_{}", re.replace_all(str, "_").into_owned()) [INFO] [stdout] | ++ [INFO] [stdout] help: or clone the `Cow` itself [INFO] [stdout] | [INFO] [stdout] 727 - format!("peek_{}", re.replace_all(str, "_").to_owned()) [INFO] [stdout] 727 + format!("peek_{}", re.replace_all(str, "_").clone()) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using `Option.and_then(|x| Some(y))`, which is more succinctly expressed as `map(|x| y)` [INFO] [stdout] --> src/lib.rs:790:28 [INFO] [stdout] | [INFO] [stdout] 790 | stack_sym_type = args_iter.next().and_then(|arg| match arg.into_value() { [INFO] [stdout] | ____________________________^ [INFO] [stdout] 791 | | GenericArgument::Type(t) => Some(t), [INFO] [stdout] 792 | | _ => panic!("Type argument expected for StackSymbolItem"), [INFO] [stdout] 793 | | } [INFO] [stdout] 794 | | ); [INFO] [stdout] | |___________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bind_instead_of_map [INFO] [stdout] = note: `#[warn(clippy::bind_instead_of_map)]` on by default [INFO] [stdout] help: use `map` instead [INFO] [stdout] | [INFO] [stdout] 790 ~ stack_sym_type = args_iter.next().map(|arg| match arg.into_value() { [INFO] [stdout] 791 ~ GenericArgument::Type(t) => t, [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:797:64 [INFO] [stdout] | [INFO] [stdout] 797 | let state_enum_ident = Ident::new(&format!("{}{}", name.to_string(), "States"), Span::call_site()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] = note: `#[warn(clippy::to_string_in_format_args)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:798:65 [INFO] [stdout] | [INFO] [stdout] 798 | let signal_enum_ident = Ident::new(&format!("{}{}", name.to_string(), "Signals"), Span::call_site()); [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:837:28 [INFO] [stdout] | [INFO] [stdout] 837 | if !input_type.is_none() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try: `input_type.is_some()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] = note: `#[warn(clippy::nonminimal_bool)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:879:12 [INFO] [stdout] | [INFO] [stdout] 879 | if state_enum_tokens.len() == 0 { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `state_enum_tokens.is_empty()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stdout] = note: `#[warn(clippy::len_zero)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: all variants have the same prefix: `Chain` [INFO] [stdout] --> src/lib.rs:927:1 [INFO] [stdout] | [INFO] [stdout] 927 | / enum TransitionSignatureKind { [INFO] [stdout] 928 | | ChainJoint, [INFO] [stdout] 929 | | ChainEnd, [INFO] [stdout] 930 | | ChainEndConditional, [INFO] [stdout] 931 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = help: remove the prefixes and use full paths to the variants instead of glob imports [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#enum_variant_names [INFO] [stdout] = note: `#[warn(clippy::enum_variant_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unneeded `return` statement [INFO] [stdout] --> src/lib.rs:1059:5 [INFO] [stdout] | [INFO] [stdout] 1059 | / return Ok(Self { [INFO] [stdout] 1060 | | signature_kind: TransitionSignatureKind::ChainJoint, [INFO] [stdout] 1061 | | from_state, [INFO] [stdout] 1062 | | signals, [INFO] [stdout] 1063 | | stack_expr: Self::parse_pop_token(&input).unwrap(), [INFO] [stdout] 1064 | | }); [INFO] [stdout] | |______^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stdout] = note: `#[warn(clippy::needless_return)]` on by default [INFO] [stdout] help: remove `return` [INFO] [stdout] | [INFO] [stdout] 1059 ~ Ok(Self { [INFO] [stdout] 1060 + signature_kind: TransitionSignatureKind::ChainJoint, [INFO] [stdout] 1061 + from_state, [INFO] [stdout] 1062 + signals, [INFO] [stdout] 1063 + stack_expr: Self::parse_pop_token(&input).unwrap(), [INFO] [stdout] 1064 ~ }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_ok()` [INFO] [stdout] --> src/lib.rs:968:12 [INFO] [stdout] | [INFO] [stdout] 968 | if let Ok(_) = input.parse::() { [INFO] [stdout] | -------^^^^^----------------------------- help: try: `if input.parse::().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_pattern_matching [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:1096:3 [INFO] [stdout] | [INFO] [stdout] 1096 | (TokenStream::from(tr_quoted.into_token_stream())).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `tr_quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:1159:3 [INFO] [stdout] | [INFO] [stdout] 1159 | (TokenStream::from(tr_quoted.into_token_stream())).into() [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `tr_quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `to_string` applied to a type that implements `Display` in `format!` args [INFO] [stdout] --> src/lib.rs:1164:31 [INFO] [stdout] | [INFO] [stdout] 1164 | &format!("{}{}", fsm_ident.to_string(), "Trait"), [INFO] [stdout] | ^^^^^^^^^^^^ help: remove this [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#to_string_in_format_args [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this expression creates a reference which is immediately dereferenced by the compiler [INFO] [stdout] --> src/lib.rs:1177:54 [INFO] [stdout] | [INFO] [stdout] 1177 | let iter_item_ident = ChainIterItem::name_from_fsm(&fsm_ident); [INFO] [stdout] | ^^^^^^^^^^ help: change this to: `fsm_ident` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] = note: `#[warn(clippy::needless_borrow)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `proc_macro2::TokenStream` [INFO] [stdout] --> src/lib.rs:1265:16 [INFO] [stdout] | [INFO] [stdout] 1265 | let output = TokenStream::from(quoted.into_token_stream()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `TokenStream::from()`: `quoted.into_token_stream()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.22s [INFO] running `Command { std: "docker" "inspect" "f2e72191e69351f6357299e611aa98436f812c3bfe4081208a19d844460a7650", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2e72191e69351f6357299e611aa98436f812c3bfe4081208a19d844460a7650", kill_on_drop: false }` [INFO] [stdout] f2e72191e69351f6357299e611aa98436f812c3bfe4081208a19d844460a7650