[INFO] cloning repository https://github.com/donjne/kiln
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/donjne/kiln" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdonjne%2Fkiln", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdonjne%2Fkiln'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 3394843cd38f1bf45b33585c6272e9d20597c1f3
[INFO] testing donjne/kiln against master#d98a5da813da67eb189387b8ccfb73cf481275d8+rustflags=-Copt-level=3 for pr-138759
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdonjne%2Fkiln" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/donjne/kiln
[INFO] finished tweaking git repo https://github.com/donjne/kiln
[INFO] tweaked toml for git repo https://github.com/donjne/kiln written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/donjne/kiln on toolchain d98a5da813da67eb189387b8ccfb73cf481275d8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/donjne/kiln already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded criterion-plot v0.6.0
[INFO] [stderr]   Downloaded criterion v0.7.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 1b5385ec7eb434a119ffce8674cba4b79d15e15d75dcf5db124a70dfd21389b9
[INFO] running `Command { std: "docker" "start" "-a" "1b5385ec7eb434a119ffce8674cba4b79d15e15d75dcf5db124a70dfd21389b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1b5385ec7eb434a119ffce8674cba4b79d15e15d75dcf5db124a70dfd21389b9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1b5385ec7eb434a119ffce8674cba4b79d15e15d75dcf5db124a70dfd21389b9", kill_on_drop: false }`
[INFO] [stdout] 1b5385ec7eb434a119ffce8674cba4b79d15e15d75dcf5db124a70dfd21389b9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c052d9227864eca4bf90e02fa045d404b116a896dd86b41cc34d89e8c608692d
[INFO] running `Command { std: "docker" "start" "-a" "c052d9227864eca4bf90e02fa045d404b116a896dd86b41cc34d89e8c608692d", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]    Compiling clap_derive v4.5.41
[INFO] [stderr]    Compiling clap_builder v4.5.42
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]    Compiling rand_core v0.9.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling clap v4.5.42
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling kiln v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stdout]     |
[INFO] [stdout] 851 |        let mut rng = rand::thread_rng();
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stdout]     |
[INFO] [stdout] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]    --> src/evaluation/errors.rs:113:54
[INFO] [stdout]     |
[INFO] [stdout] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_supported`
[INFO] [stdout]    --> src/minimization/errors.rs:267:71
[INFO] [stdout]     |
[INFO] [stdout] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minterm`
[INFO] [stdout]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_counter`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let wire_counter = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `succ_node`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrival_times`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stdout]     |
[INFO] [stdout] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stdout]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_token` is never used
[INFO] [stdout]   --> src/parsing/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stdout]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl TimingAnalyzer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stdout]     |
[INFO] [stdout] 851 |        let mut rng = rand::thread_rng();
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stdout]     |
[INFO] [stdout] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_counter`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let wire_counter = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `succ_node`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrival_times`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stdout]     |
[INFO] [stdout] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stdout]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_supported`
[INFO] [stdout]    --> src/minimization/errors.rs:267:71
[INFO] [stdout]     |
[INFO] [stdout] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minterm`
[INFO] [stdout]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]    --> src/evaluation/errors.rs:113:54
[INFO] [stdout]     |
[INFO] [stdout] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minimization_time`
[INFO] [stdout]    --> src/main.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |             let minimization_time = start_time.elapsed();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimization_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stdout]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl TimingAnalyzer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_token` is never used
[INFO] [stdout]   --> src/parsing/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 15s
[INFO] running `Command { std: "docker" "inspect" "c052d9227864eca4bf90e02fa045d404b116a896dd86b41cc34d89e8c608692d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c052d9227864eca4bf90e02fa045d404b116a896dd86b41cc34d89e8c608692d", kill_on_drop: false }`
[INFO] [stdout] c052d9227864eca4bf90e02fa045d404b116a896dd86b41cc34d89e8c608692d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7146bf63fb5ae5df8368b64f5029b9a0086b2eef161ffaf70da1fe6a21c1304d
[INFO] running `Command { std: "docker" "start" "-a" "7146bf63fb5ae5df8368b64f5029b9a0086b2eef161ffaf70da1fe6a21c1304d", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]    Compiling half v2.6.0
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling serde_json v1.0.142
[INFO] [stderr]    Compiling chrono v0.4.41
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling kiln v1.0.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stdout]     |
[INFO] [stdout] 851 |        let mut rng = rand::thread_rng();
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stdout]     |
[INFO] [stdout] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]    --> src/evaluation/errors.rs:113:54
[INFO] [stdout]     |
[INFO] [stdout] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling criterion v0.7.0
[INFO] [stdout] warning: unused variable: `max_supported`
[INFO] [stdout]    --> src/minimization/errors.rs:267:71
[INFO] [stdout]     |
[INFO] [stdout] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minterm`
[INFO] [stdout]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_counter`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let wire_counter = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `succ_node`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrival_times`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stdout]     |
[INFO] [stdout] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stdout]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_token` is never used
[INFO] [stdout]   --> src/parsing/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stdout]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl TimingAnalyzer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stdout]     |
[INFO] [stdout] 851 |        let mut rng = rand::thread_rng();
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stdout]     |
[INFO] [stdout] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_counter`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let wire_counter = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `succ_node`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrival_times`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stdout]     |
[INFO] [stdout] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stdout]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_supported`
[INFO] [stdout]    --> src/minimization/errors.rs:267:71
[INFO] [stdout]     |
[INFO] [stdout] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minterm`
[INFO] [stdout]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]    --> src/evaluation/errors.rs:113:54
[INFO] [stdout]     |
[INFO] [stdout] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minimization_time`
[INFO] [stdout]    --> src/main.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |             let minimization_time = start_time.elapsed();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimization_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stdout]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl TimingAnalyzer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_token` is never used
[INFO] [stdout]   --> src/parsing/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stdout]  --> tests/canonical_forms.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PrimeImplicantChart`, `QMTerm`, and `QuineMcCluskey`
[INFO] [stdout]  --> tests/canonical_forms.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 | use kiln::minimization::quine_mccluskey::{QuineMcCluskey, QMTerm, PrimeImplicantChart};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/canonical_forms.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KMapGroup`, `KMapPosition`, `KarnaughMapMinimizer`, and `KarnaughMap`
[INFO] [stdout]  --> tests/canonical_forms.rs:8:41
[INFO] [stdout]   |
[INFO] [stdout] 8 | use kiln::minimization::karnaugh_maps::{KarnaughMapMinimizer, KarnaughMap, KMapPosition, KMapGroup};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> tests/canonical_forms.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/truth_table_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BatchEvaluator`, `EvaluationError`, `Evaluator`, `contains_variable`, `count_variables`, `evaluator::utils`, `extract_variables_in_order`, `extract_variables`, and `validate_variable_completeness`
[INFO] [stdout]  --> tests/truth_table_tests.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |         evaluator::utils, truth_table::{TruthRow, TruthTable}, variable_extraction::{
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |             contains_variable, count_variables, extract_variables, extract_variables_in_order, validate_variable_completeness
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 7 |         }, BatchEvaluator, EvaluationError, Evaluator
[INFO] [stdout]   |            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `OperatorInfo`, `ParseError`, `Precedence`, and `Token`
[INFO] [stdout]  --> tests/parsing_tests.rs:1:65
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stdout]   |                                                                 ^^^^^^^^^^^^  ^^^^^^^^^^            ^^^^^              ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BooleanExpr`, `OperatorInfo`, `ParseError`, `Parser`, and `Precedence`
[INFO] [stdout]  --> tests/tokens_test.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^^  ^^^^^^                ^^^^^^^^^^^^  ^^^^^^^^^^                               ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `EvaluationError`, `TruthRow`, `TruthTable`, `contains_variable`, `count_variables`, `extract_variables_in_order`, `extract_variables`, and `validate_variable_completeness`
[INFO] [stdout]  --> tests/evaluator_tests.rs:4:41
[INFO] [stdout]   |
[INFO] [stdout] 4 |         evaluator::utils, truth_table::{TruthRow, TruthTable}, variable_extraction::{
[INFO] [stdout]   |                                         ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 5 |             contains_variable, count_variables, extract_variables, extract_variables_in_order, validate_variable_completeness
[INFO] [stdout]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 6 |         }, BatchEvaluator, EvaluationError, Evaluator
[INFO] [stdout]   |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stdout]     |
[INFO] [stdout] 851 |        let mut rng = rand::thread_rng();
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stdout]     |
[INFO] [stdout] 851 |        let mut rng = rand::thread_rng();
[INFO] [stdout]     |                            ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stdout]     |
[INFO] [stdout] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CanonicalConverter`, `CanonicalExpression`, `CanonicalForm`, and `CanonicalTerm`
[INFO] [stdout]  --> tests/minimization_errors.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PrimeImplicantChart`, `QMTerm`, and `QuineMcCluskey`
[INFO] [stdout]  --> tests/minimization_errors.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 | use kiln::minimization::quine_mccluskey::{QuineMcCluskey, QMTerm, PrimeImplicantChart};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kiln::parsing::BooleanExpr`
[INFO] [stdout]  --> tests/minimization_errors.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use kiln::parsing::BooleanExpr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/minimization_errors.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KMapGroup`, `KMapPosition`, `KarnaughMapMinimizer`, and `KarnaughMap`
[INFO] [stdout]  --> tests/minimization_errors.rs:8:41
[INFO] [stdout]   |
[INFO] [stdout] 8 | use kiln::minimization::karnaugh_maps::{KarnaughMapMinimizer, KarnaughMap, KMapPosition, KMapGroup};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kiln::evaluation::TruthTable`
[INFO] [stdout]  --> tests/minimization_errors.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use kiln::evaluation::TruthTable;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> tests/minimization_errors.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_counter`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let wire_counter = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stdout]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stdout]     |
[INFO] [stdout] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stdout]  --> tests/optimization_tests.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `CanonicalConverter`
[INFO] [stdout]  --> tests/optimization_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `kiln::evaluation::TruthTable`
[INFO] [stdout]   --> tests/optimization_tests.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use kiln::evaluation::TruthTable;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> tests/optimization_tests.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `succ_node`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrival_times`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stdout]     |
[INFO] [stdout] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stdout]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]    --> src/evaluation/errors.rs:113:54
[INFO] [stdout]     |
[INFO] [stdout] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_supported`
[INFO] [stdout]    --> src/minimization/errors.rs:267:71
[INFO] [stdout]     |
[INFO] [stdout] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minterm`
[INFO] [stdout]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max_supported`
[INFO] [stdout]    --> src/minimization/errors.rs:267:71
[INFO] [stdout]     |
[INFO] [stdout] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stdout]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minterm`
[INFO] [stdout]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stdout]     |
[INFO] [stdout] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stdout]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `variable`
[INFO] [stdout]    --> src/evaluation/errors.rs:113:54
[INFO] [stdout]     |
[INFO] [stdout] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stdout]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stdout]  --> tests/karnaugh_map_tests.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CanonicalConverter`, `CanonicalExpression`, and `CanonicalTerm`
[INFO] [stdout]  --> tests/karnaugh_map_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `PrimeImplicantChart`, `QMTerm`, and `QuineMcCluskey`
[INFO] [stdout]  --> tests/karnaugh_map_tests.rs:5:43
[INFO] [stdout]   |
[INFO] [stdout] 5 | use kiln::minimization::quine_mccluskey::{QuineMcCluskey, QMTerm, PrimeImplicantChart};
[INFO] [stdout]   |                                           ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::time::Duration`
[INFO] [stdout]  --> tests/karnaugh_map_tests.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::Duration;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/karnaugh_map_tests.rs:280:8
[INFO] [stdout]     |
[INFO] [stdout] 280 |    let mut kmap = KarnaughMap::from_truth_table(&truth_table).unwrap();
[INFO] [stdout]     |        ----^^^^
[INFO] [stdout]     |        |
[INFO] [stdout]     |        help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stdout]     |
[INFO] [stdout] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `wire_counter`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stdout]     |
[INFO] [stdout] 273 |         let wire_counter = 0;
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `minimization_time`
[INFO] [stdout]    --> src/main.rs:398:17
[INFO] [stdout]     |
[INFO] [stdout] 398 |             let minimization_time = start_time.elapsed();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimization_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stdout]     |
[INFO] [stdout] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stdout]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `succ_node`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stdout]     |
[INFO] [stdout] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stdout]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BooleanExpr`, `ParseError`, `Parser`, and `Tokenizer`
[INFO] [stdout]  --> tests/precedence_tests.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^^  ^^^^^^                                                           ^^^^^^^^^   ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `arrival_times`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stdout]     |
[INFO] [stdout] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stdout]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stdout]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl TimingAnalyzer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_token` is never used
[INFO] [stdout]   --> src/parsing/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `count`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stdout]     |
[INFO] [stdout] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stdout]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `graph`
[INFO] [stdout]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stdout]     |
[INFO] [stdout] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stdout]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `expect_token` is never used
[INFO] [stdout]   --> src/parsing/parser.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Parser {
[INFO] [stdout]    | ----------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stdout]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stdout]     |
[INFO] [stdout] 34  | impl TimingAnalyzer {
[INFO] [stdout]     | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stdout]  --> tests/quine_mccluskey_tests.rs:1:26
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `CanonicalConverter`, `CanonicalExpression`, and `CanonicalTerm`
[INFO] [stdout]  --> tests/quine_mccluskey_tests.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `KMapGroup`, `KMapPosition`, `KarnaughMapMinimizer`, and `KarnaughMap`
[INFO] [stdout]  --> tests/quine_mccluskey_tests.rs:8:41
[INFO] [stdout]   |
[INFO] [stdout] 8 | use kiln::minimization::karnaugh_maps::{KarnaughMapMinimizer, KarnaughMap, KMapPosition, KMapGroup};
[INFO] [stdout]   |                                         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]   --> tests/quine_mccluskey_tests.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use std::collections::HashSet;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `essential`
[INFO] [stdout]    --> tests/quine_mccluskey_tests.rs:111:9
[INFO] [stdout]     |
[INFO] [stdout] 111 |     let essential = chart.find_essential_prime_implicants();
[INFO] [stdout]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_essential`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `evaluation::TruthTable`
[INFO] [stdout]   --> tests/generation_tests.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 |     evaluation::TruthTable,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BooleanExpr`, `OperatorInfo`, `Parser`, `Precedence`, `Token`, and `Tokenizer`
[INFO] [stdout]  --> tests/parsing_error_tests.rs:1:30
[INFO] [stdout]   |
[INFO] [stdout] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stdout]   |                              ^^^^^^^^^^^  ^^^^^^                ^^^^^^^^^^^^  ^^^^^^^^^^            ^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashMap`
[INFO] [stdout]  --> tests/evaluation_error_tests.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::collections::HashMap;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BatchEvaluator`, `Evaluator`, `TruthRow`, `TruthTable`, and `evaluator::utils`
[INFO] [stdout]  --> tests/evaluation_error_tests.rs:5:9
[INFO] [stdout]   |
[INFO] [stdout] 5 |         evaluator::utils, truth_table::{TruthRow, TruthTable}, variable_extraction::{
[INFO] [stdout]   |         ^^^^^^^^^^^^^^^^                ^^^^^^^^  ^^^^^^^^^^
[INFO] [stdout] 6 |             contains_variable, count_variables, extract_variables, extract_variables_in_order, validate_variable_completeness
[INFO] [stdout] 7 |         }, BatchEvaluator, EvaluationError, Evaluator
[INFO] [stdout]   |            ^^^^^^^^^^^^^^                   ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 55s
[INFO] running `Command { std: "docker" "inspect" "7146bf63fb5ae5df8368b64f5029b9a0086b2eef161ffaf70da1fe6a21c1304d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7146bf63fb5ae5df8368b64f5029b9a0086b2eef161ffaf70da1fe6a21c1304d", kill_on_drop: false }`
[INFO] [stdout] 7146bf63fb5ae5df8368b64f5029b9a0086b2eef161ffaf70da1fe6a21c1304d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Copt-level=3" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+d98a5da813da67eb189387b8ccfb73cf481275d8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6a8898ea86c361317de02d157272d02e58a1cc3c41bad8bda073cd64240b0192
[INFO] running `Command { std: "docker" "start" "-a" "6a8898ea86c361317de02d157272d02e58a1cc3c41bad8bda073cd64240b0192", kill_on_drop: false }`
[INFO] [stderr] warning: use of deprecated function `rand::thread_rng`: Renamed to `rng`
[INFO] [stderr]    --> src/generation/testbench_generator.rs:851:28
[INFO] [stderr]     |
[INFO] [stderr] 851 |        let mut rng = rand::thread_rng();
[INFO] [stderr]     |                            ^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stderr]    --> src/generation/testbench_generator.rs:177:33
[INFO] [stderr]     |
[INFO] [stderr] 177 |                 inputs.push(rng.gen_bool(0.5));
[INFO] [stderr]     |                                 ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `rand::Rng::gen_bool`: Renamed to `random_bool`
[INFO] [stderr]    --> src/generation/testbench_generator.rs:858:32
[INFO] [stderr]     |
[INFO] [stderr] 858 |                inputs.push(rng.gen_bool(0.5));
[INFO] [stderr]     |                                ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `variable`
[INFO] [stderr]    --> src/evaluation/errors.rs:113:54
[INFO] [stderr]     |
[INFO] [stderr] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stderr]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `max_supported`
[INFO] [stderr]    --> src/minimization/errors.rs:267:71
[INFO] [stderr]     |
[INFO] [stderr] 267 |             MinimizationErrorKind::TooManyVariables { variable_count, max_supported, algorithm } => {
[INFO] [stderr]     |                                                                       ^^^^^^^^^^^^^ help: try ignoring the field: `max_supported: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `minterm`
[INFO] [stderr]    --> src/minimization/quine_mccluskey.rs:172:28
[INFO] [stderr]     |
[INFO] [stderr] 172 |         for (minterm_idx, &minterm) in self.minterms.iter().enumerate() {
[INFO] [stderr]     |                            ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minterm`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stderr]     |
[INFO] [stderr] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stderr]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `wire_counter`
[INFO] [stderr]    --> src/generation/verilog_generator.rs:273:13
[INFO] [stderr]     |
[INFO] [stderr] 273 |         let wire_counter = 0;
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_wire_counter`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/generation/verilog_generator.rs:401:14
[INFO] [stderr]     |
[INFO] [stderr] 401 |         for (i, var) in truth_table.variables.iter().enumerate() {
[INFO] [stderr]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `succ_node`
[INFO] [stderr]    --> src/generation/timing_analysis.rs:322:21
[INFO] [stderr]     |
[INFO] [stderr] 322 |                 let succ_node = &graph.nodes[&succ_id];
[INFO] [stderr]     |                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_succ_node`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `arrival_times`
[INFO] [stderr]    --> src/generation/timing_analysis.rs:401:61
[INFO] [stderr]     |
[INFO] [stderr] 401 | ... graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>) -> GenerationResult<HashMap<NodeId, f64>> {
[INFO] [stderr]     |                          ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_arrival_times`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `count`
[INFO] [stderr]    --> src/generation/timing_analysis.rs:574:93
[INFO] [stderr]     |
[INFO] [stderr] 574 |     fn find_longest_paths(&self, graph: &TimingGraph, arrival_times: &HashMap<NodeId, f64>, count: usize) -> Vec<TimingPath> {
[INFO] [stderr]     |                                                                                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `graph`
[INFO] [stderr]    --> src/generation/timing_analysis.rs:737:57
[INFO] [stderr]     |
[INFO] [stderr] 737 |     pub fn suggest_optimizations(report: &TimingReport, graph: &TimingGraph) -> Vec<OptimizationSuggestion> {
[INFO] [stderr]     |                                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_graph`
[INFO] [stderr] 
[INFO] [stderr] warning: method `expect_token` is never used
[INFO] [stderr]   --> src/parsing/parser.rs:77:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | impl Parser {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stderr]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stderr]     |
[INFO] [stderr] 34  | impl TimingAnalyzer {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kiln` (lib) generated 15 warnings
[INFO] [stderr] warning: unused variable: `i`
[INFO] [stderr]    --> src/generation/verilog_generator.rs:194:14
[INFO] [stderr]     |
[INFO] [stderr] 194 |         for (i, row) in truth_table.rows.iter().enumerate() {
[INFO] [stderr]     |              ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `variable`
[INFO] [stderr]    --> src/evaluation/errors.rs:113:54
[INFO] [stderr]     |
[INFO] [stderr] 113 |             EvaluationErrorKind::UndefinedVariable { variable, available_variables } => {
[INFO] [stderr]     |                                                      ^^^^^^^^ help: try ignoring the field: `variable: _`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `minimization_time`
[INFO] [stderr]    --> src/main.rs:398:17
[INFO] [stderr]     |
[INFO] [stderr] 398 |             let minimization_time = start_time.elapsed();
[INFO] [stderr]     |                 ^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_minimization_time`
[INFO] [stderr] 
[INFO] [stderr] warning: method `calculate_arrival_time_recursive` is never used
[INFO] [stderr]    --> src/generation/timing_analysis.rs:355:8
[INFO] [stderr]     |
[INFO] [stderr] 34  | impl TimingAnalyzer {
[INFO] [stderr]     | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 355 |     fn calculate_arrival_time_recursive(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: method `expect_token` is never used
[INFO] [stderr]   --> src/parsing/parser.rs:77:8
[INFO] [stderr]    |
[INFO] [stderr] 42 | impl Parser {
[INFO] [stderr]    | ----------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 77 |     fn expect_token(&mut self, expected: &[&str]) -> ParseResult<Token> {
[INFO] [stderr]    |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kiln` (bin "kiln") generated 16 warnings (11 duplicates)
[INFO] [stderr] warning: unused imports: `CanonicalConverter`, `CanonicalExpression`, `CanonicalForm`, and `CanonicalTerm`
[INFO] [stderr]  --> tests/minimization_errors.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PrimeImplicantChart`, `QMTerm`, and `QuineMcCluskey`
[INFO] [stderr]  --> tests/minimization_errors.rs:5:43
[INFO] [stderr]   |
[INFO] [stderr] 5 | use kiln::minimization::quine_mccluskey::{QuineMcCluskey, QMTerm, PrimeImplicantChart};
[INFO] [stderr]   |                                           ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `kiln::parsing::BooleanExpr`
[INFO] [stderr]  --> tests/minimization_errors.rs:6:5
[INFO] [stderr]   |
[INFO] [stderr] 6 | use kiln::parsing::BooleanExpr;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/minimization_errors.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `KMapGroup`, `KMapPosition`, `KarnaughMapMinimizer`, and `KarnaughMap`
[INFO] [stderr]  --> tests/minimization_errors.rs:8:41
[INFO] [stderr]   |
[INFO] [stderr] 8 | use kiln::minimization::karnaugh_maps::{KarnaughMapMinimizer, KarnaughMap, KMapPosition, KMapGroup};
[INFO] [stderr]   |                                         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `kiln::evaluation::TruthTable`
[INFO] [stderr]  --> tests/minimization_errors.rs:9:5
[INFO] [stderr]   |
[INFO] [stderr] 9 | use kiln::evaluation::TruthTable;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]   --> tests/minimization_errors.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::collections::HashSet;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BooleanExpr`, `OperatorInfo`, `ParseError`, `Parser`, and `Precedence`
[INFO] [stderr]  --> tests/tokens_test.rs:1:30
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^^  ^^^^^^                ^^^^^^^^^^^^  ^^^^^^^^^^                               ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stderr]  --> tests/quine_mccluskey_tests.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CanonicalConverter`, `CanonicalExpression`, and `CanonicalTerm`
[INFO] [stderr]  --> tests/quine_mccluskey_tests.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `KMapGroup`, `KMapPosition`, `KarnaughMapMinimizer`, and `KarnaughMap`
[INFO] [stderr]  --> tests/quine_mccluskey_tests.rs:8:41
[INFO] [stderr]   |
[INFO] [stderr] 8 | use kiln::minimization::karnaugh_maps::{KarnaughMapMinimizer, KarnaughMap, KMapPosition, KMapGroup};
[INFO] [stderr]   |                                         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]   --> tests/quine_mccluskey_tests.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::collections::HashSet;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `essential`
[INFO] [stderr]    --> tests/quine_mccluskey_tests.rs:111:9
[INFO] [stderr]     |
[INFO] [stderr] 111 |     let essential = chart.find_essential_prime_implicants();
[INFO] [stderr]     |         ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_essential`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `evaluation::TruthTable`
[INFO] [stderr]   --> tests/generation_tests.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 |     evaluation::TruthTable,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stderr]  --> tests/karnaugh_map_tests.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `CanonicalConverter`, `CanonicalExpression`, and `CanonicalTerm`
[INFO] [stderr]  --> tests/karnaugh_map_tests.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^                 ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PrimeImplicantChart`, `QMTerm`, and `QuineMcCluskey`
[INFO] [stderr]  --> tests/karnaugh_map_tests.rs:5:43
[INFO] [stderr]   |
[INFO] [stderr] 5 | use kiln::minimization::quine_mccluskey::{QuineMcCluskey, QMTerm, PrimeImplicantChart};
[INFO] [stderr]   |                                           ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/karnaugh_map_tests.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> tests/karnaugh_map_tests.rs:280:8
[INFO] [stderr]     |
[INFO] [stderr] 280 |    let mut kmap = KarnaughMap::from_truth_table(&truth_table).unwrap();
[INFO] [stderr]     |        ----^^^^
[INFO] [stderr]     |        |
[INFO] [stderr]     |        help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BooleanExpr`, `ParseError`, `Parser`, and `Tokenizer`
[INFO] [stderr]  --> tests/precedence_tests.rs:1:30
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^^  ^^^^^^                                                           ^^^^^^^^^   ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: `kiln` (test "minimization_errors") generated 7 warnings (run `cargo fix --test "minimization_errors"` to apply 7 suggestions)
[INFO] [stderr] warning: `kiln` (test "tokens_test") generated 1 warning (run `cargo fix --test "tokens_test"` to apply 1 suggestion)
[INFO] [stderr] warning: `kiln` (bin "kiln" test) generated 16 warnings (16 duplicates)
[INFO] [stderr] warning: `kiln` (test "quine_mccluskey_tests") generated 5 warnings (run `cargo fix --test "quine_mccluskey_tests"` to apply 4 suggestions)
[INFO] [stderr] warning: `kiln` (test "generation_tests") generated 1 warning (run `cargo fix --test "generation_tests"` to apply 1 suggestion)
[INFO] [stderr] warning: `kiln` (test "karnaugh_map_tests") generated 5 warnings (run `cargo fix --test "karnaugh_map_tests"` to apply 5 suggestions)
[INFO] [stderr] warning: `kiln` (test "precedence_tests") generated 1 warning (run `cargo fix --test "precedence_tests"` to apply 1 suggestion)
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> tests/evaluation_error_tests.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BatchEvaluator`, `Evaluator`, `TruthRow`, `TruthTable`, and `evaluator::utils`
[INFO] [stderr]  --> tests/evaluation_error_tests.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |         evaluator::utils, truth_table::{TruthRow, TruthTable}, variable_extraction::{
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^                ^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 6 |             contains_variable, count_variables, extract_variables, extract_variables_in_order, validate_variable_completeness
[INFO] [stderr] 7 |         }, BatchEvaluator, EvaluationError, Evaluator
[INFO] [stderr]   |            ^^^^^^^^^^^^^^                   ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `EvaluationError`, `TruthRow`, `TruthTable`, `contains_variable`, `count_variables`, `extract_variables_in_order`, `extract_variables`, and `validate_variable_completeness`
[INFO] [stderr]  --> tests/evaluator_tests.rs:4:41
[INFO] [stderr]   |
[INFO] [stderr] 4 |         evaluator::utils, truth_table::{TruthRow, TruthTable}, variable_extraction::{
[INFO] [stderr]   |                                         ^^^^^^^^  ^^^^^^^^^^
[INFO] [stderr] 5 |             contains_variable, count_variables, extract_variables, extract_variables_in_order, validate_variable_completeness
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 6 |         }, BatchEvaluator, EvaluationError, Evaluator
[INFO] [stderr]   |                            ^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BooleanExpr`, `OperatorInfo`, `Parser`, `Precedence`, `Token`, and `Tokenizer`
[INFO] [stderr]  --> tests/parsing_error_tests.rs:1:30
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stderr]   |                              ^^^^^^^^^^^  ^^^^^^                ^^^^^^^^^^^^  ^^^^^^^^^^            ^^^^^  ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stderr]  --> tests/optimization_tests.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `CanonicalConverter`
[INFO] [stderr]  --> tests/optimization_tests.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 |     CanonicalConverter, CanonicalForm, CanonicalTerm, CanonicalExpression
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `kiln::evaluation::TruthTable`
[INFO] [stderr]   --> tests/optimization_tests.rs:11:5
[INFO] [stderr]    |
[INFO] [stderr] 11 | use kiln::evaluation::TruthTable;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]   --> tests/optimization_tests.rs:12:5
[INFO] [stderr]    |
[INFO] [stderr] 12 | use std::collections::HashSet;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `OperatorInfo`, `ParseError`, `Precedence`, and `Token`
[INFO] [stderr]  --> tests/parsing_tests.rs:1:65
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::parsing::{parser::{BooleanExpr, Parser}, precedence::{OperatorInfo, Precedence}, tokens::{Token, Tokenizer}, ParseError};
[INFO] [stderr]   |                                                                 ^^^^^^^^^^^^  ^^^^^^^^^^            ^^^^^              ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashMap`
[INFO] [stderr]  --> tests/truth_table_tests.rs:1:5
[INFO] [stderr]   |
[INFO] [stderr] 1 | use std::collections::HashMap;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `BatchEvaluator`, `EvaluationError`, `Evaluator`, `contains_variable`, `count_variables`, `evaluator::utils`, `extract_variables_in_order`, `extract_variables`, and `validate_variable_completeness`
[INFO] [stderr]  --> tests/truth_table_tests.rs:5:9
[INFO] [stderr]   |
[INFO] [stderr] 5 |         evaluator::utils, truth_table::{TruthRow, TruthTable}, variable_extraction::{
[INFO] [stderr]   |         ^^^^^^^^^^^^^^^^
[INFO] [stderr] 6 |             contains_variable, count_variables, extract_variables, extract_variables_in_order, validate_variable_completeness
[INFO] [stderr]   |             ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 7 |         }, BatchEvaluator, EvaluationError, Evaluator
[INFO] [stderr]   |            ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `MinimizationError` and `helpers`
[INFO] [stderr]  --> tests/canonical_forms.rs:1:26
[INFO] [stderr]   |
[INFO] [stderr] 1 | use kiln::minimization::{MinimizationError, helpers};
[INFO] [stderr]   |                          ^^^^^^^^^^^^^^^^^  ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `PrimeImplicantChart`, `QMTerm`, and `QuineMcCluskey`
[INFO] [stderr]  --> tests/canonical_forms.rs:5:43
[INFO] [stderr]   |
[INFO] [stderr] 5 | use kiln::minimization::quine_mccluskey::{QuineMcCluskey, QMTerm, PrimeImplicantChart};
[INFO] [stderr]   |                                           ^^^^^^^^^^^^^^  ^^^^^^  ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::time::Duration`
[INFO] [stderr]  --> tests/canonical_forms.rs:7:5
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::time::Duration;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `KMapGroup`, `KMapPosition`, `KarnaughMapMinimizer`, and `KarnaughMap`
[INFO] [stderr]  --> tests/canonical_forms.rs:8:41
[INFO] [stderr]   |
[INFO] [stderr] 8 | use kiln::minimization::karnaugh_maps::{KarnaughMapMinimizer, KarnaughMap, KMapPosition, KMapGroup};
[INFO] [stderr]   |                                         ^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `std::collections::HashSet`
[INFO] [stderr]   --> tests/canonical_forms.rs:10:5
[INFO] [stderr]    |
[INFO] [stderr] 10 | use std::collections::HashSet;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `kiln` (lib test) generated 15 warnings (15 duplicates)
[INFO] [stderr] warning: `kiln` (test "evaluation_error_tests") generated 2 warnings (run `cargo fix --test "evaluation_error_tests"` to apply 2 suggestions)
[INFO] [stderr] warning: `kiln` (test "evaluator_tests") generated 1 warning (run `cargo fix --test "evaluator_tests"` to apply 1 suggestion)
[INFO] [stderr] warning: `kiln` (test "parsing_error_tests") generated 1 warning (run `cargo fix --test "parsing_error_tests"` to apply 1 suggestion)
[INFO] [stderr] warning: `kiln` (test "optimization_tests") generated 4 warnings (run `cargo fix --test "optimization_tests"` to apply 4 suggestions)
[INFO] [stderr] warning: `kiln` (test "parsing_tests") generated 1 warning (run `cargo fix --test "parsing_tests"` to apply 1 suggestion)
[INFO] [stderr] warning: `kiln` (test "truth_table_tests") generated 2 warnings (run `cargo fix --test "truth_table_tests"` to apply 2 suggestions)
[INFO] [stderr] warning: `kiln` (test "canonical_forms") generated 5 warnings (run `cargo fix --test "canonical_forms"` to apply 5 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/kiln-ba482eae4d99a3e3)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test generation::errors::tests::test_helper_functions ... ok
[INFO] [stdout] test generation::errors::tests::test_invalid_module_name_with_suggestion ... ok
[INFO] [stdout] test generation::errors::tests::test_module_name_sanitization ... ok
[INFO] [stdout] test generation::errors::tests::test_resource_exhaustion_with_suggestions ... ok
[INFO] [stdout] test generation::errors::tests::test_testbench_generation_error_with_partial ... ok
[INFO] [stdout] test generation::errors::tests::test_unsupported_gate_error ... ok
[INFO] [stdout] test generation::errors::tests::test_timing_constraint_violation ... ok
[INFO] [stdout] test generation::errors::tests::test_hdl_syntax_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/kiln-95a121bfab22632f)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test generation::errors::tests::test_hdl_syntax_error ... ok
[INFO] [stdout] test generation::errors::tests::test_invalid_module_name_with_suggestion ... ok
[INFO] [stdout] test generation::errors::tests::test_helper_functions ... ok
[INFO] [stdout] test generation::errors::tests::test_module_name_sanitization ... ok
[INFO] [stdout] test generation::errors::tests::test_resource_exhaustion_with_suggestions ... ok
[INFO] [stdout] test generation::errors::tests::test_testbench_generation_error_with_partial ... ok
[INFO] [stdout] test generation::errors::tests::test_timing_constraint_violation ... ok
[INFO] [stderr]      Running tests/canonical_forms.rs (/opt/rustwide/target/debug/deps/canonical_forms-3ed9fd88db72849b)
[INFO] [stdout] test generation::errors::tests::test_unsupported_gate_error ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stderr]      Running tests/evaluation_error_tests.rs (/opt/rustwide/target/debug/deps/evaluation_error_tests-947cbc42d829caa1)
[INFO] [stdout] test test_canonical_expression_deduplication ... ok
[INFO] [stdout] test test_canonical_expression_optimization_metrics ... ok
[INFO] [stderr]      Running tests/evaluator_tests.rs (/opt/rustwide/target/debug/deps/evaluator_tests-f19922986021c503)
[INFO] [stdout] test test_canonical_expression_display ... ok
[INFO] [stderr]      Running tests/generation_tests.rs (/opt/rustwide/target/debug/deps/generation_tests-f2425f6e935382b1)
[INFO] [stdout] test test_canonical_form_detection ... ok
[INFO] [stderr]      Running tests/karnaugh_map_tests.rs (/opt/rustwide/target/debug/deps/karnaugh_map_tests-c36a3b68dd6d87c5)
[INFO] [stdout] test test_canonical_form_detection_edge_cases ... ok
[INFO] [stdout] test test_canonical_term_covers ... ok
[INFO] [stdout] test test_canonical_term_creation ... ok
[INFO] [stdout] test test_canonical_term_from_truth_table_row ... ok
[INFO] [stdout] test test_canonical_term_to_boolean_expr ... ok
[INFO] [stdout] test test_empty_canonical_expression ... ok
[INFO] [stdout] test test_complex_sop_conversion ... ok
[INFO] [stdout] test test_pos_conversion ... ok
[INFO] [stdout] test test_sop_conversion ... ok
[INFO] [stdout] test test_canonical_form_conversion_round_trip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 20 tests
[INFO] [stdout] test test_complex_variable_extraction ... ok
[INFO] [stdout] test test_contains_variable ... ok
[INFO] [stdout] test test_extract_multiple_variables ... ok
[INFO] [stdout] test test_extract_single_variable ... ok
[INFO] [stdout] test test_count_variables ... ok
[INFO] [stdout] test test_evaluation_stack_overflow_error ... ok
[INFO] [stdout] test test_extract_duplicate_variables ... ok
[INFO] [stdout] test test_extract_variables_in_order ... ok
[INFO] [stdout] test test_extract_variables_in_order_with_duplicates ... ok
[INFO] [stdout] test test_extract_with_constants ... ok
[INFO] [stdout] test test_extract_with_not ... ok
[INFO] [stdout] test test_inconsistent_variable_set_error ... ok
[INFO] [stdout] test test_invalid_truth_table_size_error ... ok
[INFO] [stdout] test test_undefined_variable_error ... ok
[INFO] [stdout] test test_undefined_variable_with_no_available_variables ... ok
[INFO] [stdout] test test_validate_variable_completeness_success ... ok
[INFO] [stdout] test test_variable_validation_edge_cases ... ok
[INFO] [stdout] test test_variable_ordering_consistency ... ok
[INFO] [stdout] test test_variable_search_in_nested_expression ... ok
[INFO] [stdout] test test_validate_variable_completeness_failure ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 20 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test test_batch_error_context ... ok
[INFO] [stdout] test test_and_expression_evaluation ... ok
[INFO] [stdout] test test_batch_evaluation ... ok
[INFO] [stdout] test test_complex_expression_evaluation ... ok
[INFO] [stdout] test test_exhaustive_evaluation ... ok
[INFO] [stdout] test test_ordered_assignments ... ok
[INFO] [stdout] test test_recursion_depth_limit ... ok
[INFO] [stdout] test test_short_circuit_evaluation ... ok
[INFO] [stdout] test test_simple_variable_evaluation ... ok
[INFO] [stdout] test test_utils_contradiction_detection ... ok
[INFO] [stdout] test test_undefined_variable_error_for_evaluator ... ok
[INFO] [stdout] test test_utils_quick_eval ... ok
[INFO] [stdout] test test_utils_satisfiable_detection ... ok
[INFO] [stdout] test test_utils_tautology_detection ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 51 tests
[INFO] [stdout] test test_area_estimation_simple_expression ... ok
[INFO] [stdout] test test_area_estimator_configuration ... ok
[INFO] [stdout] test test_area_estimator_creation ... ok
[INFO] [stdout] test test_cascading_error_scenarios ... ok
[INFO] [stdout] test test_area_optimization_suggestions ... ok
[INFO] [stdout] test test_area_report_methods ... ok
[INFO] [stdout] test test_complex_expression_handling ... ok
[INFO] [stdout] test test_complex_timing_violation_scenario ... ok
[INFO] [stdout] test test_error_severity_implications ... ok
[INFO] [stdout] test test_gate_info_methods ... ok
[INFO] [stdout] test test_gate_library_add_gate ... ok
[INFO] [stdout] test test_deeply_nested_expression ... ok
[INFO] [stdout] test test_gate_library_creation ... ok
[INFO] [stdout] test test_constant_expressions ... ok
[INFO] [stdout] test test_error_kind_equality_and_cloning ... ok
[INFO] [stdout] test test_error_context_preservation ... ok
[INFO] [stdout] test test_helper_module_naming_error ... ok
[INFO] [stdout] test test_helper_resource_limit_error ... ok
[INFO] [stdout] test test_module_name_sanitization_edge_cases ... ok
[INFO] [stdout] test test_optimization_suggestion_quality ... ok
[INFO] [stdout] test test_partial_testbench_handling ... ok
[INFO] [stdout] test test_port_mapping_conflict_resolution ... ok
[INFO] [stdout] test test_hdl_syntax_error_without_line_number ... ok
[INFO] [stdout] test test_helper_resource_optimization_suggestions ... ok
[INFO] [stdout] test test_resource_exhaustion_optimization_suggestions ... ok
[INFO] [stdout] test test_helper_timing_violation_error ... ok
[INFO] [stdout] test test_testbench_config_defaults ... ok
[INFO] [stdout] test test_synthesis_target_mismatch_conversion_path ... ok
[INFO] [stdout] test test_testbench_different_strategies ... ok
[INFO] [stdout] test test_technology_mapping_comprehensive_failure ... ok
[INFO] [stdout] test test_testbench_generation_without_partial ... ok
[INFO] [stdout] test test_testbench_generation_from_expression ... ok
[INFO] [stdout] test test_timing_analyzer_creation ... ok
[INFO] [stdout] test test_timing_analyzer_with_constraints ... ok
[INFO] [stdout] test test_timing_violation_percentage_calculation ... ok
[INFO] [stdout] test test_testbench_generator_creation ... ok
[INFO] [stdout] test test_unsupported_expression_structure_alternatives ... ok
[INFO] [stdout] test test_timing_analysis_simple_expression ... ok
[INFO] [stdout] test test_timing_report_methods ... ok
[INFO] [stdout] test test_verilog_generator_configuration ... ok
[INFO] [stdout] test test_verilog_generator_creation ... ok
[INFO] [stdout] test test_verilog_different_styles ... ok
[INFO] [stdout] test test_vhdl_different_styles ... ok
[INFO] [stdout] test test_verilog_generation_simple_and ... ok
[INFO] [stdout] test test_verilog_vhdl_both_work ... ok
[INFO] [stdout] test test_vhdl_generator_configuration ... ok
[INFO] [stdout] test test_vhdl_generator_creation ... ok
[INFO] [stdout] test test_vhdl_generation_simple_and ... ok
[INFO] [stdout] test test_gate_library_error_comprehensive ... ok
[INFO] [stdout] test test_gate_library_lookup ... ok
[INFO] [stdout] test test_single_variable_expression ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 51 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test test_3_variable_kmap_minimization ... ok
[INFO] [stdout] test test_4_variable_kmap_complex_case ... ok
[INFO] [stdout] test test_kmap_display ... ok
[INFO] [stdout] test test_group_literal_count ... ok
[INFO] [stdout] test test_gray_code_conversion ... ok
[INFO] [stdout] test test_kmap_display_formatting ... ok
[INFO] [stdout] test test_kmap_essential_prime_implicant_detection ... ok
[INFO] [stdout] test test_kmap_group_validation ... ok
[INFO] [stdout] test test_kmap_empty_expression_handling ... ok
[INFO] [stdout] test test_kmap_minimization ... ok
[INFO] [stdout] test test_kmap_minimization_steps_detail ... ok
[INFO] [stdout] test test_kmap_position ... ok
[INFO] [stdout] test test_kmap_position_to_variable_mapping ... ok
[INFO] [stdout] test test_kmap_power_of_2_group_validation ... ok
[INFO] [stdout] test test_kmap_vs_truth_table_consistency ... ok
[INFO] [stdout] test test_kmap_wraparound_groups ... ok
[INFO] [stdout] test test_variable_limit_enforcement ... ok
[INFO] [stdout] test test_kmap_from_simple_expression ... ok
[INFO] [stdout] test test_kmap_group_implication_calculation ... ok
[INFO] [stdout] test test_kmap_large_group_preference ... ok
[INFO] [stdout] test test_kmap_single_variable_edge_case ... ok
[INFO] [stderr]      Running tests/minimization_errors.rs (/opt/rustwide/target/debug/deps/minimization_errors-d0172a642e202e56)
[INFO] [stdout] test test_minimization_steps ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 22 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 14 tests
[INFO] [stdout] test test_error_context_preservation ... ok
[INFO] [stdout] test test_error_kind_display ... ok
[INFO] [stdout] test test_helper_memory_estimation ... ok
[INFO] [stdout] test test_incompatible_truth_table_error ... ok
[INFO] [stdout] test test_memory_exhaustion_detailed_reporting ... ok
[INFO] [stdout] test test_optimization_timeout_error ... ok
[INFO] [stdout] test test_minimization_failed_with_steps ... ok
[INFO] [stdout] test test_too_many_variables_error ... ok
[INFO] [stdout] test test_unsupported_operation_comprehensive ... ok
[INFO] [stdout] test test_helper_functions ... ok
[INFO] [stderr]      Running tests/optimization_tests.rs (/opt/rustwide/target/debug/deps/optimization_tests-2e46dbde6102378e)
[INFO] [stdout] test test_algorithm_specific_suggestions ... ok
[INFO] [stdout] test test_invalid_canonical_form_error ... ok
[INFO] [stdout] test test_complex_minimization_error_scenarios ... ok
[INFO] [stdout] test test_cyclic_dependency_detection ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 14 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 18 tests
[INFO] [stdout] test test_algorithm_specific_data_management ... ok
[INFO] [stdout] test test_complexity_analysis ... ok
[INFO] [stdout] test test_complexity_analysis_scaling ... ok
[INFO] [stdout] test test_comprehensive_optimization_analysis ... ok
[INFO] [stdout] test test_expression_metrics_calculation ... ok
[INFO] [stdout] test test_bottleneck_identification ... ok
[INFO] [stdout] test test_expression_metrics_for_different_types ... ok
[INFO] [stdout] test test_improvement_metrics_calculation ... ok
[INFO] [stdout] test test_improvement_metrics_edge_cases ... ok
[INFO] [stdout] test test_memory_usage_estimation_accuracy ... ok
[INFO] [stdout] test test_memory_usage_estimation ... ok
[INFO] [stdout] test test_optimization_stats_effectiveness_scoring ... ok
[INFO] [stdout] test test_optimization_stats_summary ... ok
[INFO] [stdout] test test_significant_improvement_detection ... ok
[INFO] [stdout] test test_expression_type_classification_comprehensive ... ok
[INFO] [stdout] test test_optimization_stats_creation ... ok
[INFO] [stdout] test test_performance_benchmark ... ok
[INFO] [stdout] test test_performance_benchmark_detailed ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- test_performance_benchmark_detailed stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'test_performance_benchmark_detailed' panicked at tests/optimization_tests.rs:435:4:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "Generate Truth Table"
[INFO] [stdout]  right: "Find Prime Implicants"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6186d32cb6a2 - std::backtrace_rs::backtrace::libunwind::trace::hd39b1f53d3cf9745
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6186d32cb6a2 - std::backtrace_rs::backtrace::trace_unsynchronized::he91d9a75d4e3972b
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6186d32cb6a2 - std::sys::backtrace::_print_fmt::hca46938f8c6e22cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:66:9
[INFO] [stdout]    3:     0x6186d32cb6a2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::ha499add612cccf8e
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:39:26
[INFO] [stdout]    4:     0x6186d32f0763 - core::fmt::rt::Argument::fmt::hd21145b75a833b7a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/rt.rs:173:76
[INFO] [stdout]    5:     0x6186d32f0763 - core::fmt::write::hb10c956f5235c8a4
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/fmt/mod.rs:1465:25
[INFO] [stdout]    6:     0x6186d32c8843 - std::io::default_write_fmt::hdb7615052be2ba4d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6186d32c8843 - std::io::Write::write_fmt::he1bcd251ec6e4153
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/io/mod.rs:1954:13
[INFO] [stdout]    8:     0x6186d32cb4f2 - std::sys::backtrace::BacktraceLock::print::hb47c770ef659fd10
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:42:9
[INFO] [stdout]    9:     0x6186d32ccc0c - std::panicking::default_hook::{{closure}}::hdda8afb9d457a22c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:300:27
[INFO] [stdout]   10:     0x6186d32cca62 - std::panicking::default_hook::h7c46b44874fe5c9a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:324:9
[INFO] [stdout]   11:     0x6186d328ca04 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h178a5fcedee41e2f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   12:     0x6186d328ca04 - test::test_main_with_exit_callback::{{closure}}::h951a41e0149d6d5d
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6186d32cd5eb - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h13602080f5b63276
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1985:9
[INFO] [stdout]   14:     0x6186d32cd5eb - std::panicking::rust_panic_with_hook::ha6cb99ed099eb1c5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:841:13
[INFO] [stdout]   15:     0x6186d32cd3ba - std::panicking::begin_panic_handler::{{closure}}::he11808bc797ee921
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:706:13
[INFO] [stdout]   16:     0x6186d32cbb99 - std::sys::backtrace::__rust_end_short_backtrace::h9418807cb7346258
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:168:18
[INFO] [stdout]   17:     0x6186d32cd04d - __rustc[18fb429eef004894]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:697:5
[INFO] [stdout]   18:     0x6186d32ef2b0 - core::panicking::panic_fmt::hd890aeb12c3a3fc3
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:75:14
[INFO] [stdout]   19:     0x6186d32ef547 - core::panicking::assert_failed_inner::h02e1528dd7bc6647
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:448:17
[INFO] [stdout]   20:     0x6186d32530d0 - core::panicking::assert_failed::h620aeb12508e89c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panicking.rs:403:5
[INFO] [stdout]   21:     0x6186d324bc31 - optimization_tests::test_performance_benchmark_detailed::ha6ad7647750c1305
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/optimization_tests.rs:435:4
[INFO] [stdout]   22:     0x6186d324bc31 - optimization_tests::test_performance_benchmark_detailed::{{closure}}::had8434d45ba4c808
[INFO] [stdout]                                at /opt/rustwide/workdir/tests/optimization_tests.rs:403:41
[INFO] [stdout]   23:     0x6186d324bc31 - core::ops::function::FnOnce::call_once::h7274d6f851142d7c
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x6186d329218b - core::ops::function::FnOnce::call_once::h2869fb5b0a2b0bdc
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x6186d329218b - test::__rust_begin_short_backtrace::h7dd7142bd62fa711
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:648:18
[INFO] [stdout]   26:     0x6186d329137e - test::run_test_in_process::{{closure}}::h43a753f038d36b3f
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:74
[INFO] [stdout]   27:     0x6186d329137e - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0ca95dd3e12d1e16
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x6186d329137e - std::panicking::catch_unwind::do_call::he308587d70ac34ba
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   29:     0x6186d329137e - std::panicking::catch_unwind::h30dcba31973e8fb0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   30:     0x6186d329137e - std::panic::catch_unwind::hfb68364e5621fbee
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x6186d329137e - test::run_test_in_process::hcdcc2977903b998a
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:671:27
[INFO] [stdout]   32:     0x6186d329137e - test::run_test::{{closure}}::h544a6550958c5d14
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:592:43
[INFO] [stdout]   33:     0x6186d3254ef4 - test::run_test::{{closure}}::hb172e48ebe2b92c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/test/src/lib.rs:622:41
[INFO] [stdout]   34:     0x6186d3254ef4 - std::sys::backtrace::__rust_begin_short_backtrace::h7e79d8706638bea0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/backtrace.rs:152:18
[INFO] [stdout]   35:     0x6186d32588ca - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hc4a275f1e71b8ab0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:559:17
[INFO] [stdout]   36:     0x6186d32588ca - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h01ed0d242df78cfd
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x6186d32588ca - std::panicking::catch_unwind::do_call::h052f373fb905fee0
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:589:40
[INFO] [stdout]   38:     0x6186d32588ca - std::panicking::catch_unwind::hb425d20c8ffb09c8
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panicking.rs:552:19
[INFO] [stdout]   39:     0x6186d32588ca - std::panic::catch_unwind::ha0d5dfbf18fdeda5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x6186d32588ca - std::thread::Builder::spawn_unchecked_::{{closure}}::hbe79182bd37949c7
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/thread/mod.rs:557:30
[INFO] [stdout]   41:     0x6186d32588ca - core::ops::function::FnOnce::call_once{{vtable.shim}}::hc096c4a06972fde5
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x6186d32d0547 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h47377e27fb938a26
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   43:     0x6186d32d0547 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h72f1fe5d095abf57
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/alloc/src/boxed.rs:1971:9
[INFO] [stdout]   44:     0x6186d32d0547 - std::sys::pal::unix::thread::Thread::new::thread_start::h0a4d8e1b9c0d38cf
[INFO] [stdout]                                at /rustc/d98a5da813da67eb189387b8ccfb73cf481275d8/library/std/src/sys/pal/unix/thread.rs:97:17
[INFO] [stdout]   45:     0x7bebaaf2eaa4 - <unknown>
[INFO] [stdout]   46:     0x7bebaafbba34 - clone
[INFO] [stdout]   47:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     test_performance_benchmark_detailed
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 17 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--test optimization_tests`
[INFO] running `Command { std: "docker" "inspect" "6a8898ea86c361317de02d157272d02e58a1cc3c41bad8bda073cd64240b0192", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a8898ea86c361317de02d157272d02e58a1cc3c41bad8bda073cd64240b0192", kill_on_drop: false }`
[INFO] [stdout] 6a8898ea86c361317de02d157272d02e58a1cc3c41bad8bda073cd64240b0192
