[INFO] cloning repository https://github.com/sadministrator/ziggurat
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/sadministrator/ziggurat" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsadministrator%2Fziggurat", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsadministrator%2Fziggurat'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] ae512a0188a61ce8cab48cf7fdd581c461367e04
[INFO] building sadministrator/ziggurat against master#c7f6aa2869acdbf014d094c6e427e554e160b6db for pr-146237-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsadministrator%2Fziggurat" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/sadministrator/ziggurat
[INFO] finished tweaking git repo https://github.com/sadministrator/ziggurat
[INFO] tweaked toml for git repo https://github.com/sadministrator/ziggurat written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/sadministrator/ziggurat on toolchain c7f6aa2869acdbf014d094c6e427e554e160b6db
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/sadministrator/ziggurat 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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded tl v0.7.8
[INFO] [stderr]   Downloaded upon v0.7.1
[INFO] [stderr]   Downloaded zip v1.1.4
[INFO] [stderr]   Downloaded epub-builder v0.7.4
[INFO] [stderr]   Downloaded tui v0.19.0
[INFO] [stderr]   Downloaded reqwest v0.12.8
[INFO] [stderr]   Downloaded epub v2.1.2
[INFO] [stderr]   Downloaded lopdf v0.34.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-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" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f20dc040adae8e8e29f9b6c8b961e3d1a872f8afc432c7b7428c3a45b3ecf8dc
[INFO] running `Command { std: "docker" "start" "-a" "f20dc040adae8e8e29f9b6c8b961e3d1a872f8afc432c7b7428c3a45b3ecf8dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f20dc040adae8e8e29f9b6c8b961e3d1a872f8afc432c7b7428c3a45b3ecf8dc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f20dc040adae8e8e29f9b6c8b961e3d1a872f8afc432c7b7428c3a45b3ecf8dc", kill_on_drop: false }`
[INFO] [stdout] f20dc040adae8e8e29f9b6c8b961e3d1a872f8afc432c7b7428c3a45b3ecf8dc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8fee6487fe9ebd4b5487e420b779e86812e410d532ba3f24a7a8c3734bac7429
[INFO] running `Command { std: "docker" "start" "-a" "8fee6487fe9ebd4b5487e420b779e86812e410d532ba3f24a7a8c3734bac7429", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.87
[INFO] [stderr]    Compiling tracing-core v0.1.32
[INFO] [stderr]    Compiling cc v1.1.28
[INFO] [stderr]    Compiling serde v1.0.210
[INFO] [stderr]    Compiling crossbeam-utils v0.8.20
[INFO] [stderr]    Compiling signal-hook-registry v1.4.2
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling mio v1.0.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.0
[INFO] [stderr]    Compiling openssl v0.10.66
[INFO] [stderr]    Compiling toml_datetime v0.6.8
[INFO] [stderr]    Compiling signal-hook v0.3.17
[INFO] [stderr]    Compiling winnow v0.6.20
[INFO] [stderr]    Compiling http-body v1.0.1
[INFO] [stderr]    Compiling rustix v0.38.37
[INFO] [stderr]    Compiling mio v0.8.11
[INFO] [stderr]    Compiling time v0.3.36
[INFO] [stderr]    Compiling unicode-width v0.1.13
[INFO] [stderr]    Compiling zip v1.1.4
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling regex-automata v0.4.8
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling rustls-pki-types v1.9.0
[INFO] [stderr]    Compiling flate2 v1.0.34
[INFO] [stderr]    Compiling signal-hook-mio v0.2.4
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling utf8-width v0.1.7
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling clap_builder v4.5.20
[INFO] [stderr]    Compiling html-escape v0.2.13
[INFO] [stderr]    Compiling crossterm v0.25.0
[INFO] [stderr]    Compiling rustls-pemfile v2.2.0
[INFO] [stderr]    Compiling uuid v1.10.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling md-5 v0.10.6
[INFO] [stderr]    Compiling syn v2.0.79
[INFO] [stderr]    Compiling sync_wrapper v1.0.1
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling xml-rs v0.8.22
[INFO] [stderr]    Compiling rangemap v1.5.1
[INFO] [stderr]    Compiling tracing-subscriber v0.3.18
[INFO] [stderr]    Compiling tl v0.7.8
[INFO] [stderr]    Compiling dotenv v0.15.0
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling openssl-sys v0.9.103
[INFO] [stderr]    Compiling tui v0.19.0
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling toml_edit v0.22.22
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]    Compiling zip v0.6.6
[INFO] [stderr]    Compiling regex v1.11.0
[INFO] [stderr]    Compiling tempfile v3.13.0
[INFO] [stderr]    Compiling crossterm v0.28.1
[INFO] [stderr]    Compiling proc-macro-crate v3.2.0
[INFO] [stderr]    Compiling lopdf v0.34.0
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.4.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.27
[INFO] [stderr]    Compiling serde_derive v1.0.210
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling num_enum_derive v0.7.3
[INFO] [stderr]    Compiling thiserror-impl v1.0.64
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling clap_derive v4.5.18
[INFO] [stderr]    Compiling tokio v1.40.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling thiserror v1.0.64
[INFO] [stderr]    Compiling num_enum v0.7.3
[INFO] [stderr]    Compiling clap v4.5.20
[INFO] [stderr]    Compiling tracing v0.1.40
[INFO] [stderr]    Compiling epub v2.1.2
[INFO] [stderr]    Compiling http-body-util v0.1.2
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling futures v0.3.31
[INFO] [stderr]    Compiling tokio-util v0.7.12
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling h2 v0.4.6
[INFO] [stderr]    Compiling upon v0.7.1
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_json v1.0.128
[INFO] [stderr]    Compiling epub-builder v0.7.4
[INFO] [stderr]    Compiling hyper v1.4.1
[INFO] [stderr]    Compiling hyper-util v0.1.9
[INFO] [stderr]    Compiling hyper-tls v0.6.0
[INFO] [stderr]    Compiling reqwest v0.12.8
[INFO] [stderr]    Compiling ziggurat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `google::translate_text` and `llm::translate`
[INFO] [stdout]   --> src/main.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | use providers::{google::translate_text, llm::translate};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/frontend/tui.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 210 | /             match state.selected_option {
[INFO] [stdout] 211 | |                 MenuOption::Providers => {
[INFO] [stdout] 212 | |                     match &state.selected_provider {
[INFO] [stdout] 213 | |                         ProviderOption::Add => {
[INFO] [stdout] ...   |
[INFO] [stdout] 225 | |                 MenuOption::Language => todo!(),
[INFO] [stdout] 226 | |             };
[INFO] [stdout]     | |_____________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 227 |
[INFO] [stdout] 228 |               let mut buffer = String::new();
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     loop {
[INFO] [stdout] 55 | |         render_app_state(&mut terminal, app_state.clone())?;
[INFO] [stdout] 56 | |
[INFO] [stdout] 57 | |         if let Event::Key(key) = event::read()? {
[INFO] [stdout] ...  |
[INFO] [stdout] 61 | |         terminal.flush()?;
[INFO] [stdout] 62 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 63 |
[INFO] [stdout] 64 |       disable_raw_mode()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/frontend/tui.rs:217:63
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                               ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider`
[INFO] [stdout]    --> src/frontend/tui.rs:217:69
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                                     ^^^^^^^^ help: try ignoring the field: `provider: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_key`
[INFO] [stdout]   --> src/main.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let api_key = if let Some(key) = args.api_key {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut app_state = Arc::new(Mutex::new(AppState::new()));
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GoogleTranslate` and `Llm` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Provider {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  6 |     GoogleTranslate {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Llm {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V2` and `V3` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ApiVersion {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 18 |     V2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     V3 { project_id: String },
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Entry` is never constructed
[INFO] [stdout]   --> src/frontend/tui.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum ProviderOption {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 30 |     Add,
[INFO] [stdout] 31 |     Entry(ProviderEntry),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `confirmed_provider_idx`, `config_path`, `input_file`, `output_file`, and `language_code` are never read
[INFO] [stdout]   --> src/frontend/tui.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     confirmed_provider_idx: Option<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     providers: Vec<ProviderEntry>,
[INFO] [stdout] 90 |     config_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 91 |     input_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 92 |     output_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 93 |     language_code: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateRequest` is never constructed
[INFO] [stdout]  --> src/providers/google.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct TranslateRequest {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateResponse` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct TranslateResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateData` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TranslateData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Translation` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Translation {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_pdf` is never used
[INFO] [stdout]   --> src/providers/google.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | async fn translate_pdf(
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_text` is never used
[INFO] [stdout]   --> src/providers/google.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub async fn translate_text(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_whitespace` is never used
[INFO] [stdout]    --> src/providers/google.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn is_whitespace(snippet: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]  --> src/providers/llm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Request {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Response` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Response {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Choice` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Choice {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Logprobs` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Logprobs {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_request` is never used
[INFO] [stdout]   --> src/providers/llm.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | async fn send_request(endpoint: &str, api_key: &str, request: &Request) -> Result<Response> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]   --> src/providers/llm.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn translate(snippet: &str, to: &str, endpoint: &str, api_key: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend/tui.rs:262:23
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List {
[INFO] [stdout]     |                       ^^^^ the lifetime is elided here                ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "8fee6487fe9ebd4b5487e420b779e86812e410d532ba3f24a7a8c3734bac7429", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8fee6487fe9ebd4b5487e420b779e86812e410d532ba3f24a7a8c3734bac7429", kill_on_drop: false }`
[INFO] [stdout] 8fee6487fe9ebd4b5487e420b779e86812e410d532ba3f24a7a8c3734bac7429
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+c7f6aa2869acdbf014d094c6e427e554e160b6db" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0ce179352adb0ee654e6bbd831f061e867fec3097bd9767495f1073a49de05b6
[INFO] running `Command { std: "docker" "start" "-a" "0ce179352adb0ee654e6bbd831f061e867fec3097bd9767495f1073a49de05b6", kill_on_drop: false }`
[INFO] [stderr]    Compiling ziggurat v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `google::translate_text` and `llm::translate`
[INFO] [stdout]   --> src/main.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 | use providers::{google::translate_text, llm::translate};
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/frontend/tui.rs:228:13
[INFO] [stdout]     |
[INFO] [stdout] 210 | /             match state.selected_option {
[INFO] [stdout] 211 | |                 MenuOption::Providers => {
[INFO] [stdout] 212 | |                     match &state.selected_provider {
[INFO] [stdout] 213 | |                         ProviderOption::Add => {
[INFO] [stdout] ...   |
[INFO] [stdout] 225 | |                 MenuOption::Language => todo!(),
[INFO] [stdout] 226 | |             };
[INFO] [stdout]     | |_____________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 227 |
[INFO] [stdout] 228 |               let mut buffer = String::new();
[INFO] [stdout]     |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:64:5
[INFO] [stdout]    |
[INFO] [stdout] 54 | /     loop {
[INFO] [stdout] 55 | |         render_app_state(&mut terminal, app_state.clone())?;
[INFO] [stdout] 56 | |
[INFO] [stdout] 57 | |         if let Event::Key(key) = event::read()? {
[INFO] [stdout] ...  |
[INFO] [stdout] 61 | |         terminal.flush()?;
[INFO] [stdout] 62 | |     }
[INFO] [stdout]    | |_____- any code following this expression is unreachable
[INFO] [stdout] 63 |
[INFO] [stdout] 64 |       disable_raw_mode()?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `name`
[INFO] [stdout]    --> src/frontend/tui.rs:217:63
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                               ^^^^ help: try ignoring the field: `name: _`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `provider`
[INFO] [stdout]    --> src/frontend/tui.rs:217:69
[INFO] [stdout]     |
[INFO] [stdout] 217 |                         ProviderOption::Entry(ProviderEntry { name, provider }) => {
[INFO] [stdout]     |                                                                     ^^^^^^^^ help: try ignoring the field: `provider: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `api_key`
[INFO] [stdout]   --> src/main.rs:68:9
[INFO] [stdout]    |
[INFO] [stdout] 68 |     let api_key = if let Some(key) = args.api_key {
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_api_key`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:52:9
[INFO] [stdout]    |
[INFO] [stdout] 52 |     let mut app_state = Arc::new(Mutex::new(AppState::new()));
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `GoogleTranslate` and `Llm` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:6:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum Provider {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  6 |     GoogleTranslate {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 10 |     Llm {
[INFO] [stdout]    |     ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `V2` and `V3` are never constructed
[INFO] [stdout]   --> src/frontend/cli.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum ApiVersion {
[INFO] [stdout]    |          ---------- variants in this enum
[INFO] [stdout] 18 |     V2,
[INFO] [stdout]    |     ^^
[INFO] [stdout] 19 |     V3 { project_id: String },
[INFO] [stdout]    |     ^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Entry` is never constructed
[INFO] [stdout]   --> src/frontend/tui.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 29 | enum ProviderOption {
[INFO] [stdout]    |      -------------- variant in this enum
[INFO] [stdout] 30 |     Add,
[INFO] [stdout] 31 |     Entry(ProviderEntry),
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `confirmed_provider_idx`, `config_path`, `input_file`, `output_file`, and `language_code` are never read
[INFO] [stdout]   --> src/frontend/tui.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 85 | pub struct AppState {
[INFO] [stdout]    |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 88 |     confirmed_provider_idx: Option<usize>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 89 |     providers: Vec<ProviderEntry>,
[INFO] [stdout] 90 |     config_path: Option<PathBuf>,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 91 |     input_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout] 92 |     output_file: String,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] 93 |     language_code: String,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateRequest` is never constructed
[INFO] [stdout]  --> src/providers/google.rs:9:8
[INFO] [stdout]   |
[INFO] [stdout] 9 | struct TranslateRequest {
[INFO] [stdout]   |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateResponse` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:15:8
[INFO] [stdout]    |
[INFO] [stdout] 15 | struct TranslateResponse {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `TranslateData` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:20:8
[INFO] [stdout]    |
[INFO] [stdout] 20 | struct TranslateData {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Translation` is never constructed
[INFO] [stdout]   --> src/providers/google.rs:25:8
[INFO] [stdout]    |
[INFO] [stdout] 25 | struct Translation {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_pdf` is never used
[INFO] [stdout]   --> src/providers/google.rs:30:10
[INFO] [stdout]    |
[INFO] [stdout] 30 | async fn translate_pdf(
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate_text` is never used
[INFO] [stdout]   --> src/providers/google.rs:78:14
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub async fn translate_text(
[INFO] [stdout]    |              ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `is_whitespace` is never used
[INFO] [stdout]    --> src/providers/google.rs:114:4
[INFO] [stdout]     |
[INFO] [stdout] 114 | fn is_whitespace(snippet: &str) -> bool {
[INFO] [stdout]     |    ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Request` is never constructed
[INFO] [stdout]  --> src/providers/llm.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 6 | struct Request {
[INFO] [stdout]   |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Response` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:13:8
[INFO] [stdout]    |
[INFO] [stdout] 13 | struct Response {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Choice` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:22:8
[INFO] [stdout]    |
[INFO] [stdout] 22 | struct Choice {
[INFO] [stdout]    |        ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Logprobs` is never constructed
[INFO] [stdout]   --> src/providers/llm.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | struct Logprobs {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `send_request` is never used
[INFO] [stdout]   --> src/providers/llm.rs:35:10
[INFO] [stdout]    |
[INFO] [stdout] 35 | async fn send_request(endpoint: &str, api_key: &str, request: &Request) -> Result<Response> {
[INFO] [stdout]    |          ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `translate` is never used
[INFO] [stdout]   --> src/providers/llm.rs:57:14
[INFO] [stdout]    |
[INFO] [stdout] 57 | pub async fn translate(snippet: &str, to: &str, endpoint: &str, api_key: &str) -> Result<String> {
[INFO] [stdout]    |              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/frontend/tui.rs:262:23
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List {
[INFO] [stdout]     |                       ^^^^ the lifetime is elided here                ^^^^ the same lifetime is hidden here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]     = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 262 | fn styled_list(title: &str, items: Vec<String>, is_selected: bool) -> List<'_> {
[INFO] [stdout]     |                                                                           ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.87s
[INFO] running `Command { std: "docker" "inspect" "0ce179352adb0ee654e6bbd831f061e867fec3097bd9767495f1073a49de05b6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0ce179352adb0ee654e6bbd831f061e867fec3097bd9767495f1073a49de05b6", kill_on_drop: false }`
[INFO] [stdout] 0ce179352adb0ee654e6bbd831f061e867fec3097bd9767495f1073a49de05b6
