[INFO] cloning repository https://github.com/lonerOrz/pantry
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lonerOrz/pantry" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FlonerOrz%2Fpantry", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FlonerOrz%2Fpantry'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 71910cbc3b7cfe4b01df4cbff4d7e4b3025f3925
[INFO] testing lonerOrz/pantry against beta-2026-01-20 for beta-1.94-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FlonerOrz%2Fpantry" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/lonerOrz/pantry
[INFO] finished tweaking git repo https://github.com/lonerOrz/pantry
[INFO] tweaked toml for git repo https://github.com/lonerOrz/pantry written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lonerOrz/pantry on toolchain beta-2026-01-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-01-20" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lonerOrz/pantry 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" "+beta-2026-01-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 0c0c1bf944988d6896e2fecfe7312983688efc262cef2700326859e407fcb723
[INFO] running `Command { std: "docker" "start" "-a" "0c0c1bf944988d6896e2fecfe7312983688efc262cef2700326859e407fcb723", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "0c0c1bf944988d6896e2fecfe7312983688efc262cef2700326859e407fcb723", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0c0c1bf944988d6896e2fecfe7312983688efc262cef2700326859e407fcb723", kill_on_drop: false }`
[INFO] [stdout] 0c0c1bf944988d6896e2fecfe7312983688efc262cef2700326859e407fcb723
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 393dfebe1d6cc4e11fd6b00d46f250ec472e79f0ed59eae3e813e4263541f821
[INFO] running `Command { std: "docker" "start" "-a" "393dfebe1d6cc4e11fd6b00d46f250ec472e79f0ed59eae3e813e4263541f821", kill_on_drop: false }`
[INFO] [stderr]    Compiling winnow v0.7.14
[INFO] [stderr]    Compiling toml_datetime v0.7.3
[INFO] [stderr]    Compiling target-lexicon v0.13.3
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling serde_spanned v1.0.3
[INFO] [stderr]    Compiling version-compare v0.2.1
[INFO] [stderr]    Compiling indexmap v2.12.1
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling zmij v1.0.15
[INFO] [stderr]    Compiling syn v2.0.111
[INFO] [stderr]    Compiling memoffset v0.9.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]    Compiling rustix v1.1.3
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling event-listener v5.4.1
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling uuid v1.19.0
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling dirs-sys v0.4.1
[INFO] [stderr]    Compiling clap_builder v4.5.53
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling event-listener-strategy v0.5.4
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling tokio v1.48.0
[INFO] [stderr]    Compiling dirs v5.0.1
[INFO] [stderr]    Compiling async-channel v2.5.0
[INFO] [stderr]    Compiling cfb v0.7.3
[INFO] [stderr]    Compiling cfg-expr v0.20.5
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling infer v0.15.0
[INFO] [stderr]    Compiling toml_parser v1.0.4
[INFO] [stderr]    Compiling tempfile v3.24.0
[INFO] [stderr]    Compiling toml v0.9.8
[INFO] [stderr]    Compiling toml_edit v0.23.9
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]    Compiling system-deps v7.0.7
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling glib-sys v0.21.5
[INFO] [stderr]    Compiling gobject-sys v0.21.5
[INFO] [stderr]    Compiling gio-sys v0.21.5
[INFO] [stderr]    Compiling pango-sys v0.21.5
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.21.5
[INFO] [stderr]    Compiling cairo-sys-rs v0.21.5
[INFO] [stderr]    Compiling graphene-sys v0.21.5
[INFO] [stderr]    Compiling gdk4-sys v0.10.3
[INFO] [stderr]    Compiling gsk4-sys v0.10.3
[INFO] [stderr]    Compiling glib-macros v0.21.5
[INFO] [stderr]    Compiling gtk4-sys v0.10.3
[INFO] [stderr]    Compiling gtk4-macros v0.10.3
[INFO] [stderr]    Compiling clap v4.5.53
[INFO] [stderr]    Compiling futures-executor v0.3.31
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling glib v0.21.5
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling gio v0.21.5
[INFO] [stderr]    Compiling cairo-rs v0.21.5
[INFO] [stderr]    Compiling graphene-rs v0.21.5
[INFO] [stderr]    Compiling pango v0.21.5
[INFO] [stderr]    Compiling gdk-pixbuf v0.21.5
[INFO] [stderr]    Compiling gdk4 v0.10.3
[INFO] [stderr]    Compiling gsk4 v0.10.3
[INFO] [stderr]    Compiling gtk4 v0.10.3
[INFO] [stderr]    Compiling pantry v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]    --> src/ui/preview.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     use std::fs::File;
[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 variable: `args`
[INFO] [stdout]   --> src/app/event_handlers.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         args: &Args,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preview_template`
[INFO] [stdout]    --> src/domain/item.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |         preview_template: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preview_template`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wrap_in_scroll` and `save_current_window_state` are never used
[INFO] [stdout]    --> src/app/app.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl PantryApp {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn wrap_in_scroll(&self, child: &impl gtk4::prelude::IsA<gtk4::Widget>) -> ScrolledWindow {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn save_current_window_state(&self, window: &ApplicationWindow) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAST_PREVIEW_UPDATE` is never used
[INFO] [stdout]    --> src/app/app.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | static LAST_PREVIEW_UPDATE: OnceLock<Mutex<u128>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fuzzy_match` is never used
[INFO] [stdout]    --> src/app/event_handlers.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn fuzzy_match(text: &str, pattern: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigLoader` is never constructed
[INFO] [stdout]  --> src/config/loader.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ConfigLoader {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load`, and `load_with_cache` are never used
[INFO] [stdout]   --> src/config/loader.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl ConfigLoader {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn load(&self, path: &str) -> Result<Config, ConfigError> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn load_with_cache(&self, path: &str) -> Result<Config, ConfigError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConfigError` is never used
[INFO] [stdout]   --> src/config/loader.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum ConfigError {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_config_entry` is never used
[INFO] [stdout]    --> src/domain/item.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ItemProcessor {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn from_config_entry(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandExecutor` is never constructed
[INFO] [stdout]  --> src/handlers/executor.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CommandExecutor;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `execute` is never used
[INFO] [stdout]  --> src/handlers/executor.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl CommandExecutor {
[INFO] [stdout]   | -------------------- associated function in this implementation
[INFO] [stdout] 7 |     /// 执行 shell 命令并返回输出
[INFO] [stdout] 8 |     pub fn execute(command: &str) -> Result<String, ExecutionError> {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionError` is never used
[INFO] [stdout]   --> src/handlers/executor.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum ExecutionError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_command` is never used
[INFO] [stdout]   --> src/handlers/executor.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn execute_command(command: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Filter` is never constructed
[INFO] [stdout]  --> src/handlers/filter.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Filter {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_query`, `should_show`, and `setup_listbox_filter` are never used
[INFO] [stdout]   --> src/handlers/filter.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Filter {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn set_query(&mut self, query: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn should_show(&self, item: &Item) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn setup_listbox_filter(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzyMatcher` is never constructed
[INFO] [stdout]   --> src/handlers/filter.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FuzzyMatcher;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `match_text` and `match_item` are never used
[INFO] [stdout]   --> src/handlers/filter.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl FuzzyMatcher {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 76 |     /// 模糊匹配文本
[INFO] [stdout] 77 |     pub fn match_text(text: &str, pattern: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn match_item(item: &Item, pattern: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadConfig` is never constructed
[INFO] [stdout]  --> src/handlers/loader.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LoadConfig {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ItemLoader` is never constructed
[INFO] [stdout]   --> src/handlers/loader.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ItemLoader {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load_from_config`, and `add_to_listbox` are never used
[INFO] [stdout]   --> src/handlers/loader.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ItemLoader {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn load_from_config(&self, _config: &LoadConfig) -> Result<Vec<Item>, LoadError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn add_to_listbox(&self, _listbox: &ListBox, _items: &[Item]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadError` is never used
[INFO] [stdout]   --> src/handlers/loader.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum LoadError {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ConfigLoaderTrait` is never used
[INFO] [stdout]   --> src/handlers/loader.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait ConfigLoaderTrait {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExecutorTrait` is never used
[INFO] [stdout]   --> src/handlers/loader.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait ExecutorTrait {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectionHandler` is never constructed
[INFO] [stdout]  --> src/handlers/selection.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SelectionHandler;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `handle_selection` is never used
[INFO] [stdout]  --> src/handlers/selection.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl SelectionHandler {
[INFO] [stdout]   | --------------------- associated function in this implementation
[INFO] [stdout] 8 |     /// 处理用户选择
[INFO] [stdout] 9 |     pub fn handle_selection(listbox: &ListBox) -> SelectionResult {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectionResult` is never used
[INFO] [stdout]   --> src/handlers/selection.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum SelectionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Item` is never constructed
[INFO] [stdout]  --> src/items.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Item {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyboardController` is never constructed
[INFO] [stdout]   --> src/ui/controller.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct KeyboardController {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `setup`, `handle_search_input`, and `clear_search` are never used
[INFO] [stdout]    --> src/ui/controller.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl KeyboardController {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  21 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn setup(self) -> EventControllerKey {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn handle_search_input(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn clear_search(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `handle_selection`, `save_current_window_state`, `update_selection_after_filter`, `first_visible_row_after_filter`, and `update_preview` are never used
[INFO] [stdout]    --> src/ui/controller.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl KeyboardController {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 142 |     /// 处理用户选择
[INFO] [stdout] 143 |     fn handle_selection(listbox: &ListBox) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn save_current_window_state(window: &ApplicationWindow) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn update_selection_after_filter(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn first_visible_row_after_filter(listbox: &ListBox) -> Option<ListBoxRow> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn update_preview(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/ui/preview.rs:544:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl PreviewArea {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 544 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchOverlay` is never constructed
[INFO] [stdout]  --> src/ui/search.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SearchOverlay {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `show`, `hide`, `is_visible`, and `get_label` are never used
[INFO] [stdout]   --> src/ui/search.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl SearchOverlay {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(overlay: &Overlay) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn show(&self, text: &str) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn hide(&self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_visible(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn get_label(&self) -> &Label {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 39s
[INFO] running `Command { std: "docker" "inspect" "393dfebe1d6cc4e11fd6b00d46f250ec472e79f0ed59eae3e813e4263541f821", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "393dfebe1d6cc4e11fd6b00d46f250ec472e79f0ed59eae3e813e4263541f821", kill_on_drop: false }`
[INFO] [stdout] 393dfebe1d6cc4e11fd6b00d46f250ec472e79f0ed59eae3e813e4263541f821
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d775947845d6700595ebeb33eb0e6a0646e70f338a57de52b2cd2c01f6035d41
[INFO] running `Command { std: "docker" "start" "-a" "d775947845d6700595ebeb33eb0e6a0646e70f338a57de52b2cd2c01f6035d41", kill_on_drop: false }`
[INFO] [stderr]    Compiling pantry v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::fs::File`
[INFO] [stdout]    --> src/ui/preview.rs:106:25
[INFO] [stdout]     |
[INFO] [stdout] 106 |                     use std::fs::File;
[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 variable: `args`
[INFO] [stdout]   --> src/app/event_handlers.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |         args: &Args,
[INFO] [stdout]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `preview_template`
[INFO] [stdout]    --> src/domain/item.rs:152:9
[INFO] [stdout]     |
[INFO] [stdout] 152 |         preview_template: &str,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preview_template`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `wrap_in_scroll` and `save_current_window_state` are never used
[INFO] [stdout]    --> src/app/app.rs:123:8
[INFO] [stdout]     |
[INFO] [stdout]  47 | impl PantryApp {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     fn wrap_in_scroll(&self, child: &impl gtk4::prelude::IsA<gtk4::Widget>) -> ScrolledWindow {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 130 |     fn save_current_window_state(&self, window: &ApplicationWindow) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static `LAST_PREVIEW_UPDATE` is never used
[INFO] [stdout]    --> src/app/app.rs:391:8
[INFO] [stdout]     |
[INFO] [stdout] 391 | static LAST_PREVIEW_UPDATE: OnceLock<Mutex<u128>> = OnceLock::new();
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `fuzzy_match` is never used
[INFO] [stdout]    --> src/app/event_handlers.rs:176:8
[INFO] [stdout]     |
[INFO] [stdout] 176 | pub fn fuzzy_match(text: &str, pattern: &str) -> bool {
[INFO] [stdout]     |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ConfigLoader` is never constructed
[INFO] [stdout]  --> src/config/loader.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct ConfigLoader {
[INFO] [stdout]   |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load`, and `load_with_cache` are never used
[INFO] [stdout]   --> src/config/loader.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl ConfigLoader {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub fn load(&self, path: &str) -> Result<Config, ConfigError> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn load_with_cache(&self, path: &str) -> Result<Config, ConfigError> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ConfigError` is never used
[INFO] [stdout]   --> src/config/loader.rs:40:10
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub enum ConfigError {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_config_entry` is never used
[INFO] [stdout]    --> src/domain/item.rs:133:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ItemProcessor {
[INFO] [stdout]     | ------------------ associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 133 |     pub fn from_config_entry(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `CommandExecutor` is never constructed
[INFO] [stdout]  --> src/handlers/executor.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct CommandExecutor;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `execute` is never used
[INFO] [stdout]  --> src/handlers/executor.rs:8:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | impl CommandExecutor {
[INFO] [stdout]   | -------------------- associated function in this implementation
[INFO] [stdout] 7 |     /// 执行 shell 命令并返回输出
[INFO] [stdout] 8 |     pub fn execute(command: &str) -> Result<String, ExecutionError> {
[INFO] [stdout]   |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ExecutionError` is never used
[INFO] [stdout]   --> src/handlers/executor.rs:26:10
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub enum ExecutionError {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `execute_command` is never used
[INFO] [stdout]   --> src/handlers/executor.rs:33:8
[INFO] [stdout]    |
[INFO] [stdout] 33 | pub fn execute_command(command: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Filter` is never constructed
[INFO] [stdout]  --> src/handlers/filter.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Filter {
[INFO] [stdout]   |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `set_query`, `should_show`, and `setup_listbox_filter` are never used
[INFO] [stdout]   --> src/handlers/filter.rs:9:12
[INFO] [stdout]    |
[INFO] [stdout]  8 | impl Filter {
[INFO] [stdout]    | ----------- associated items in this implementation
[INFO] [stdout]  9 |     pub fn new() -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn set_query(&mut self, query: String) {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     pub fn should_show(&self, item: &Item) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn setup_listbox_filter(
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FuzzyMatcher` is never constructed
[INFO] [stdout]   --> src/handlers/filter.rs:73:12
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub struct FuzzyMatcher;
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `match_text` and `match_item` are never used
[INFO] [stdout]   --> src/handlers/filter.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 75 | impl FuzzyMatcher {
[INFO] [stdout]    | ----------------- associated functions in this implementation
[INFO] [stdout] 76 |     /// 模糊匹配文本
[INFO] [stdout] 77 |     pub fn match_text(text: &str, pattern: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 92 |     pub fn match_item(item: &Item, pattern: &str) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `LoadConfig` is never constructed
[INFO] [stdout]  --> src/handlers/loader.rs:6:12
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct LoadConfig {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ItemLoader` is never constructed
[INFO] [stdout]   --> src/handlers/loader.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub struct ItemLoader {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `load_from_config`, and `add_to_listbox` are never used
[INFO] [stdout]   --> src/handlers/loader.rs:19:12
[INFO] [stdout]    |
[INFO] [stdout] 18 | impl ItemLoader {
[INFO] [stdout]    | --------------- associated items in this implementation
[INFO] [stdout] 19 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub async fn load_from_config(&self, _config: &LoadConfig) -> Result<Vec<Item>, LoadError> {
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub fn add_to_listbox(&self, _listbox: &ListBox, _items: &[Item]) {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `LoadError` is never used
[INFO] [stdout]   --> src/handlers/loader.rs:43:10
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub enum LoadError {
[INFO] [stdout]    |          ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ConfigLoaderTrait` is never used
[INFO] [stdout]   --> src/handlers/loader.rs:50:11
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub trait ConfigLoaderTrait {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExecutorTrait` is never used
[INFO] [stdout]   --> src/handlers/loader.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub trait ExecutorTrait {
[INFO] [stdout]    |           ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SelectionHandler` is never constructed
[INFO] [stdout]  --> src/handlers/selection.rs:5:12
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct SelectionHandler;
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `handle_selection` is never used
[INFO] [stdout]  --> src/handlers/selection.rs:9:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | impl SelectionHandler {
[INFO] [stdout]   | --------------------- associated function in this implementation
[INFO] [stdout] 8 |     /// 处理用户选择
[INFO] [stdout] 9 |     pub fn handle_selection(listbox: &ListBox) -> SelectionResult {
[INFO] [stdout]   |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SelectionResult` is never used
[INFO] [stdout]   --> src/handlers/selection.rs:25:10
[INFO] [stdout]    |
[INFO] [stdout] 25 | pub enum SelectionResult {
[INFO] [stdout]    |          ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Item` is never constructed
[INFO] [stdout]  --> src/items.rs:4:12
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub struct Item {
[INFO] [stdout]   |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `KeyboardController` is never constructed
[INFO] [stdout]   --> src/ui/controller.rs:11:12
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub struct KeyboardController {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `setup`, `handle_search_input`, and `clear_search` are never used
[INFO] [stdout]    --> src/ui/controller.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  20 | impl KeyboardController {
[INFO] [stdout]     | ----------------------- associated items in this implementation
[INFO] [stdout]  21 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  40 |     pub fn setup(self) -> EventControllerKey {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  92 |     fn handle_search_input(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     fn clear_search(
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated functions `handle_selection`, `save_current_window_state`, `update_selection_after_filter`, `first_visible_row_after_filter`, and `update_preview` are never used
[INFO] [stdout]    --> src/ui/controller.rs:143:8
[INFO] [stdout]     |
[INFO] [stdout] 141 | impl KeyboardController {
[INFO] [stdout]     | ----------------------- associated functions in this implementation
[INFO] [stdout] 142 |     /// 处理用户选择
[INFO] [stdout] 143 |     fn handle_selection(listbox: &ListBox) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 163 |     fn save_current_window_state(window: &ApplicationWindow) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 175 |     fn update_selection_after_filter(
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     fn first_visible_row_after_filter(listbox: &ListBox) -> Option<ListBoxRow> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 211 |     pub fn update_preview(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]    --> src/ui/preview.rs:544:12
[INFO] [stdout]     |
[INFO] [stdout]  24 | impl PreviewArea {
[INFO] [stdout]     | ---------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 544 |     pub fn clear(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SearchOverlay` is never constructed
[INFO] [stdout]  --> src/ui/search.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct SearchOverlay {
[INFO] [stdout]   |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `show`, `hide`, `is_visible`, and `get_label` are never used
[INFO] [stdout]   --> src/ui/search.rs:13:12
[INFO] [stdout]    |
[INFO] [stdout] 12 | impl SearchOverlay {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 13 |     pub fn new(overlay: &Overlay) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 28 |     pub fn show(&self, text: &str) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn hide(&self) {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn is_visible(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn get_label(&self) -> &Label {
[INFO] [stdout]    |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1.51s
[INFO] running `Command { std: "docker" "inspect" "d775947845d6700595ebeb33eb0e6a0646e70f338a57de52b2cd2c01f6035d41", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d775947845d6700595ebeb33eb0e6a0646e70f338a57de52b2cd2c01f6035d41", kill_on_drop: false }`
[INFO] [stdout] d775947845d6700595ebeb33eb0e6a0646e70f338a57de52b2cd2c01f6035d41
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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:98afbf2d16093dec2546ff8915fddc74e65664aa03fc460b3712b1c2c54a33e4" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-01-20" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] eed92026c4b6414699dd91676176aae30b60803fff3a6ba2f036bdea158fae97
[INFO] running `Command { std: "docker" "start" "-a" "eed92026c4b6414699dd91676176aae30b60803fff3a6ba2f036bdea158fae97", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `std::fs::File`
[INFO] [stderr]    --> src/ui/preview.rs:106:25
[INFO] [stderr]     |
[INFO] [stderr] 106 |                     use std::fs::File;
[INFO] [stderr]     |                         ^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `args`
[INFO] [stderr]   --> src/app/event_handlers.rs:15:9
[INFO] [stderr]    |
[INFO] [stderr] 15 |         args: &Args,
[INFO] [stderr]    |         ^^^^ help: if this is intentional, prefix it with an underscore: `_args`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `preview_template`
[INFO] [stderr]    --> src/domain/item.rs:152:9
[INFO] [stderr]     |
[INFO] [stderr] 152 |         preview_template: &str,
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_preview_template`
[INFO] [stderr] 
[INFO] [stderr] warning: methods `wrap_in_scroll` and `save_current_window_state` are never used
[INFO] [stderr]    --> src/app/app.rs:123:8
[INFO] [stderr]     |
[INFO] [stderr]  47 | impl PantryApp {
[INFO] [stderr]     | -------------- methods in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 123 |     fn wrap_in_scroll(&self, child: &impl gtk4::prelude::IsA<gtk4::Widget>) -> ScrolledWindow {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 130 |     fn save_current_window_state(&self, window: &ApplicationWindow) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: static `LAST_PREVIEW_UPDATE` is never used
[INFO] [stderr]    --> src/app/app.rs:391:8
[INFO] [stderr]     |
[INFO] [stderr] 391 | static LAST_PREVIEW_UPDATE: OnceLock<Mutex<u128>> = OnceLock::new();
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `fuzzy_match` is never used
[INFO] [stderr]    --> src/app/event_handlers.rs:176:8
[INFO] [stderr]     |
[INFO] [stderr] 176 | pub fn fuzzy_match(text: &str, pattern: &str) -> bool {
[INFO] [stderr]     |        ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ConfigLoader` is never constructed
[INFO] [stderr]  --> src/config/loader.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct ConfigLoader {
[INFO] [stderr]   |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `load`, and `load_with_cache` are never used
[INFO] [stderr]   --> src/config/loader.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  8 | impl ConfigLoader {
[INFO] [stderr]    | ----------------- associated items in this implementation
[INFO] [stderr]  9 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub fn load(&self, path: &str) -> Result<Config, ConfigError> {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn load_with_cache(&self, path: &str) -> Result<Config, ConfigError> {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ConfigError` is never used
[INFO] [stderr]   --> src/config/loader.rs:40:10
[INFO] [stderr]    |
[INFO] [stderr] 40 | pub enum ConfigError {
[INFO] [stderr]    |          ^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `from_config_entry` is never used
[INFO] [stderr]    --> src/domain/item.rs:133:12
[INFO] [stderr]     |
[INFO] [stderr]  86 | impl ItemProcessor {
[INFO] [stderr]     | ------------------ associated function in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 133 |     pub fn from_config_entry(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `CommandExecutor` is never constructed
[INFO] [stderr]  --> src/handlers/executor.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct CommandExecutor;
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `execute` is never used
[INFO] [stderr]  --> src/handlers/executor.rs:8:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | impl CommandExecutor {
[INFO] [stderr]   | -------------------- associated function in this implementation
[INFO] [stderr] 7 |     /// 执行 shell 命令并返回输出
[INFO] [stderr] 8 |     pub fn execute(command: &str) -> Result<String, ExecutionError> {
[INFO] [stderr]   |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `ExecutionError` is never used
[INFO] [stderr]   --> src/handlers/executor.rs:26:10
[INFO] [stderr]    |
[INFO] [stderr] 26 | pub enum ExecutionError {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: function `execute_command` is never used
[INFO] [stderr]   --> src/handlers/executor.rs:33:8
[INFO] [stderr]    |
[INFO] [stderr] 33 | pub fn execute_command(command: &str) -> Result<String, Box<dyn std::error::Error>> {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Filter` is never constructed
[INFO] [stderr]  --> src/handlers/filter.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Filter {
[INFO] [stderr]   |            ^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `set_query`, `should_show`, and `setup_listbox_filter` are never used
[INFO] [stderr]   --> src/handlers/filter.rs:9:12
[INFO] [stderr]    |
[INFO] [stderr]  8 | impl Filter {
[INFO] [stderr]    | ----------- associated items in this implementation
[INFO] [stderr]  9 |     pub fn new() -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 15 |     pub fn set_query(&mut self, query: String) {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 19 |     pub fn should_show(&self, item: &Item) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn setup_listbox_filter(
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `FuzzyMatcher` is never constructed
[INFO] [stderr]   --> src/handlers/filter.rs:73:12
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub struct FuzzyMatcher;
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `match_text` and `match_item` are never used
[INFO] [stderr]   --> src/handlers/filter.rs:77:12
[INFO] [stderr]    |
[INFO] [stderr] 75 | impl FuzzyMatcher {
[INFO] [stderr]    | ----------------- associated functions in this implementation
[INFO] [stderr] 76 |     /// 模糊匹配文本
[INFO] [stderr] 77 |     pub fn match_text(text: &str, pattern: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 92 |     pub fn match_item(item: &Item, pattern: &str) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `LoadConfig` is never constructed
[INFO] [stderr]  --> src/handlers/loader.rs:6:12
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub struct LoadConfig {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `ItemLoader` is never constructed
[INFO] [stderr]   --> src/handlers/loader.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub struct ItemLoader {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `load_from_config`, and `add_to_listbox` are never used
[INFO] [stderr]   --> src/handlers/loader.rs:19:12
[INFO] [stderr]    |
[INFO] [stderr] 18 | impl ItemLoader {
[INFO] [stderr]    | --------------- associated items in this implementation
[INFO] [stderr] 19 |     pub fn new(
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub async fn load_from_config(&self, _config: &LoadConfig) -> Result<Vec<Item>, LoadError> {
[INFO] [stderr]    |                  ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub fn add_to_listbox(&self, _listbox: &ListBox, _items: &[Item]) {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `LoadError` is never used
[INFO] [stderr]   --> src/handlers/loader.rs:43:10
[INFO] [stderr]    |
[INFO] [stderr] 43 | pub enum LoadError {
[INFO] [stderr]    |          ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ConfigLoaderTrait` is never used
[INFO] [stderr]   --> src/handlers/loader.rs:50:11
[INFO] [stderr]    |
[INFO] [stderr] 50 | pub trait ConfigLoaderTrait {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: trait `ExecutorTrait` is never used
[INFO] [stderr]   --> src/handlers/loader.rs:54:11
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub trait ExecutorTrait {
[INFO] [stderr]    |           ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SelectionHandler` is never constructed
[INFO] [stderr]  --> src/handlers/selection.rs:5:12
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub struct SelectionHandler;
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `handle_selection` is never used
[INFO] [stderr]  --> src/handlers/selection.rs:9:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | impl SelectionHandler {
[INFO] [stderr]   | --------------------- associated function in this implementation
[INFO] [stderr] 8 |     /// 处理用户选择
[INFO] [stderr] 9 |     pub fn handle_selection(listbox: &ListBox) -> SelectionResult {
[INFO] [stderr]   |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SelectionResult` is never used
[INFO] [stderr]   --> src/handlers/selection.rs:25:10
[INFO] [stderr]    |
[INFO] [stderr] 25 | pub enum SelectionResult {
[INFO] [stderr]    |          ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Item` is never constructed
[INFO] [stderr]  --> src/items.rs:4:12
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub struct Item {
[INFO] [stderr]   |            ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `KeyboardController` is never constructed
[INFO] [stderr]   --> src/ui/controller.rs:11:12
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub struct KeyboardController {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `setup`, `handle_search_input`, and `clear_search` are never used
[INFO] [stderr]    --> src/ui/controller.rs:21:12
[INFO] [stderr]     |
[INFO] [stderr]  20 | impl KeyboardController {
[INFO] [stderr]     | ----------------------- associated items in this implementation
[INFO] [stderr]  21 |     pub fn new(
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  40 |     pub fn setup(self) -> EventControllerKey {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  92 |     fn handle_search_input(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 128 |     fn clear_search(
[INFO] [stderr]     |        ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated functions `handle_selection`, `save_current_window_state`, `update_selection_after_filter`, `first_visible_row_after_filter`, and `update_preview` are never used
[INFO] [stderr]    --> src/ui/controller.rs:143:8
[INFO] [stderr]     |
[INFO] [stderr] 141 | impl KeyboardController {
[INFO] [stderr]     | ----------------------- associated functions in this implementation
[INFO] [stderr] 142 |     /// 处理用户选择
[INFO] [stderr] 143 |     fn handle_selection(listbox: &ListBox) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 163 |     fn save_current_window_state(window: &ApplicationWindow) {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 175 |     fn update_selection_after_filter(
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 199 |     fn first_visible_row_after_filter(listbox: &ListBox) -> Option<ListBoxRow> {
[INFO] [stderr]     |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 211 |     pub fn update_preview(
[INFO] [stderr]     |            ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `clear` is never used
[INFO] [stderr]    --> src/ui/preview.rs:544:12
[INFO] [stderr]     |
[INFO] [stderr]  24 | impl PreviewArea {
[INFO] [stderr]     | ---------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 544 |     pub fn clear(&self) {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SearchOverlay` is never constructed
[INFO] [stderr]  --> src/ui/search.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct SearchOverlay {
[INFO] [stderr]   |            ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated items `new`, `show`, `hide`, `is_visible`, and `get_label` are never used
[INFO] [stderr]   --> src/ui/search.rs:13:12
[INFO] [stderr]    |
[INFO] [stderr] 12 | impl SearchOverlay {
[INFO] [stderr]    | ------------------ associated items in this implementation
[INFO] [stderr] 13 |     pub fn new(overlay: &Overlay) -> Self {
[INFO] [stderr]    |            ^^^
[INFO] [stderr] ...
[INFO] [stderr] 28 |     pub fn show(&self, text: &str) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub fn hide(&self) {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr] 37 |     pub fn is_visible(&self) -> bool {
[INFO] [stderr]    |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 41 |     pub fn get_label(&self) -> &Label {
[INFO] [stderr]    |            ^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `pantry` (bin "pantry" test) generated 34 warnings (run `cargo fix --bin "pantry" -p pantry --tests` to apply 3 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/pantry-ab5a92afcda55a69)
[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] running `Command { std: "docker" "inspect" "eed92026c4b6414699dd91676176aae30b60803fff3a6ba2f036bdea158fae97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "eed92026c4b6414699dd91676176aae30b60803fff3a6ba2f036bdea158fae97", kill_on_drop: false }`
[INFO] [stdout] eed92026c4b6414699dd91676176aae30b60803fff3a6ba2f036bdea158fae97
