[INFO] fetching crate langchainrust 0.5.0...
[INFO] checking langchainrust-0.5.0 against dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8 for pr-133502-27
[INFO] extracting crate langchainrust 0.5.0 into /workspace/builds/worker-1-tc1/source
[INFO] started tweaking crates.io crate langchainrust 0.5.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate langchainrust 0.5.0
[INFO] tweaked toml for crates.io crate langchainrust 0.5.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate langchainrust 0.5.0 on toolchain dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate langchainrust 0.5.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" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fancy-regex v0.12.0
[INFO] [stderr]   Downloaded pdf-extract v0.7.12
[INFO] [stderr]   Downloaded hmac-sha256 v1.1.14
[INFO] [stderr]   Downloaded pem-rfc7468 v1.0.0
[INFO] [stderr]   Downloaded matrixmultiply v0.3.11
[INFO] [stderr]   Downloaded ipconfig v0.3.4
[INFO] [stderr]   Downloaded opentelemetry v0.27.1
[INFO] [stderr]   Downloaded bstr v1.13.0
[INFO] [stderr]   Downloaded der v0.8.1
[INFO] [stderr]   Downloaded lzma-rust2 v0.15.8
[INFO] [stderr]   Downloaded bson v2.15.0
[INFO] [stderr]   Downloaded meval v0.2.0
[INFO] [stderr]   Downloaded nom v1.2.4
[INFO] [stderr]   Downloaded bitvec v1.1.1
[INFO] [stderr]   Downloaded tiktoken-rs v0.5.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:c36f533e8924a726b63f9d01e781fa8c8c28c96d1d595403829afb31452ee0f5" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00
[INFO] running `Command { std: "docker" "start" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00" "/opt/rustwide/cargo-home/bin/cargo" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00" "/opt/rustwide/cargo-home/bin/cargo" "+dfbea5bc945a9d7ff017d3d4bfbd1af9295fe5b8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]     Checking smallvec v1.15.2
[INFO] [stderr]    Compiling jobserver v0.1.35
[INFO] [stderr]    Compiling syn v3.0.0
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]     Checking mio v1.2.2
[INFO] [stderr]     Checking socket2 v0.6.5
[INFO] [stderr]     Checking typenum v1.20.1
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]     Checking log v0.4.33
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]     Checking bitflags v2.13.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking regex-automata v0.4.16
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking simd-adler32 v0.3.10
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling crossbeam-utils v0.8.22
[INFO] [stderr]    Compiling cc v1.3.0
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]     Checking miniz_oxide v0.8.9
[INFO] [stderr]    Compiling crossbeam-deque v0.8.7
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]     Checking time v0.3.53
[INFO] [stderr]     Checking bit-vec v0.6.3
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking pom v1.1.0
[INFO] [stderr]    Compiling thiserror v2.0.19
[INFO] [stderr]     Checking either v1.16.0
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking flate2 v1.1.9
[INFO] [stderr]     Checking bit-set v0.5.3
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking plotters-backend v0.3.7
[INFO] [stderr]    Compiling schemars v0.8.22
[INFO] [stderr]     Checking ciborium-io v0.2.2
[INFO] [stderr]     Checking generic-array v0.14.7
[INFO] [stderr]     Checking rangemap v1.7.1
[INFO] [stderr]     Checking clap_builder v4.6.2
[INFO] [stderr]     Checking plotters-svg v0.3.7
[INFO] [stderr]     Checking crossbeam-epoch v0.9.20
[INFO] [stderr]     Checking itertools v0.10.5
[INFO] [stderr]     Checking zopfli v0.8.3
[INFO] [stderr]     Checking getrandom v0.3.4
[INFO] [stderr]     Checking adobe-cmap-parser v0.4.1
[INFO] [stderr]     Checking type1-encoding-parser v0.1.1
[INFO] [stderr]     Checking csv-core v0.1.13
[INFO] [stderr]     Checking nom v1.2.4
[INFO] [stderr]     Checking postscript v0.14.1
[INFO] [stderr]     Checking rayon-core v1.13.0
[INFO] [stderr]     Checking euclid v0.20.14
[INFO] [stderr]     Checking cast v0.3.0
[INFO] [stderr]     Checking rustix v1.1.4
[INFO] [stderr]     Checking meval v0.2.0
[INFO] [stderr]     Checking plotters v0.3.7
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking bstr v1.13.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking rayon v1.12.0
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]    Compiling openssl-sys v0.9.117
[INFO] [stderr]    Compiling zstd-sys v2.0.16+zstd.1.5.7
[INFO] [stderr]    Compiling lzma-sys v0.1.20
[INFO] [stderr]    Compiling bzip2-sys v0.1.13+1.0.8
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking md-5 v0.10.6
[INFO] [stderr]     Checking pbkdf2 v0.12.2
[INFO] [stderr]     Checking fancy-regex v0.12.0
[INFO] [stderr]     Checking sha1 v0.10.7
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking clap v4.6.2
[INFO] [stderr]     Checking bzip2 v0.5.2
[INFO] [stderr]     Checking criterion-plot v0.5.0
[INFO] [stderr]     Checking anes v0.1.6
[INFO] [stderr]     Checking csv v1.4.0
[INFO] [stderr]     Checking uuid v1.24.0
[INFO] [stderr]     Checking fastrand v2.5.0
[INFO] [stderr]     Checking oorandom v11.1.5
[INFO] [stderr]     Checking xz2 v0.1.7
[INFO] [stderr]    Compiling openssl v0.10.81
[INFO] [stderr]    Compiling native-tls v0.2.18
[INFO] [stderr]     Checking tiktoken-rs v0.5.9
[INFO] [stderr]     Checking lopdf v0.34.0
[INFO] [stderr]     Checking tempfile v3.27.0
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.19
[INFO] [stderr]    Compiling async-trait v0.1.91
[INFO] [stderr]     Checking pdf-extract v0.7.12
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling serde_derive_internals v0.29.1
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling tokio-macros v2.7.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling futures-macro v0.3.33
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.54
[INFO] [stderr]    Compiling zeroize_derive v1.5.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling schemars_derive v0.8.22
[INFO] [stderr]     Checking zeroize v1.9.0
[INFO] [stderr]     Checking tokio v1.53.0
[INFO] [stderr]     Checking rustls-pki-types v1.15.0
[INFO] [stderr]     Checking futures-util v0.3.33
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]    Compiling zstd-safe v7.2.4
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking zstd v0.13.3
[INFO] [stderr]     Checking zip v2.4.2
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking assert-json-diff v2.0.2
[INFO] [stderr]     Checking chrono v0.4.45
[INFO] [stderr]     Checking bincode v1.3.3
[INFO] [stderr]     Checking tinytemplate v1.2.1
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking futures-executor v0.3.33
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking futures v0.3.33
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-native-tls v0.3.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking deadpool v0.12.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tokio-test v0.4.5
[INFO] [stderr]     Checking h2 v0.4.15
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking half v2.7.1
[INFO] [stderr]     Checking ciborium-ll v0.2.2
[INFO] [stderr]     Checking ciborium v0.2.2
[INFO] [stderr]     Checking criterion v0.5.1
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking hyper-tls v0.6.0
[INFO] [stderr]     Checking wiremock v0.6.5
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking langchainrust v0.5.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `Relation`
[INFO] [stdout]    --> src/retrieval/graph_rag/query.rs:319:60
[INFO] [stdout]     |
[INFO] [stdout] 319 |     use crate::retrieval::graph_rag::graph_store::{Entity, Relation};
[INFO] [stdout]     |                                                            ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `language_models::openai::config::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]   --> src/language_models/openai/chat.rs:43:33
[INFO] [stdout]    |
[INFO] [stdout] 43 |         Self::new(OpenAIConfig::from_env())
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `language_models::openai::config::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]   --> src/language_models/openai/chat.rs:43:33
[INFO] [stdout]    |
[INFO] [stdout] 43 |         Self::new(OpenAIConfig::from_env())
[INFO] [stdout]    |                                 ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `langchainrust::OpenAIChat::from_env`: Use from_env_result() which returns Result<Self, OpenAIError>
[INFO] [stdout]   --> tests/langgraph/openai_demo.rs:40:30
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let client = OpenAIChat::from_env();
[INFO] [stdout]    |                              ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/llm_integration.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 | /     retriever
[INFO] [stdout] 41 | |         .add_documents_async(vec![
[INFO] [stdout] 42 | |             Document::new(
[INFO] [stdout] 43 | |                 "Rust是一门系统编程语言，由Mozilla研究院开发。\
[INFO] [stdout] ...  |
[INFO] [stdout] 59 | |         ])
[INFO] [stdout] 60 | |         .await;
[INFO] [stdout]    | |______________^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 40 |     let _ = retriever
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/llm_integration.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 | /     retriever
[INFO] [stdout] 106 | |         .add_documents_async(vec![
[INFO] [stdout] 107 | |             Document::new(
[INFO] [stdout] 108 | |                 "LangChain是一个用于开发LLM应用的框架。\
[INFO] [stdout] ...   |
[INFO] [stdout] 118 | |         ])
[INFO] [stdout] 119 | |         .await;
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 105 |     let _ = retriever
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/llm_integration.rs:179:5
[INFO] [stdout]     |
[INFO] [stdout] 179 |     retriever.add_document_async(large_doc).await;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 179 |     let _ = retriever.add_document_async(large_doc).await;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/llm_integration.rs:223:5
[INFO] [stdout]     |
[INFO] [stdout] 223 | /     retriever
[INFO] [stdout] 224 | |         .add_documents_async(vec![
[INFO] [stdout] 225 | |             Document::new(
[INFO] [stdout] 226 | |                 "人工智能（AI）是计算机科学的一个分支。\
[INFO] [stdout] ...   |
[INFO] [stdout] 238 | |         ])
[INFO] [stdout] 239 | |         .await;
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 223 |     let _ = retriever
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `langchainrust::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]    --> tests/integration/callbacks_llm_integration.rs:180:32
[INFO] [stdout]     |
[INFO] [stdout] 180 |     let config = OpenAIConfig::from_env();
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `langchainrust::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]    --> tests/integration/callbacks_llm_integration.rs:258:32
[INFO] [stdout]     |
[INFO] [stdout] 258 |     let config = OpenAIConfig::from_env();
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `langchainrust::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]    --> tests/integration/callbacks_llm_integration.rs:305:32
[INFO] [stdout]     |
[INFO] [stdout] 305 |     let config = OpenAIConfig::from_env();
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `langchainrust::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]    --> tests/integration/callbacks_llm_integration.rs:443:32
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let config = OpenAIConfig::from_env();
[INFO] [stdout]     |                                ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> benches/retrieval.rs:79:21
[INFO] [stdout]    |
[INFO] [stdout] 79 |                 let mut retriever = BM25Retriever::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: variable does not need to be mutable
[INFO] [stdout]   --> benches/retrieval.rs:93:13
[INFO] [stdout]    |
[INFO] [stdout] 93 |         let mut retriever = BM25Retriever::new();
[INFO] [stdout]    |             ----^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> benches/retrieval.rs:110:13
[INFO] [stdout]     |
[INFO] [stdout] 110 |         let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |             ----^^^^^^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `langchainrust::OpenAIConfig::from_env`: Use from_env_result() which returns Result<Self, String>
[INFO] [stdout]   --> tests/integration/langsmith_connection.rs:32:32
[INFO] [stdout]    |
[INFO] [stdout] 32 |     let config = OpenAIConfig::from_env();
[INFO] [stdout]    |                                ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/integration/bm25_real_docs.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let mut retriever = BM25Retriever::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: variable does not need to be mutable
[INFO] [stdout]   --> tests/integration/bm25_real_docs.rs:66:9
[INFO] [stdout]    |
[INFO] [stdout] 66 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> tests/integration/bm25_real_docs.rs:92:9
[INFO] [stdout]    |
[INFO] [stdout] 92 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]    |         ----^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:114:9
[INFO] [stdout]     |
[INFO] [stdout] 114 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:143:9
[INFO] [stdout]     |
[INFO] [stdout] 143 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:208:9
[INFO] [stdout]     |
[INFO] [stdout] 208 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:241:9
[INFO] [stdout]     |
[INFO] [stdout] 241 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:311:9
[INFO] [stdout]     |
[INFO] [stdout] 311 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:333:9
[INFO] [stdout]     |
[INFO] [stdout] 333 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/integration/bm25_real_docs.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/chunked.rs:22:5
[INFO] [stdout]    |
[INFO] [stdout] 22 | /     retriever.add_documents(vec![
[INFO] [stdout] 23 | |         Document::new("Rust是一门系统编程语言，注重安全和性能。由Mozilla开发，于2010年首次发布。")
[INFO] [stdout] 24 | |             .with_id("rust_doc"),
[INFO] [stdout] 25 | |         Document::new("Python是一门高级编程语言，适合数据科学、机器学习和Web开发。")
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |             .with_id("js_doc"),
[INFO] [stdout] 29 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 22 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/chunked.rs:42:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | /     retriever.add_documents(vec![
[INFO] [stdout] 43 | |         Document::new("Rust是一门系统编程语言，注重安全和性能。由Mozilla开发。")
[INFO] [stdout] 44 | |             .with_id("rust_doc"),
[INFO] [stdout] 45 | |         Document::new("Python是一门脚本语言，适合数据科学。").with_id("python_doc"),
[INFO] [stdout] 46 | |         Document::new("Go语言由Google开发，是一门并发编程语言。").with_id("go_doc"),
[INFO] [stdout] 47 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 42 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/chunked.rs:70:5
[INFO] [stdout]    |
[INFO] [stdout] 70 | /     retriever.add_documents(vec![
[INFO] [stdout] 71 | |         Document::new("机器学习是人工智能的一个分支，通过算法让计算机从数据中学习。")
[INFO] [stdout] 72 | |             .with_id("ml_doc"),
[INFO] [stdout] 73 | |         Document::new("深度学习使用神经网络进行特征学习和模式识别。").with_id("dl_doc"),
[INFO] [stdout] 74 | |         Document::new("自然语言处理让计算机理解和生成人类语言。").with_id("nlp_doc"),
[INFO] [stdout] 75 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 70 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     retriever.add_document(doc);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 113 |     let _ = retriever.add_document(doc);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:133:5
[INFO] [stdout]     |
[INFO] [stdout] 133 |     retriever.add_document(long_doc);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 133 |     let _ = retriever.add_document(long_doc);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:162:5
[INFO] [stdout]     |
[INFO] [stdout] 162 | /     retriever.add_documents(vec![
[INFO] [stdout] 163 | |         Document::new("Rust是一门系统编程语言。Python是一门脚本语言。JavaScript是一门前端语言。")
[INFO] [stdout] 164 | |             .with_id("multi_lang"),
[INFO] [stdout] 165 | |         Document::new("Go是一门并发编程语言。").with_id("go_doc"),
[INFO] [stdout] 166 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 162 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:190:5
[INFO] [stdout]     |
[INFO] [stdout] 190 | /     retriever.add_documents(vec![
[INFO] [stdout] 191 | |         Document::new("Rust是一门系统编程语言，注重安全。").with_id("rust_doc"),
[INFO] [stdout] 192 | |         Document::new("Python适合数据科学和机器学习。").with_id("python_doc"),
[INFO] [stdout] 193 | |         Document::new("JavaScript用于Web前端开发。").with_id("js_doc"),
[INFO] [stdout] 194 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 190 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:228:5
[INFO] [stdout]     |
[INFO] [stdout] 228 | /     retriever.add_documents(vec![
[INFO] [stdout] 229 | |         Document::new("人工智能是计算机科学的一个分支。").with_id("ai_doc"),
[INFO] [stdout] 230 | |         Document::new("机器学习是人工智能的核心技术。").with_id("ml_doc"),
[INFO] [stdout] 231 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 228 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:256:5
[INFO] [stdout]     |
[INFO] [stdout] 256 |     retriever.add_document(doc);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 256 |     let _ = retriever.add_document(doc);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:277:5
[INFO] [stdout]     |
[INFO] [stdout] 277 | /     retriever.add_documents(vec![
[INFO] [stdout] 278 | |         Document::new("文档一").with_id("doc1"),
[INFO] [stdout] 279 | |         Document::new("文档二").with_id("doc2"),
[INFO] [stdout] 280 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 277 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:322:5
[INFO] [stdout]     |
[INFO] [stdout] 322 |     retriever.add_document(large_doc);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 322 |     let _ = retriever.add_document(large_doc);
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:348:5
[INFO] [stdout]     |
[INFO] [stdout] 348 | /     retriever.add_documents(vec![
[INFO] [stdout] 349 | |         Document::new("Rust是一门系统编程语言，注重安全和并发。").with_id("rust_doc"),
[INFO] [stdout] 350 | |         Document::new("Python是一门高级语言，适合数据科学。").with_id("python_doc"),
[INFO] [stdout] 351 | |         Document::new("Go是一门并发语言，由Google开发。").with_id("go_doc"),
[INFO] [stdout] 352 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 348 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/chunked.rs:375:5
[INFO] [stdout]     |
[INFO] [stdout] 375 |     retriever.add_document(Document::new("测试文档用于验证搜索结果的属性。").with_id("test_doc"));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 375 |     let _ = retriever.add_document(Document::new("测试文档用于验证搜索结果的属性。").with_id("test_doc"));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> examples/rag/bm25_search.rs:20:5
[INFO] [stdout]    |
[INFO] [stdout] 20 | /     retriever.add_documents(vec![
[INFO] [stdout] 21 | |         Document::new("Rust 是一门系统编程语言,由 Mozilla 开发,注重安全和性能。")
[INFO] [stdout] 22 | |             .with_id("rust_intro"),
[INFO] [stdout] 23 | |         Document::new("Rust 的核心特性包括所有权系统、借用检查和零成本抽象。")
[INFO] [stdout] 24 | |             .with_id("rust_features"),
[INFO] [stdout] 25 | |         Document::new("机器学习是 AI 的核心技术,使计算机从数据中学习。").with_id("ml_def"),
[INFO] [stdout] 26 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> benches/embedding.rs:131:21
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     black_box(cosine_similarity(black_box(va), black_box(vb)));
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     let _ = black_box(cosine_similarity(black_box(va), black_box(vb)));
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:334:9
[INFO] [stdout]     |
[INFO] [stdout] 334 |     let mut retriever = BM25Retriever::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: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:359:9
[INFO] [stdout]     |
[INFO] [stdout] 359 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:382:9
[INFO] [stdout]     |
[INFO] [stdout] 382 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:393:9
[INFO] [stdout]     |
[INFO] [stdout] 393 |     let mut retriever = BM25Retriever::with_params(2.0, 0.5);
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:426:9
[INFO] [stdout]     |
[INFO] [stdout] 426 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:446:9
[INFO] [stdout]     |
[INFO] [stdout] 446 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> tests/unit/bm25.rs:463:9
[INFO] [stdout]     |
[INFO] [stdout] 463 |     let mut retriever = BM25Retriever::new();
[INFO] [stdout]     |         ----^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/rag.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 | /     retriever.add_documents(vec![
[INFO] [stdout] 32 | |         Document::new("Rust是一门系统编程语言，由Mozilla开发，注重安全和性能。")
[INFO] [stdout] 33 | |             .with_id("rust_intro"),
[INFO] [stdout] 34 | |         Document::new("Rust的核心特性包括所有权系统、借用检查和零成本抽象。")
[INFO] [stdout] 35 | |             .with_id("rust_features"),
[INFO] [stdout] 36 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/rag.rs:60:5
[INFO] [stdout]    |
[INFO] [stdout] 60 | /     retriever.add_documents(vec![
[INFO] [stdout] 61 | |         Document::new("人工智能（AI）是计算机科学的一个分支，致力于创建能够执行通常需要人类智能的任务的系统。")
[INFO] [stdout] 62 | |             .with_id("ai_def"),
[INFO] [stdout] 63 | |         Document::new("机器学习是AI的核心技术，它使计算机能够从数据中学习而无需明确编程。")
[INFO] [stdout] ...  |
[INFO] [stdout] 66 | |             .with_id("dl_def"),
[INFO] [stdout] 67 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 60 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/bm25/rag.rs:88:5
[INFO] [stdout]    |
[INFO] [stdout] 88 | /     retriever.add_documents(vec![
[INFO] [stdout] 89 | |         Document::new("Python是一种高级编程语言，由Guido van Rossum创建。").with_id("python_intro"),
[INFO] [stdout] 90 | |         Document::new("Python广泛应用于数据科学、Web开发和自动化脚本。").with_id("python_usage"),
[INFO] [stdout] 91 | |         Document::new("Python的设计哲学强调代码可读性和简洁性。").with_id("python_philosophy"),
[INFO] [stdout] 92 | |     ]);
[INFO] [stdout]    | |______^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 88 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/rag.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 | /     retriever.add_document(
[INFO] [stdout] 118 | |         Document::new(
[INFO] [stdout] 119 | |             "这是一段很长的文档内容，包含了大量的信息。\
[INFO] [stdout] 120 | |              我们需要测试RAG系统在处理长文档时的表现。\
[INFO] [stdout] ...   |
[INFO] [stdout] 124 | |         .with_id("long_doc"),
[INFO] [stdout] 125 | |     );
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 117 |     let _ = retriever.add_document(
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/rag.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 |     retriever.add_document(Document::new("这是一个关于烹饪的文档。").with_id("cooking"));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 144 |     let _ = retriever.add_document(Document::new("这是一个关于烹饪的文档。").with_id("cooking"));
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/rag.rs:168:5
[INFO] [stdout]     |
[INFO] [stdout] 168 | /     retriever.add_documents(vec![
[INFO] [stdout] 169 | |         Document::new("LangChain是一个用于构建LLM应用的框架。").with_id("lc_intro"),
[INFO] [stdout] 170 | |         Document::new("LangChain支持链式调用、记忆管理和检索增强生成。").with_id("lc_features"),
[INFO] [stdout] 171 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 168 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/rag.rs:195:5
[INFO] [stdout]     |
[INFO] [stdout] 195 | /     retriever.add_documents(vec![
[INFO] [stdout] 196 | |         Document::new("Go语言由Google开发，是一门静态类型的编译语言。").with_id("go_intro"),
[INFO] [stdout] 197 | |         Document::new("Rust语言注重内存安全，无垃圾回收。").with_id("rust_intro"),
[INFO] [stdout] 198 | |         Document::new("Python是动态类型语言，有垃圾回收。").with_id("python_intro"),
[INFO] [stdout] 199 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 195 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/rag.rs:222:5
[INFO] [stdout]     |
[INFO] [stdout] 222 | /     retriever.add_documents(vec![
[INFO] [stdout] 223 | |         Document::new("第一点：Rust注重安全。").with_id("point1"),
[INFO] [stdout] 224 | |         Document::new("第二点：Rust性能优秀。").with_id("point2"),
[INFO] [stdout] 225 | |         Document::new("第三点：Rust无垃圾回收。").with_id("point3"),
[INFO] [stdout] 226 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> tests/bm25/rag.rs:249:5
[INFO] [stdout]     |
[INFO] [stdout] 249 | /     retriever.add_documents(vec![
[INFO] [stdout] 250 | |         Document::new("向量数据库用于存储和检索高维向量。").with_id("vector_db"),
[INFO] [stdout] 251 | |         Document::new("常见的向量数据库包括Pinecone、Milvus和Qdrant。").with_id("vector_examples"),
[INFO] [stdout] 252 | |         Document::new("向量检索使用相似度度量如余弦相似度或欧几里得距离。")
[INFO] [stdout] 253 | |             .with_id("vector_metrics"),
[INFO] [stdout] 254 | |     ]);
[INFO] [stdout]     | |______^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 249 |     let _ = retriever.add_documents(vec![
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 06s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: meval v0.2.0, nom v1.2.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 10`
[INFO] running `Command { std: "docker" "inspect" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00", kill_on_drop: false }`
[INFO] [stdout] 66ca581225a46c3f6db389918a991b90a9e82a727ad293c1cd6e318cff7e4a00
