Skip to content

vector: candidate-anchored radius gate — result-side band, native cluster radii, two-tier Skip/Terminate #504

vector: candidate-anchored radius gate — result-side band, native cluster radii, two-tier Skip/Terminate

vector: candidate-anchored radius gate — result-side band, native cluster radii, two-tier Skip/Terminate #504

Triggered via pull request July 27, 2026 18:21
Status Success
Total duration 3m 58s
Artifacts

test.yml

on: pull_request
Matrix: test
Fit to window
Zoom out
Zoom in

Annotations

122 warnings
test-none
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test-none
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-none
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-none
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-none
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
manually reimplementing `div_ceil`: src/vector/tests.rs#L866
warning: manually reimplementing `div_ceil` --> src/vector/tests.rs:866:9 | 866 | (ndocs + num_clusters - 1) / num_clusters | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `ndocs.div_ceil(num_clusters)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#manual_div_ceil = note: `#[warn(clippy::manual_div_ceil)]` on by default
the following explicit lifetimes could be elided: 'a: src/vector/ivf/plugin.rs#L115
warning: the following explicit lifetimes could be elided: 'a --> src/vector/ivf/plugin.rs:115:25 | 115 | fn build_centroid_graph<'a>( | ^^ 116 | metric: Metric, 117 | centroids: &'a [f32], | ^^ ... 120 | ) -> crate::Result<RelativeNeighborhoodGraph<&'a [f32]>> { | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_lifetimes = note: `#[warn(clippy::needless_lifetimes)]` on by default help: elide the lifetimes | 115 ~ fn build_centroid_graph( 116 | metric: Metric, 117 ~ centroids: &[f32], 118 | dim: usize, 119 | ef: usize, 120 ~ ) -> crate::Result<RelativeNeighborhoodGraph<&[f32]>> { |
the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable: src/vector/ivf/params.rs#L129
warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable --> src/vector/ivf/params.rs:129:12 | 129 | if !(self.max_probe_fraction > 0.0) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#neg_cmp_op_on_partial_ord = note: `#[warn(clippy::neg_cmp_op_on_partial_ord)]` on by default
doc list item without indentation: src/vector/backend.rs#L225
warning: doc list item without indentation --> src/vector/backend.rs:225:9 | 225 | /// segment this reads exactly zero. Zero until per-cluster radii land. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 225 | /// segment this reads exactly zero. Zero until per-cluster radii land. | +++
method `next` can be confused for the standard trait method `std::iter::Iterator::next`: src/termdict/fst_termdict/streamer.rs#L288
warning: method `next` can be confused for the standard trait method `std::iter::Iterator::next` --> src/termdict/fst_termdict/streamer.rs:288:5 | 288 | / pub fn next(&mut self) -> Option<(&[u8], &TermInfo, A::State)> { 289 | | if self.advance() { 290 | | let state = self.current_state.take().unwrap(); // always Some(_) after advance 291 | | Some((self.key(), self.value(), state)) ... | 295 | | } | |_____^ | = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#should_implement_trait = note: `#[warn(clippy::should_implement_trait)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/query/mod.rs#L209
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/query/mod.rs:209:43 | 209 | query.query_terms(text_field, &segment_reader, &mut |term, pos| { | ^^^^^^^^^^^^^^^ help: change this to: `segment_reader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: src/query/mod.rs#L199
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/query/mod.rs:199:43 | 199 | query.query_terms(text_field, &segment_reader, &mut |term, pos| { | ^^^^^^^^^^^^^^^ help: change this to: `segment_reader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: src/query/mod.rs#L191
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/query/mod.rs:191:43 | 191 | query.query_terms(text_field, &segment_reader, &mut |term, pos| { | ^^^^^^^^^^^^^^^ help: change this to: `segment_reader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: src/query/mod.rs#L180
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/query/mod.rs:180:43 | 180 | query.query_terms(text_field, &segment_reader, &mut |term, pos| { | ^^^^^^^^^^^^^^^ help: change this to: `segment_reader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
this expression creates a reference which is immediately dereferenced by the compiler: src/query/mod.rs#L172
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/query/mod.rs:172:43 | 172 | query.query_terms(text_field, &segment_reader, &mut |term, pos| { | ^^^^^^^^^^^^^^^ help: change this to: `segment_reader` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
items after a test module: src/query/term_set_query/term_set_weight.rs#L580
warning: items after a test module --> src/query/term_set_query/term_set_weight.rs:580:1 | 580 | mod tests { | ^^^^^^^^^ ... 792 | / impl<T: Copy + Eq + std::hash::Hash + PartialOrd + std::fmt::Debug + Send + Sync + 'static> DocSet 793 | | for TermSetDocSet<T> | |________________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#items_after_test_module = note: `#[warn(clippy::items_after_test_module)]` on by default = help: move the items to before the test module was defined
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L25
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:25:5 | 25 | //! five variants including `Automaton` for non-fast indexed fields. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 25 | //! five variants including `Automaton` for non-fast indexed fields. | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L24
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:24:5 | 24 | //! fast is available, calls `select_strategy`, and dispatches all | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 24 | //! fast is available, calls `select_strategy`, and dispatches all | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L23
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:23:5 | 23 | //! construction. The per-segment scorer opens the column only when | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 23 | //! construction. The per-segment scorer opens the column only when | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L22
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:22:5 | 22 | //! Automaton), and a `fast_strategies_available` flag set at | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 22 | //! Automaton), and a `fast_strategies_available` flag set at | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L21
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:21:5 | 21 | //! Linear + Bitset on numeric-fast), a pre-built FST (consumed by | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation = note: `#[warn(clippy::doc_lazy_continuation)]` on by default help: indent this line | 21 | //! Linear + Bitset on numeric-fast), a pre-built FST (consumed by | ++
returning the result of a `let` binding from a block: src/query/term_set_query/term_set_strategy.rs#L899
warning: returning the result of a `let` binding from a block --> src/query/term_set_query/term_set_strategy.rs:899:9 | 887 | / let strat = select_strategy( 888 | | &reader, 889 | | &column, 890 | | PlannerInputs { ... | 897 | | &TermSetStrategyConfig::default(), 898 | | ); | |__________- unnecessary `let` binding 899 | strat | ^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 887 ~ 888 ~ select_strategy( 889 + &reader, 890 + &column, 891 + PlannerInputs { 892 + field_name: &name, 893 + candidate_size: None, 894 + avg_docs_per_term: Some(d), 895 + fast_available: true, 896 + }, 897 + &term_set(0..k as u64), 898 + &TermSetStrategyConfig::default(), 899 + ) |
using `clone` on type `Bound<u64>` which implements the `Copy` trait: src/query/range_query/range_query_fastfield.rs#L1979
warning: using `clone` on type `Bound<u64>` which implements the `Copy` trait --> src/query/range_query/range_query_fastfield.rs:1979:68 | 1979 | let actual = count_range(&index, field, lower.clone(), upper.clone()); | ^^^^^^^^^^^^^ help: try dereferencing it: `*upper` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#clone_on_copy
using `clone` on type `Bound<u64>` which implements the `Copy` trait: src/query/range_query/range_query_fastfield.rs#L1979
warning: using `clone` on type `Bound<u64>` which implements the `Copy` trait --> src/query/range_query/range_query_fastfield.rs:1979:53 | 1979 | let actual = count_range(&index, field, lower.clone(), upper.clone()); | ^^^^^^^^^^^^^ help: try dereferencing it: `*lower` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#clone_on_copy = note: `#[warn(clippy::clone_on_copy)]` on by default
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1797
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1797:17 | 1797 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1788
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1788:17 | 1788 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1539
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1539:17 | 1539 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1532
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1532:17 | 1532 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1525
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1525:17 | 1525 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1515
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1515:17 | 1515 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1508
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1508:17 | 1508 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/query/range_query/range_query_fastfield.rs#L1501
warning: redundant reference in `format!` argument --> src/query/range_query/range_query_fastfield.rs:1501:17 | 1501 | &id_filter | ^^^^^^^^^^ help: remove the redundant `&`: `id_filter` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
the function `InvertedIndexSerializer::open` doesn't need a mutable reference: src/postings/mod.rs#L70
warning: the function `InvertedIndexSerializer::open` doesn't need a mutable reference --> src/postings/mod.rs:70:68 | 70 | let mut posting_serializer = InvertedIndexSerializer::open(&mut segment)?; | ^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_mut_passed = note: `#[warn(clippy::unnecessary_mut_passed)]` on by default help: remove this `mut` | 70 - let mut posting_serializer = InvertedIndexSerializer::open(&mut segment)?; 70 + let mut posting_serializer = InvertedIndexSerializer::open(&segment)?; |
initializer for `thread_local` value can be made `const`: src/postings/indexing_context.rs#L8
warning: initializer for `thread_local` value can be made `const` --> src/postings/indexing_context.rs:8:58 | 8 | static CONTEXT_POOL: RefCell<Vec<IndexingContext>> = RefCell::new(Vec::new()); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(Vec::new()) }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#missing_const_for_thread_local = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/index/segment_reader.rs#L644
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/index/segment_reader.rs:644:37 | 644 | CompositeFile::open(&positions_file) | ^^^^^^^^^^^^^^^ help: change this to: `positions_file` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
usage of an `Arc` that is not `Send` and `Sync`: src/index/segment_reader.rs#L378
warning: usage of an `Arc` that is not `Send` and `Sync` --> src/index/segment_reader.rs:378:30 | 378 | let inv_idx_reader = Arc::new(MergeOptimizedInvertedIndexReader::new( | ______________________________^ 379 | | TermDictionary::open(termdict_file)?, 380 | | postings_file, 381 | | positions_file, 382 | | record_option, 383 | | )?); | |___________^ | = note: `Arc<MergeOptimizedInvertedIndexReader>` is not `Send` and `Sync` as `MergeOptimizedInvertedIndexReader` is not `Sync` = help: if the `Arc` will not be used across threads replace it with an `Rc` = help: otherwise make `MergeOptimizedInvertedIndexReader` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#arc_with_non_send_sync
usage of an `Arc` that is not `Send` and `Sync`: src/index/segment_reader.rs#L352
warning: usage of an `Arc` that is not `Send` and `Sync` --> src/index/segment_reader.rs:352:23 | 352 | return Ok(Arc::new(MergeOptimizedInvertedIndexReader::empty( | _______________________^ 353 | | record_option, 354 | | ))); | |______________^ | = note: `Arc<MergeOptimizedInvertedIndexReader>` is not `Send` and `Sync` as `MergeOptimizedInvertedIndexReader` is not `Sync` = help: if the `Arc` will not be used across threads replace it with an `Rc` = help: otherwise make `MergeOptimizedInvertedIndexReader` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#arc_with_non_send_sync = note: `#[warn(clippy::arc_with_non_send_sync)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/index/segment_reader.rs#L281
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/index/segment_reader.rs:281:41 | 281 | CompositeFile::open(&positions_file) | ^^^^^^^^^^^^^^^ help: change this to: `positions_file` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L308
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:308:48 | 308 | update_helper(&t, Some(200), 10, &cmp, &is_better); // 200 > 100 | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L305
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:305:47 | 305 | update_helper(&t, Some(100), 2, &cmp, &is_better); // Same score, better ord | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L302
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:302:46 | 302 | update_helper(&t, Some(50), 2, &cmp, &is_better); // 50 < 100, worse | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L299
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:299:47 | 299 | update_helper(&t, Some(100), 5, &cmp, &is_better); | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L279
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:279:46 | 279 | update_helper(&t, Some(0), 10, &cmp, &is_better); // Some(0) > None, better | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L276
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:276:42 | 276 | update_helper(&t, None, 1, &cmp, &is_better); // None is strictly smaller than Some(100) | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L273
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:273:47 | 273 | update_helper(&t, Some(100), 2, &cmp, &is_better); // Same score, better ord | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L270
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:270:47 | 270 | update_helper(&t, Some(200), 2, &cmp, &is_better); // 200 > 100, worse | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L267
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:267:47 | 267 | update_helper(&t, Some(100), 5, &cmp, &is_better); | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L247
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:247:41 | 247 | update_helper(&t, 0.9, 10, &(), &is_better); | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L244
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:244:40 | 244 | update_helper(&t, 0.5, 2, &(), &is_better); // Same score, better ord | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L241
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:241:40 | 241 | update_helper(&t, 0.3, 2, &(), &is_better); | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args
the borrowed expression implements the required traits: src/collector/sort_key/shared_threshold.rs#L238
warning: the borrowed expression implements the required traits --> src/collector/sort_key/shared_threshold.rs:238:40 | 238 | update_helper(&t, 0.5, 5, &(), &is_better); | ^^^^^^^^^^ help: change this to: `is_better` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrows_for_generic_args = note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/intermediate_agg_result.rs#L1050
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/intermediate_agg_result.rs:1050:32 | 1050 | doc_count: entry.doc_count as u64, | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `entry.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/intermediate_agg_result.rs#L753
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/intermediate_agg_result.rs:753:32 | 753 | doc_count: entry.doc_count as u64, | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `entry.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/intermediate_agg_result.rs#L741
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/intermediate_agg_result.rs:741:30 | 741 | .filter(|bucket| bucket.1.doc_count as u64 >= req.min_doc_count) | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bucket.1.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
large size difference between variants: src/aggregation/intermediate_agg_result.rs#L335
warning: large size difference between variants --> src/aggregation/intermediate_agg_result.rs:335:1 | 335 | / pub enum IntermediateMetricResult { 336 | | /// Intermediate average result. 337 | | Percentiles(PercentilesCollector), | | --------------------------------- the second-largest variant contains at least 176 bytes 338 | | /// Intermediate average result. ... | 353 | | TopHits(TopHitsTopNComputer), | | ---------------------------- the largest variant contains at least 400 bytes 354 | | /// Intermediate cardinality result 355 | | Cardinality(CardinalityCollector), 356 | | } | |_^ the entire enum is at least 400 bytes | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#large_enum_variant = note: `#[warn(clippy::large_enum_variant)]` on by default help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum | 353 - TopHits(TopHitsTopNComputer), 353 + TopHits(Box<TopHitsTopNComputer>), |
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/bucket/term_agg/mod.rs#L1251
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/bucket/term_agg/mod.rs:1251:9 | 1251 | self.1.doc_count as u64 | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.1.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
this assertion has a constant value: src/indexer/segment_updater.rs#L906
warning: this assertion has a constant value --> src/indexer/segment_updater.rs:906:29 | 906 | ... assert!(!cfg!(test), "Merge failed."); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: consider moving this into a const block: `const { assert!(..) }` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#assertions_on_constants = note: `#[warn(clippy::assertions_on_constants)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/indexer/segment_updater.rs#L549
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/indexer/segment_updater.rs:549:17 | 549 | &previous_metas, | ^^^^^^^^^^^^^^^ help: change this to: `previous_metas` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
redundant reference in `format!` argument: src/indexer/index_writer.rs#L2387
warning: redundant reference in `format!` argument --> src/indexer/index_writer.rs:2387:68 | 2387 | format!("{}:[{} TO {}]", field, &from.to_string(), &to.to_string()) | ^^^^^^^^^^^^^^^ help: remove the redundant `&`: `to.to_string()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/indexer/index_writer.rs#L2387
warning: redundant reference in `format!` argument --> src/indexer/index_writer.rs:2387:49 | 2387 | format!("{}:[{} TO {}]", field, &from.to_string(), &to.to_string()) | ^^^^^^^^^^^^^^^^^ help: remove the redundant `&`: `from.to_string()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/indexer/index_writer.rs#L2328
warning: redundant reference in `format!` argument --> src/indexer/index_writer.rs:2328:68 | 2328 | format!("{}:[{} TO {}]", field, &from.to_string(), &to.to_string()) | ^^^^^^^^^^^^^^^ help: remove the redundant `&`: `to.to_string()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting
redundant reference in `format!` argument: src/indexer/index_writer.rs#L2328
warning: redundant reference in `format!` argument --> src/indexer/index_writer.rs:2328:49 | 2328 | format!("{}:[{} TO {}]", field, &from.to_string(), &to.to_string()) | ^^^^^^^^^^^^^^^^^ help: remove the redundant `&`: `from.to_string()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#useless_borrows_in_formatting = note: `#[warn(clippy::useless_borrows_in_formatting)]` on by default
this `if` statement can be collapsed: src/indexer/index_writer.rs#L129
warning: this `if` statement can be collapsed --> src/indexer/index_writer.rs:129:17 | 129 | / if *segment_id == segment_reader.segment_id() { 130 | | if doc_opstamps.is_deleted(*doc_id, *opstamp) { 131 | | alive_bitset.remove(*doc_id); 132 | | might_have_changed = true; 133 | | } 134 | | } | |_________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 129 ~ if *segment_id == segment_reader.segment_id() 130 ~ && doc_opstamps.is_deleted(*doc_id, *opstamp) { 131 | alive_bitset.remove(*doc_id); 132 | might_have_changed = true; 133 ~ } |
fields `ignore_store` and `columnar_codec_types` are never read: src/indexer/segment_writer.rs#L77
warning: fields `ignore_store` and `columnar_codec_types` are never read --> src/indexer/segment_writer.rs:77:5 | 62 | pub struct SegmentWriter { | ------------- fields in this struct ... 77 | ignore_store: bool, | ^^^^^^^^^^^^ 78 | columnar_codec_types: Vec<columnar::CodecType>, | ^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
the following explicit lifetimes could be elided: 'a: src/vector/ivf/plugin.rs#L115
warning: the following explicit lifetimes could be elided: 'a --> src/vector/ivf/plugin.rs:115:25 | 115 | fn build_centroid_graph<'a>( | ^^ 116 | metric: Metric, 117 | centroids: &'a [f32], | ^^ ... 120 | ) -> crate::Result<RelativeNeighborhoodGraph<&'a [f32]>> { | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_lifetimes = note: `#[warn(clippy::needless_lifetimes)]` on by default help: elide the lifetimes | 115 ~ fn build_centroid_graph( 116 | metric: Metric, 117 ~ centroids: &[f32], 118 | dim: usize, 119 | ef: usize, 120 ~ ) -> crate::Result<RelativeNeighborhoodGraph<&[f32]>> { |
the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable: src/vector/ivf/params.rs#L129
warning: the use of negated comparison operators on partially ordered types produces code that is hard to read and refactor, please consider using the `partial_cmp` method instead, to make it clear that the two values could be incomparable --> src/vector/ivf/params.rs:129:12 | 129 | if !(self.max_probe_fraction > 0.0) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#neg_cmp_op_on_partial_ord = note: `#[warn(clippy::neg_cmp_op_on_partial_ord)]` on by default
doc list item without indentation: src/vector/backend.rs#L225
warning: doc list item without indentation --> src/vector/backend.rs:225:9 | 225 | /// segment this reads exactly zero. Zero until per-cluster radii land. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 225 | /// segment this reads exactly zero. Zero until per-cluster radii land. | +++
method `next` can be confused for the standard trait method `std::iter::Iterator::next`: src/termdict/fst_termdict/streamer.rs#L288
warning: method `next` can be confused for the standard trait method `std::iter::Iterator::next` --> src/termdict/fst_termdict/streamer.rs:288:5 | 288 | / pub fn next(&mut self) -> Option<(&[u8], &TermInfo, A::State)> { 289 | | if self.advance() { 290 | | let state = self.current_state.take().unwrap(); // always Some(_) after advance 291 | | Some((self.key(), self.value(), state)) ... | 295 | | } | |_____^ | = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#should_implement_trait = note: `#[warn(clippy::should_implement_trait)]` on by default
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L25
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:25:5 | 25 | //! five variants including `Automaton` for non-fast indexed fields. | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 25 | //! five variants including `Automaton` for non-fast indexed fields. | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L24
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:24:5 | 24 | //! fast is available, calls `select_strategy`, and dispatches all | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 24 | //! fast is available, calls `select_strategy`, and dispatches all | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L23
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:23:5 | 23 | //! construction. The per-segment scorer opens the column only when | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 23 | //! construction. The per-segment scorer opens the column only when | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L22
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:22:5 | 22 | //! Automaton), and a `fast_strategies_available` flag set at | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation help: indent this line | 22 | //! Automaton), and a `fast_strategies_available` flag set at | ++
doc list item without indentation: src/query/term_set_query/term_set_weight.rs#L21
warning: doc list item without indentation --> src/query/term_set_query/term_set_weight.rs:21:5 | 21 | //! Linear + Bitset on numeric-fast), a pre-built FST (consumed by | ^ | = help: if this is supposed to be its own paragraph, add a blank line = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#doc_lazy_continuation = note: `#[warn(clippy::doc_lazy_continuation)]` on by default help: indent this line | 21 | //! Linear + Bitset on numeric-fast), a pre-built FST (consumed by | ++
initializer for `thread_local` value can be made `const`: src/postings/indexing_context.rs#L8
warning: initializer for `thread_local` value can be made `const` --> src/postings/indexing_context.rs:8:58 | 8 | static CONTEXT_POOL: RefCell<Vec<IndexingContext>> = RefCell::new(Vec::new()); | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `const { RefCell::new(Vec::new()) }` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#missing_const_for_thread_local = note: `#[warn(clippy::missing_const_for_thread_local)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/index/segment_reader.rs#L644
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/index/segment_reader.rs:644:37 | 644 | CompositeFile::open(&positions_file) | ^^^^^^^^^^^^^^^ help: change this to: `positions_file` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
usage of an `Arc` that is not `Send` and `Sync`: src/index/segment_reader.rs#L378
warning: usage of an `Arc` that is not `Send` and `Sync` --> src/index/segment_reader.rs:378:30 | 378 | let inv_idx_reader = Arc::new(MergeOptimizedInvertedIndexReader::new( | ______________________________^ 379 | | TermDictionary::open(termdict_file)?, 380 | | postings_file, 381 | | positions_file, 382 | | record_option, 383 | | )?); | |___________^ | = note: `Arc<MergeOptimizedInvertedIndexReader>` is not `Send` and `Sync` as `MergeOptimizedInvertedIndexReader` is not `Sync` = help: if the `Arc` will not be used across threads replace it with an `Rc` = help: otherwise make `MergeOptimizedInvertedIndexReader` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#arc_with_non_send_sync
usage of an `Arc` that is not `Send` and `Sync`: src/index/segment_reader.rs#L352
warning: usage of an `Arc` that is not `Send` and `Sync` --> src/index/segment_reader.rs:352:23 | 352 | return Ok(Arc::new(MergeOptimizedInvertedIndexReader::empty( | _______________________^ 353 | | record_option, 354 | | ))); | |______________^ | = note: `Arc<MergeOptimizedInvertedIndexReader>` is not `Send` and `Sync` as `MergeOptimizedInvertedIndexReader` is not `Sync` = help: if the `Arc` will not be used across threads replace it with an `Rc` = help: otherwise make `MergeOptimizedInvertedIndexReader` `Send` and `Sync` or consider a wrapper type such as `Mutex` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#arc_with_non_send_sync = note: `#[warn(clippy::arc_with_non_send_sync)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/index/segment_reader.rs#L281
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/index/segment_reader.rs:281:41 | 281 | CompositeFile::open(&positions_file) | ^^^^^^^^^^^^^^^ help: change this to: `positions_file` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/intermediate_agg_result.rs#L1050
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/intermediate_agg_result.rs:1050:32 | 1050 | doc_count: entry.doc_count as u64, | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `entry.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/intermediate_agg_result.rs#L753
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/intermediate_agg_result.rs:753:32 | 753 | doc_count: entry.doc_count as u64, | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `entry.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/intermediate_agg_result.rs#L741
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/intermediate_agg_result.rs:741:30 | 741 | .filter(|bucket| bucket.1.doc_count as u64 >= req.min_doc_count) | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `bucket.1.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
large size difference between variants: src/aggregation/intermediate_agg_result.rs#L335
warning: large size difference between variants --> src/aggregation/intermediate_agg_result.rs:335:1 | 335 | / pub enum IntermediateMetricResult { 336 | | /// Intermediate average result. 337 | | Percentiles(PercentilesCollector), | | --------------------------------- the second-largest variant contains at least 176 bytes 338 | | /// Intermediate average result. ... | 353 | | TopHits(TopHitsTopNComputer), | | ---------------------------- the largest variant contains at least 400 bytes 354 | | /// Intermediate cardinality result 355 | | Cardinality(CardinalityCollector), 356 | | } | |_^ the entire enum is at least 400 bytes | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#large_enum_variant = note: `#[warn(clippy::large_enum_variant)]` on by default help: consider boxing the large fields or introducing indirection in some other way to reduce the total size of the enum | 353 - TopHits(TopHitsTopNComputer), 353 + TopHits(Box<TopHitsTopNComputer>), |
casting to the same type is unnecessary (`u64` -> `u64`): src/aggregation/bucket/term_agg/mod.rs#L1251
warning: casting to the same type is unnecessary (`u64` -> `u64`) --> src/aggregation/bucket/term_agg/mod.rs:1251:9 | 1251 | self.1.doc_count as u64 | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.1.doc_count` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
this assertion has a constant value: src/indexer/segment_updater.rs#L906
warning: this assertion has a constant value --> src/indexer/segment_updater.rs:906:29 | 906 | ... assert!(!cfg!(test), "Merge failed."); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: consider moving this into a const block: `const { assert!(..) }` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#assertions_on_constants = note: `#[warn(clippy::assertions_on_constants)]` on by default
this expression creates a reference which is immediately dereferenced by the compiler: src/indexer/segment_updater.rs#L549
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/indexer/segment_updater.rs:549:17 | 549 | &previous_metas, | ^^^^^^^^^^^^^^^ help: change this to: `previous_metas` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
this `if` statement can be collapsed: src/indexer/index_writer.rs#L129
warning: this `if` statement can be collapsed --> src/indexer/index_writer.rs:129:17 | 129 | / if *segment_id == segment_reader.segment_id() { 130 | | if doc_opstamps.is_deleted(*doc_id, *opstamp) { 131 | | alive_bitset.remove(*doc_id); 132 | | might_have_changed = true; 133 | | } 134 | | } | |_________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 129 ~ if *segment_id == segment_reader.segment_id() 130 ~ && doc_opstamps.is_deleted(*doc_id, *opstamp) { 131 | alive_bitset.remove(*doc_id); 132 | might_have_changed = true; 133 ~ } |
fields `ignore_store` and `columnar_codec_types` are never read: src/indexer/segment_writer.rs#L77
warning: fields `ignore_store` and `columnar_codec_types` are never read --> src/indexer/segment_writer.rs:77:5 | 62 | pub struct SegmentWriter { | ------------- fields in this struct ... 77 | ignore_store: bool, | ^^^^^^^^^^^^ 78 | columnar_codec_types: Vec<columnar::CodecType>, | ^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
unused import: `TerminatingWrite`: src/directory/directory.rs#L14
warning: unused import: `TerminatingWrite` --> src/directory/directory.rs:14:43 | 14 | FileHandle, FileSlice, InnerWritePtr, TerminatingWrite, WatchCallback, WatchHandle, WritePtr, | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
unused import: `TerminatingWrite`: src/directory/directory.rs#L14
warning: unused import: `TerminatingWrite` --> src/directory/directory.rs:14:43 | 14 | FileHandle, FileSlice, InnerWritePtr, TerminatingWrite, WatchCallback, WatchHandle, WritePtr, | ^^^^^^^^^^^^^^^^ | = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
this function has too many arguments (8/7): columnar/src/columnar/writer/mod.rs#L740
warning: this function has too many arguments (8/7) --> columnar/src/columnar/writer/mod.rs:740:1 | 740 | / fn send_to_serialize_column_mappable_to_u64( 741 | | op_iterator: impl Iterator<Item = ColumnOperation<u64>>, 742 | | cardinality: Cardinality, 743 | | num_rows: RowId, ... | 748 | | mut wrt: impl io::Write, 749 | | ) -> io::Result<()> { | |___________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#too_many_arguments = note: `#[warn(clippy::too_many_arguments)]` on by default
accessing first element with `header .read_bytes()? .as_slice().get(0)`: columnar/src/column_values/u64_based/mod.rs#L227
warning: accessing first element with `header .read_bytes()? .as_slice().get(0)` --> columnar/src/column_values/u64_based/mod.rs:227:33 | 227 | let codec_type: CodecType = header | _________________________________^ 228 | | .read_bytes()? 229 | | .as_slice() 230 | | .get(0) | |_______________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#get_first = note: `#[warn(clippy::get_first)]` on by default help: try | 227 ~ let codec_type: CodecType = header 228 + .read_bytes()? 229 + .as_slice().first() |
length comparison to zero: columnar/src/column_values/u64_based/bitpacked.rs#L29
warning: length comparison to zero --> columnar/src/column_values/u64_based/bitpacked.rs:29:30 | 29 | if block_num == 0 && self.blocks.len() == 0 { | ^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.blocks.is_empty()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#len_zero = note: `#[warn(clippy::len_zero)]` on by default
method `next` can be confused for the standard trait method `std::iter::Iterator::next`: sstable/src/streamer.rs#L389
warning: method `next` can be confused for the standard trait method `std::iter::Iterator::next` --> sstable/src/streamer.rs:389:5 | 389 | / pub fn next(&mut self) -> Option<(&[u8], &TSSTable::Value, A::State)> { 390 | | if self.advance() { 391 | | let st = self.current_state.clone().unwrap(); 392 | | Some((self.key(), self.value(), st)) ... | 396 | | } | |_____^ | = help: consider implementing the trait `std::iter::Iterator` or choosing a less ambiguous method name = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#should_implement_trait = note: `#[warn(clippy::should_implement_trait)]` on by default
replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take`: stacker/src/memory_arena.rs#L127
warning: replacing a value of type `T` with `T::default()` is better expressed using `std::mem::take` --> stacker/src/memory_arena.rs:127:24 | 127 | let my_pages = std::mem::replace(&mut self.pages, Vec::new()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using: `std::mem::take(&mut self.pages)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#mem_replace_with_default = note: `#[warn(clippy::mem_replace_with_default)]` on by default
redundant closure: stacker/src/memory_arena.rs#L111
warning: redundant closure --> stacker/src/memory_arena.rs:111:67 | 111 | static ARENA_POOL: Lazy<Arc<Mutex<Vec<MemoryArena>>>> = Lazy::new(|| Default::default()); | ^^^^^^^^^^^^^^^^^^^^^ help: replace the closure with the associated function itself: `Default::default` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#redundant_closure = note: `#[warn(clippy::redundant_closure)]` on by default
casting to the same type is unnecessary (`usize` -> `usize`): bitpacker/src/bitpacker.rs#L204
warning: casting to the same type is unnecessary (`usize` -> `usize`) --> bitpacker/src/bitpacker.rs:204:13 | 204 | end_byte_read as usize <= data_offset + data.len(), | ^^^^^^^^^^^^^^^^^^^^^^ help: try: `end_byte_read` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
manually reimplementing `div_ceil`: bitpacker/src/bitpacker.rs#L202
warning: manually reimplementing `div_ceil` --> bitpacker/src/bitpacker.rs:202:29 | 202 | let end_byte_read = (end_bit_read + 7) / 8; | ^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `end_bit_read.div_ceil(8)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#manual_div_ceil
casting to the same type is unnecessary (`usize` -> `usize`): bitpacker/src/bitpacker.rs#L128
warning: casting to the same type is unnecessary (`usize` -> `usize`) --> bitpacker/src/bitpacker.rs:128:23 | 128 | if data_len % (BLOCK_SIZE_MIN as usize) == 0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `BLOCK_SIZE_MIN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast
manual implementation of `.is_multiple_of()`: bitpacker/src/bitpacker.rs#L128
warning: manual implementation of `.is_multiple_of()` --> bitpacker/src/bitpacker.rs:128:12 | 128 | if data_len % (BLOCK_SIZE_MIN as usize) == 0 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `data_len.is_multiple_of(BLOCK_SIZE_MIN as usize)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#manual_is_multiple_of = note: `#[warn(clippy::manual_is_multiple_of)]` on by default
casting to the same type is unnecessary (`usize` -> `usize`): bitpacker/src/bitpacker.rs#L127
warning: casting to the same type is unnecessary (`usize` -> `usize`) --> bitpacker/src/bitpacker.rs:127:38 | 127 | let block_count = data_len / (BLOCK_SIZE_MIN as usize); | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `BLOCK_SIZE_MIN` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
manually reimplementing `div_ceil`: bitpacker/src/bitpacker.rs#L51
warning: manually reimplementing `div_ceil` --> bitpacker/src/bitpacker.rs:51:29 | 51 | let num_bytes = (self.mini_buffer_written + 7) / 8; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `self.mini_buffer_written.div_ceil(8)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#manual_div_ceil = note: `#[warn(clippy::manual_div_ceil)]` on by default
calling .bytes() is very inefficient when data is not in memory: common/src/vint.rs#L64
warning: calling .bytes() is very inefficient when data is not in memory --> common/src/vint.rs:64:25 | 64 | let mut bytes = reader.bytes(); | ^^^^^^^^^^^^^^ | = help: consider using `BufReader` = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#unbuffered_bytes = note: `#[warn(clippy::unbuffered_bytes)]` on by default
this can be `std::io::Error::other(_)`: common/src/file_slice.rs#L409
warning: this can be `std::io::Error::other(_)` --> common/src/file_slice.rs:409:27 | 409 | Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.to_string())), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/rust-1.97.0/index.html#io_other_error = note: `#[warn(clippy::io_other_error)]` on by default help: use `std::io::Error::other` | 409 - Err(e) => Err(io::Error::new(io::ErrorKind::Other, e.to_string())), 409 + Err(e) => Err(io::Error::other(e.to_string())), |
check
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions-rs/clippy-check@b5b5f21f4797c02da247df37026fcd0a5024aa4d, actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
check
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-all
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test-all
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-all
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-all
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-all
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-quickwit
Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions-rs/toolchain@16499b5e05bf2e26879000db0c1d13f7e13fa3af. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/
test-quickwit
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-quickwit
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-quickwit
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test-quickwit
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/