[INFO] fetching crate extfsm 0.12.1... [INFO] linting extfsm-0.12.1 against nightly for clippy-nonminimal_bool-denied [INFO] extracting crate extfsm 0.12.1 into /workspace/builds/worker-1-tc1/source [INFO] started tweaking crates.io crate extfsm 0.12.1 [INFO] finished tweaking crates.io crate extfsm 0.12.1 [INFO] tweaked toml for crates.io crate extfsm 0.12.1 written to /workspace/builds/worker-1-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate extfsm 0.12.1 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] Updating crates.io index [INFO] [stderr] Locking 65 packages to latest compatible versions [INFO] [stderr] Adding itertools v0.10.5 (available: v0.14.0) [INFO] [stderr] Adding slog-atomic v2.0.0 (available: v3.1.0) [INFO] [stderr] Adding uuid v0.8.2 (available: v1.22.0) [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] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded enum_derive v0.1.7 [INFO] [stderr] Downloaded slog-atomic v2.0.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] bad4f47a8b31f1c2d07877af69209e9863b298d74ccc3c422a70efbcf20c0577 [INFO] running `Command { std: "docker" "start" "-a" "bad4f47a8b31f1c2d07877af69209e9863b298d74ccc3c422a70efbcf20c0577", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bad4f47a8b31f1c2d07877af69209e9863b298d74ccc3c422a70efbcf20c0577", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bad4f47a8b31f1c2d07877af69209e9863b298d74ccc3c422a70efbcf20c0577", kill_on_drop: false }` [INFO] [stdout] bad4f47a8b31f1c2d07877af69209e9863b298d74ccc3c422a70efbcf20c0577 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] d3149b54c8b436c55119bc8ffe5c07129501b53fb37b143da8e97acd4aa893a1 [INFO] running `Command { std: "docker" "start" "-a" "d3149b54c8b436c55119bc8ffe5c07129501b53fb37b143da8e97acd4aa893a1", kill_on_drop: false }` [INFO] [stderr] warning: `package.edition` is unspecified, defaulting to `2015` while the latest is `2024` [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling num-conv v0.2.0 [INFO] [stderr] Compiling time-core v0.1.8 [INFO] [stderr] Compiling slog v2.8.2 [INFO] [stderr] Checking getrandom v0.2.17 [INFO] [stderr] Checking deranged v0.5.8 [INFO] [stderr] Compiling slog-async v2.8.0 [INFO] [stderr] Checking term v1.2.1 [INFO] [stderr] Checking custom_derive v0.1.7 [INFO] [stderr] Checking take_mut v0.2.2 [INFO] [stderr] Compiling time-macros v0.2.27 [INFO] [stderr] Checking crossbeam v0.2.12 [INFO] [stderr] Checking uuid v0.8.2 [INFO] [stderr] Checking enum_derive v0.1.7 [INFO] [stderr] Checking dot v0.1.4 [INFO] [stderr] Checking erased-serde v0.3.31 [INFO] [stderr] Checking time v0.3.47 [INFO] [stderr] Checking slog-atomic v2.0.0 [INFO] [stderr] Checking extfsm v0.12.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | source: source, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | target: target, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:273:13 [INFO] [stdout] | [INFO] [stdout] 273 | entryexit: entryexit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entryexit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | state: state, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/lib.rs:613:1 [INFO] [stdout] | [INFO] [stdout] 613 | / /// machine can be dotted if we have ordering on events & states [INFO] [stdout] 614 | | [INFO] [stdout] | |_^ [INFO] [stdout] 615 | impl [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:680:33 [INFO] [stdout] | [INFO] [stdout] 680 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:682:33 [INFO] [stdout] | [INFO] [stdout] 682 | ... shape: shape, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `shape` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:709:45 [INFO] [stdout] | [INFO] [stdout] 709 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:717:45 [INFO] [stdout] | [INFO] [stdout] 717 | ... label: label, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `label` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `v @ _` pattern can be written as just `v` [INFO] [stdout] --> src/lib.rs:748:33 [INFO] [stdout] | [INFO] [stdout] 748 | ... v @ _ => v, [INFO] [stdout] | ^^^^^ help: try: `v` [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: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:774:37 [INFO] [stdout] | [INFO] [stdout] 774 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:794:37 [INFO] [stdout] | [INFO] [stdout] 794 | ... color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:814:29 [INFO] [stdout] | [INFO] [stdout] 814 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:850:13 [INFO] [stdout] | [INFO] [stdout] 850 | state: state, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:851:13 [INFO] [stdout] | [INFO] [stdout] 851 | event: event, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `event` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:922:9 [INFO] [stdout] | [INFO] [stdout] 922 | /// event and possible arguments [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] = note: `#[warn(clippy::tabs_in_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:930:13 [INFO] [stdout] | [INFO] [stdout] 930 | endstate: endstate, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `endstate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:931:13 [INFO] [stdout] | [INFO] [stdout] 931 | transfn: transfn, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `transfn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:1027:13 [INFO] [stdout] | [INFO] [stdout] 1027 | transfn: transfn, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `transfn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/lib.rs:129:5 [INFO] [stdout] | [INFO] [stdout] 129 | /// stores extended state [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (3 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:143:18 [INFO] [stdout] | [INFO] [stdout] 143 | transitions: Rc< [INFO] [stdout] | __________________^ [INFO] [stdout] 144 | | RefCell< [INFO] [stdout] 145 | | TransitionTable, [INFO] [stdout] 146 | | >, [INFO] [stdout] 147 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:148:23 [INFO] [stdout] | [INFO] [stdout] 148 | statetransitions: Rc< [INFO] [stdout] | _______________________^ [INFO] [stdout] 149 | | RefCell< [INFO] [stdout] 150 | | EntryExitTransitionTable< [INFO] [stdout] 151 | | ExtendedState, [INFO] [stdout] ... | [INFO] [stdout] 157 | | >, [INFO] [stdout] 158 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/lib.rs:243:1 [INFO] [stdout] | [INFO] [stdout] 243 | impl Into<&'static str> for DotColor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 243 ~ impl From for &'static str { [INFO] [stdout] 244 ~ fn from(val: DotColor) -> Self { [INFO] [stdout] 245 ~ COLORS.get(&val).expect("dot color cannot be translated") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lib.rs:337:28 [INFO] [stdout] | [INFO] [stdout] 337 | if let Some(_) = self.statetransitions.borrow().get(eek) { [INFO] [stdout] | -------^^^^^^^------------------------------------------ help: try: `if self.statetransitions.borrow().get(eek).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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lib.rs:355:28 [INFO] [stdout] | [INFO] [stdout] 355 | if let Some(_) = self.statetransitions.borrow().get(eek) { [INFO] [stdout] | -------^^^^^^^------------------------------------------ help: try: `if self.statetransitions.borrow().get(eek).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] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/lib.rs:428:18 [INFO] [stdout] | [INFO] [stdout] 428 | Some(ref realnode) => dot::LabelText::LabelStr(realnode.label.clone().into()), [INFO] [stdout] | ^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 428 - Some(ref realnode) => dot::LabelText::LabelStr(realnode.label.clone().into()), [INFO] [stdout] 428 + Some(realnode) => dot::LabelText::LabelStr(realnode.label.clone().into()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/lib.rs:488:9 [INFO] [stdout] | [INFO] [stdout] 488 | g.start_state = Some(start_state.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `DotGraph:: { start_state: Some(start_state.clone()), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/lib.rs:487:9 [INFO] [stdout] | [INFO] [stdout] 487 | let mut g = DotGraph::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:609:9 [INFO] [stdout] | [INFO] [stdout] 609 | self.event_queue.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.event_queue.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: doc list item overindented [INFO] [stdout] --> src/lib.rs:626:9 [INFO] [stdout] | [INFO] [stdout] 626 | /// the given events will be omitted from the representation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (4 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/lib.rs:636:41 [INFO] [stdout] | [INFO] [stdout] 636 | fs::File::create(fname).map(|f| Some(f)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/lib.rs:642:13 [INFO] [stdout] | [INFO] [stdout] 642 | / omitstates [INFO] [stdout] 643 | | .map_or(false, [INFO] [stdout] 644 | | |os| os.contains(n)) [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 643 - .map_or(false, [INFO] [stdout] 644 - |os| os.contains(n)) [INFO] [stdout] 643 + .is_some_and(|os| os.contains(n)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/lib.rs:648:13 [INFO] [stdout] | [INFO] [stdout] 648 | / omitevents [INFO] [stdout] 649 | | .map_or(false, [INFO] [stdout] 650 | | |os| os.contains(n)) [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 649 - .map_or(false, [INFO] [stdout] 650 - |os| os.contains(n)) [INFO] [stdout] 649 + .is_some_and(|os| os.contains(n)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/lib.rs:700:49 [INFO] [stdout] | [INFO] [stdout] 700 | ... let label = match t { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 701 | | ... &EntryExit::EntryTransition => "Enter".into(), [INFO] [stdout] 702 | | ... &EntryExit::ExitTransition => "Exit".into(), [INFO] [stdout] 703 | | ... }; [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 700 ~ let label = match *t { [INFO] [stdout] 701 ~ EntryExit::EntryTransition => "Enter".into(), [INFO] [stdout] 702 ~ EntryExit::ExitTransition => "Exit".into(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::IntoIter<(&TransitionSource, &TransitionTarget)>` [INFO] [stdout] --> src/lib.rs:731:50 [INFO] [stdout] | [INFO] [stdout] 731 | for (target, pertargetsource) in self [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 732 | | .transitions [INFO] [stdout] 733 | | .borrow() [INFO] [stdout] 734 | | .iter() [INFO] [stdout] 735 | | .sorted_by(|&(_, e1t), &(_, e2t)| e1t.endstate.cmp(&e2t.endstate)) [INFO] [stdout] 736 | | .into_iter() [INFO] [stdout] | |________________________________^ [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] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 731 ~ for (target, pertargetsource) in self [INFO] [stdout] 732 + .transitions [INFO] [stdout] 733 + .borrow() [INFO] [stdout] 734 + .iter() [INFO] [stdout] 735 + .sorted_by(|&(_, e1t), &(_, e2t)| e1t.endstate.cmp(&e2t.endstate)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::IntoIter<(&TransitionSource, &TransitionTarget)>` [INFO] [stdout] --> src/lib.rs:741:54 [INFO] [stdout] | [INFO] [stdout] 741 | for (source, pertargetsource) in pertargetsource [INFO] [stdout] | ______________________________________________________^ [INFO] [stdout] 742 | | .into_iter() [INFO] [stdout] 743 | | .filter(|e1| !omitevent(&omitevents, &e1.0.event)) [INFO] [stdout] 744 | | .sorted_by(|e1, e2| [INFO] [stdout] ... | [INFO] [stdout] 749 | | }) [INFO] [stdout] 750 | | .into_iter() [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 741 ~ for (source, pertargetsource) in pertargetsource [INFO] [stdout] 742 + .into_iter() [INFO] [stdout] 743 + .filter(|e1| !omitevent(&omitevents, &e1.0.event)) [INFO] [stdout] 744 + .sorted_by(|e1, e2| [INFO] [stdout] 745 + match e1.0.state.cmp(&e2.0.state) { [INFO] [stdout] 746 + Ordering::Equal => [INFO] [stdout] 747 + e1.0.event.cmp(&e2.0.event), [INFO] [stdout] 748 + v @ _ => v, [INFO] [stdout] 749 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::IntoIter<(&TransitionSource, &TransitionTarget)>` [INFO] [stdout] --> src/lib.rs:758:62 [INFO] [stdout] | [INFO] [stdout] 758 | for (color, pertargetsourcecolor) in pertargetsource [INFO] [stdout] | ______________________________________________________________^ [INFO] [stdout] 759 | | .into_iter() [INFO] [stdout] 760 | | .sorted_by(|&(_, e1t), &(_, e2t)| e1t.color.cmp(&e2t.color)) [INFO] [stdout] 761 | | .into_iter() [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 758 ~ for (color, pertargetsourcecolor) in pertargetsource [INFO] [stdout] 759 + .into_iter() [INFO] [stdout] 760 + .sorted_by(|&(_, e1t), &(_, e2t)| e1t.color.cmp(&e2t.color)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:783:65 [INFO] [stdout] | [INFO] [stdout] 783 | ... .map(|n| if n.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!n.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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:816:36 [INFO] [stdout] | [INFO] [stdout] 816 | ... label: format!("{}", tv.get_name().clone().unwrap_or(String::from(""))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `tv.get_name().clone().unwrap_or(String::from("")).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/lib.rs:922:9 [INFO] [stdout] | [INFO] [stdout] 922 | /// event and possible arguments [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 922 | /// event and possible arguments [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/lib.rs:1138:21 [INFO] [stdout] | [INFO] [stdout] 1138 | let ref mut q = self.event_queue; [INFO] [stdout] | ----^^^^^^^^^-------------------- help: try: `let q = &mut self.event_queue;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] = note: `#[warn(clippy::toplevel_ref_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/lib.rs:1146:17 [INFO] [stdout] | [INFO] [stdout] 1146 | / fn entryexit< [INFO] [stdout] 1147 | | ExtendedState, [INFO] [stdout] 1148 | | EventType, [INFO] [stdout] 1149 | | StateType, [INFO] [stdout] ... | [INFO] [stdout] 1173 | | EventType: Clone + PartialEq + Eq + Hash + Debug, [INFO] [stdout] 1174 | | ErrorType: Debug, [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/lib.rs:1182:33 [INFO] [stdout] | [INFO] [stdout] 1182 | ... let ref func = entryexittrans.transfn; [INFO] [stdout] | ----^^^^^^^^-------------------------- help: try: `let func = &entryexittrans.transfn;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/lib.rs:1183:33 [INFO] [stdout] | [INFO] [stdout] 1183 | ... let ref tname = entryexittrans.get_name(); [INFO] [stdout] | ----^^^^^^^^^----------------------------- help: try: `let tname = &entryexittrans.get_name();` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/lib.rs:1181:30 [INFO] [stdout] | [INFO] [stdout] 1181 | Some(ref entryexittrans) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1181 - Some(ref entryexittrans) => { [INFO] [stdout] 1181 + Some(entryexittrans) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:1292:27 [INFO] [stdout] | [INFO] [stdout] 1292 | }).filter(|e| match *e { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 1293 | | Errors::OK => false, [INFO] [stdout] 1294 | | _ => true, [INFO] [stdout] 1295 | | }).take(1) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1292 - }).filter(|e| match *e { [INFO] [stdout] 1293 - Errors::OK => false, [INFO] [stdout] 1294 - _ => true, [INFO] [stdout] 1295 - }).take(1) [INFO] [stdout] 1292 + }).filter(|e| !matches!(*e, Errors::OK)).take(1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lib.rs:541:9 [INFO] [stdout] | [INFO] [stdout] 541 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 542 | ) -> Ref> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 542 | ) -> Ref<'_, TransitionTable> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lib.rs:549:9 [INFO] [stdout] | [INFO] [stdout] 549 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 550 | ) -> Ref< [INFO] [stdout] | __________^ [INFO] [stdout] 551 | | EntryExitTransitionTable< [INFO] [stdout] 552 | | ExtendedState, [INFO] [stdout] 553 | | StateType, [INFO] [stdout] ... | [INFO] [stdout] 557 | | >, [INFO] [stdout] 558 | | > { [INFO] [stdout] | |_____^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 550 | ) -> Ref<'_, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lib.rs:598:27 [INFO] [stdout] | [INFO] [stdout] 598 | pub fn extended_state(&self) -> Ref> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 598 | pub fn extended_state(&self) -> Ref<'_, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Checking slog-term v2.9.2 [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:196:13 [INFO] [stdout] | [INFO] [stdout] 196 | color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] = note: `#[warn(clippy::redundant_field_names)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:197:13 [INFO] [stdout] | [INFO] [stdout] 197 | source: source, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `source` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:198:13 [INFO] [stdout] | [INFO] [stdout] 198 | target: target, [INFO] [stdout] | ^^^^^^^^^^^^^^ help: replace it with: `target` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:273:13 [INFO] [stdout] | [INFO] [stdout] 273 | entryexit: entryexit, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `entryexit` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:274:13 [INFO] [stdout] | [INFO] [stdout] 274 | state: state, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: empty line after doc comment [INFO] [stdout] --> src/lib.rs:613:1 [INFO] [stdout] | [INFO] [stdout] 613 | / /// machine can be dotted if we have ordering on events & states [INFO] [stdout] 614 | | [INFO] [stdout] | |_^ [INFO] [stdout] 615 | impl [INFO] [stdout] | - the comment documents this implementation [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#empty_line_after_doc_comments [INFO] [stdout] = note: `#[warn(clippy::empty_line_after_doc_comments)]` on by default [INFO] [stdout] = help: if the empty line is unintentional, remove it [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:680:33 [INFO] [stdout] | [INFO] [stdout] 680 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:682:33 [INFO] [stdout] | [INFO] [stdout] 682 | ... shape: shape, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `shape` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:709:45 [INFO] [stdout] | [INFO] [stdout] 709 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:717:45 [INFO] [stdout] | [INFO] [stdout] 717 | ... label: label, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `label` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: the `v @ _` pattern can be written as just `v` [INFO] [stdout] --> src/lib.rs:748:33 [INFO] [stdout] | [INFO] [stdout] 748 | ... v @ _ => v, [INFO] [stdout] | ^^^^^ help: try: `v` [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: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:774:37 [INFO] [stdout] | [INFO] [stdout] 774 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:794:37 [INFO] [stdout] | [INFO] [stdout] 794 | ... color: color, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `color` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:814:29 [INFO] [stdout] | [INFO] [stdout] 814 | ... key: key, [INFO] [stdout] | ^^^^^^^^ help: replace it with: `key` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:850:13 [INFO] [stdout] | [INFO] [stdout] 850 | state: state, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `state` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:851:13 [INFO] [stdout] | [INFO] [stdout] 851 | event: event, [INFO] [stdout] | ^^^^^^^^^^^^ help: replace it with: `event` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: using tabs in doc comments is not recommended [INFO] [stdout] --> src/lib.rs:922:9 [INFO] [stdout] | [INFO] [stdout] 922 | /// event and possible arguments [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: consider using four spaces per tab [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#tabs_in_doc_comments [INFO] [stdout] = note: `#[warn(clippy::tabs_in_doc_comments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:930:13 [INFO] [stdout] | [INFO] [stdout] 930 | endstate: endstate, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `endstate` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:931:13 [INFO] [stdout] | [INFO] [stdout] 931 | transfn: transfn, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `transfn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant field names in struct initialization [INFO] [stdout] --> src/lib.rs:1027:13 [INFO] [stdout] | [INFO] [stdout] 1027 | transfn: transfn, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ help: replace it with: `transfn` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item overindented [INFO] [stdout] --> src/lib.rs:129:5 [INFO] [stdout] | [INFO] [stdout] 129 | /// stores extended state [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (3 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] = note: `#[warn(clippy::doc_overindented_list_items)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:143:18 [INFO] [stdout] | [INFO] [stdout] 143 | transitions: Rc< [INFO] [stdout] | __________________^ [INFO] [stdout] 144 | | RefCell< [INFO] [stdout] 145 | | TransitionTable, [INFO] [stdout] 146 | | >, [INFO] [stdout] 147 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] = note: `#[warn(clippy::type_complexity)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stdout] --> src/lib.rs:148:23 [INFO] [stdout] | [INFO] [stdout] 148 | statetransitions: Rc< [INFO] [stdout] | _______________________^ [INFO] [stdout] 149 | | RefCell< [INFO] [stdout] 150 | | EntryExitTransitionTable< [INFO] [stdout] 151 | | ExtendedState, [INFO] [stdout] ... | [INFO] [stdout] 157 | | >, [INFO] [stdout] 158 | | >, [INFO] [stdout] | |_____^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: an implementation of `From` is preferred since it gives you `Into<_>` for free where the reverse isn't true [INFO] [stdout] --> src/lib.rs:243:1 [INFO] [stdout] | [INFO] [stdout] 243 | impl Into<&'static str> for DotColor { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: `impl From for Foreign` is allowed by the orphan rules, for more information see [INFO] [stdout] https://doc.rust-lang.org/reference/items/implementations.html#trait-implementation-coherence [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#from_over_into [INFO] [stdout] = note: `#[warn(clippy::from_over_into)]` on by default [INFO] [stdout] help: replace the `Into` implementation with `From` [INFO] [stdout] | [INFO] [stdout] 243 ~ impl From for &'static str { [INFO] [stdout] 244 ~ fn from(val: DotColor) -> Self { [INFO] [stdout] 245 ~ COLORS.get(&val).expect("dot color cannot be translated") [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lib.rs:337:28 [INFO] [stdout] | [INFO] [stdout] 337 | if let Some(_) = self.statetransitions.borrow().get(eek) { [INFO] [stdout] | -------^^^^^^^------------------------------------------ help: try: `if self.statetransitions.borrow().get(eek).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: redundant pattern matching, consider using `is_some()` [INFO] [stdout] --> src/lib.rs:355:28 [INFO] [stdout] | [INFO] [stdout] 355 | if let Some(_) = self.statetransitions.borrow().get(eek) { [INFO] [stdout] | -------^^^^^^^------------------------------------------ help: try: `if self.statetransitions.borrow().get(eek).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] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/lib.rs:428:18 [INFO] [stdout] | [INFO] [stdout] 428 | Some(ref realnode) => dot::LabelText::LabelStr(realnode.label.clone().into()), [INFO] [stdout] | ^^^^^^^^^^^^ [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] help: try [INFO] [stdout] | [INFO] [stdout] 428 - Some(ref realnode) => dot::LabelText::LabelStr(realnode.label.clone().into()), [INFO] [stdout] 428 + Some(realnode) => dot::LabelText::LabelStr(realnode.label.clone().into()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field assignment outside of initializer for an instance created with Default::default() [INFO] [stdout] --> src/lib.rs:488:9 [INFO] [stdout] | [INFO] [stdout] 488 | g.start_state = Some(start_state.clone()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] note: consider initializing the variable with `DotGraph:: { start_state: Some(start_state.clone()), ..Default::default() }` and removing relevant reassignments [INFO] [stdout] --> src/lib.rs:487:9 [INFO] [stdout] | [INFO] [stdout] 487 | let mut g = DotGraph::default(); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#field_reassign_with_default [INFO] [stdout] = note: `#[warn(clippy::field_reassign_with_default)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:609:9 [INFO] [stdout] | [INFO] [stdout] 609 | self.event_queue.len() > 0 [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!self.event_queue.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: doc list item overindented [INFO] [stdout] --> src/lib.rs:626:9 [INFO] [stdout] | [INFO] [stdout] 626 | /// the given events will be omitted from the representation [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try using ` ` (4 spaces) [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_overindented_list_items [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: redundant closure [INFO] [stdout] --> src/lib.rs:636:41 [INFO] [stdout] | [INFO] [stdout] 636 | fs::File::create(fname).map(|f| Some(f)) [INFO] [stdout] | ^^^^^^^^^^^ help: replace the closure with the tuple variant itself: `Some` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stdout] = note: `#[warn(clippy::redundant_closure)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/lib.rs:642:13 [INFO] [stdout] | [INFO] [stdout] 642 | / omitstates [INFO] [stdout] 643 | | .map_or(false, [INFO] [stdout] 644 | | |os| os.contains(n)) [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] = note: `#[warn(clippy::unnecessary_map_or)]` on by default [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 643 - .map_or(false, [INFO] [stdout] 644 - |os| os.contains(n)) [INFO] [stdout] 643 + .is_some_and(|os| os.contains(n)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this `map_or` can be simplified [INFO] [stdout] --> src/lib.rs:648:13 [INFO] [stdout] | [INFO] [stdout] 648 | / omitevents [INFO] [stdout] 649 | | .map_or(false, [INFO] [stdout] 650 | | |os| os.contains(n)) [INFO] [stdout] | |____________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_map_or [INFO] [stdout] help: use `is_some_and` instead [INFO] [stdout] | [INFO] [stdout] 649 - .map_or(false, [INFO] [stdout] 650 - |os| os.contains(n)) [INFO] [stdout] 649 + .is_some_and(|os| os.contains(n)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: you don't need to add `&` to all patterns [INFO] [stdout] --> src/lib.rs:700:49 [INFO] [stdout] | [INFO] [stdout] 700 | ... let label = match t { [INFO] [stdout] | ___________________________________^ [INFO] [stdout] 701 | | ... &EntryExit::EntryTransition => "Enter".into(), [INFO] [stdout] 702 | | ... &EntryExit::ExitTransition => "Exit".into(), [INFO] [stdout] 703 | | ... }; [INFO] [stdout] | |_______________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stdout] = note: `#[warn(clippy::match_ref_pats)]` on by default [INFO] [stdout] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stdout] | [INFO] [stdout] 700 ~ let label = match *t { [INFO] [stdout] 701 ~ EntryExit::EntryTransition => "Enter".into(), [INFO] [stdout] 702 ~ EntryExit::ExitTransition => "Exit".into(), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::IntoIter<(&TransitionSource, &TransitionTarget)>` [INFO] [stdout] --> src/lib.rs:731:50 [INFO] [stdout] | [INFO] [stdout] 731 | for (target, pertargetsource) in self [INFO] [stdout] | __________________________________________________^ [INFO] [stdout] 732 | | .transitions [INFO] [stdout] 733 | | .borrow() [INFO] [stdout] 734 | | .iter() [INFO] [stdout] 735 | | .sorted_by(|&(_, e1t), &(_, e2t)| e1t.endstate.cmp(&e2t.endstate)) [INFO] [stdout] 736 | | .into_iter() [INFO] [stdout] | |________________________________^ [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] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 731 ~ for (target, pertargetsource) in self [INFO] [stdout] 732 + .transitions [INFO] [stdout] 733 + .borrow() [INFO] [stdout] 734 + .iter() [INFO] [stdout] 735 + .sorted_by(|&(_, e1t), &(_, e2t)| e1t.endstate.cmp(&e2t.endstate)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::IntoIter<(&TransitionSource, &TransitionTarget)>` [INFO] [stdout] --> src/lib.rs:741:54 [INFO] [stdout] | [INFO] [stdout] 741 | for (source, pertargetsource) in pertargetsource [INFO] [stdout] | ______________________________________________________^ [INFO] [stdout] 742 | | .into_iter() [INFO] [stdout] 743 | | .filter(|e1| !omitevent(&omitevents, &e1.0.event)) [INFO] [stdout] 744 | | .sorted_by(|e1, e2| [INFO] [stdout] ... | [INFO] [stdout] 749 | | }) [INFO] [stdout] 750 | | .into_iter() [INFO] [stdout] | |____________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 741 ~ for (source, pertargetsource) in pertargetsource [INFO] [stdout] 742 + .into_iter() [INFO] [stdout] 743 + .filter(|e1| !omitevent(&omitevents, &e1.0.event)) [INFO] [stdout] 744 + .sorted_by(|e1, e2| [INFO] [stdout] 745 + match e1.0.state.cmp(&e2.0.state) { [INFO] [stdout] 746 + Ordering::Equal => [INFO] [stdout] 747 + e1.0.event.cmp(&e2.0.event), [INFO] [stdout] 748 + v @ _ => v, [INFO] [stdout] 749 + }) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless conversion to the same type: `std::vec::IntoIter<(&TransitionSource, &TransitionTarget)>` [INFO] [stdout] --> src/lib.rs:758:62 [INFO] [stdout] | [INFO] [stdout] 758 | for (color, pertargetsourcecolor) in pertargetsource [INFO] [stdout] | ______________________________________________________________^ [INFO] [stdout] 759 | | .into_iter() [INFO] [stdout] 760 | | .sorted_by(|&(_, e1t), &(_, e2t)| e1t.color.cmp(&e2t.color)) [INFO] [stdout] 761 | | .into_iter() [INFO] [stdout] | |________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_conversion [INFO] [stdout] help: consider removing `.into_iter()` [INFO] [stdout] | [INFO] [stdout] 758 ~ for (color, pertargetsourcecolor) in pertargetsource [INFO] [stdout] 759 + .into_iter() [INFO] [stdout] 760 + .sorted_by(|&(_, e1t), &(_, e2t)| e1t.color.cmp(&e2t.color)) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: length comparison to zero [INFO] [stdout] --> src/lib.rs:783:65 [INFO] [stdout] | [INFO] [stdout] 783 | ... .map(|n| if n.len() > 0 { [INFO] [stdout] | ^^^^^^^^^^^ help: using `!is_empty` is clearer and more explicit: `!n.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] [INFO] [stdout] [INFO] [stdout] warning: useless use of `format!` [INFO] [stdout] --> src/lib.rs:816:36 [INFO] [stdout] | [INFO] [stdout] 816 | ... label: format!("{}", tv.get_name().clone().unwrap_or(String::from(""))), [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `tv.get_name().clone().unwrap_or(String::from("")).to_string()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format [INFO] [stdout] = note: `#[warn(clippy::useless_format)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: doc list item without indentation [INFO] [stdout] --> src/lib.rs:922:9 [INFO] [stdout] | [INFO] [stdout] 922 | /// event and possible arguments [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: if this is supposed to be its own paragraph, add a blank line [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#doc_lazy_continuation [INFO] [stdout] = note: `#[warn(clippy::doc_lazy_continuation)]` on by default [INFO] [stdout] help: indent this line [INFO] [stdout] | [INFO] [stdout] 922 | /// event and possible arguments [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/lib.rs:1138:21 [INFO] [stdout] | [INFO] [stdout] 1138 | let ref mut q = self.event_queue; [INFO] [stdout] | ----^^^^^^^^^-------------------- help: try: `let q = &mut self.event_queue;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] = note: `#[warn(clippy::toplevel_ref_arg)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function has too many arguments (9/7) [INFO] [stdout] --> src/lib.rs:1146:17 [INFO] [stdout] | [INFO] [stdout] 1146 | / fn entryexit< [INFO] [stdout] 1147 | | ExtendedState, [INFO] [stdout] 1148 | | EventType, [INFO] [stdout] 1149 | | StateType, [INFO] [stdout] ... | [INFO] [stdout] 1173 | | EventType: Clone + PartialEq + Eq + Hash + Debug, [INFO] [stdout] 1174 | | ErrorType: Debug, [INFO] [stdout] | |_________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stdout] = note: `#[warn(clippy::too_many_arguments)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/lib.rs:1182:33 [INFO] [stdout] | [INFO] [stdout] 1182 | ... let ref func = entryexittrans.transfn; [INFO] [stdout] | ----^^^^^^^^-------------------------- help: try: `let func = &entryexittrans.transfn;` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stdout] --> src/lib.rs:1183:33 [INFO] [stdout] | [INFO] [stdout] 1183 | ... let ref tname = entryexittrans.get_name(); [INFO] [stdout] | ----^^^^^^^^^----------------------------- help: try: `let tname = &entryexittrans.get_name();` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this pattern creates a reference to a reference [INFO] [stdout] --> src/lib.rs:1181:30 [INFO] [stdout] | [INFO] [stdout] 1181 | Some(ref entryexittrans) => { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow [INFO] [stdout] help: try [INFO] [stdout] | [INFO] [stdout] 1181 - Some(ref entryexittrans) => { [INFO] [stdout] 1181 + Some(entryexittrans) => { [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: match expression looks like `matches!` macro [INFO] [stdout] --> src/lib.rs:1292:27 [INFO] [stdout] | [INFO] [stdout] 1292 | }).filter(|e| match *e { [INFO] [stdout] | ___________________________^ [INFO] [stdout] 1293 | | Errors::OK => false, [INFO] [stdout] 1294 | | _ => true, [INFO] [stdout] 1295 | | }).take(1) [INFO] [stdout] | |_________^ [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_like_matches_macro [INFO] [stdout] = note: `#[warn(clippy::match_like_matches_macro)]` on by default [INFO] [stdout] help: use `matches!` directly [INFO] [stdout] | [INFO] [stdout] 1292 - }).filter(|e| match *e { [INFO] [stdout] 1293 - Errors::OK => false, [INFO] [stdout] 1294 - _ => true, [INFO] [stdout] 1295 - }).take(1) [INFO] [stdout] 1292 + }).filter(|e| !matches!(*e, Errors::OK)).take(1) [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1576:21 [INFO] [stdout] | [INFO] [stdout] 1576 | assert!(!still_fsm.process_event_queue().is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `still_fsm.process_event_queue().is_ok()` [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: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1588:21 [INFO] [stdout] | [INFO] [stdout] 1588 | assert!(!still_fsm.process_event_queue().is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `still_fsm.process_event_queue().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1857:21 [INFO] [stdout] | [INFO] [stdout] 1857 | assert!(!c1.process_event_queue().is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c1.process_event_queue().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1869:21 [INFO] [stdout] | [INFO] [stdout] 1869 | assert!(!c1.process_event_queue().is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c1.process_event_queue().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this boolean expression can be simplified [INFO] [stdout] --> src/lib.rs:1886:21 [INFO] [stdout] | [INFO] [stdout] 1886 | assert!(!c2.process_event_queue().is_err()); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `c2.process_event_queue().is_ok()` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/lib.rs:1616:22 [INFO] [stdout] | [INFO] [stdout] 1616 | for fname in vec![None, Some("target/tmp.dot".into())] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[None, Some("target/tmp.dot".into())]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] = note: `#[warn(clippy::useless_vec)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: useless use of `vec!` [INFO] [stdout] --> src/lib.rs:1825:22 [INFO] [stdout] | [INFO] [stdout] 1825 | for fname in vec![None, Some("target/dottest.dot".into())] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: you can use an array directly: `[None, Some("target/dottest.dot".into())]` [INFO] [stdout] | [INFO] [stdout] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_vec [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lib.rs:541:9 [INFO] [stdout] | [INFO] [stdout] 541 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 542 | ) -> Ref> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 542 | ) -> Ref<'_, TransitionTable> [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lib.rs:549:9 [INFO] [stdout] | [INFO] [stdout] 549 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] 550 | ) -> Ref< [INFO] [stdout] | __________^ [INFO] [stdout] 551 | | EntryExitTransitionTable< [INFO] [stdout] 552 | | ExtendedState, [INFO] [stdout] 553 | | StateType, [INFO] [stdout] ... | [INFO] [stdout] 557 | | >, [INFO] [stdout] 558 | | > { [INFO] [stdout] | |_____^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 550 | ) -> Ref<'_, [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/lib.rs:598:27 [INFO] [stdout] | [INFO] [stdout] 598 | pub fn extended_state(&self) -> Ref> { [INFO] [stdout] | ^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | | [INFO] [stdout] | the lifetime is elided here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 598 | pub fn extended_state(&self) -> Ref<'_, Box> { [INFO] [stdout] | +++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.38s [INFO] running `Command { std: "docker" "inspect" "d3149b54c8b436c55119bc8ffe5c07129501b53fb37b143da8e97acd4aa893a1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d3149b54c8b436c55119bc8ffe5c07129501b53fb37b143da8e97acd4aa893a1", kill_on_drop: false }` [INFO] [stdout] d3149b54c8b436c55119bc8ffe5c07129501b53fb37b143da8e97acd4aa893a1