[INFO] fetching crate libreda-sta 0.0.3...
[INFO] checking libreda-sta-0.0.3 against c397dae808f70caebab1fc4e11b3edf7e59f58c7 for pr-158759-1
[INFO] extracting crate libreda-sta 0.0.3 into /workspace/builds/worker-7-tc1/source
[INFO] started tweaking crates.io crate libreda-sta 0.0.3
[INFO] finished tweaking crates.io crate libreda-sta 0.0.3
[INFO] tweaked toml for crates.io crate libreda-sta 0.0.3 written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate libreda-sta 0.0.3 on toolchain c397dae808f70caebab1fc4e11b3edf7e59f58c7
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "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" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]      Locking 134 packages to latest compatible versions
[INFO] [stderr]       Adding blanket v0.3.0 (available: v0.4.0)
[INFO] [stderr]       Adding itertools v0.10.5 (available: v0.15.0)
[INFO] [stderr]       Adding ndarray v0.15.6 (available: v0.17.2)
[INFO] [stderr]       Adding pargraph v0.1.6 (available: v0.2.0)
[INFO] [stderr]       Adding petgraph v0.6.5 (available: v0.8.3)
[INFO] [stderr]       Adding regex v1.10.6 (available: v1.13.1)
[INFO] [stderr]       Adding uom v0.36.0 (available: v0.38.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fixedbitset v0.4.2
[INFO] [stderr]   Downloaded hash32 v0.2.1
[INFO] [stderr]   Downloaded rawpointer v0.2.1
[INFO] [stderr]   Downloaded num-derive v0.3.3
[INFO] [stderr]   Downloaded matchers v0.2.0
[INFO] [stderr]   Downloaded thread_local v1.1.10
[INFO] [stderr]   Downloaded portrait-codegen v0.2.3
[INFO] [stderr]   Downloaded siphasher v1.0.3
[INFO] [stderr]   Downloaded pico-args v0.5.0
[INFO] [stderr]   Downloaded portrait v0.2.3
[INFO] [stderr]   Downloaded atomic-polyfill v1.0.3
[INFO] [stderr]   Downloaded lalrpop-util v0.20.2
[INFO] [stderr]   Downloaded ascii-canvas v3.0.0
[INFO] [stderr]   Downloaded blanket v0.3.0
[INFO] [stderr]   Downloaded valuable v0.1.1
[INFO] [stderr]   Downloaded num-complex v0.4.6
[INFO] [stderr]   Downloaded libredox v0.1.18
[INFO] [stderr]   Downloaded nu-ansi-term v0.50.3
[INFO] [stderr]   Downloaded scoped-tls v1.0.1
[INFO] [stderr]   Downloaded num-rational v0.4.2
[INFO] [stderr]   Downloaded libreda-splay v0.1.1
[INFO] [stderr]   Downloaded ena v0.14.4
[INFO] [stderr]   Downloaded streaming-iterator v0.1.9
[INFO] [stderr]   Downloaded tracing-log v0.2.0
[INFO] [stderr]   Downloaded crossbeam-deque v0.8.7
[INFO] [stderr]   Downloaded generator v0.8.9
[INFO] [stderr]   Downloaded crossbeam-epoch v0.9.20
[INFO] [stderr]   Downloaded critical-section v1.2.0
[INFO] [stderr]   Downloaded iron-shapes-booleanop v0.1.0
[INFO] [stderr]   Downloaded sharded-slab v0.1.7
[INFO] [stderr]   Downloaded libreda-structural-verilog v0.0.5
[INFO] [stderr]   Downloaded rstar v0.9.3
[INFO] [stderr]   Downloaded spin v0.9.9
[INFO] [stderr]   Downloaded semver v1.0.28
[INFO] [stderr]   Downloaded matrixmultiply v0.3.11
[INFO] [stderr]   Downloaded loom v0.7.2
[INFO] [stderr]   Downloaded typenum v1.20.1
[INFO] [stderr]   Downloaded heapless v0.7.17
[INFO] [stderr]   Downloaded libreda-logic v0.0.3
[INFO] [stderr]   Downloaded libreda-db v0.0.12
[INFO] [stderr]   Downloaded rand v0.8.7
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.55
[INFO] [stderr]   Downloaded num-bigint v0.4.8
[INFO] [stderr]   Downloaded iron-shapes v0.1.1
[INFO] [stderr]   Downloaded uom v0.36.0
[INFO] [stderr]   Downloaded pargraph v0.1.6
[INFO] [stderr]   Downloaded itertools v0.10.5
[INFO] [stderr]   Downloaded itertools v0.11.0
[INFO] [stderr]   Downloaded tracing-subscriber v0.3.23
[INFO] [stderr]   Downloaded ndarray v0.15.6
[INFO] [stderr]   Downloaded regex v1.10.6
[INFO] [stderr]   Downloaded zerocopy v0.8.55
[INFO] [stderr]   Downloaded lalrpop v0.20.2
[INFO] [stderr]   Downloaded petgraph v0.6.5
[INFO] [stderr]   Downloaded portrait-framework v0.2.1
[INFO] [stderr]   Downloaded libreda-stream-parser v0.2.0
[INFO] [stderr]   Downloaded liberty-io v0.0.4
[INFO] [stderr]   Downloaded libreda-interp v0.0.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/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:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878
[INFO] running `Command { std: "docker" "start" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878", 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" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878" "/opt/rustwide/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878", 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" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878" "/opt/rustwide/cargo-home/bin/cargo" "+c397dae808f70caebab1fc4e11b3edf7e59f58c7" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling zerocopy v0.8.55
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]     Checking scopeguard v1.2.0
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling crunchy v0.2.4
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]     Checking lock_api v0.4.14
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking spin v0.9.9
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling equivalent v1.0.2
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]     Checking stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]     Checking hash32 v0.2.1
[INFO] [stderr]    Compiling hashbrown v0.17.1
[INFO] [stderr]    Compiling siphasher v1.0.3
[INFO] [stderr]    Compiling tiny-keccak v2.0.2
[INFO] [stderr]    Compiling phf_shared v0.11.3
[INFO] [stderr]    Compiling matrixmultiply v0.3.11
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]     Checking libreda-splay v0.1.1
[INFO] [stderr]    Compiling fixedbitset v0.4.2
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling new_debug_unreachable v1.0.6
[INFO] [stderr]    Compiling precomputed-hash v0.1.1
[INFO] [stderr]     Checking fnv v1.0.7
[INFO] [stderr]    Compiling bit-set v0.5.3
[INFO] [stderr]    Compiling ena v0.14.4
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling dirs-sys-next v0.1.2
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]    Compiling dirs-next v2.0.0
[INFO] [stderr]    Compiling term v0.7.0
[INFO] [stderr]     Checking rstar v0.9.3
[INFO] [stderr]    Compiling petgraph v0.6.5
[INFO] [stderr]    Compiling ascii-canvas v3.0.0
[INFO] [stderr]     Checking rawpointer v0.2.1
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]     Checking num-bigint v0.4.8
[INFO] [stderr]    Compiling regex-automata v0.4.16
[INFO] [stderr]    Compiling unicode-xid v0.2.6
[INFO] [stderr]    Compiling pico-args v0.5.0
[INFO] [stderr]    Compiling string_cache v0.8.9
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking libreda-stream-parser v0.2.0
[INFO] [stderr]     Checking streaming-iterator v0.1.9
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]     Checking ndarray v0.15.6
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]     Checking uom v0.36.0
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking num-rational v0.4.2
[INFO] [stderr]     Checking pargraph v0.1.6
[INFO] [stderr]    Compiling blanket v0.3.0
[INFO] [stderr]     Checking libreda-logic v0.0.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.7
[INFO] [stderr]    Compiling regex v1.10.6
[INFO] [stderr]    Compiling lalrpop-util v0.20.2
[INFO] [stderr]     Checking libreda-interp v0.0.3
[INFO] [stderr]    Compiling lalrpop v0.20.2
[INFO] [stderr]    Compiling portrait-framework v0.2.1
[INFO] [stderr]    Compiling portrait-codegen v0.2.3
[INFO] [stderr]     Checking iron-shapes v0.1.1
[INFO] [stderr]     Checking portrait v0.2.3
[INFO] [stderr]     Checking iron-shapes-booleanop v0.1.0
[INFO] [stderr]     Checking libreda-db v0.0.12
[INFO] [stderr]     Checking liberty-io v0.0.4
[INFO] [stderr]    Compiling libreda-structural-verilog v0.0.5
[INFO] [stderr]     Checking libreda-sta v0.0.3 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/liberty_library/import.rs:462:26
[INFO] [stdout]     |
[INFO] [stdout] 462 |             if let Some((f, var_names)) = &output_function {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]    --> src/liberty_library/mod.rs:531:9
[INFO] [stdout]     |
[INFO] [stdout] 531 |         output_load: Capacitance,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]    --> src/liberty_library/mod.rs:542:9
[INFO] [stdout]     |
[INFO] [stdout] 542 |         output_load: Capacitance,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `f`
[INFO] [stdout]    --> src/liberty_library/import.rs:462:26
[INFO] [stdout]     |
[INFO] [stdout] 462 |             if let Some((f, var_names)) = &output_function {
[INFO] [stdout]     |                          ^ help: if this is intentional, prefix it with an underscore: `_f`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/models/nldm_cell_delay.rs:485:47
[INFO] [stdout]     |
[INFO] [stdout] 485 |         if let SignalTransitionType::Constant(c) = input_signal.transition_type() {
[INFO] [stdout]     |                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `L`
[INFO] [stdout]     |
[INFO] [stdout] 485 -         if let SignalTransitionType::Constant(c) = input_signal.transition_type() {
[INFO] [stdout] 485 +         if let SignalTransitionType::Constant(libreda_logic::logic_value::Logic3::L) = input_signal.transition_type() {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 485 |         if let SignalTransitionType::Constant(_c) = input_signal.transition_type() {
[INFO] [stdout]     |                                               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]   --> src/models/zero_interconnect_delay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         output_load: &Self::Load,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]    --> src/liberty_library/mod.rs:531:9
[INFO] [stdout]     |
[INFO] [stdout] 531 |         output_load: Capacitance,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]    --> src/liberty_library/mod.rs:542:9
[INFO] [stdout]     |
[INFO] [stdout] 542 |         output_load: Capacitance,
[INFO] [stdout]     |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `timing_library`
[INFO] [stdout]    --> src/liberty_library/mod.rs:569:9
[INFO] [stdout]     |
[INFO] [stdout] 569 |     let timing_library = LibertyTimingLibrary::new(&library, cell_by_name, pin_by_name).unwrap();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timing_library`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `cell_fall`
[INFO] [stdout]    --> src/liberty_library/mod.rs:651:9
[INFO] [stdout]     |
[INFO] [stdout] 651 |     let cell_fall = arc_a_y.cell_fall.as_ref().unwrap();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_cell_fall`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]    --> src/signal_propagation.rs:315:25
[INFO] [stdout]     |
[INFO] [stdout] 315 |                     let output_load = C::Load::zero(); // TODO
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint_node_data`
[INFO] [stdout]    --> src/signal_propagation.rs:618:36
[INFO] [stdout]     |
[INFO] [stdout] 618 |                 |(constraint_edge, constraint_node_data)| {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint_node_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clock_id`
[INFO] [stdout]    --> src/lib.rs:209:41
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn report_critical_paths(&self, clock_id: ClockId, setup_hold: SetupHold) -> () {
[INFO] [stdout]     |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clock_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `setup_hold`
[INFO] [stdout]    --> src/lib.rs:209:60
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn report_critical_paths(&self, clock_id: ClockId, setup_hold: SetupHold) -> () {
[INFO] [stdout]     |                                                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setup_hold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]    --> src/models/nldm_cell_delay.rs:485:47
[INFO] [stdout]     |
[INFO] [stdout] 485 |         if let SignalTransitionType::Constant(c) = input_signal.transition_type() {
[INFO] [stdout]     |                                               ^
[INFO] [stdout]     |
[INFO] [stdout] help: you might have meant to pattern match on the similarly named variant `L`
[INFO] [stdout]     |
[INFO] [stdout] 485 -         if let SignalTransitionType::Constant(c) = input_signal.transition_type() {
[INFO] [stdout] 485 +         if let SignalTransitionType::Constant(libreda_logic::logic_value::Logic3::L) = input_signal.transition_type() {
[INFO] [stdout]     |
[INFO] [stdout] help: if this is intentional, prefix it with an underscore
[INFO] [stdout]     |
[INFO] [stdout] 485 |         if let SignalTransitionType::Constant(_c) = input_signal.transition_type() {
[INFO] [stdout]     |                                               +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nodes`
[INFO] [stdout]    --> src/lib.rs:566:26
[INFO] [stdout]     |
[INFO] [stdout] 566 |             if let Some(&nodes) = self.timing_graph.term2node.get(&terminal) {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:785:13
[INFO] [stdout]     |
[INFO] [stdout] 785 |         let mut missing_cells: FnvHashSet<N::CellId> = Default::default();
[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: `leaf_cell`
[INFO] [stdout]    --> src/lib.rs:787:13
[INFO] [stdout]     |
[INFO] [stdout] 787 |         for leaf_cell in top.each_cell_dependency() {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leaf_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]   --> src/models/zero_interconnect_delay.rs:72:9
[INFO] [stdout]    |
[INFO] [stdout] 72 |         output_load: &Self::Load,
[INFO] [stdout]    |         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `load1`
[INFO] [stdout]    --> src/lib.rs:842:25
[INFO] [stdout]     |
[INFO] [stdout] 842 |     fn sum_loads(&self, load1: &Self::Load, load2: &Self::Load) -> Self::Load {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_load1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `load2`
[INFO] [stdout]    --> src/lib.rs:842:45
[INFO] [stdout]     |
[INFO] [stdout] 842 |     fn sum_loads(&self, load1: &Self::Load, load2: &Self::Load) -> Self::Load {
[INFO] [stdout]     |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_load2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output_load`
[INFO] [stdout]    --> src/signal_propagation.rs:315:25
[INFO] [stdout]     |
[INFO] [stdout] 315 |                     let output_load = C::Load::zero(); // TODO
[INFO] [stdout]     |                         ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_output_load`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape_id`
[INFO] [stdout]     --> src/lib.rs:1181:32
[INFO] [stdout]      |
[INFO] [stdout] 1181 |     fn remove_shape(&mut self, shape_id: &Self::ShapeId) -> Option<db::Geometry<Self::Coord>> {
[INFO] [stdout]      |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shape_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `constraint_node_data`
[INFO] [stdout]    --> src/signal_propagation.rs:618:36
[INFO] [stdout]     |
[INFO] [stdout] 618 |                 |(constraint_edge, constraint_node_data)| {
[INFO] [stdout]     |                                    ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_constraint_node_data`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toposort_delay_graph` and `debug_print_actual_signals` are never used
[INFO] [stdout]    --> src/lib.rs:665:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | / impl<N, Lib> SimpleSTA<N, Lib>
[INFO] [stdout] 306 | | where
[INFO] [stdout] 307 | |     N: NetlistBase,
[INFO] [stdout] 308 | |     Lib: CellLoadModel<N> + CellDelayModel<N> + CellConstraintModel<N> + LogicModel<N>,
[INFO] [stdout] 309 | |     Lib::LogicValue: LogicOps + From<bool> + TryInto<bool>,
[INFO] [stdout]     | |___________________________________________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 665 |       fn toposort_delay_graph(&self) -> Result<Vec<TerminalId<N>>, StaError> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 710 |       fn debug_print_actual_signals(&self) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `propagate_cones` is never used
[INFO] [stdout]   --> src/cone_propagation.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) fn propagate_cones<Netlist, CellModel>(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `critical_paths` is never used
[INFO] [stdout]   --> src/critical_path/mod.rs:29:8
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub fn critical_paths<G, F, D>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `shortest_paths` is never used
[INFO] [stdout]   --> src/critical_path/mod.rs:71:8
[INFO] [stdout]    |
[INFO] [stdout] 71 | pub fn shortest_paths<G, F, D>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `longest_paths` is never used
[INFO] [stdout]   --> src/critical_path/mod.rs:87:8
[INFO] [stdout]    |
[INFO] [stdout] 87 | pub fn longest_paths<'f, G, F, D>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Ordered` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:182:19
[INFO] [stdout]     |
[INFO] [stdout] 182 | pub(super) struct Ordered<O, T>(O, T);
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `PrefixTree` is never used
[INFO] [stdout]    --> src/critical_path/mod.rs:224:6
[INFO] [stdout]     |
[INFO] [stdout] 224 | type PrefixTree<NodeId, D> = StableDiGraph<PrefixTreeNode<NodeId, D>, ()>;
[INFO] [stdout]     |      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CriticalPaths` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:226:12
[INFO] [stdout]     |
[INFO] [stdout] 226 | pub struct CriticalPaths<G, F, D>
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PrefixTreeNode` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 276 | struct PrefixTreeNode<NodeId, D> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/critical_path/mod.rs:286:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | impl<N, D> PrefixTreeNode<N, D> {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] 286 |     fn new(a: N, b: N, cost: D) -> Self {
[INFO] [stdout]     |        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviationEdges` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:301:8
[INFO] [stdout]     |
[INFO] [stdout] 301 | struct DeviationEdges<'a, NodeId, D> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `deviation_edges_from_prefix_node`, `path_from_prefix_node`, `path_cost_from_prefix_node_naive`, `next_path`, and `next_prefix_node` are never used
[INFO] [stdout]    --> src/critical_path/mod.rs:347:8
[INFO] [stdout]     |
[INFO] [stdout] 338 | / impl<G, F, D> CriticalPaths<G, F, D>
[INFO] [stdout] 339 | | where
[INFO] [stdout] 340 | |     G: IntoEdgesDirected + Visitable,
[INFO] [stdout] 341 | |     G::NodeId: Hash + Eq + PartialEq,
[INFO] [stdout] 342 | |     D: Measure + Copy,
[INFO] [stdout] 343 | |     F: Fn(G::EdgeRef) -> D,
[INFO] [stdout]     | |___________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 347 |       fn deviation_edges_from_prefix_node(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 359 |       fn path_from_prefix_node(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 378 |       fn path_cost_from_prefix_node_naive(&self, prefix_node: NodeIndex) -> D {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 397 |       fn next_path(&mut self) -> Option<Vec<PathEdge<G::NodeId, D>>> {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 523 |       fn next_prefix_node(&mut self) -> Option<NodeIndex> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImplicitPath` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:537:8
[INFO] [stdout]     |
[INFO] [stdout] 537 | struct ImplicitPath<NodeId, Deviations, F> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nodes` is never used
[INFO] [stdout]    --> src/critical_path/mod.rs:570:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | / impl<NodeId, Deviations, F, Dist> ImplicitPath<NodeId, Deviations, F>
[INFO] [stdout] 563 | | where
[INFO] [stdout] 564 | |     F: Fn(&NodeId) -> Option<NextHop<Dist, NodeId>>,
[INFO] [stdout] 565 | |     Dist: PartialEq + Clone,
[INFO] [stdout] 566 | |     NodeId: PartialEq + Copy,
[INFO] [stdout] 567 | |     Deviations: Iterator<Item = PathEdge<NodeId, Dist>> + Clone,
[INFO] [stdout]     | |________________________________________________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 570 |       fn nodes(self) -> impl Iterator<Item = NodeId> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ImplicitPathIter` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:577:8
[INFO] [stdout]     |
[INFO] [stdout] 577 | struct ImplicitPathIter<NodeId, Deviations, F>
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PathEdge` is never constructed
[INFO] [stdout]    --> src/critical_path/mod.rs:631:12
[INFO] [stdout]     |
[INFO] [stdout] 631 | pub struct PathEdge<NodeId, D> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reversed` is never used
[INFO] [stdout]    --> src/critical_path/mod.rs:639:8
[INFO] [stdout]     |
[INFO] [stdout] 637 | impl<NodeId, D> PathEdge<NodeId, D> {
[INFO] [stdout]     | ----------------------------------- method in this implementation
[INFO] [stdout] 638 |     /// Swap source and target nodes.
[INFO] [stdout] 639 |     fn reversed(self) -> Self {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `backtrack_with_deviations` is never used
[INFO] [stdout]    --> src/critical_path/mod.rs:664:4
[INFO] [stdout]     |
[INFO] [stdout] 664 | fn backtrack_with_deviations<NodeId, D>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Lazy` is never constructed
[INFO] [stdout]   --> src/critical_path/lazy_dijkstra.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub struct Lazy;
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Precomputed` is never constructed
[INFO] [stdout]   --> src/critical_path/lazy_dijkstra.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct Precomputed;
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Dijkstra` is never constructed
[INFO] [stdout]   --> src/critical_path/lazy_dijkstra.rs:24:12
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct Dijkstra<Type, G, D, F>
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/critical_path/lazy_dijkstra.rs:69:12
[INFO] [stdout]    |
[INFO] [stdout] 63 | / impl<G, D, F> Dijkstra<Lazy, G, D, F>
[INFO] [stdout] 64 | | where
[INFO] [stdout] 65 | |     G: GraphBase + Visitable + IntoEdges,
[INFO] [stdout] 66 | |     D: Measure,
[INFO] [stdout] 67 | |     F: Fn(G::EdgeRef) -> D,
[INFO] [stdout]    | |___________________________- associated function in this implementation
[INFO] [stdout] 68 |   {
[INFO] [stdout] 69 |       pub fn new(graph: G, start: G::NodeId, edge_cost: F) -> Dijkstra<Lazy, G, D, F> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_hop` is never used
[INFO] [stdout]   --> src/critical_path/lazy_dijkstra.rs:92:12
[INFO] [stdout]    |
[INFO] [stdout] 84 | / impl<G, D, F> Dijkstra<Precomputed, G, D, F>
[INFO] [stdout] 85 | | where
[INFO] [stdout] 86 | |     G: IntoEdges + Visitable,
[INFO] [stdout] 87 | |     G::NodeId: Eq + Hash,
[INFO] [stdout] 88 | |     F: Fn(G::EdgeRef) -> D,
[INFO] [stdout] 89 | |     D: Measure + Copy,
[INFO] [stdout]    | |______________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 92 |       pub fn next_hop(&self, dest: &G::NodeId) -> Option<NextHop<D, G::NodeId>> {
[INFO] [stdout]    |              ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_hop` and `precompute` are never used
[INFO] [stdout]    --> src/critical_path/lazy_dijkstra.rs:105:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | / impl<G, D, F> Dijkstra<Lazy, G, D, F>
[INFO] [stdout]  98 | | where
[INFO] [stdout]  99 | |     G: IntoEdges + Visitable,
[INFO] [stdout] 100 | |     G::NodeId: Eq + Hash,
[INFO] [stdout] 101 | |     F: Fn(G::EdgeRef) -> D,
[INFO] [stdout] 102 | |     D: Measure + Copy,
[INFO] [stdout]     | |______________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 105 |       pub fn next_hop(&mut self, dest: &G::NodeId) -> Option<NextHop<D, G::NodeId>> {
[INFO] [stdout]     |              ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |       pub fn precompute(mut self) -> Dijkstra<Precomputed, G, D, F> {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allow_negative_weights`, `next_hop_cached`, and `search_next_hop` are never used
[INFO] [stdout]    --> src/critical_path/lazy_dijkstra.rs:138:12
[INFO] [stdout]     |
[INFO] [stdout] 130 | / impl<T, G, D, F> Dijkstra<T, G, D, F>
[INFO] [stdout] 131 | | where
[INFO] [stdout] 132 | |     G: IntoEdges + Visitable,
[INFO] [stdout] 133 | |     G::NodeId: Eq + Hash,
[INFO] [stdout] 134 | |     F: Fn(G::EdgeRef) -> D,
[INFO] [stdout] 135 | |     D: Measure + Copy,
[INFO] [stdout]     | |______________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 138 |       pub fn allow_negative_weights(self, allow: bool) -> Self {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 146 |       pub fn next_hop_cached(&self, dest: &G::NodeId) -> Option<NextHop<D, G::NodeId>> {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 |       fn search_next_hop(&mut self, dest: &G::NodeId) -> Option<NextHop<D, G::NodeId>> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `dijkstra` is never used
[INFO] [stdout]    --> src/critical_path/lazy_dijkstra.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 | pub fn dijkstra<G, F, D>(
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `NextHop` is never constructed
[INFO] [stdout]    --> src/critical_path/lazy_dijkstra.rs:296:12
[INFO] [stdout]     |
[INFO] [stdout] 296 | pub struct NextHop<D, N> {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LevelizeOp` is never constructed
[INFO] [stdout]   --> src/levelization.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct LevelizeOp<N> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AtomicNodeLevel` is never used
[INFO] [stdout]   --> src/levelization.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait AtomicNodeLevel {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cell_name` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub(crate) struct Cell<PinId> {
[INFO] [stdout]     |                   ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 162 |     cell_name: String,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_state` and `num_bits` are never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub(crate) struct FlipFlop<PinId> {
[INFO] [stdout]     |                   -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 219 |     next_state: BooleanExpr<PinId>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     num_bits: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FlipFlop` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_in` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub(crate) struct Latch<PinId> {
[INFO] [stdout]     |                   ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 239 |     data_in: BooleanExpr<PinId>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Latch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pin_name` and `capacitance` are never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct Pin<PinId> {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 247 |     pin_name: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub(crate) capacitance: Capacitance,
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Pin` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 312 | struct LuTableTemplate {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 318 |     size: (usize, usize),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LuTableTemplate` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pin_id` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:337:5
[INFO] [stdout]     |
[INFO] [stdout] 335 | struct PinImportContext<'a, CellId, PinId> {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] 336 |     cell_context: &'a CellImportContext<'a, CellId, PinId>,
[INFO] [stdout] 337 |     pin_id: &'a PinId,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LowestCommonAncestor` is never constructed
[INFO] [stdout]   --> src/lowest_common_ancestor/mod.rs:21:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub struct LowestCommonAncestor<G>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EulerNode` is never constructed
[INFO] [stdout]   --> src/lowest_common_ancestor/mod.rs:31:8
[INFO] [stdout]    |
[INFO] [stdout] 31 | struct EulerNode<T> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/lowest_common_ancestor/mod.rs:39:12
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl<T> EulerNode<T> {
[INFO] [stdout]    | -------------------- associated function in this implementation
[INFO] [stdout] 39 |     pub fn new(node: T, level: usize) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `new_with_direction`, and `lowest_common_ancestor` are never used
[INFO] [stdout]   --> src/lowest_common_ancestor/mod.rs:72:12
[INFO] [stdout]    |
[INFO] [stdout] 64 | / impl<G> LowestCommonAncestor<G>
[INFO] [stdout] 65 | | where
[INFO] [stdout] 66 | |     G: IntoEdgesDirected,
[INFO] [stdout] 67 | |     G::NodeId: Eq + Hash,
[INFO] [stdout]    | |_________________________- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |       pub fn new(graph: G, root: G::NodeId) -> Result<Self, ()> {
[INFO] [stdout]    |              ^^^
[INFO] [stdout] ...
[INFO] [stdout] 77 |       pub fn new_with_direction(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 97 |       pub fn lowest_common_ancestor(&self, a: &G::NodeId, b: &G::NodeId) -> &G::NodeId {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `levelized_euler_tour_tree` is never used
[INFO] [stdout]    --> src/lowest_common_ancestor/mod.rs:155:4
[INFO] [stdout]     |
[INFO] [stdout] 155 | fn levelized_euler_tour_tree<G>(
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ArgMinRange` is never constructed
[INFO] [stdout]  --> src/lowest_common_ancestor/argmin_lut.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct ArgMinRange<A, T> {
[INFO] [stdout]   |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/lowest_common_ancestor/argmin_lut.rs:24:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | / impl<'a, A, T> ArgMinRange<A, T>
[INFO] [stdout]  16 | | where
[INFO] [stdout]  17 | |     A: AsRef<[T]>,
[INFO] [stdout]  18 | |     T: Ord,
[INFO] [stdout]     | |___________- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  24 |       pub fn new(array: A) -> Self {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout]  42 |       pub fn min(&self, start: usize, range_len: usize) -> &T {
[INFO] [stdout]     |              ^^^
[INFO] [stdout] ...
[INFO] [stdout]  49 |       pub fn argmin(&self, start: usize, range_len: usize) -> usize {
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  87 |       pub fn array(&self) -> &[T] {
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |       pub fn take_array(self) -> A {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |       fn build_lut(&mut self) {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 123 |       fn get_index(&self, window_size_log2: u32, window_position: usize) -> (usize, u32, u32) {
[INFO] [stdout]     |          ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 134 |       fn get_argmin_in_window(&self, window_size_log2: u32, window_start: usize) -> usize {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 143 |       fn set_argmin_in_window(&mut self, window_size_log2: u32, window_start: usize, argmin: usize) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 161 |       fn get_bits(word: usize, bit_offset: u32, bit_length: u32) -> usize {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |       fn set_bits(word: usize, value: usize, bit_offset: u32, bit_length: u32) -> usize {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 174 |       fn allocate_lut(&mut self) {
[INFO] [stdout]     |          ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |       fn required_storage_for_window_size(
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |       fn num_bits_for_offset(window_size_log2: u32) -> u32 {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 213 |       fn num_windows(&self, window_size: usize) -> usize {
[INFO] [stdout]     |          ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |       fn sub_lut_index(&self, start: usize, range_len: usize) -> usize {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `jitter` is never read
[INFO] [stdout]    --> src/models/clock_tag.rs:530:5
[INFO] [stdout]     |
[INFO] [stdout] 528 | struct PrimaryClockDefinition {
[INFO] [stdout]     |        ---------------------- field in this struct
[INFO] [stdout] 529 |     period: Time,
[INFO] [stdout] 530 |     jitter: Time,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PrimaryClockDefinition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sta_mode` is never read
[INFO] [stdout]   --> src/models/nldm_cell_delay.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct NLDMCellModel<'a, N: NetlistIds> {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 29 |     sta_mode: StaMode,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NLDMCellModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `summarize_arrival_time` and `acc_slew` are never used
[INFO] [stdout]    --> src/models/nldm_cell_delay.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NLDMSignal {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn summarize_arrival_time(&mut self, arrival_time: Time) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn acc_slew(&mut self, slew: Time) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_timing_groups` is never used
[INFO] [stdout]   --> src/liberty_util.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn select_timing_groups<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `forward_level` is never read
[INFO] [stdout]   --> src/timing_graph.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) struct NodeData<N, D>
[INFO] [stdout]    |                   -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub forward_level: AtomicU32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeData` 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 `set_num_unresolved` is never used
[INFO] [stdout]    --> src/timing_graph.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl DependencyCounter {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_num_unresolved(&self, num_unresolved: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `constraint` is never read
[INFO] [stdout]    --> src/timing_graph.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub(crate) struct SyncEdgeData<D>
[INFO] [stdout]     |                   ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub constraint: Option<D::Constraint>, // TODO: remove
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SyncEdgeData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:236:21
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn top_cell_ref(&self) -> CellRef<N> {
[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] 236 |     fn top_cell_ref(&self) -> CellRef<'_, N> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/critical_path/mod.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 349 |         prefix_node: NodeIndex,
[INFO] [stdout] 350 |     ) -> DeviationEdges<G::NodeId, D> {
[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] 350 |     ) -> DeviationEdges<'_, G::NodeId, D> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:305:9
[INFO] [stdout]     |
[INFO] [stdout] 305 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 308 |     ) -> Option<IdLockReadGuard<SyncNodeData<T>>> {
[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] 308 |     ) -> Option<IdLockReadGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:315:26
[INFO] [stdout]     |
[INFO] [stdout] 315 |     pub fn get_node_data(&self, graph_node: NodeIndex) -> Option<IdLockReadGuard<SyncNodeData<T>>> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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] 315 |     pub fn get_node_data(&self, graph_node: NodeIndex) -> Option<IdLockReadGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 332 |     ) -> Option<IdLockWriteGuard<SyncNodeData<T>>> {
[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] 332 |     ) -> Option<IdLockWriteGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 347 |         graph_node: NodeIndex,
[INFO] [stdout] 348 |     ) -> Option<IdLockWriteGuard<SyncNodeData<T>>> {
[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] 348 |     ) -> Option<IdLockWriteGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clock_id`
[INFO] [stdout]    --> src/lib.rs:209:41
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn report_critical_paths(&self, clock_id: ClockId, setup_hold: SetupHold) -> () {
[INFO] [stdout]     |                                         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_clock_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `setup_hold`
[INFO] [stdout]    --> src/lib.rs:209:60
[INFO] [stdout]     |
[INFO] [stdout] 209 |     pub fn report_critical_paths(&self, clock_id: ClockId, setup_hold: SetupHold) -> () {
[INFO] [stdout]     |                                                            ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_setup_hold`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `nodes`
[INFO] [stdout]    --> src/lib.rs:566:26
[INFO] [stdout]     |
[INFO] [stdout] 566 |             if let Some(&nodes) = self.timing_graph.term2node.get(&terminal) {
[INFO] [stdout]     |                          ^^^^^ help: if this is intentional, prefix it with an underscore: `_nodes`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:785:13
[INFO] [stdout]     |
[INFO] [stdout] 785 |         let mut missing_cells: FnvHashSet<N::CellId> = Default::default();
[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: `leaf_cell`
[INFO] [stdout]    --> src/lib.rs:787:13
[INFO] [stdout]     |
[INFO] [stdout] 787 |         for leaf_cell in top.each_cell_dependency() {
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_leaf_cell`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `load1`
[INFO] [stdout]    --> src/lib.rs:842:25
[INFO] [stdout]     |
[INFO] [stdout] 842 |     fn sum_loads(&self, load1: &Self::Load, load2: &Self::Load) -> Self::Load {
[INFO] [stdout]     |                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_load1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `load2`
[INFO] [stdout]    --> src/lib.rs:842:45
[INFO] [stdout]     |
[INFO] [stdout] 842 |     fn sum_loads(&self, load1: &Self::Load, load2: &Self::Load) -> Self::Load {
[INFO] [stdout]     |                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_load2`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MinMax` and `NLDMRequiredSignal`
[INFO] [stdout]  --> tests/test_flipflop_setup_hold.rs:8:44
[INFO] [stdout]   |
[INFO] [stdout] 8 | use libreda_sta::models::nldm_cell_delay::{MinMax, NLDMRequiredSignal, NLDMSignal};
[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: `RequiredSignalArg`
[INFO] [stdout]   --> tests/test_flipflop_setup_hold.rs:14:49
[INFO] [stdout]    |
[INFO] [stdout] 14 | use libreda_sta::{ClockDefinition, InputSignal, RequiredSignalArg};
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `shape_id`
[INFO] [stdout]     --> src/lib.rs:1181:32
[INFO] [stdout]      |
[INFO] [stdout] 1181 |     fn remove_shape(&mut self, shape_id: &Self::ShapeId) -> Option<db::Geometry<Self::Coord>> {
[INFO] [stdout]      |                                ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_shape_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `out1`
[INFO] [stdout]   --> tests/test_flipflop_setup_hold.rs:62:20
[INFO] [stdout]    |
[INFO] [stdout] 62 |     let [clk, in1, out1] =
[INFO] [stdout]    |                    ^^^^ help: if this is intentional, prefix it with an underscore: `_out1`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `clk_id`
[INFO] [stdout]   --> tests/test_flipflop_setup_hold.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let clk_id = sta.create_clock(
[INFO] [stdout]    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_clk_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `toposort_delay_graph` and `debug_print_actual_signals` are never used
[INFO] [stdout]    --> src/lib.rs:665:8
[INFO] [stdout]     |
[INFO] [stdout] 305 | / impl<N, Lib> SimpleSTA<N, Lib>
[INFO] [stdout] 306 | | where
[INFO] [stdout] 307 | |     N: NetlistBase,
[INFO] [stdout] 308 | |     Lib: CellLoadModel<N> + CellDelayModel<N> + CellConstraintModel<N> + LogicModel<N>,
[INFO] [stdout] 309 | |     Lib::LogicValue: LogicOps + From<bool> + TryInto<bool>,
[INFO] [stdout]     | |___________________________________________________________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 665 |       fn toposort_delay_graph(&self) -> Result<Vec<TerminalId<N>>, StaError> {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 710 |       fn debug_print_actual_signals(&self) {
[INFO] [stdout]     |          ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `propagate_cones` is never used
[INFO] [stdout]   --> src/cone_propagation.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) fn propagate_cones<Netlist, CellModel>(
[INFO] [stdout]    |               ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `nodes` is never used
[INFO] [stdout]    --> src/critical_path/mod.rs:570:8
[INFO] [stdout]     |
[INFO] [stdout] 562 | / impl<NodeId, Deviations, F, Dist> ImplicitPath<NodeId, Deviations, F>
[INFO] [stdout] 563 | | where
[INFO] [stdout] 564 | |     F: Fn(&NodeId) -> Option<NextHop<Dist, NodeId>>,
[INFO] [stdout] 565 | |     Dist: PartialEq + Clone,
[INFO] [stdout] 566 | |     NodeId: PartialEq + Copy,
[INFO] [stdout] 567 | |     Deviations: Iterator<Item = PathEdge<NodeId, Dist>> + Clone,
[INFO] [stdout]     | |________________________________________________________________- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 570 |       fn nodes(self) -> impl Iterator<Item = NodeId> {
[INFO] [stdout]     |          ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LevelizeOp` is never constructed
[INFO] [stdout]   --> src/levelization.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct LevelizeOp<N> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `AtomicNodeLevel` is never used
[INFO] [stdout]   --> src/levelization.rs:28:11
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub trait AtomicNodeLevel {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `cell_name` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 157 | pub(crate) struct Cell<PinId> {
[INFO] [stdout]     |                   ---- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 162 |     cell_name: String,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Cell` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `next_state` and `num_bits` are never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:219:5
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub(crate) struct FlipFlop<PinId> {
[INFO] [stdout]     |                   -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 219 |     next_state: BooleanExpr<PinId>,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 227 |     num_bits: usize,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FlipFlop` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `data_in` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:239:5
[INFO] [stdout]     |
[INFO] [stdout] 233 | pub(crate) struct Latch<PinId> {
[INFO] [stdout]     |                   ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 239 |     data_in: BooleanExpr<PinId>,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Latch` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `pin_name` and `capacitance` are never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:247:5
[INFO] [stdout]     |
[INFO] [stdout] 246 | pub struct Pin<PinId> {
[INFO] [stdout]     |            --- fields in this struct
[INFO] [stdout] 247 |     pin_name: String,
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 251 |     pub(crate) capacitance: Capacitance,
[INFO] [stdout]     |                ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Pin` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `size` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:318:5
[INFO] [stdout]     |
[INFO] [stdout] 312 | struct LuTableTemplate {
[INFO] [stdout]     |        --------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 318 |     size: (usize, usize),
[INFO] [stdout]     |     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LuTableTemplate` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `pin_id` is never read
[INFO] [stdout]    --> src/liberty_library/mod.rs:337:5
[INFO] [stdout]     |
[INFO] [stdout] 335 | struct PinImportContext<'a, CellId, PinId> {
[INFO] [stdout]     |        ---------------- field in this struct
[INFO] [stdout] 336 |     cell_context: &'a CellImportContext<'a, CellId, PinId>,
[INFO] [stdout] 337 |     pin_id: &'a PinId,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `take_array` and `sub_lut_index` are never used
[INFO] [stdout]    --> src/lowest_common_ancestor/argmin_lut.rs:92:12
[INFO] [stdout]     |
[INFO] [stdout]  15 | / impl<'a, A, T> ArgMinRange<A, T>
[INFO] [stdout]  16 | | where
[INFO] [stdout]  17 | |     A: AsRef<[T]>,
[INFO] [stdout]  18 | |     T: Ord,
[INFO] [stdout]     | |___________- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  92 |       pub fn take_array(self) -> A {
[INFO] [stdout]     |              ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 218 |       fn sub_lut_index(&self, start: usize, range_len: usize) -> usize {
[INFO] [stdout]     |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `jitter` is never read
[INFO] [stdout]    --> src/models/clock_tag.rs:530:5
[INFO] [stdout]     |
[INFO] [stdout] 528 | struct PrimaryClockDefinition {
[INFO] [stdout]     |        ---------------------- field in this struct
[INFO] [stdout] 529 |     period: Time,
[INFO] [stdout] 530 |     jitter: Time,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PrimaryClockDefinition` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `sta_mode` is never read
[INFO] [stdout]   --> src/models/nldm_cell_delay.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub struct NLDMCellModel<'a, N: NetlistIds> {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] 29 |     sta_mode: StaMode,
[INFO] [stdout]    |     ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NLDMCellModel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `summarize_arrival_time` and `acc_slew` are never used
[INFO] [stdout]    --> src/models/nldm_cell_delay.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout]  99 | impl NLDMSignal {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 162 |     fn summarize_arrival_time(&mut self, arrival_time: Time) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 167 |     fn acc_slew(&mut self, slew: Time) {
[INFO] [stdout]     |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `select_timing_groups` is never used
[INFO] [stdout]   --> src/liberty_util.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub fn select_timing_groups<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `forward_level` is never read
[INFO] [stdout]   --> src/timing_graph.rs:45:9
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub(crate) struct NodeData<N, D>
[INFO] [stdout]    |                   -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 45 |     pub forward_level: AtomicU32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NodeData` 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 `set_num_unresolved` is never used
[INFO] [stdout]    --> src/timing_graph.rs:106:12
[INFO] [stdout]     |
[INFO] [stdout]  97 | impl DependencyCounter {
[INFO] [stdout]     | ---------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn set_num_unresolved(&self, num_unresolved: u32) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `constraint` is never read
[INFO] [stdout]    --> src/timing_graph.rs:229:9
[INFO] [stdout]     |
[INFO] [stdout] 224 | pub(crate) struct SyncEdgeData<D>
[INFO] [stdout]     |                   ------------ field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 229 |     pub constraint: Option<D::Constraint>, // TODO: remove
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `SyncEdgeData` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/lib.rs:236:21
[INFO] [stdout]     |
[INFO] [stdout] 236 |     fn top_cell_ref(&self) -> CellRef<N> {
[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] 236 |     fn top_cell_ref(&self) -> CellRef<'_, N> {
[INFO] [stdout]     |                                       +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/critical_path/mod.rs:348:9
[INFO] [stdout]     |
[INFO] [stdout] 348 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 349 |         prefix_node: NodeIndex,
[INFO] [stdout] 350 |     ) -> DeviationEdges<G::NodeId, D> {
[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] 350 |     ) -> DeviationEdges<'_, G::NodeId, D> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:305:9
[INFO] [stdout]     |
[INFO] [stdout] 305 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 308 |     ) -> Option<IdLockReadGuard<SyncNodeData<T>>> {
[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] 308 |     ) -> Option<IdLockReadGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                 +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:315:26
[INFO] [stdout]     |
[INFO] [stdout] 315 |     pub fn get_node_data(&self, graph_node: NodeIndex) -> Option<IdLockReadGuard<SyncNodeData<T>>> {
[INFO] [stdout]     |                          ^^^^^ the lifetime is elided here       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 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] 315 |     pub fn get_node_data(&self, graph_node: NodeIndex) -> Option<IdLockReadGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                                                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:329:9
[INFO] [stdout]     |
[INFO] [stdout] 329 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] ...
[INFO] [stdout] 332 |     ) -> Option<IdLockWriteGuard<SyncNodeData<T>>> {
[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] 332 |     ) -> Option<IdLockWriteGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/timing_graph.rs:346:9
[INFO] [stdout]     |
[INFO] [stdout] 346 |         &self,
[INFO] [stdout]     |         ^^^^^ the lifetime is elided here
[INFO] [stdout] 347 |         graph_node: NodeIndex,
[INFO] [stdout] 348 |     ) -> Option<IdLockWriteGuard<SyncNodeData<T>>> {
[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] 348 |     ) -> Option<IdLockWriteGuard<'_, SyncNodeData<T>>> {
[INFO] [stdout]     |                                  +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 14s
[INFO] running `Command { std: "docker" "inspect" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878", kill_on_drop: false }`
[INFO] [stdout] c39a655e99538a3c3696229cd915990bbdd77dd53ac4f2c734ef595984768878
