[INFO] fetching crate product-farm-llm-evaluator 0.2.0... [INFO] testing product-farm-llm-evaluator-0.2.0 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-2 [INFO] extracting crate product-farm-llm-evaluator 0.2.0 into /workspace/builds/worker-3-tc2/source [INFO] started tweaking crates.io crate product-farm-llm-evaluator 0.2.0 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate product-farm-llm-evaluator 0.2.0 [INFO] tweaked toml for crates.io crate product-farm-llm-evaluator 0.2.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate product-farm-llm-evaluator 0.2.0 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate product-farm-llm-evaluator 0.2.0 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" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] f2d70da9e8051f98013c51b5c2222041d0603726d1ebc8ab26e0872bead61d95 [INFO] running `Command { std: "docker" "start" "-a" "f2d70da9e8051f98013c51b5c2222041d0603726d1ebc8ab26e0872bead61d95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "f2d70da9e8051f98013c51b5c2222041d0603726d1ebc8ab26e0872bead61d95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "f2d70da9e8051f98013c51b5c2222041d0603726d1ebc8ab26e0872bead61d95", kill_on_drop: false }` [INFO] [stdout] f2d70da9e8051f98013c51b5c2222041d0603726d1ebc8ab26e0872bead61d95 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 513ec402d88e05f4dab7ed5abfa05d3be38786311232be59b7cf30fffc3f88f1 [INFO] running `Command { std: "docker" "start" "-a" "513ec402d88e05f4dab7ed5abfa05d3be38786311232be59b7cf30fffc3f88f1", kill_on_drop: false }` [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling syn v2.0.111 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling rust_decimal v1.39.0 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling iana-time-zone v0.1.64 [INFO] [stderr] Compiling socket2 v0.6.1 [INFO] [stderr] Compiling hashbrown v0.14.5 [INFO] [stderr] Compiling mio v1.1.0 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling uuid v1.19.0 [INFO] [stderr] Compiling signal-hook-registry v1.4.7 [INFO] [stderr] Compiling tracing-core v0.1.35 [INFO] [stderr] Compiling bytes v1.11.0 [INFO] [stderr] Compiling regex-automata v0.4.13 [INFO] [stderr] Compiling regex v1.12.2 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.0 [INFO] [stderr] Compiling tokio v1.48.0 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tracing v0.1.43 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling futures-executor v0.3.31 [INFO] [stderr] Compiling futures v0.3.31 [INFO] [stderr] Compiling product-farm-core v0.2.0 [INFO] [stderr] Compiling product-farm-llm-evaluator v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stdout] --> src/claude.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parsing` [INFO] [stdout] --> src/claude.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parsing; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `info` [INFO] [stdout] --> src/claude.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stdout] --> src/ollama.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parsing` [INFO] [stdout] --> src/ollama.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parsing; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, and `warn` [INFO] [stdout] --> src/ollama.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_value` is never used [INFO] [stdout] --> src/claude.rs:429:4 [INFO] [stdout] | [INFO] [stdout] 429 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_value` is never used [INFO] [stdout] --> src/ollama.rs:403:4 [INFO] [stdout] | [INFO] [stdout] 403 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InstructionDetector` is never constructed [INFO] [stdout] --> src/prompt.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct InstructionDetector { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `has_complete_json_format_instruction`, `has_output_only_instruction`, `has_complete_constraint_instructions`, and `has_complete_datatype_instructions` are never used [INFO] [stdout] --> src/prompt.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 155 | impl InstructionDetector { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 156 | fn new(template: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn has_complete_json_format_instruction(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn has_output_only_instruction(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn has_complete_constraint_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn has_complete_datatype_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `NUMBER_REGEX` is never used [INFO] [stdout] --> src/parsing.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static NUMBER_REGEX: Lazy = Lazy::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `BOOLEAN_TRUE_REGEX` is never used [INFO] [stdout] --> src/parsing.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | static BOOLEAN_TRUE_REGEX: Lazy = Lazy::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `BOOLEAN_FALSE_REGEX` is never used [INFO] [stdout] --> src/parsing.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | static BOOLEAN_FALSE_REGEX: Lazy = Lazy::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_number` is never used [INFO] [stdout] --> src/parsing.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn parse_number(text: &str) -> LlmEvaluatorResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_boolean` is never used [INFO] [stdout] --> src/parsing.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn parse_boolean(text: &str) -> LlmEvaluatorResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate_for_error` is never used [INFO] [stdout] --> src/parsing.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn truncate_for_error(text: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 47.15s [INFO] running `Command { std: "docker" "inspect" "513ec402d88e05f4dab7ed5abfa05d3be38786311232be59b7cf30fffc3f88f1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "513ec402d88e05f4dab7ed5abfa05d3be38786311232be59b7cf30fffc3f88f1", kill_on_drop: false }` [INFO] [stdout] 513ec402d88e05f4dab7ed5abfa05d3be38786311232be59b7cf30fffc3f88f1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2cbe541534fc82f02f9e0c12cde331a4b3a0fb2f9058c22a50198a9a3dd80051 [INFO] running `Command { std: "docker" "start" "-a" "2cbe541534fc82f02f9e0c12cde331a4b3a0fb2f9058c22a50198a9a3dd80051", kill_on_drop: false }` [INFO] [stderr] Compiling product-farm-llm-evaluator v0.2.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stdout] --> src/claude.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parsing` [INFO] [stdout] --> src/claude.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parsing; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `info` [INFO] [stdout] --> src/claude.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stdout] --> src/ollama.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parsing` [INFO] [stdout] --> src/ollama.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parsing; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, and `warn` [INFO] [stdout] --> src/ollama.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_value` is never used [INFO] [stdout] --> src/claude.rs:429:4 [INFO] [stdout] | [INFO] [stdout] 429 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_value` is never used [INFO] [stdout] --> src/ollama.rs:403:4 [INFO] [stdout] | [INFO] [stdout] 403 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InstructionDetector` is never constructed [INFO] [stdout] --> src/prompt.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct InstructionDetector { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `has_complete_json_format_instruction`, `has_output_only_instruction`, `has_complete_constraint_instructions`, and `has_complete_datatype_instructions` are never used [INFO] [stdout] --> src/prompt.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 155 | impl InstructionDetector { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 156 | fn new(template: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn has_complete_json_format_instruction(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn has_output_only_instruction(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn has_complete_constraint_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn has_complete_datatype_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `NUMBER_REGEX` is never used [INFO] [stdout] --> src/parsing.rs:12:8 [INFO] [stdout] | [INFO] [stdout] 12 | static NUMBER_REGEX: Lazy = Lazy::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `BOOLEAN_TRUE_REGEX` is never used [INFO] [stdout] --> src/parsing.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | static BOOLEAN_TRUE_REGEX: Lazy = Lazy::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `BOOLEAN_FALSE_REGEX` is never used [INFO] [stdout] --> src/parsing.rs:21:8 [INFO] [stdout] | [INFO] [stdout] 21 | static BOOLEAN_FALSE_REGEX: Lazy = Lazy::new(|| { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_number` is never used [INFO] [stdout] --> src/parsing.rs:32:8 [INFO] [stdout] | [INFO] [stdout] 32 | pub fn parse_number(text: &str) -> LlmEvaluatorResult { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `parse_boolean` is never used [INFO] [stdout] --> src/parsing.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn parse_boolean(text: &str) -> LlmEvaluatorResult { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `truncate_for_error` is never used [INFO] [stdout] --> src/parsing.rs:105:4 [INFO] [stdout] | [INFO] [stdout] 105 | fn truncate_for_error(text: &str) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlmEvaluator` and `Value` [INFO] [stdout] --> tests/integration_test.rs:18:25 [INFO] [stdout] | [INFO] [stdout] 18 | use product_farm_core::{LlmEvaluator, Value}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AttributeInfo`, `ParallelLlmExecutor`, `PromptBuilder`, `RuleEvaluationContext`, and `RuleMetadata` [INFO] [stdout] --> tests/integration_test.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | ParallelLlmExecutor, ParallelExecutorConfig, RuleMetadata, RetryConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] 22 | PromptBuilder, RuleEvaluationContext, AttributeInfo, [INFO] [stdout] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> tests/integration_test.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `skip_if_no_ollama` [INFO] [stdout] --> tests/integration_test.rs:54:14 [INFO] [stdout] | [INFO] [stdout] 54 | macro_rules! skip_if_no_ollama { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `ParallelLlmExecutor` [INFO] [stdout] --> tests/concurrent_stress_test.rs:17:5 [INFO] [stdout] | [INFO] [stdout] 17 | ParallelLlmExecutor, RetryConfig, RuleMetadata, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AtomicUsize` and `Ordering` [INFO] [stdout] --> tests/concurrent_stress_test.rs:20:25 [INFO] [stdout] | [INFO] [stdout] 20 | use std::sync::atomic::{AtomicUsize, Ordering}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::sync::Arc` [INFO] [stdout] --> tests/concurrent_stress_test.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | use std::sync::Arc; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused macro definition: `skip_if_no_ollama` [INFO] [stdout] --> tests/concurrent_stress_test.rs:43:14 [INFO] [stdout] | [INFO] [stdout] 43 | macro_rules! skip_if_no_ollama { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `evaluator` [INFO] [stdout] --> tests/integration_test.rs:42:9 [INFO] [stdout] | [INFO] [stdout] 42 | let evaluator = OllamaLlmEvaluator::localhost(test_model()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_TEST_MODEL` is never used [INFO] [stdout] --> tests/integration_test.rs:12:7 [INFO] [stdout] | [INFO] [stdout] 12 | const DEFAULT_TEST_MODEL: &str = "qwen3:4b-instruct-2507-q4_K_M"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_model` is never used [INFO] [stdout] --> tests/integration_test.rs:14:4 [INFO] [stdout] | [INFO] [stdout] 14 | fn test_model() -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_executor_config` is never used [INFO] [stdout] --> tests/integration_test.rs:27:4 [INFO] [stdout] | [INFO] [stdout] 27 | fn test_executor_config() -> ParallelExecutorConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ollama_available` is never used [INFO] [stdout] --> tests/integration_test.rs:41:10 [INFO] [stdout] | [INFO] [stdout] 41 | async fn ollama_available() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `evaluator` [INFO] [stdout] --> tests/concurrent_stress_test.rs:32:9 [INFO] [stdout] | [INFO] [stdout] 32 | let evaluator = OllamaLlmEvaluator::localhost(test_model()); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `DEFAULT_TEST_MODEL` is never used [INFO] [stdout] --> tests/concurrent_stress_test.rs:24:7 [INFO] [stdout] | [INFO] [stdout] 24 | const DEFAULT_TEST_MODEL: &str = "qwen3:4b-instruct-2507-q4_K_M"; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_model` is never used [INFO] [stdout] --> tests/concurrent_stress_test.rs:26:4 [INFO] [stdout] | [INFO] [stdout] 26 | fn test_model() -> String { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ollama_available` is never used [INFO] [stdout] --> tests/concurrent_stress_test.rs:31:10 [INFO] [stdout] | [INFO] [stdout] 31 | async fn ollama_available() -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `test_executor_config` is never used [INFO] [stdout] --> tests/concurrent_stress_test.rs:56:4 [INFO] [stdout] | [INFO] [stdout] 56 | fn test_executor_config(max_concurrency: usize) -> ParallelExecutorConfig { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `generate_10_llm_rules` is never used [INFO] [stdout] --> tests/concurrent_stress_test.rs:76:4 [INFO] [stdout] | [INFO] [stdout] 76 | fn generate_10_llm_rules() -> Vec<(String, RuleMetadata, HashMap)> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stdout] --> src/claude.rs:5:21 [INFO] [stdout] | [INFO] [stdout] 5 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parsing` [INFO] [stdout] --> src/claude.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use crate::parsing; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug` and `info` [INFO] [stdout] --> src/claude.rs:11:15 [INFO] [stdout] | [INFO] [stdout] 11 | use tracing::{debug, info}; [INFO] [stdout] | ^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stdout] --> src/ollama.rs:6:21 [INFO] [stdout] | [INFO] [stdout] 6 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::parsing` [INFO] [stdout] --> src/ollama.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use crate::parsing; [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `debug`, `info`, and `warn` [INFO] [stdout] --> src/ollama.rs:12:15 [INFO] [stdout] | [INFO] [stdout] 12 | use tracing::{debug, info, warn}; [INFO] [stdout] | ^^^^^ ^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `evaluator` [INFO] [stdout] --> src/ollama.rs:442:13 [INFO] [stdout] | [INFO] [stdout] 442 | let evaluator = OllamaLlmEvaluator::localhost("llama3.2"); [INFO] [stdout] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `json_to_value` is never used [INFO] [stdout] --> src/ollama.rs:403:4 [INFO] [stdout] | [INFO] [stdout] 403 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `InstructionDetector` is never constructed [INFO] [stdout] --> src/prompt.rs:150:8 [INFO] [stdout] | [INFO] [stdout] 150 | struct InstructionDetector { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `has_complete_json_format_instruction`, `has_output_only_instruction`, `has_complete_constraint_instructions`, and `has_complete_datatype_instructions` are never used [INFO] [stdout] --> src/prompt.rs:156:8 [INFO] [stdout] | [INFO] [stdout] 155 | impl InstructionDetector { [INFO] [stdout] | ------------------------ associated items in this implementation [INFO] [stdout] 156 | fn new(template: &str) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 164 | fn has_complete_json_format_instruction(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 177 | fn has_output_only_instruction(&self) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 195 | fn has_complete_constraint_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 221 | fn has_complete_datatype_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.92s [INFO] running `Command { std: "docker" "inspect" "2cbe541534fc82f02f9e0c12cde331a4b3a0fb2f9058c22a50198a9a3dd80051", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2cbe541534fc82f02f9e0c12cde331a4b3a0fb2f9058c22a50198a9a3dd80051", kill_on_drop: false }` [INFO] [stdout] 2cbe541534fc82f02f9e0c12cde331a4b3a0fb2f9058c22a50198a9a3dd80051 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 872d0e9c069f78649a1b6f0d51ea1b239bb9faffe0a27f4c41a05191020e6ec4 [INFO] running `Command { std: "docker" "start" "-a" "872d0e9c069f78649a1b6f0d51ea1b239bb9faffe0a27f4c41a05191020e6ec4", kill_on_drop: false }` [INFO] [stderr] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stderr] --> src/claude.rs:5:21 [INFO] [stderr] | [INFO] [stderr] 5 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::parsing` [INFO] [stderr] --> src/claude.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use crate::parsing; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `debug` and `info` [INFO] [stderr] --> src/claude.rs:11:15 [INFO] [stderr] | [INFO] [stderr] 11 | use tracing::{debug, info}; [INFO] [stderr] | ^^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `LlmEvaluatorConfig` and `OutputFormat` [INFO] [stderr] --> src/ollama.rs:6:21 [INFO] [stderr] | [INFO] [stderr] 6 | use crate::config::{LlmEvaluatorConfig, OutputFormat}; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `crate::parsing` [INFO] [stderr] --> src/ollama.rs:8:5 [INFO] [stderr] | [INFO] [stderr] 8 | use crate::parsing; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `debug`, `info`, and `warn` [INFO] [stderr] --> src/ollama.rs:12:15 [INFO] [stderr] | [INFO] [stderr] 12 | use tracing::{debug, info, warn}; [INFO] [stderr] | ^^^^^ ^^^^ ^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `json_to_value` is never used [INFO] [stderr] --> src/claude.rs:429:4 [INFO] [stderr] | [INFO] [stderr] 429 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `json_to_value` is never used [INFO] [stderr] --> src/ollama.rs:403:4 [INFO] [stderr] | [INFO] [stderr] 403 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `InstructionDetector` is never constructed [INFO] [stderr] --> src/prompt.rs:150:8 [INFO] [stderr] | [INFO] [stderr] 150 | struct InstructionDetector { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `has_complete_json_format_instruction`, `has_output_only_instruction`, `has_complete_constraint_instructions`, and `has_complete_datatype_instructions` are never used [INFO] [stderr] --> src/prompt.rs:156:8 [INFO] [stderr] | [INFO] [stderr] 155 | impl InstructionDetector { [INFO] [stderr] | ------------------------ associated items in this implementation [INFO] [stderr] 156 | fn new(template: &str) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 164 | fn has_complete_json_format_instruction(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 177 | fn has_output_only_instruction(&self) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 195 | fn has_complete_constraint_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 221 | fn has_complete_datatype_instructions(&self, context: &RuleEvaluationContext) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `NUMBER_REGEX` is never used [INFO] [stderr] --> src/parsing.rs:12:8 [INFO] [stderr] | [INFO] [stderr] 12 | static NUMBER_REGEX: Lazy = Lazy::new(|| { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `BOOLEAN_TRUE_REGEX` is never used [INFO] [stderr] --> src/parsing.rs:17:8 [INFO] [stderr] | [INFO] [stderr] 17 | static BOOLEAN_TRUE_REGEX: Lazy = Lazy::new(|| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: static `BOOLEAN_FALSE_REGEX` is never used [INFO] [stderr] --> src/parsing.rs:21:8 [INFO] [stderr] | [INFO] [stderr] 21 | static BOOLEAN_FALSE_REGEX: Lazy = Lazy::new(|| { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_number` is never used [INFO] [stderr] --> src/parsing.rs:32:8 [INFO] [stderr] | [INFO] [stderr] 32 | pub fn parse_number(text: &str) -> LlmEvaluatorResult { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `parse_boolean` is never used [INFO] [stderr] --> src/parsing.rs:57:8 [INFO] [stderr] | [INFO] [stderr] 57 | pub fn parse_boolean(text: &str) -> LlmEvaluatorResult { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `truncate_for_error` is never used [INFO] [stderr] --> src/parsing.rs:105:4 [INFO] [stderr] | [INFO] [stderr] 105 | fn truncate_for_error(text: &str) -> String { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused variable: `evaluator` [INFO] [stderr] --> src/ollama.rs:442:13 [INFO] [stderr] | [INFO] [stderr] 442 | let evaluator = OllamaLlmEvaluator::localhost("llama3.2"); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `json_to_value` is never used [INFO] [stderr] --> src/ollama.rs:403:4 [INFO] [stderr] | [INFO] [stderr] 403 | fn json_to_value(json: serde_json::Value) -> Value { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: `product-farm-llm-evaluator` (lib) generated 16 warnings (run `cargo fix --lib -p product-farm-llm-evaluator` to apply 6 suggestions) [INFO] [stderr] warning: `product-farm-llm-evaluator` (lib test) generated 10 warnings (8 duplicates) (run `cargo fix --lib -p product-farm-llm-evaluator --tests` to apply 1 suggestion) [INFO] [stderr] warning: unused import: `ParallelLlmExecutor` [INFO] [stderr] --> tests/concurrent_stress_test.rs:17:5 [INFO] [stderr] | [INFO] [stderr] 17 | ParallelLlmExecutor, RetryConfig, RuleMetadata, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AtomicUsize` and `Ordering` [INFO] [stderr] --> tests/concurrent_stress_test.rs:20:25 [INFO] [stderr] | [INFO] [stderr] 20 | use std::sync::atomic::{AtomicUsize, Ordering}; [INFO] [stderr] | ^^^^^^^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::sync::Arc` [INFO] [stderr] --> tests/concurrent_stress_test.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | use std::sync::Arc; [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `skip_if_no_ollama` [INFO] [stderr] --> tests/concurrent_stress_test.rs:43:14 [INFO] [stderr] | [INFO] [stderr] 43 | macro_rules! skip_if_no_ollama { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `evaluator` [INFO] [stderr] --> tests/concurrent_stress_test.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let evaluator = OllamaLlmEvaluator::localhost(test_model()); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `DEFAULT_TEST_MODEL` is never used [INFO] [stderr] --> tests/concurrent_stress_test.rs:24:7 [INFO] [stderr] | [INFO] [stderr] 24 | const DEFAULT_TEST_MODEL: &str = "qwen3:4b-instruct-2507-q4_K_M"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `test_model` is never used [INFO] [stderr] --> tests/concurrent_stress_test.rs:26:4 [INFO] [stderr] | [INFO] [stderr] 26 | fn test_model() -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `ollama_available` is never used [INFO] [stderr] --> tests/concurrent_stress_test.rs:31:10 [INFO] [stderr] | [INFO] [stderr] 31 | async fn ollama_available() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `test_executor_config` is never used [INFO] [stderr] --> tests/concurrent_stress_test.rs:56:4 [INFO] [stderr] | [INFO] [stderr] 56 | fn test_executor_config(max_concurrency: usize) -> ParallelExecutorConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `generate_10_llm_rules` is never used [INFO] [stderr] --> tests/concurrent_stress_test.rs:76:4 [INFO] [stderr] | [INFO] [stderr] 76 | fn generate_10_llm_rules() -> Vec<(String, RuleMetadata, HashMap)> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `LlmEvaluator` and `Value` [INFO] [stderr] --> tests/integration_test.rs:18:25 [INFO] [stderr] | [INFO] [stderr] 18 | use product_farm_core::{LlmEvaluator, Value}; [INFO] [stderr] | ^^^^^^^^^^^^ ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused imports: `AttributeInfo`, `ParallelLlmExecutor`, `PromptBuilder`, `RuleEvaluationContext`, and `RuleMetadata` [INFO] [stderr] --> tests/integration_test.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | ParallelLlmExecutor, ParallelExecutorConfig, RuleMetadata, RetryConfig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] 22 | PromptBuilder, RuleEvaluationContext, AttributeInfo, [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> tests/integration_test.rs:24:5 [INFO] [stderr] | [INFO] [stderr] 24 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused macro definition: `skip_if_no_ollama` [INFO] [stderr] --> tests/integration_test.rs:54:14 [INFO] [stderr] | [INFO] [stderr] 54 | macro_rules! skip_if_no_ollama { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_macros)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `evaluator` [INFO] [stderr] --> tests/integration_test.rs:42:9 [INFO] [stderr] | [INFO] [stderr] 42 | let evaluator = OllamaLlmEvaluator::localhost(test_model()); [INFO] [stderr] | ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_evaluator` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: constant `DEFAULT_TEST_MODEL` is never used [INFO] [stderr] --> tests/integration_test.rs:12:7 [INFO] [stderr] | [INFO] [stderr] 12 | const DEFAULT_TEST_MODEL: &str = "qwen3:4b-instruct-2507-q4_K_M"; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: function `test_model` is never used [INFO] [stderr] --> tests/integration_test.rs:14:4 [INFO] [stderr] | [INFO] [stderr] 14 | fn test_model() -> String { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `test_executor_config` is never used [INFO] [stderr] --> tests/integration_test.rs:27:4 [INFO] [stderr] | [INFO] [stderr] 27 | fn test_executor_config() -> ParallelExecutorConfig { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: function `ollama_available` is never used [INFO] [stderr] --> tests/integration_test.rs:41:10 [INFO] [stderr] | [INFO] [stderr] 41 | async fn ollama_available() -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `product-farm-llm-evaluator` (test "concurrent_stress_test") generated 10 warnings (run `cargo fix --test "concurrent_stress_test" -p product-farm-llm-evaluator` to apply 4 suggestions) [INFO] [stderr] warning: `product-farm-llm-evaluator` (test "integration_test") generated 9 warnings (run `cargo fix --test "integration_test" -p product-farm-llm-evaluator` to apply 4 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.28s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/product_farm_llm_evaluator-3f325f94a14fc86f) [INFO] [stdout] [INFO] [stdout] running 37 tests [INFO] [stdout] test claude::tests::test_json_to_value_primitives ... ok [INFO] [stdout] test config::tests::test_config_serialization ... ok [INFO] [stdout] test config::tests::test_render_prompt_simple ... ok [INFO] [stdout] test config::tests::test_config_new ... ok [INFO] [stdout] test env_config::tests::test_default_concurrency ... ok [INFO] [stdout] test config::tests::test_render_prompt_with_json ... ok [INFO] [stdout] test config::tests::test_render_prompt_with_outputs ... ok [INFO] [stdout] test env_config::tests::test_config_summary ... ok [INFO] [stdout] test env_config::tests::test_max_concurrency_for_provider ... ok [INFO] [stdout] test env_config::tests::test_default_provider_is_ollama ... ok [INFO] [stdout] test env_config::tests::test_retry_backoff_calculation ... ok [INFO] [stdout] test config::tests::test_config_builder ... ok [INFO] [stdout] test config::tests::test_config_map_roundtrip ... ok [INFO] [stdout] test env_config::tests::test_effective_temperature_override ... ok [INFO] [stdout] test config::tests::test_config_temperature_clamped ... ok [INFO] [stdout] test config::tests::test_output_format_serialization ... ok [INFO] [stdout] test executor::tests::test_config_builder_methods ... ok [INFO] [stdout] test executor::tests::test_config_without_retries ... ok [INFO] [stdout] test executor::tests::test_parallel_executor_config_defaults ... ok [INFO] [stdout] test executor::tests::test_parallel_executor_config_unlimited ... ok [INFO] [stdout] test executor::tests::test_retry_config_backoff ... ok [INFO] [stdout] test ollama::tests::test_ollama_evaluator_creation ... ok [INFO] [stdout] test parsing::tests::test_parse_boolean_negation ... ok [INFO] [stdout] test executor::tests::test_rule_metadata_from_inputs ... ok [INFO] [stdout] test ollama::tests::test_ollama_localhost ... ok [INFO] [stdout] test executor::tests::test_context_sharing ... ok [INFO] [stdout] test prompt::tests::test_attribute_info_builder ... ok [INFO] [stdout] test prompt::tests::test_prompt_builder_custom_template ... ok [INFO] [stdout] test prompt::tests::test_prompt_builder_default ... ok [INFO] [stdout] test prompt::tests::test_prompt_token_optimization ... ok [INFO] [stdout] test parsing::tests::test_parse_boolean_with_context ... ok [INFO] [stdout] test parsing::tests::test_parse_number_no_number ... ok [INFO] [stdout] test parsing::tests::test_parse_number_in_text ... ok [INFO] [stdout] test parsing::tests::test_parse_number_avoids_concatenation ... ok [INFO] [stdout] test parsing::tests::test_parse_number_simple ... ok [INFO] [stdout] test parsing::tests::test_parse_number_negative ... ok [INFO] [stdout] test parsing::tests::test_parse_boolean_simple ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s [INFO] [stdout] [INFO] [stderr] Running tests/concurrent_stress_test.rs (/opt/rustwide/target/debug/deps/concurrent_stress_test-8117ea462843ee00) [INFO] [stdout] [INFO] [stderr] Running tests/integration_test.rs (/opt/rustwide/target/debug/deps/integration_test-2fe96b27c3323fc9) [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests product_farm_llm_evaluator [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/lib.rs - (line 34) ... ignored [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "872d0e9c069f78649a1b6f0d51ea1b239bb9faffe0a27f4c41a05191020e6ec4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "872d0e9c069f78649a1b6f0d51ea1b239bb9faffe0a27f4c41a05191020e6ec4", kill_on_drop: false }` [INFO] [stdout] 872d0e9c069f78649a1b6f0d51ea1b239bb9faffe0a27f4c41a05191020e6ec4