Skip to content

Push on main

Push on main #121

Triggered via dynamic August 11, 2025 07:57
Status Success
Total duration 1m 12s
Artifacts

codeql

on: dynamic
Matrix: analyze
Fit to window
Zoom out
Zoom in

Annotations

46 warnings
this lint expectation is unfulfilled: src/indexer/stamper.rs#L61
warning: this lint expectation is unfulfilled --> src/indexer/stamper.rs:61:14 | 61 | #[expect(clippy::redundant_clone)] | ^^^^^^^^^^^^^^^^^^^^^^^
this lint expectation is unfulfilled: src/indexer/stamper.rs#L45
warning: this lint expectation is unfulfilled --> src/indexer/stamper.rs:45:14 | 45 | #[expect(clippy::redundant_clone)] | ^^^^^^^^^^^^^^^^^^^^^^^ | = note: `#[warn(unfulfilled_lint_expectations)]` on by default
hiding a lifetime that's elided elsewhere is confusing: src/postings/serializer.rs#L74
warning: hiding a lifetime that's elided elsewhere is confusing --> src/postings/serializer.rs:74:9 | 74 | &mut self, | ^^^^^^^^^ the lifetime is elided here ... 78 | ) -> io::Result<FieldSerializer> { | --------------- the same lifetime is hidden here | = help: the same lifetime is referred to in inconsistent ways, making the signature confusing help: use `'_` for type paths | 78 | ) -> io::Result<FieldSerializer<'_>> { | ++++
hiding a lifetime that's elided elsewhere is confusing: src/indexer/index_writer.rs#L618
warning: hiding a lifetime that's elided elsewhere is confusing --> src/indexer/index_writer.rs:618:27 | 618 | pub fn prepare_commit(&mut self) -> crate::Result<PreparedCommit<D>> { | ^^^^^^^^^ ----------------- the same lifetime is hidden here | | | the lifetime is elided here | = help: the same lifetime is referred to in inconsistent ways, making the signature confusing = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default help: use `'_` for type paths | 618 | pub fn prepare_commit(&mut self) -> crate::Result<PreparedCommit<'_, D>> { | +++
this call to `clone` can be replaced with `std::slice::from_ref`: src/query/term_query/term_query.rs#L102
warning: this call to `clone` can be replaced with `std::slice::from_ref` --> src/query/term_query/term_query.rs:102:61 | 102 | } => Bm25Weight::for_terms(statistics_provider, &[self.term.clone()])?, | ^^^^^^^^^^^^^^^^^^^^ help: try: `std::slice::from_ref(&self.term)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cloned_ref_to_slice_refs = note: `#[warn(clippy::cloned_ref_to_slice_refs)]` on by default
this `else { if .. }` block can be collapsed: src/directory/mmap_directory.rs#L487
warning: this `else { if .. }` block can be collapsed --> src/directory/mmap_directory.rs:487:16 | 487 | } else { | ________________^ 488 | | if !file.try_lock_exclusive().map_err(|_| LockError::LockBusy)? { 489 | | return Err(LockError::LockBusy); 490 | | } 491 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_else_if = note: `#[warn(clippy::collapsible_else_if)]` on by default help: collapse nested if block | 487 ~ } else if !file.try_lock_exclusive().map_err(|_| LockError::LockBusy)? { 488 + return Err(LockError::LockBusy); 489 + } |
large size difference between variants: src/aggregation/intermediate_agg_result.rs#L249
warning: large size difference between variants --> src/aggregation/intermediate_agg_result.rs:249:1 | 249 | / pub enum IntermediateAggregationResult { 250 | | /// Bucket variant 251 | | Bucket(IntermediateBucketResult), | | -------------------------------- the second-largest variant contains at least 56 bytes 252 | | /// Metric variant 253 | | Metric(IntermediateMetricResult), | | -------------------------------- the largest variant contains at least 368 bytes 254 | | } | |_^ the entire enum is at least 368 bytes | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant = note: `#[warn(clippy::large_enum_variant)]` on by default help: consider boxing the large fields to reduce the total size of the enum | 253 - Metric(IntermediateMetricResult), 253 + Metric(Box<IntermediateMetricResult>), |
unused import: `std::iter`: src/query/boolean_query/block_wand.rs#L305
warning: unused import: `std::iter` --> src/query/boolean_query/block_wand.rs:305:9 | 305 | use std::iter; | ^^^^^^^^^
unused import: `std::iter`: src/positions/mod.rs#L44
warning: unused import: `std::iter` --> src/positions/mod.rs:44:9 | 44 | use std::iter; | ^^^^^^^^^
unused import: `std::iter`: src/collector/facet_collector.rs#L487
warning: unused import: `std::iter` --> src/collector/facet_collector.rs:487:9 | 487 | use std::iter; | ^^^^^^^^^
unused import: `std::iter`: src/tokenizer/ascii_folding_filter.rs#L1564
warning: unused import: `std::iter` --> src/tokenizer/ascii_folding_filter.rs:1564:9 | 1564 | use std::iter; | ^^^^^^^^^ | = note: `#[warn(unused_imports)]` on by default
manually reimplementing `div_ceil`: columnar/src/columnar/writer/column_operation.rs#L247
warning: manually reimplementing `div_ceil` --> columnar/src/columnar/writer/column_operation.rs:247:5 | 247 | (msb + 7) / 8 | ^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `msb.div_ceil(8)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil
manually reimplementing `div_ceil`: columnar/src/column_values/u64_based/linear.rs#L120
warning: manually reimplementing `div_ceil` --> columnar/src/column_values/u64_based/linear.rs:120:19 | 120 | + (num_bits as u64 * stats.num_rows as u64 + 7) / 8, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `(num_bits as u64 * stats.num_rows as u64).div_ceil(8)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil
manually reimplementing `div_ceil`: columnar/src/column_values/u64_based/bitpacked.rs#L108
warning: manually reimplementing `div_ceil` --> columnar/src/column_values/u64_based/bitpacked.rs:108:34 | 108 | Some(stats.num_bytes() + (stats.num_rows as u64 * (num_bits_per_value as u64) + 7) / 8) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `(stats.num_rows as u64 * (num_bits_per_value as u64)).div_ceil(8)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil = note: `#[warn(clippy::manual_div_ceil)]` on by default
this `if` statement can be collapsed: columnar/src/column_values/u128_based/compact_space/build_compact_space.rs#L205
warning: this `if` statement can be collapsed --> columnar/src/column_values/u128_based/compact_space/build_compact_space.rs:205:9 | 205 | / if let Some(last_blank_end) = self.blanks.last().map(RangeInclusive::end) { 206 | | if *last_blank_end != u128::MAX { 207 | | covered_space.push(last_blank_end + 1..=u128::MAX); 208 | | } 209 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if help: collapse nested if block | 205 ~ if let Some(last_blank_end) = self.blanks.last().map(RangeInclusive::end) 206 ~ && *last_blank_end != u128::MAX { 207 | covered_space.push(last_blank_end + 1..=u128::MAX); 208 ~ } |
this `if` statement can be collapsed: columnar/src/column_values/u128_based/compact_space/build_compact_space.rs#L188
warning: this `if` statement can be collapsed --> columnar/src/column_values/u128_based/compact_space/build_compact_space.rs:188:9 | 188 | / if let Some(first_blank_start) = self.blanks.first().map(RangeInclusive::start) { 189 | | if *first_blank_start != 0 { 190 | | covered_space.push(0..=first_blank_start - 1); 191 | | } 192 | | } | |_________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 188 ~ if let Some(first_blank_start) = self.blanks.first().map(RangeInclusive::start) 189 ~ && *first_blank_start != 0 { 190 | covered_space.push(0..=first_blank_start - 1); 191 ~ } |
this `repeat().take()` can be written more concisely: columnar/src/column_index/merge/stacked.rs#L110
warning: this `repeat().take()` can be written more concisely --> columnar/src/column_index/merge/stacked.rs:110:22 | 110 | Box::new(std::iter::repeat(1u32).take(optional_index.num_non_nulls() as usize)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(1u32, optional_index.num_non_nulls() as usize)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n
this `repeat().take()` can be written more concisely: columnar/src/column_index/merge/stacked.rs#L108
warning: this `repeat().take()` can be written more concisely --> columnar/src/column_index/merge/stacked.rs:108:39 | 108 | ColumnIndex::Full => Box::new(std::iter::repeat(1u32).take(num_docs as usize)), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `repeat_n()` instead: `std::iter::repeat_n(1u32, num_docs as usize)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_repeat_n = note: `#[warn(clippy::manual_repeat_n)]` on by default
associated items `to_code` and `try_from_code` are never used: columnar/src/column_index/optional_index/mod.rs#L344
warning: associated items `to_code` and `try_from_code` are never used --> columnar/src/column_index/optional_index/mod.rs:344:8 | 343 | impl OptionalIndexCodec { | ----------------------- associated items in this implementation 344 | fn to_code(self) -> u8 { | ^^^^^^^ ... 348 | fn try_from_code(code: u8) -> Result<Self, InvalidData> { | ^^^^^^^^^^^^^
enum `OptionalIndexCodec` is never used: columnar/src/column_index/optional_index/mod.rs#L338
warning: enum `OptionalIndexCodec` is never used --> columnar/src/column_index/optional_index/mod.rs:338:6 | 338 | enum OptionalIndexCodec { | ^^^^^^^^^^^^^^^^^^ | = note: `#[warn(dead_code)]` on by default
hiding a lifetime that's elided elsewhere is confusing: sstable/src/dictionary.rs#L636
warning: hiding a lifetime that's elided elsewhere is confusing --> sstable/src/dictionary.rs:636:19 | 636 | pub fn stream(&self) -> io::Result<Streamer<TSSTable>> { | ^^^^^ ------------------ the same lifetime is hidden here | | | the lifetime is elided here | = help: the same lifetime is referred to in inconsistent ways, making the signature confusing help: use `'_` for type paths | 636 | pub fn stream(&self) -> io::Result<Streamer<'_, TSSTable>> { | +++
hiding a lifetime that's elided elsewhere is confusing: sstable/src/dictionary.rs#L617
warning: hiding a lifetime that's elided elsewhere is confusing --> sstable/src/dictionary.rs:617:41 | 617 | pub fn prefix_range<K: AsRef<[u8]>>(&self, prefix: K) -> StreamerBuilder<TSSTable> { | ^^^^^ ------------------------- the same lifetime is hidden here | | | the lifetime is elided here | = help: the same lifetime is referred to in inconsistent ways, making the signature confusing help: use `'_` for type paths | 617 | pub fn prefix_range<K: AsRef<[u8]>>(&self, prefix: K) -> StreamerBuilder<'_, TSSTable> { | +++
hiding a lifetime that's elided elsewhere is confusing: sstable/src/dictionary.rs#L612
warning: hiding a lifetime that's elided elsewhere is confusing --> sstable/src/dictionary.rs:612:18 | 612 | pub fn range(&self) -> StreamerBuilder<TSSTable> { | ^^^^^ ------------------------- the same lifetime is hidden here | | | the lifetime is elided here | = help: the same lifetime is referred to in inconsistent ways, making the signature confusing = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default help: use `'_` for type paths | 612 | pub fn range(&self) -> StreamerBuilder<'_, TSSTable> { | +++
manually reimplementing `div_ceil`: sstable/src/sstable_index_v3.rs#L441
warning: manually reimplementing `div_ceil` --> sstable/src/sstable_index_v3.rs:441:12 | 441 | if (range_end_addr + self.range_start_nbits as usize + 7) / 8 > data.len() { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `(range_end_addr + self.range_start_nbits as usize).div_ceil(8)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil = note: `#[warn(clippy::manual_div_ceil)]` on by default
this can be `std::io::Error::other(_)`: sstable/src/sstable_index_v3.rs#L397
warning: this can be `std::io::Error::other(_)` --> sstable/src/sstable_index_v3.rs:397:47 | 397 | tantivy_fst::Error::Fst(fst_error) => io::Error::new(io::ErrorKind::Other, fst_error), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error help: use `std::io::Error::other` | 397 - tantivy_fst::Error::Fst(fst_error) => io::Error::new(io::ErrorKind::Other, fst_error), 397 + tantivy_fst::Error::Fst(fst_error) => io::Error::other(fst_error), |
this `if` statement can be collapsed: sstable/src/merge/heap_merge.rs#L57
warning: this `if` statement can be collapsed --> sstable/src/merge/heap_merge.rs:57:13 | 57 | / if let Some(mut head) = heap.peek_mut() { 58 | | if head.0.key() == writer.last_inserted_key() { 59 | | value_merger.add(head.0.value()); 60 | | if !head.0.advance()? { ... | 65 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 57 ~ if let Some(mut head) = heap.peek_mut() 58 ~ && head.0.key() == writer.last_inserted_key() { 59 | value_merger.add(head.0.value()); ... 63 | continue; 64 ~ } |
this can be `std::io::Error::other(_)`: sstable/src/dictionary.rs#L311
warning: this can be `std::io::Error::other(_)` --> sstable/src/dictionary.rs:311:28 | 311 | return Err(io::Error::new( | ____________________________^ 312 | | io::ErrorKind::Other, 313 | | format!("Unsupported sstable version, expected one of [2, 3], found {version}"), 314 | | )); | |_________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error = note: `#[warn(clippy::io_other_error)]` on by default help: use `std::io::Error::other` | 311 ~ return Err(io::Error::other( 312 ~ format!("Unsupported sstable version, expected one of [2, 3], found {version}"), |
hiding a lifetime that's elided elsewhere is confusing: query-grammar/src/query_grammar.rs#L71
warning: hiding a lifetime that's elided elsewhere is confusing --> query-grammar/src/query_grammar.rs:71:14 | 71 | fn word(inp: &str) -> IResult<&str, Cow<str>> { | ^^^^ ---- -------- the same lifetime is hidden here | | | | | the same lifetime is elided here | the lifetime is elided here | = help: the same lifetime is referred to in inconsistent ways, making the signature confusing = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default help: use `'_` for type paths | 71 | fn word(inp: &str) -> IResult<&str, Cow<'_, str>> { | +++
returning the result of a `let` binding from a block: query-grammar/src/query_grammar.rs#L316
warning: returning the result of a `let` binding from a block --> query-grammar/src/query_grammar.rs:316:5 | 308 | / let res = delimited_infallible( 309 | | nothing, 310 | | map(ast_infallible, |(mut ast, errors)| { 311 | | ast.set_default_field(field_name.to_string()); ... | 314 | | opt_i_err(char(')'), "expected ')'"), 315 | | )(inp); | |___________- unnecessary `let` binding 316 | res | ^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 308 ~ 309 ~ delimited_infallible( 310 + nothing, 311 + map(ast_infallible, |(mut ast, errors)| { 312 + ast.set_default_field(field_name.to_string()); 313 + (ast, errors) 314 + }), 315 + opt_i_err(char(')'), "expected ')'"), 316 + )(inp) |
this `if` statement can be collapsed: stacker/src/shared_arena_hashmap.rs#L277
warning: this `if` statement can be collapsed --> stacker/src/shared_arena_hashmap.rs:277:20 | 277 | } else if kv.hash == hash { | ____________________^ 278 | | if let Some(val_addr) = 279 | | self.get_value_addr_if_key_match(key, kv.key_value_addr, memory_arena) ... | 284 | | } | |_____________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if = note: `#[warn(clippy::collapsible_if)]` on by default help: collapse nested if block | 277 ~ } else if kv.hash == hash 278 ~ && let Some(val_addr) = 279 | self.get_value_addr_if_key_match(key, kv.key_value_addr, memory_arena) ... 282 | return Some(v); 283 ~ } |
returning the result of a `let` binding from a block: bitpacker/src/blocked_bitpacker.rs#L146
warning: returning the result of a `let` binding from a block --> bitpacker/src/blocked_bitpacker.rs:146:9 | 143 | / let iter = (0..bitpacked_elems) 144 | | .map(move |idx| self.get(idx)) 145 | | .chain(self.buffer.iter().cloned()); | |________________________________________________- unnecessary `let` binding 146 | iter | ^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 143 ~ 144 ~ (0..bitpacked_elems) 145 + .map(move |idx| self.get(idx)) 146 + .chain(self.buffer.iter().cloned()) |
manually reimplementing `div_ceil`: bitpacker/src/bitpacker.rs#L141
warning: manually reimplementing `div_ceil` --> bitpacker/src/bitpacker.rs:141:29 | 141 | 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/master/index.html#manual_div_ceil
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/master/index.html#manual_div_ceil = note: `#[warn(clippy::manual_div_ceil)]` on by default
call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L95
warning[E0133]: call to unsafe function `std::intrinsics::transmute` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:95:49 | 95 | 255 - std::arch::x86_64::_mm256_movemask_ps(std::mem::transmute::<DataType, __m256>(inside)) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior note: an unsafe function restricts its caller, but its body is safe by default --> bitpacker/src/filter_vec/avx2.rs:91:1 | 91 | unsafe fn compute_filter_bitset(val: __m256i, range: std::ops::RangeInclusive<__m256i>) -> u8 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset_from` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L79
warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset_from` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:79:5 | 79 | output_tail.offset_from(output) as usize | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L77
warning[E0133]: call to unsafe function `std::ptr::const_ptr::<impl *const T>::offset` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:77:17 | 77 | input = input.offset(1); | ^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L75
warning[E0133]: call to unsafe function `std::ptr::mut_ptr::<impl *mut T>::offset` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:75:23 | 75 | output_tail = output_tail.offset(added_len as isize); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `std::arch::x86_64::_mm256_storeu_si256` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L74
warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_storeu_si256` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:74:9 | 74 | store_unaligned(output_tail as *mut __m256i, filtered_doc_ids); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `filter_vec::avx2::compact` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L73
warning[E0133]: call to unsafe function `filter_vec::avx2::compact` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:73:32 | 73 | let filtered_doc_ids = compact(ids, keeper_bitset); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `filter_vec::avx2::compute_filter_bitset` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L71
warning[E0133]: call to unsafe function `filter_vec::avx2::compute_filter_bitset` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:71:29 | 71 | let keeper_bitset = compute_filter_bitset(word, range_simd.clone()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `filter_vec::avx2::u32_to_i32_avx2` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L70
warning[E0133]: call to unsafe function `filter_vec::avx2::u32_to_i32_avx2` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:70:20 | 70 | let word = u32_to_i32_avx2(word); | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior
call to unsafe function `std::arch::x86_64::_mm256_lddqu_si256` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L69
warning[E0133]: call to unsafe function `std::arch::x86_64::_mm256_lddqu_si256` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:69:20 | 69 | let word = load_unaligned(input); | ^^^^^^^^^^^^^^^^^^^^^ call to unsafe function | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = note: consult the function's documentation for information on how to avoid undefined behavior note: an unsafe function restricts its caller, but its body is safe by default --> bitpacker/src/filter_vec/avx2.rs:48:1 | 48 | / unsafe fn filter_vec_avx2_aux( 49 | | mut input: *const __m256i, 50 | | range: RangeInclusive<i32>, 51 | | output: *mut u32, 52 | | offset: u32, 53 | | num_words: usize, 54 | | ) -> usize { | |__________^
call to function `std::arch::x86_64::_mm256_xor_si256` with `#[target_feature]` is unsafe and requires unsafe block: bitpacker/src/filter_vec/avx2.rs#L22
warning[E0133]: call to function `std::arch::x86_64::_mm256_xor_si256` with `#[target_feature]` is unsafe and requires unsafe block --> bitpacker/src/filter_vec/avx2.rs:22:5 | 22 | op_xor(vals_u32x8s, HIGHEST_BIT_MASK) | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call to function with `#[target_feature]` | = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2024/unsafe-op-in-unsafe-fn.html> = help: in order for the call to be safe, the context requires the following additional target feature: avx2 note: an unsafe function restricts its caller, but its body is safe by default --> bitpacker/src/filter_vec/avx2.rs:20:1 | 20 | unsafe fn u32_to_i32_avx2(vals_u32x8s: DataType) -> DataType { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ = note: `#[warn(unsafe_op_in_unsafe_fn)]` on by default
calling .bytes() is very inefficient when data is not in memory: common/src/vint.rs#L199
warning: calling .bytes() is very inefficient when data is not in memory --> common/src/vint.rs:199:25 | 199 | let mut bytes = reader.bytes(); | ^^^^^^^^^^^^^^ | = help: consider using `BufReader` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes
calling .bytes() is very inefficient when data is not in memory: common/src/vint.rs#L32
warning: calling .bytes() is very inefficient when data is not in memory --> common/src/vint.rs:32:25 | 32 | let mut bytes = reader.bytes(); | ^^^^^^^^^^^^^^ | = help: consider using `BufReader` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unbuffered_bytes = note: `#[warn(clippy::unbuffered_bytes)]` on by default
manually reimplementing `div_ceil`: common/src/bitset.rs#L186
warning: manually reimplementing `div_ceil` --> common/src/bitset.rs:186:5 | 186 | (max_val + 63u32) / 64u32 | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.div_ceil()`: `max_val.div_ceil(64u32)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#manual_div_ceil = note: `#[warn(clippy::manual_div_ceil)]` on by default