[INFO] fetching crate digraph-rs 0.1.0...
[INFO] checking digraph-rs-0.1.0 against 895980e0290783bb09b1ccf1b11f14eb09b10430 for pr-160186
[INFO] extracting crate digraph-rs 0.1.0 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate digraph-rs 0.1.0
[INFO] finished tweaking crates.io crate digraph-rs 0.1.0
[INFO] tweaked toml for crates.io crate digraph-rs 0.1.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate digraph-rs 0.1.0 on toolchain 895980e0290783bb09b1ccf1b11f14eb09b10430
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "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" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 44 packages to highest compatible versions
[INFO] [stderr]       Adding graphviz-rust v0.5.2 (available: v0.9.9)
[INFO] [stderr]       Adding psm v0.1.24 (available: v0.1.32)
[INFO] [stderr]       Adding rand v0.8.8 (available: v0.10.3)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | homepage = "https://github.com/besok/digraph-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 | repository = "https://github.com/besok/digraph-rs"
[INFO] [stderr]    |              -------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `digraph-rs` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8
[INFO] running `Command { std: "docker" "start" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8" "/opt/rustwide/cargo-home/bin/cargo" "+895980e0290783bb09b1ccf1b11f14eb09b10430" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:12:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | homepage = "https://github.com/besok/digraph-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 17 | repository = "https://github.com/besok/digraph-rs"
[INFO] [stderr]    |              -------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `digraph-rs` (manifest) generated 1 warning
[INFO] [stderr]    Compiling cc v1.8.0
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling dot-structures v0.1.2
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking getrandom v0.4.3
[INFO] [stderr]    Compiling syn v3.0.9
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking dot-generator v0.2.0
[INFO] [stderr]     Checking into-attr v0.1.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling dot-generator v0.1.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.8
[INFO] [stderr]    Compiling psm v0.1.24
[INFO] [stderr]    Compiling stacker v0.1.25
[INFO] [stderr]     Checking pest v2.9.4
[INFO] [stderr]    Compiling into-attr-derive v0.1.0
[INFO] [stderr]    Compiling pest_meta v2.9.4
[INFO] [stderr]    Compiling pest_generator v2.9.4
[INFO] [stderr]    Compiling pest_derive v2.9.4
[INFO] [stderr]     Checking graphviz-rust v0.5.2
[INFO] [stderr]     Checking digraph-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `crate::analyzer::dijkstra::DijkstraPath`
[INFO] [stdout]  --> src/analyzer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::analyzer::dijkstra::DijkstraPath;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_structures::Node`
[INFO] [stdout]  --> src/analyzer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use graphviz_rust::dot_structures::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_generator::*`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use graphviz_rust::dot_generator::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_structures::*`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use graphviz_rust::dot_structures::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]   --> src/analyzer/dijkstra.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::marker::PhantomData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Index`
[INFO] [stdout]   --> src/analyzer/dijkstra.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::ops::{Add, Index};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]   --> src/analyzer/fs.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt::Debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Entry`
[INFO] [stdout]  --> src/analyzer/visit.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::hash_map::Entry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/analyzer/visit.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::attributes::len`
[INFO] [stdout]  --> src/generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use graphviz_rust::attributes::len;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rngs::ThreadRng`
[INFO] [stdout]  --> src/generator.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::{rngs::ThreadRng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DiGraph` and `EmptyPayload`
[INFO] [stdout]  --> src/visualizer/dot.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{DiGraph, EmptyPayload};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandArg` and `Format`
[INFO] [stdout]  --> src/visualizer/dot.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use graphviz_rust::cmd::{CommandArg, Format};
[INFO] [stdout]   |                          ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DotPrinter` and `PrinterContext`
[INFO] [stdout]  --> src/visualizer/dot.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use graphviz_rust::printer::{DotPrinter, PrinterContext};
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `exec_dot` and `exec`
[INFO] [stdout]  --> src/visualizer/dot.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use graphviz_rust::{exec, exec_dot};
[INFO] [stdout]   |                     ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/visualizer/dot.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/visualizer/dot.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |         stmt!(edge!(node_id!(from.as_str()) => node_id!(to.as_str()), attrs))
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `edge`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `edge` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EmptyPayload`
[INFO] [stdout]  --> src/visualizer.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{DiGraph, EmptyPayload};
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EdgeAttributes` and `NodeAttributes`
[INFO] [stdout]  --> src/visualizer.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use graphviz_rust::attributes::{EdgeAttributes, NodeAttributes};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `exec_dot`
[INFO] [stdout]  --> src/visualizer.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use graphviz_rust::{exec, exec_dot};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::visualizer::dot::*`
[INFO] [stdout]   --> src/lib.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | use crate::visualizer::dot::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `vis_to_file` and `vis`
[INFO] [stdout]   --> src/lib.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 | use crate::visualizer::{vis, vis_to_file};
[INFO] [stdout]    |                         ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `graph`, `id`, and `node`
[INFO] [stdout]   --> src/lib.rs:82:36
[INFO] [stdout]    |
[INFO] [stdout] 82 | use graphviz_rust::dot_generator::{graph, id, node};
[INFO] [stdout]    |                                    ^^^^^  ^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Graph`, `Id`, and `Stmt`
[INFO] [stdout]   --> src/lib.rs:83:37
[INFO] [stdout]    |
[INFO] [stdout] 83 | use graphviz_rust::dot_structures::{Graph, Id, Stmt};
[INFO] [stdout]    |                                     ^^^^^  ^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]   --> src/lib.rs:84:33
[INFO] [stdout]    |
[INFO] [stdout] 84 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/lib.rs:85:23
[INFO] [stdout]    |
[INFO] [stdout] 85 | use std::fmt::{Debug, Error, Formatter};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::analyzer::dijkstra::DijkstraPath`
[INFO] [stdout]  --> src/analyzer.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::analyzer::dijkstra::DijkstraPath;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_structures::Node`
[INFO] [stdout]  --> src/analyzer.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use graphviz_rust::dot_structures::Node;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::analyzer::dijkstra::MinPathProcessor`
[INFO] [stdout]    --> src/analyzer/astar.rs:155:9
[INFO] [stdout]     |
[INFO] [stdout] 155 |     use crate::analyzer::dijkstra::MinPathProcessor;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::identity`
[INFO] [stdout]    --> src/analyzer/astar.rs:159:9
[INFO] [stdout]     |
[INFO] [stdout] 159 |     use std::convert::identity;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_generator::*`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use graphviz_rust::dot_generator::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_structures::*`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use graphviz_rust::dot_structures::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::borrow::Borrow`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::borrow::Borrow;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::cmp::Ordering`
[INFO] [stdout]  --> src/analyzer/dijkstra.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::cmp::Ordering;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::marker::PhantomData`
[INFO] [stdout]   --> src/analyzer/dijkstra.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | use std::marker::PhantomData;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Index`
[INFO] [stdout]   --> src/analyzer/dijkstra.rs:15:21
[INFO] [stdout]    |
[INFO] [stdout] 15 | use std::ops::{Add, Index};
[INFO] [stdout]    |                     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::analyzer::min_weight::Score`
[INFO] [stdout]    --> src/analyzer/dijkstra.rs:247:9
[INFO] [stdout]     |
[INFO] [stdout] 247 |     use crate::analyzer::min_weight::Score;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::Debug`
[INFO] [stdout]   --> src/analyzer/fs.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::fmt::Debug;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::hash_map::Entry`
[INFO] [stdout]  --> src/analyzer/visit.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::hash_map::Entry;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashMap`
[INFO] [stdout]  --> src/analyzer/visit.rs:2:24
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]   |                        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::digraph`
[INFO] [stdout]    --> src/builder.rs:164:9
[INFO] [stdout]     |
[INFO] [stdout] 164 |     use crate::digraph;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::attributes::len`
[INFO] [stdout]  --> src/generator.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use graphviz_rust::attributes::len;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rngs::ThreadRng`
[INFO] [stdout]  --> src/generator.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::{rngs::ThreadRng, Rng};
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DiGraph` and `EmptyPayload`
[INFO] [stdout]  --> src/visualizer/dot.rs:1:13
[INFO] [stdout]   |
[INFO] [stdout] 1 | use crate::{DiGraph, EmptyPayload};
[INFO] [stdout]   |             ^^^^^^^  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CommandArg` and `Format`
[INFO] [stdout]  --> src/visualizer/dot.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use graphviz_rust::cmd::{CommandArg, Format};
[INFO] [stdout]   |                          ^^^^^^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `DotPrinter` and `PrinterContext`
[INFO] [stdout]  --> src/visualizer/dot.rs:6:30
[INFO] [stdout]   |
[INFO] [stdout] 6 | use graphviz_rust::printer::{DotPrinter, PrinterContext};
[INFO] [stdout]   |                              ^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `exec_dot` and `exec`
[INFO] [stdout]  --> src/visualizer/dot.rs:7:21
[INFO] [stdout]   |
[INFO] [stdout] 7 | use graphviz_rust::{exec, exec_dot};
[INFO] [stdout]   |                     ^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::hash::Hash`
[INFO] [stdout]  --> src/visualizer/dot.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::hash::Hash;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]   --> src/visualizer/dot.rs:51:15
[INFO] [stdout]    |
[INFO] [stdout] 51 |         stmt!(edge!(node_id!(from.as_str()) => node_id!(to.as_str()), attrs))
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]    = note: to ignore the value produced by the macro, add a semicolon after the invocation of `edge`
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]    = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]    = note: `#[warn(semicolon_in_expressions_from_non_local_macros)]` (part of `#[warn(future_incompatible)]`) on by default
[INFO] [stdout]    = note: this warning originates in the macro `edge` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `vis_to_file` and `vis`
[INFO] [stdout]   --> src/visualizer/dot.rs:73:29
[INFO] [stdout]    |
[INFO] [stdout] 73 |     use crate::visualizer::{vis, vis_to_file};
[INFO] [stdout]    |                             ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `graphviz_rust::dot_structures::Graph`
[INFO] [stdout]   --> src/visualizer/dot.rs:77:9
[INFO] [stdout]    |
[INFO] [stdout] 77 |     use graphviz_rust::dot_structures::Graph;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `EmptyPayload`
[INFO] [stdout]  --> src/visualizer.rs:3:22
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::{DiGraph, EmptyPayload};
[INFO] [stdout]   |                      ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EdgeAttributes` and `NodeAttributes`
[INFO] [stdout]  --> src/visualizer.rs:4:33
[INFO] [stdout]   |
[INFO] [stdout] 4 | use graphviz_rust::attributes::{EdgeAttributes, NodeAttributes};
[INFO] [stdout]   |                                 ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `exec_dot`
[INFO] [stdout]  --> src/visualizer.rs:9:27
[INFO] [stdout]   |
[INFO] [stdout] 9 | use graphviz_rust::{exec, exec_dot};
[INFO] [stdout]   |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::visualizer::dot::*`
[INFO] [stdout]   --> src/lib.rs:78:5
[INFO] [stdout]    |
[INFO] [stdout] 78 | use crate::visualizer::dot::*;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `vis_to_file` and `vis`
[INFO] [stdout]   --> src/lib.rs:79:25
[INFO] [stdout]    |
[INFO] [stdout] 79 | use crate::visualizer::{vis, vis_to_file};
[INFO] [stdout]    |                         ^^^  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `graph`, `id`, and `node`
[INFO] [stdout]   --> src/lib.rs:82:36
[INFO] [stdout]    |
[INFO] [stdout] 82 | use graphviz_rust::dot_generator::{graph, id, node};
[INFO] [stdout]    |                                    ^^^^^  ^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Graph`, `Id`, and `Stmt`
[INFO] [stdout]   --> src/lib.rs:83:37
[INFO] [stdout]    |
[INFO] [stdout] 83 | use graphviz_rust::dot_structures::{Graph, Id, Stmt};
[INFO] [stdout]    |                                     ^^^^^  ^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `HashSet`
[INFO] [stdout]   --> src/lib.rs:84:33
[INFO] [stdout]    |
[INFO] [stdout] 84 | use std::collections::{HashMap, HashSet};
[INFO] [stdout]    |                                 ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Error`
[INFO] [stdout]   --> src/lib.rs:85:23
[INFO] [stdout]    |
[INFO] [stdout] 85 | use std::fmt::{Debug, Error, Formatter};
[INFO] [stdout]    |                       ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/generator.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 |         mut f_id: FNId,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SearchRes` is never used
[INFO] [stdout]   --> src/analyzer.rs:13:6
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum SearchRes {
[INFO] [stdout]    |      ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `path`, `start`, and `target` are never read
[INFO] [stdout]   --> src/analyzer/astar.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct MinPathStrict<NId>
[INFO] [stdout]    |            ------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 18 |     path: HashMap<NId, NId>,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 19 |     start: NId,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 20 |     target: NId,
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MinPathStrict` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `path` is never used
[INFO] [stdout]   --> src/analyzer/astar.rs:27:8
[INFO] [stdout]    |
[INFO] [stdout] 23 | / impl<NId> MinPathStrict<NId>
[INFO] [stdout] 24 | | where
[INFO] [stdout] 25 | |     NId: Eq + Hash + Clone,
[INFO] [stdout]    | |___________________________- method in this implementation
[INFO] [stdout] 26 |   {
[INFO] [stdout] 27 |       fn path(&self) -> Vec<NId> {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MinScorePathProcessor` is never constructed
[INFO] [stdout]    --> src/analyzer/dijkstra.rs:125:8
[INFO] [stdout]     |
[INFO] [stdout] 125 | struct MinScorePathProcessor<NId, ScoreV>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/analyzer/dijkstra.rs:140:12
[INFO] [stdout]     |
[INFO] [stdout] 135 | / impl<NId, ScoreV> MinScorePathProcessor<NId, ScoreV>
[INFO] [stdout] 136 | | where
[INFO] [stdout] 137 | |     NId: Eq + Hash + Clone,
[INFO] [stdout] 138 | |     ScoreV: Clone,
[INFO] [stdout]     | |__________________- associated function in this implementation
[INFO] [stdout] 139 |   {
[INFO] [stdout] 140 |       pub fn new(from: NId, distance: HashMap<NId, Score<ScoreV>>) -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DFS` is never constructed
[INFO] [stdout]   --> src/analyzer/fs.rs:17:8
[INFO] [stdout]    |
[INFO] [stdout] 17 | struct DFS<'a, NId, NL, EL>
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `search_by_eq`, and `search` are never used
[INFO] [stdout]   --> src/analyzer/fs.rs:28:8
[INFO] [stdout]    |
[INFO] [stdout] 24 | / impl<'a, NId, NL, EL> DFS<'a, NId, NL, EL>
[INFO] [stdout] 25 | | where
[INFO] [stdout] 26 | |     NId: Eq + Hash + Clone,
[INFO] [stdout]    | |___________________________- associated items in this implementation
[INFO] [stdout] 27 |   {
[INFO] [stdout] 28 |       fn new(graph: &'a DiGraph<NId, NL, EL>) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |       pub fn search_by_eq(&self, start: &'a NId, target: &'a NId) -> Option<&'a NId> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |       fn search<S>(&self, start: &'a NId, target: S) -> Option<&'a NId>
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BFS` is never constructed
[INFO] [stdout]   --> src/analyzer/fs.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | struct BFS<'a, NId, NL, EL>
[INFO] [stdout]    |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `search_by_eq`, and `search` are never used
[INFO] [stdout]   --> src/analyzer/fs.rs:82:8
[INFO] [stdout]    |
[INFO] [stdout] 78 | / impl<'a, NId, NL, EL> BFS<'a, NId, NL, EL>
[INFO] [stdout] 79 | | where
[INFO] [stdout] 80 | |     NId: Eq + Hash + Clone,
[INFO] [stdout]    | |___________________________- associated items in this implementation
[INFO] [stdout] 81 |   {
[INFO] [stdout] 82 |       fn new(graph: &'a DiGraph<NId, NL, EL>) -> Self {
[INFO] [stdout]    |          ^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |       pub fn search_by_eq(&self, start: &'a NId, target: &'a NId) -> Option<&'a NId> {
[INFO] [stdout]    |              ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 95 |       fn search<S>(&self, start: &'a NId, target: S) -> Option<&'a NId>
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SrcTrgHighlighter` is never constructed
[INFO] [stdout]    --> src/analyzer/fs.rs:126:8
[INFO] [stdout]     |
[INFO] [stdout] 126 | struct SrcTrgHighlighter<'a, NId>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/analyzer/fs.rs:139:8
[INFO] [stdout]     |
[INFO] [stdout] 135 | / impl<'a, NId> SrcTrgHighlighter<'a, NId>
[INFO] [stdout] 136 | | where
[INFO] [stdout] 137 | |     NId: Eq + Hash + Clone + ToString,
[INFO] [stdout]     | |______________________________________- associated function in this implementation
[INFO] [stdout] 138 |   {
[INFO] [stdout] 139 |       fn new(src: &'a NId, trg: &'a NId) -> Self {
[INFO] [stdout]     |          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:163:20
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn analyze(&self) -> GraphAnalyzer<NId, NL, EL> {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn analyze(&self) -> GraphAnalyzer<'_, NId, NL, EL> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn visualize(&self) -> DotGraphVisualizer<NId, NL, EL> {
[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] 168 |     pub fn visualize(&self) -> DotGraphVisualizer<'_, NId, NL, EL> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/analyzer/fs.rs:53:34
[INFO] [stdout]    |
[INFO] [stdout] 53 |                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 53 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 53 +                     while let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 53 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 53 +                     if let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/analyzer/fs.rs:108:34
[INFO] [stdout]     |
[INFO] [stdout] 108 |                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 108 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 108 +                     while let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 108 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 108 +                     if let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `from`
[INFO] [stdout]    --> src/analyzer/astar.rs:177:47
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let astar_res = astar.on_edge(1, 11, |from| 0).path();
[INFO] [stdout]     |                                               ^^^^ help: if this is intentional, prefix it with an underscore: `_from`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:179:13
[INFO] [stdout]     |
[INFO] [stdout] 179 |         let d = digraph!();
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:180:13
[INFO] [stdout]     |
[INFO] [stdout] 180 |         let d = digraph!(_, S, usize);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:181:13
[INFO] [stdout]     |
[INFO] [stdout] 181 |         let d = digraph!(_, S, S);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:182:13
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let d = digraph!(_, S, _);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:183:13
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let d = digraph!(_, _, S);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:184:13
[INFO] [stdout]     |
[INFO] [stdout] 184 |         let d = digraph!(_, bool, S);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/builder.rs:233:13
[INFO] [stdout]     |
[INFO] [stdout] 233 |         let mut g = digraph!((&str,_,i32) => ["a","b","c"] => {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `d`
[INFO] [stdout]    --> src/builder.rs:222:13
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let d = digraph!(String, _, _);
[INFO] [stdout]     |             ^ help: if this is intentional, prefix it with an underscore: `_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/builder.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |         let mut g = extend_edges!(g => {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/builder.rs:294:13
[INFO] [stdout]     |
[INFO] [stdout] 294 |         let mut g = extend_edges!(g => {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/builder.rs:337:13
[INFO] [stdout]     |
[INFO] [stdout] 337 |         let mut g = extend_edges!(g => {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/builder.rs:378:13
[INFO] [stdout]     |
[INFO] [stdout] 378 |         let mut g = extend_edges!(g => {
[INFO] [stdout]     |             ----^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/generator.rs:251:9
[INFO] [stdout]     |
[INFO] [stdout] 251 |         mut f_id: FNId,
[INFO] [stdout]     |         ----^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Stop` and `Skip` are never constructed
[INFO] [stdout]   --> src/analyzer.rs:16:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | enum SearchRes {
[INFO] [stdout]    |      --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 16 |     Stop,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout] 17 |     Skip,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]    --> src/builder.rs:169:14
[INFO] [stdout]     |
[INFO] [stdout] 169 |     struct S(i32);
[INFO] [stdout]     |            - ^^^
[INFO] [stdout]     |            |
[INFO] [stdout]     |            field in this struct
[INFO] [stdout]     |
[INFO] [stdout]     = help: consider removing this field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/builder.rs:172:16
[INFO] [stdout]     |
[INFO] [stdout] 171 |     impl S {
[INFO] [stdout]     |     ------ associated function in this implementation
[INFO] [stdout] 172 |         pub fn new(i: i32) -> Self {
[INFO] [stdout]     |                ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:163:20
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn analyze(&self) -> GraphAnalyzer<NId, NL, EL> {
[INFO] [stdout]     |                    ^^^^^     ^^^^^^^^^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn analyze(&self) -> GraphAnalyzer<'_, NId, NL, EL> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:168:22
[INFO] [stdout]     |
[INFO] [stdout] 168 |     pub fn visualize(&self) -> DotGraphVisualizer<NId, NL, EL> {
[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] 168 |     pub fn visualize(&self) -> DotGraphVisualizer<'_, NId, NL, EL> {
[INFO] [stdout]     |                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]   --> src/analyzer/fs.rs:53:34
[INFO] [stdout]    |
[INFO] [stdout] 53 |                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(for_loops_over_fallibles)]` on by default
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]    |
[INFO] [stdout] 53 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 53 +                     while let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]    |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]    |
[INFO] [stdout] 53 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 53 +                     if let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: for loop over an `Option`. This is more readably written as an `if let` statement
[INFO] [stdout]    --> src/analyzer/fs.rs:108:34
[INFO] [stdout]     |
[INFO] [stdout] 108 |                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: to check pattern in a loop use `while let`
[INFO] [stdout]     |
[INFO] [stdout] 108 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 108 +                     while let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]     |
[INFO] [stdout] help: consider using `if let` to clear intent
[INFO] [stdout]     |
[INFO] [stdout] 108 -                     for nexts in self.graph.successors(node.clone()) {
[INFO] [stdout] 108 +                     if let Some(nexts) = self.graph.successors(node.clone()) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/analyzer/fs.rs:253:9
[INFO] [stdout]     |
[INFO] [stdout] 253 | /         graph
[INFO] [stdout] 254 | |             .visualize()
[INFO] [stdout] 255 | |             .to_dot_file("dots/test.svg", SrcTrgHighlighter::new(&1, &10));
[INFO] [stdout]     | |__________________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 253 |         let _ = graph
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.53s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: digraph-rs v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 10`
[INFO] running `Command { std: "docker" "inspect" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8", kill_on_drop: false }`
[INFO] [stdout] 90c7cb2d462842ea3a792be06917ebdf1cfbaf03c55099f3b48065868956a7a8
